프로젝트 환경
- WINDOW 10
- STS3
- Oracle 11g
- Apache Tomcat 9.0
- JAVA 1.8
순서
- 이클립스 인코딩 설정 변경
- MVC 프로젝트 생성 및 스프링 버전 변경
- 프로젝트 자바(JDK, 컴파일러) 버전 변경
- 라이브러리 추가 및 변경
1. 이클립스 인코딩 설정 변경
프로젝트 진행 중 '한글' 데이터가 깨지는 것을 방지하기 위해 이클립스(Eclipse)의 기본 인코딩(encoding) 설정을 UTF-8로 변경합니다.
- Workspace
- CSS Files
- HTML Files
- JSP Files
- XML Files
변경 방법
- 상단 내비게이션 바의 Window를 클릭 후 Preferences 클릭합니다.
- 좌측 상단 검색 상자에 enco까지 타자를 쳐주면, 설정 변경해야 할 목록이 뜹니다.
- Workspace에서 Text file encoding 설정을 변경 → other을 체크 후 UTF-8을 선택합니다.
- 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 설치 방법
- 적용할 프로젝트 pom.xml에 lombok 라이브러리 추가합니다.
- 다운로드할 lombok.jar 버전과 동일한 버전 삽입합니다.
- 2022.08 기준 제일 최신 버전은 1.18.24입니다.
- 아래 코드를 추가합니다.
<!-- 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 설치 방법
- lombok 홈페이지에 들어가 lombok.jar 파일 다운로드합니다. - 사이트 : https://projectlombok.org/
- 홈페이지에 들어간 후 상단 내비게이션 바에 Download를 클릭하면 Download 1.18.24 링크가 뜹니다.
- 해당 링크를 클릭하여 다운로드 진행합니다.
1.3 Lombok 설치 방법
- 설치한 lombok 파일 클릭합니다.
- 클릭해도 실행이 안될 시 lombok.jar을 저장한 폴더 주소창에 cmd. 을 클릭하여 cmd창을 실행시킵니다.
- java-jar lombok.jar을 입력 후 Enter을 치면 강제로 실행됩니다.
1.4 Lombok 설치 방법
- 설치를 진행합니다.
- IDEs 창에 자신이 원하는 스프링(eclipse) 경로가 뜨면 바로 Install/Update를 클릭합니다.
- 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 버전으로 변경합니다.
추가 및 변경이 완료되었다면 pom.xml 파일을 저장합니다(Ctrl+s).
'😎 STS3 Spring 쇼핑몰 > STS3 Spring 환경 설정 👀' 카테고리의 다른 글
MVC 프로젝트 생성 및 기본 설정 - 3 (0) | 2022.08.11 |
---|---|
MVC 프로젝트 생성 및 기본 설정 - 2 (0) | 2022.08.11 |
Spring 프로젝트 생성 및 환경 설정 (0) | 2022.08.01 |
STS3 Spring & Maven 설치 (0) | 2022.08.01 |