AWS/3Tier architecture

[3 Tier Architecture #7] Web WAS DB를 이용한 웹 애플리케이션 동작

BigCo 2023. 4. 3. 23:39

안녕하세요 :)

오늘은 지금까지 구축한  web was db를 이용하여 회원가입 웹페이지를 만들겠습니다.

간단하는 회원가입 WEB에서 입력한 값을 WAS가 처리해 DB에 저장하는 방식 입니다.

해당 실습을 진행하기 전 이전 포스팅한 게시물을 확인해주세요.

https://bigco-growth-diary.tistory.com/13

 

[3 Tier Architecture #6] RDS생성 & 연동

안녕하세요 :l 오늘은 Mysql RDS를 생성하고 연동하는 실습까지 진행하겠습니다. 해당 실습을 진행하기 전 이전 포스팅한 게시물을 확인해주세요. https://bigco-growth-diary.tistory.com/12 [3 Tier Architecture #5

bigco-growth-diary.tistory.com

 

 

 

 

순 서

1.DB접근 및 테이블 생성

2.mysql 연동 페이지 (회원가입) 만들기

3. 회원가입 및 DB쿼리확인

 

웹페이지에 사용된 스크립트입니다.

https://www.happyjung.com/lecture/1221?sst=wr_datetime&sod=desc&sop=and&page=65

 

 

 

1.DB접근 및 테이블 생성

1-1

MySQL RDS를 생성했을 때 만들었던 계정 + 비밀번호랑 RDS의 엔드포인트로 MySQL에 접속하는 방법입니다.

 

// mysql -y [계정] -h [RDS 엔드포인트] -p

mysql -u ty3751 -h db-3tier.clzl61fz5jqp.ap-northeast-2.rds.amazonaws.com -p

 

 

 

 

1-2

mysql에 입장한 후  사용한 database를 만들어 줍니다.

DB생성 : create database [DB이름];

DB삭제 : drop database [DB이름];

DB목록 : show databases;

 

 

 

1-3

use [DB이름] 명령어를 사용하여 사용할 DB를 선택해줍니다.

create table [table이름](id varchar(20), pwd varchar(20), name varchar(20), email varchar(20));

create table명령어를 사용하여 table을 만들고 table의 형식도 지정해줍니다. 

 

 

 

1-4

insert 구문을 사용하여 유저테이블에 계정을 삽입해줍니다.

select구문을 사용하여 삽입된 계정을 확인합니다.

 

 

 

2.mysql 연동 페이지 (회원가입) 만들기

2-1

<%@ page contentType="text/html;charset=utf-8" %>
<HTML>
<HEAD><TITLE>회원 입력</TITLE></HEAD>
<BODY bgcolor=black>
<FORM action="join.jsp" method="post">
<font color=gray>
아이디 : <INPUT type="text" name="id"              maxlength="8"><BR>
암호 :    <INPUT type="password" name="pwd"  maxlength="8"><BR>
이름 :    <INPUT type="text" name="name"         maxlength="12"><BR>
e-mail : <INPUT type="text" name="email"         maxlength="25"><P>
<INPUT type="submit" value=" 저 장 "></font>
</FORM>
</BODY>
</HTML>

 

2-2

input으로부터 넘어온 데이타들을 변수화 후에 데이타베이스로 쿼리문을 보낸다.
그 이후 output.jsp에서 데이터베이스에 추가된 회원들의 정보를 출력한다.

<%@ page contentType="text/html;charset=utf-8" import="java.sql.*" %>
<%
 request.setCharacterEncoding("utf-8");  //Set encoding
 String id  =        request.getParameter("id");
 String name =   request.getParameter("name");
 String pwd =     request.getParameter("pwd");
 String email  =   request.getParameter("email");
//POST로 Input.html로부터 입력받은 내용을 변수화
 try{
  Class.forName("com.mysql.jdbc.Driver");
  String url = "jdbc:mysql://db-3tier.clzl61fz5jqp.ap-northeast-2.rds.amazonaws.com:3306/myDB?useUnicode=true&characterEncoding=utf-8";
  Connection con = DriverManager.getConnection(url,"ty3751","rlaxodyd");
  Statement stat = con.createStatement();
  String query = "INSERT INTO user(id, name, pwd, email)  VALUES('"+id+"','"+name+"','"+pwd+"','"+email+"')";
//INSERT into member(id,name,pwd,email) VALUES ('id','name','pwd','email') 쿼리문
  stat.executeUpdate(query);
  stat.close();
  con.close();
 }
 catch(Exception e){
  out.println( e );
 }
 response.sendRedirect("output.jsp");
%>

 

 

 

 

3. 회원가입 및 DB쿼리확인

2-3
2-4

web에서 회원가입된 정보들이 DB쿼리에 잘 저장되었습니다.

만약에 회원가입을 했는데도 DB에 정보들이 저장이 안되면 tomcat을 껏다가 다시 켜보면 됩니다.

 

 

 

이렇게 3Tier Architecture 실습이 끝났습니다.

처음에는 web과 was의 개념도 잘 몰랐습니다. 그래서 서치도 해보고 많은 글들을 읽어봤지만 이해가 안가서 그런지 금방 까먹었습니다. 프로젝트때도 2티어로 구성을해서 3티어에 대한 이해도가 많이 부족했었습니다.

그래서 이번에 3티어 실습을 진행하게 되었고 많은 오류들이 있었지만 해결하는 과정에서 더 많은걸 얻은 거 같습니다.

RDS, ELB, 처음해써봤던 Tomcat, 각 서브넷간 연동등 각각의 쓰임과 역할에 좀 더 이해하게 되었습니다.

수고하셨습니다. :D