⌛️ 현재 상황
age 필드를 int 형으로 정의했더니 NumberFormatException 뜨면서 400 오류가 뜸
따라서 age 필드를 int형 👉🏻 String형으로 바꾸고자 하는데 하나하나 바꾸기 너무 귀찮다!
👉🏻 int형을 String 타입으로 바꾸어 주니 setter, getter 모두 바꾸어 줘야 함
👉🏻 하지만 이렇게 하기 귀찮고 빼먹는 거 있을 수도 있으니 코드를 줄여 주는 다른 방법을 쓰자!
✔️ 코드를 자동으로 생성해 주는 라이브러리, Lombok (롬복)
Lombok(롬복)
- 자동 코드 생성 라이브러리, 코드 다이어트 라이브러리
- 필드마다 반복되는 getter, setter, toString 등의 메소드 작성 코드를 생략할 수 있게끔 도와줌
(단, 필드는 정확하게 다 정의해야 함)
* Lombok 설치 방법
1. 라이브러리 jar 파일을 다운로드 후 프로젝트에 적용(Maven pom.xml)
2. 다운로드 된 jar 파일을 찾아서 실행 (작업할 IDE를 선택해서 설치)
3. IDE 재실행
* Lombok 사용 시 주의사항
=> uName, bTitle와 같은 앞글자가 외자인 필드명은 만들지 말 것!
- userId 필드 -> setUserId() / getUserId()
- uId 필드 -> setuName() / getuName()
=> 협업 시 팀원들 중 롬복을 사용하지 못하는 사람이 1명이라도 있다면 롬복 사용 불가함
1️⃣ 필드부만 빼고 생성자, setter/getter/toString 메소드 모두 날리기
2️⃣ Maven Repository 링크 접속
3️⃣ lombok 검색 후 pom.xml <dependencies> 엘리먼트 영역에 붙여넣기
👉🏻 Project Lombok 접속
👉🏻 1.18.24 버전 접속하여 Maven 방식으로 dependency 영역 복사
💻 pom.xml에 붙여 넣기
<!-- 2. Lombok 라이브러리 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
👉🏻 잘 저장해 주고 기다리면 Maven Dependencies에 추가된 것 확인 가능!
4️⃣ 설치 완료로 끝나는 것이 아니라 실행해 줘야 함!
C:\dev\apache-maven-3.8.6\conf\org\projectlombok\lombok\1.18.24
👉🏻 Maven Dependencies에 기재된 링크를 확인하고 파일 탐색기로 직접 접근
👉🏻 실행시키기
이때, 알집이 설치된 경우 클릭으로 실행되지 않을 수도 있음!
4️⃣ - 1️⃣ .jar 파일 강제 실행 시키는 법
1) 명령 프롬프트(cmd) 접속
2) cd 한 칸 띄우고 경로 복사해 붙여넣기
cd C:\dev\apache-maven-3.8.6\conf\org\projectlombok\lombok\1.18.24
👉🏻 엔터 치면 현재 나의 경로가 입력한 경로로 바뀜
3) -실행시킬파일 파일명.확장자
java -jar lombok-1.18.24.jar
👉🏻 잘 열림!
👉🏻 STS.exe는 없어서 Specify location으로 추가해 줌
👉🏻 Install / Update 클릭
4️⃣ - 2️⃣ 잘 설치되었는지 확인하고 싶다면?
👉🏻 sts-bundle/sts-3.9.13.RELEASE 폴더 접속 후 STS.ini를 메모장으로 열어 보면
👉🏻 롬복 설치 완료 확인!
5️⃣ 필드에 어노테이션으로 적용하기
어노테이션명 | 역할 |
@NoArgsConstructor | 기본생성자를 만들어 주는 어노테이션 |
@AllArgsConstructor | 모든 필드를 매개변수로 갖는 생성자를 만들어 주는 어노테이션 |
@Setter | setter 메소드들 |
@Getter | getter 메소드들 |
@ToString | toString 메소드 |
👉🏻 @NoArgsConstructor만 추가한 후 Package Explorer를 확인해 보았더니 추가돼 있음!
👉🏻 어노테이션을 모두 추가하고 나니 자동으로 모두 추가돼 있음!