Spring & Springboot/올인원 스프링 프레임워크

전자 도서관 프로젝트 - 사용자 관련 기능 구현 준비

YJ_ma 2023. 12. 2. 15:51

사용자 관련 기능 구현을 위한 준비

이번에는 관리자가 아닌 도서관을 이용하는 사용자의 회원가입 및 로그인 기능을 구현한다. 사용자의 회원가입 및 로그인 기능은 관리자의 회원가입 및 로그인 기능과 동일하다. 

진행할 실습의 흐름은 다음과 같다.

JSP, CSS, 이미지 파일 복사하기

회원 관련 기능을 구현하기 위한 준비 작업으로 실습에 필요한 JSP파일들을 복사한다.

 

패키지와 클래스 생성하기

사용자 관련 기능 구현에 필요한 패키지와 클래스를 생성해본다.

com.office.library 패키지에서 com.office.library.user와 com.office.library.user.member 패키지와 클래스를 다음과 같이 생성한다.

 

빈 생성

위에서 생성한 클래스들을 스프링 IoC 컨테이너에 빈으로 등록하기 위한 설정을 한다.

 

사용자 홈 컨트롤러

UserHomeController를 스프링 IoC 컨테이너에 빈으로 등록하고 기본 URI 매핑을 위해서 다음과 같이 코딩한다.

package com.office.library.user;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserHomeController {

}

 

회원관리 컨트롤러

UserMemberController를 스프링 IoC 컨테이너에 빈으로 등록하고 기본 URI 매핑을 위해서 다음과 같이 코딩한다.

package com.office.library.user.member;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user/member")
public class UserMemberController {

}

 

회원관리 서비스

UserMemberService를 스프링 IoC 컨테이너에 빈으로 등록하기 위해서 다음과 같이 @Service를 명시한다.

package com.office.library.user.member;

import org.springframework.stereotype.Service;

@Service
public class UserMemberService {

}

 

회원관리 DAO

UserMemberDao를 스프링 IoC 컨테이너에 빈으로 등록하기 위해서 다음과 같이 @Component를 명시한다.

package com.office.library.user.member;

import org.springframework.stereotype.Component;

@Component
public class UserMemberDao {

}

 

사용자 테이블 생성

사용자 정보를 저장한느 tbl_user_member 테이블을 명세서를 참고해서 데이터베이스에 만든다.

사용자 테이블 명세서

 

tbl_user_member 이름으로 사용자 테이블을 생성한다.

CREATE TABLE tbl_user_member(
	u_m_no		INT 	AUTO_INCREMENT, 
	u_m_id		VARCHAR(20) 	NOT NULL, 
	u_m_pw		VARCHAR(100) 	NOT NULL, 
	u_m_name	VARCHAR(20) 	NOT NULL, 
	u_m_gender	CHAR(1) NOT NULL, 
	u_m_mail	VARCHAR(50) 	NOT NULL, 
	u_m_phone	VARCHAR(20) 	NOT NULL, 
	u_m_reg_date 	DATETIME, 
	u_m_mod_date	DATETIME, 
	PRIMARY KEY(u_m_no)
	);

 

tbl_user_member 테이블이 정상적으로 생성됐는지 확인한다.

SELECT * FROM tbl_user_member;

 

VO 작업

UserMemberVo.java 파일을 열어서 다음과 같이 코딩한다.

package com.office.library.user.member;

public class UserMemberVo {

	int u_m_no;
	String u_m_id;
	String u_m_pw;
	String u_m_name;
	String u_m_gender;
	String u_m_mail;
	String u_m_phone;
	String u_m_reg_date;
	String u_m_mod_date;

	public int getU_m_no() {
		return u_m_no;
	}
	public void setU_m_no(int u_m_no) {
		this.u_m_no = u_m_no;
	}
	public String getU_m_id() {
		return u_m_id;
	}
	public void setU_m_id(String u_m_id) {
		this.u_m_id = u_m_id;
	}
	public String getU_m_pw() {
		return u_m_pw;
	}
	public void setU_m_pw(String u_m_pw) {
		this.u_m_pw = u_m_pw;
	}
	public String getU_m_name() {
		return u_m_name;
	}
	public void setU_m_name(String u_m_name) {
		this.u_m_name = u_m_name;
	}
	public String getU_m_gender() {
		return u_m_gender;
	}
	public void setU_m_gender(String u_m_gender) {
		this.u_m_gender = u_m_gender;
	}
	public String getU_m_mail() {
		return u_m_mail;
	}
	public void setU_m_mail(String u_m_mail) {
		this.u_m_mail = u_m_mail;
	}
	public String getU_m_phone() {
		return u_m_phone;
	}
	public void setU_m_phone(String u_m_phone) {
		this.u_m_phone = u_m_phone;
	}
	public String getU_m_reg_date() {
		return u_m_reg_date;
	}
	public void setU_m_reg_date(String u_m_reg_date) {
		this.u_m_reg_date = u_m_reg_date;
	}
	public String getU_m_mod_date() {
		return u_m_mod_date;
	}
	public void setU_m_mod_date(String u_m_mod_date) {
		this.u_m_mod_date = u_m_mod_date;
	}

}

 

롬복이란?

롬복의 개념

UserMemberVo는 주로 멤버 필드와 그에 상응하는 getter와 setter 메서드로 이루어져 있다. getter와 setter 메서드를 선언하는 것은 STS의 'Generate Getters and Setters'를 이용해서 편하게 작업할 수 있는데, 매번 동일한 작업을 해야 하므로 번거롭게 여겨질 수 있다.

매번 멤버 필드에 대한 getter와 setter 메서드를 선언하지 않아도 자동으로 getter와 setter 메서드를 만들어주는 기능을 롬복(lombok)이라 한다.

 

롬복 설치

롬복을 사용하기 위해서는 해당 라이브러리를 다운받고 설치해야 한다.

① 웹 브라우저에서 롬복 다운로드 페이지에 들어가 <Download 1.18.26>을 클릭한다.

 

② [download] 폴더에서 내려받은 lombok.jar를 더블클릭하여 실행한다. <Install/Update>를 클릭해서 롬복을 설치한다. 설치가 완료되면 <Quit Installer>를 클릭한다.

 

③ pom.xml 파일에서 <dependencies>에 롬복의 의존 모듈을 설정한다.

<!-- Lombok -->
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.26</version>
    <scope>provided</scope>
</dependency>

 

롬복을 사용하기 위해 STS를 재시작하고, UserMemberVo.java를 열어서 기존의 setter, getter 메서드를 모두 삭제하고 @Getter와 @Setter를 명시한다.

package com.office.library.user.member;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class UserMemberVo {

	int u_m_no;
	String u_m_id;
	String u_m_pw;
	String u_m_name;
	String u_m_gender;
	String u_m_mail;
	String u_m_phone;
	String u_m_reg_date;
	String u_m_mod_date;

}

 

@Getter와 @Setter가 getter와 setter 메서드를 대신한다. [Window]-[Show View]-[Outline]을 클릭하여 UserMemberVo가 getter, setter 메서드를 가지고 있는지 확인할 수 있다.