😎 STS3 Spring 쇼핑몰/STS3 Spring 환경 설정 👀

MVC 프로젝트 생성 및 기본 설정 - 1

개발자 린다씨 2022. 8. 11. 15:26
반응형

프로젝트 환경

  • WINDOW 10
  • STS3
  • Oracle 11g
  • Apache Tomcat 9.0
  • JAVA 1.8

순서

  1. 이클립스 인코딩 설정 변경
  2. MVC 프로젝트 생성 및 스프링 버전 변경
  3. 프로젝트 자바(JDK, 컴파일러) 버전 변경
  4. 라이브러리 추가 및 변경

1. 이클립스 인코딩 설정 변경

프로젝트 진행 중 '한글' 데이터가 깨지는 것을 방지하기 위해 이클립스(Eclipse)의 기본 인코딩(encoding) 설정을 UTF-8로 변경합니다.

- Workspace
- CSS Files
- HTML Files
- JSP Files
- XML Files

변경 방법

  1. 상단 내비게이션 바의 Window를 클릭 후 Preferences 클릭합니다.
  2. 좌측 상단 검색 상자에 enco까지 타자를 쳐주면, 설정 변경해야 할 목록이 뜹니다.
  3. Workspace에서 Text file encoding 설정을 변경 → other을 체크 후 UTF-8을 선택합니다.
  4.  CSS Files, HTML Files, JSP Files, XML Files 설정에서 Encoding을 ISO 10646/Unicode(UTF-8)으로 변경합니다.

2. MVC 프로젝트 생성 및 스프링 버전 변경

상단 네비게이션 바에서 [File] → [New] → Spring Legacy Project 선택 후 Project name 입력란에 자신이 원하는 프로젝트 명을 입력합니다.

Templates 목록 중 Spring MVC Project를 선택한 후 Next > 클릭합니다.

입력란에 com. '프로젝트 명 or 원하는 이름'. controller을 입력한 후 [Finish] 클릭합니다.

프로젝트가 생성된 것을 확인합니다.

새로 생성한 프로젝트를 연 후 pom.xml 파일을 엽니다.

<org.springframework-version> 태그에 입력된 기존 3.1.1 버전을 자신이 원하는 버전으로 변경 후 저장합니다(Ctrl + S).

Maven Dependencies 폴더를 열어서 스프링 버전이 변경되었는지 확인합니다.

3. 프로젝트 자바(JDK, 컴파일러) 버전 변경

프로젝트 선택 → 마우스 오른쪽 클릭 → Properties 클릭

좌측 상단 검색 상자에 Project Facets를 검색하여 해당 창으로 들어간 후 Dynamic Web Module 버전을 4.0으로 Java 버전을 1.8로 변경합니다.

좌측 상단 검색 상자에 Java Compiler를 검색하여 해당 설정 창에 들어갑니다.

Use compilance from execution... 체크박스를 해제한 후 컴파일 버전을 1.8로 선택합니다.

모든 설정이 완료되었다면 Apply and Close를 클릭하여 설정을 저장 및 적용합니다.

프로젝트의 pom.xml 파일을 띄운 후 <java-version> 태그의 버전을 자신이 설치한 JAVA 버전으로 변경합니다.

 maven-compiler-plugin의 <version> 태그의 버전을 위에서 설정한 3.5.1로 변경하고 아래 있는 <source>, <target> 태그의 버전을 1.8로 변경합니다.

수정이 완료되었으면 pom.xml 파일의 수정 사항을 저장합니다(Ctrl+s). JRE System Library 폴더를 통해 프로젝트의 JAVA 버전이 변경됨을 확인합니다.

4. 라이브러리 추가 및 변경

Lombok 라이브러리 추가

Lombok 이란?

웹 어플리케이션에서 사용하는 VO, DTO객체는 DB의 테이블 칼럼(column)과 같은 이름의 private 변수를 가지며, 기본 생성자 및  getter/setter 메서드를 정의한 후 toString 메서드를 정의합니다. 

 

아래는 회원 정보에 대한 VO(MemberVO) 예입니다.

package com.swan.model;
import java.sql.Date;

public class MemberVO {
	private String id; // 회원 아이디
	private String pwd; // 회원 비밀번호
	private String name; // 회원 이름
	private String phone; // 회원 전화번호
	private String email; // 회원 이메일
	private String gender; // 회원 성별
	private String address; // 회원 주소
	private String address2; // 회원 상세주소
	private Date joindate; // 등록일자
	private String member_status; // 회원 상태
	private int admin_ck; // 관리자 구분(0: 일반 사용자, 1: 관리자)

	public MemberVO() {}

	public MemberVO(String id, String pwd, String name, String phone, String email, String gender, String address,
			String address2, Date joindate, String member_status, int admin_ck) {
		super();
		this.id = id;
		this.pwd = pwd;
		this.name = name;
		this.phone = phone;
		this.email = email;
		this.gender = gender;
		this.address = address;
		this.address2 = address2;
		this.joindate = joindate;
		this.member_status = member_status;
		this.admin_ck = admin_ck;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getAddress2() {
		return address2;
	}

	public void setAddress2(String address2) {
		this.address2 = address2;
	}

	public Date getJoindate() {
		return joindate;
	}

	public void setJoindate(Date joindate) {
		this.joindate = joindate;
	}

	public String getMember_status() {
		return member_status;
	}

	public void setMember_status(String member_status) {
		this.member_status = member_status;
	}

	public int getAdmin_ck() {
		return admin_ck;
	}

	public void setAdmin_ck(int admin_ck) {
		this.admin_ck = admin_ck;
	}

	@Override
	public String toString() {
		return "MemberVO [id=" + id + ", pwd=" + pwd + ", name=" + name + ", phone=" + phone + ", email=" + email
				+ ", gender=" + gender + ", address=" + address + ", address2=" + address2 + ", joindate=" + joindate
				+ ", member_status=" + member_status + ", admin_ck=" + admin_ck + "]";
	}
}

프로젝트 초기 규모가 작을 시엔 문제가 없지만, 프로젝트 규모가 커질수록 수많은 VO, 변수,  메서드가 생겨날 것이고 일일이 private 변수, getter/setter/toString 메서드를 정의하는 것은 매우 번거롭고 관리가 힘들어져 결국은 유지보수 비용이 커질 것입니다.

 

Lombok 라이브러리는 이와 같은 getter/setter/toString 메서드를 @Data 어노테이션 추가를 통해 자동으로 생성해줌으로써 수고스러움과 그에 따른 문제들을 경감시킵니다.

 

다음은 Lombok을 사용했을 경우 회원 정보에 대한 VO(MemberVO)입니다.

package com.swan.model;

import java.sql.Date;

@Data
public class MemberVO {
	private String id; // 회원 아이디
	private String pwd; // 회원 비밀번호
	private String name; // 회원 이름
	private String phone; // 회원 전화번호
	private String email; // 회원 이메일
	private String gender; // 회원 성별
	private String address; // 회원 주소
	private String address2; // 회원 상세주소
	private Date joindate; // 등록일자
	private String member_status; // 회원 상태
	private int admin_ck; // 관리자 구분(0: 일반 사용자, 1: 관리자)

	public MemberVO() {} // 기본 생성자	
}

1.1 Lombok 설치 방법

  1. 적용할 프로젝트 pom.xml에 lombok 라이브러리 추가합니다.
  2. 다운로드할 lombok.jar 버전과 동일한 버전 삽입합니다.
  3. 2022.08 기준 제일 최신 버전은 1.18.24입니다.
  4. 아래 코드를 추가합니다.
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.24</version>
	<scope>provided</scope>
</dependency>

1.2 Lombok 설치 방법

  1. lombok 홈페이지에 들어가 lombok.jar 파일 다운로드합니다. - 사이트 : https://projectlombok.org/
  2. 홈페이지에 들어간 후 상단 내비게이션 바에 Download를 클릭하면 Download 1.18.24 링크가 뜹니다.
  3. 해당 링크를 클릭하여 다운로드 진행합니다.
 

Project Lombok

 

projectlombok.org

1.3 Lombok 설치 방법

  1. 설치한 lombok 파일 클릭합니다.
  2. 클릭해도 실행이 안될 시 lombok.jar을 저장한 폴더 주소창에 cmd. 을 클릭하여 cmd창을 실행시킵니다.
  3. java-jar lombok.jar을 입력 후 Enter을 치면 강제로 실행됩니다.

1.4 Lombok 설치 방법

  1. 설치를 진행합니다.
  2. IDEs 창에 자신이 원하는 스프링(eclipse) 경로가 뜨면 바로 Install/Update를 클릭합니다.
  3. IDEs 창에 아무것도 안 떠 있거나 원하는 스프링(eclipes)이 아닐 시엔 Specify location... 을 클릭하여 자신이 원하는 스프링(eclipes)이 있는 폴더에. exe 파일을 선택하여 지정한 후 Install/Update 클릭합니다.

설치 완료 후 스프링(eclipse)을 재시작해주면 설치 및 적용이 완료됩니다.

spring-test, log4 j 라이브러리 추가, Junit 라이브러리 버전 변경

이후 spring-test, log4j 라이브러리를 추가하고 Junit 라이브러리 버전을 변경합니다.

 

각 라이브러리의 역할은 아래와 같습니다.

  • log4 j: 로그 문의 출력을 다양한 대상으로 할 수 있도록 도와주는 도구
  • spring-test: @RunWith/@ContextConfiguration 등의 어노테이션을 활용하여 Spring Framework에서 조금 더 편하게 테스트를 지원할 수 있게 합니다.
  • Junit: JAVA에서 독립된 단위 테스트를 지원해주는 프레임워크

pom.xml에 있는 log4 j 라이브러리 코드를 제거 혹은 주석 처리

log4 j, spring-test 라이브러리 코드 추가(원하는 버전) 및 Junit 라이브러리 버전 변경

spring-test의 경우 spring 버전과 동일하게 하기 위해 ${org.springframework-version}을 입력합니다.

<!-- log4j 추가 -->
 <!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
 
 
<!-- spring-test 추가 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
    <scope>test</scope>
</dependency>

Junit 라이브러리 경우 기존 4.7 버전에서 4.12 버전으로 변경합니다.

Junit 라이브러리 변경 전
Junit 라이브러리 변경 후

추가 및 변경이 완료되었다면 pom.xml 파일을 저장합니다(Ctrl+s).

반응형