[Java] STS Lombok 설치 및 설정(Spring Tools Suite 4)

cielo ru·2024년 8월 9일
0

Spring

목록 보기
7/9
post-thumbnail

➰ STS(SpringSource Tool Suite)란?

Eclipse 는 써봤는데 STS이라는 걸 알게되었다. STS란 뭘까?

SpringSource Tool Suite는 Eclipse 에 Spring F/W plugin 이 자동으로 추가된 IDE이다.
이클립스 확장판, 스프링에 특화된 이클립스라고 생각하면 된다.

찾아보니 spring.io 사이트에 접속해서 Projects> Development Tools > Spring Tools 4가 있었다.

📍 스프링 공식 사이트

https://spring.io/

➰ STS 장단점

장점

  • 이클립스에 기본으로 포함안된 플러그인이 미리 세팅되어 있어서 편하다.

  • 톰캣을 깔지 않아도 신규프로젝트를 생성하면 개발자용 톰캣 서버를 자동으로 생성해준다.
    (하지만 필자는 톰캣 서버를 추가로 설치하여 사용하였다.)

  • 별도로 설정하는 것 없이 프로젝트를 바로 만들어서 개발할 수 있다.

단점

  • 필요없는 플러그인까지 다운받기 때문에 순정 이클립스에 비해 다소 무섭다.

  • 스프링 관련 프로젝트가 아닌 경우, 설정이 복잡할 수 있다. 이클립스는 범용 IDE로 스프링 관련 프로젝트가 아닌 경우에 설정이 STS 보다 덜 복잡하다.

  • STS는 주로 스프링 개발에 특화되어 있어 스프링 이외의 다른 언어나 프레임워크에 대한 지원이 이클립스에 비해 제한적이다.


➰ 인텔리제이를 사용하면 되는 굳이 STS를 써야하는가?

맞는 말이다. 필자도 이클립스를 쓰다가 인텔리제이로 금방 갈아탄 사람으로써 편리한 인텔리제이를 두고 왜 STS나 이클립스 같은 걸 써야하는가에 대한 의문이 많았다.

우선 인텔리제이보다 STS가 스프링에 더 특화되어 있기 때문에 더 많은 기능을 지원한다.

그리고 이게 제일 큰 이유 같은데 바로 '비용'이다.

인텔리제이는 유료이고, STS나 이클립스는 무료이다. 인텔리제이가 이클립스보다 조작이나 단축키, 플러그인 등 더 편리하다는 장점이 있어 인텔리제이가 더 뛰어나다는 생각이 들겠지만 이클립스는 인텔리제이에서 제공하는 거의 모든 기능을 지원한다. 그렇기 때문에 회사에서는 유료인 인텔리제이보다 STS나 이클립스 사용을 더 많이 한다.
(인텔리제이는 학생에게 무료로 제공하기 때문에 이 차이를 못느꼈다. 막상 돈을 내고 사용하려니 필자라도 이클립스나 STS를 사용할 것 같다.)

그래서 그동안 인텔리제이를 사용해왔더라도 STS나 이클립스에서도 스프링을 다룰 줄 알아야 한다.

➰ STS에 Lombok 설치

IntelliJ vs STS 롬복 적용 방법 차이
IntelliJ의 경우 IntelliJ내에서 Plugins를 선택하고, 마켓플레이스에서 Lombok을 검색하여 설치할 수 있어 간단하다. 하지만 STS와 이클립스의 경우 Lombok JAR 파일을 다운로드하여 실행한 후, STS에 Lombok을 설치해줘야 한다.

그러면 STS에 롬복을 설치하여 적용해보자.

  1. 롬복 다운로드 사이트에 접속해 롬복을 다운로드한다. (Lombok Download)

    https://projectlombok.org/download

** lombok.jar 파일을 다운로드 한다.

  1. 롬복이 설치된 경로에서 Shift + 마우스 우클릭 을 하여 powerShell을 열어준다.

  2. PowerShell 접속 후 lombok.jar 파일을 실행시킨다.

java -jar .\lombok.jar

  1. lombok Installer 가 실행되면 Specify location을 클릭하여 STS 설치 경로의 IDE 실행 파일을 선택한다.
    (SpringToolSuite4.exe)

  2. install/update 를 해주고 exit 한다.

  3. STS에 롬복을 적용하기 위해 pom.xml 에 아래의 lombok 의존성을 추가한다.

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.34</version>
		<scope>provided</scope>
	</dependency>
</dependencies>
  1. pom.xml 파일을 저장하여 Maven Dependencies 에 lombok이 추가되었는지 확인한다.

  2. Lombok을 적용할 코드를 작성하고, 애노테이션을 추가한 후 import를 해준다.

  1. Getter, Setter가 모두 만들어졌다면 sts에 롬복이 성공적으로 적용된 것이다.

📍 Trouble Shooting #1

설치 중 문제상황

롬복을 성공적으로 임포트 했지만 오른쪽에 getXxx, SetXxx가 뜨지 않았다.

원인

getXxx, SetXxx가 뜨지 않는다면 경로 문제(maven repository 경로) 혹은 라이브러리 문제일 수 있다.

해결방법
사용자 경로에 접속하여 .m2 파일을 지웠다가 다시 롬복 dependency를 추가하여 재실행한다.

  • 삭제하고 sts 재구동하면 m2 파일이 재생성된다.

➰ 자주 쓰는 Lombok 애노테이션 정리

@Gettercode가 컴파일 될 때 getter 메서드들을 생성한다.- 속성 @Getter(lazy = true) 사용시 최초 한번만 Getter 호출. 이후 캐시된 값을 사용
@Settercode가 컴파일 될 때 setter 메서드들을 생성한다.
@ToStringtoString() 메서드를 생성한다.
@Data@Getter(모든속성), @Setter(final이 붙지 않은), @ToString, @EqualsAndHashCode, @RequiredArgsConstructor위의 어노테이션들을 합쳐둔 어노테이션이다.
@NoArgsConstructor파라미터(매개변수)가 없는 생성자를 생성한다.
@RequiredArgsConstructorfinal, @NonNull이 있는 필드를 포함하여 생성자를 생성한다.
@AllArgsConstructor모든 필드를 파라미터(매개변수)로 갖는 생성자를 생성한다.
@Log4j, @Slf4JLog4J(Slf4J) 설정을 이용하여 로그 기능 사용할 수있다.마찬가지로 log 변수를 통해 사용 한다.

➰ 참고

profile
Cloud Engineer & BackEnd Developer

0개의 댓글