회원 데이터 베이스 구축하기
지난 포스팅에서 로그인 페이지를 디자인하고 실제로 화면에 어떻게 나타나는지까지 살펴보았다. 이제 회원 데이터 베이스를 구축하고 실제 로그인을 할 수 있도록 기능을 만들어볼 것이다. DB 툴로는 가장 대중적인 mysql을 사용했다. mysql을 설치하지 않았다면 https://dev.mysql.com/downloads/mysql/ 이 링크를 통해 다운받을 수 있다.
mysql 설치를 완료했으면 MySQL Command Line Client를 실행해서 명령창을 띄운다. 그리고 CREATE DATABASE BBS
명령문을 통해 BBS라는 DB를 생성한다.
USE BBS;
를 입력해서 해당 DB에 접속할 수 있도록 status를 변경하고 본격적으로 table을 만들어보자.
CREATE TABLE USER (
userID VARCHAR(20),
userPassword VARCHAR(20),
userName VARCHAR(20),
userGender VARCHAR(20),
userEmail VARCHAR(50),
PRIMARY KEY (userID)
);
user라는 이름의 테이블을 만들고 userEmail
을 제외한 각 필드의 길이는 20으로 지정한다. 이때, PK는 userID가 된다. 생성이 되었다면 어떻게 DB가 구성되었는지 desc user;
문으로 내림차순으로 조회 정렬해보자.
테이블이 잘 생성이 되었다.
이제 DB에 실제 데이터를 삽입해보자.
INSERT INTO USER VALUES('gildong', '123456', '홍길동', '남자', 'gildong@naver.com');
로 홍길동이라는 남자 고객의 데이터를 만들고 DB에 insert 한다.
select 문으로 확인해보면 잘 들어가 있음을 알 수 있다. DB를 commit
하면 이제 DB 작업은 끝. 이렇게 만들어진 회원 데이터를 JSP에서 담을 수 있도록 eclipse IDE를 열고 jsp를 다루어보자.
로그인을 하기 위해선 DB에서 가져오는 정보를 jsp 서버에서 담고 처리할 수 있어야하는데 이를 위해서 java Resources 폴더 안에 user
라는 package를 만들어주자. 그리고 그 패키지 안에 User
라는 class를 만든다.
이제 User
class 안에 변수들을 생성해야 하는데 우리가 방금 전 만들었던 DB 필드의 이름과 동일한 이름으로 변수들을 생성해주는게 제일 좋다.
user.java
package user;
public class User {
private String userID;
private String userPassword;
private String userName;
private String userGender;
private String userEmail;
}
위와 같이 DB의 필드명과 일치하게 각 변수를 String으로 선언하고 JSP 서버에서 사용할 수 있는 형태로 만들기 위해 각 변수에 getter, setter 생성자를 만들어준다. 최종 코드는 다음과 같다.
user.java
package user;
public class User {
private String userID;
private String userPassword;
private String userName;
private String userGender;
private String userEmail;
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserGender() {
return userGender;
}
public void setUserGender(String userGender) {
this.userGender = userGender;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
}
자, 이로써 한 명의 회원데이터를 다룰 수 있는 DB와 자바빈즈(JavaBeans)를 구현해보았다. 자바빈즈란 비즈니스 로직 부분만을 담당하는 자바 프로그램 단위로 자바 빈즈를 사용하면 JSP가 복잡한 코드로 구성되는 것을 방지할 수 있다. 쉽고 간단하며 여러 응용 프로그램에서 재사용이 가능하기 때문에 유지보수가 쉽다는 장점이 있다. (MVC 패턴에서 Model이라고 볼 수 있음.)
(사진 출처 : 츄기님의 블로그)