1. SpringBoot 처음 사용할 때 + Lombok 설명
포트번호에 충돌이 생기면?
프로젝트를 반복적으로 실행하면 문제가 생길 수 있다. 이럴 경우에 아래와 같이 메세지가 발생한다.
해결방안 2가지가 있다.
application.properties 에서 server.port 를 변경한다.
window 경우 작업관리자 , osx 경우 ps -ef 에서 실행중인 JAVA 프로그램을 찾아 종료 후 재시작 한다.
STS에서 Tomcat을 따로 설치해야 되나?
설치할 필요가 없다. 기존의 경우 [tomcat]([http://tomcat.apache.org/"tomcat](http://tomcat.apache.org/"tomcat)"\) 사이트에 접속하여 tomcat.zip을 받고 이클립스나 STS에서 Server를 추가해서 실습을 진행했다. 하지만 내장된 Tomcat이 있기때문에 따로 설치는 필요없다.
@RestController 의 역할
JSP, HTML 같은 별도의 View를 제공하지 않고 문자열 데이터를 브라우저에 전송
기본 패키지가 아닌 패키지에 작성한 코드를 스프링에서 사용하고 싶다면?
@ComponentScan 을 사용하면 된다.
Lombok의 장점과 문제점
장점 :
기존의 Getter, Setter , toString 에 대한걸 어노테이션으로 대체가 가능하다.
코드의 간결성
@Data 의 장점 : Getter,Setter, equal(), hashcode(), toString() 등 파라미터없는 기본 생성자까지 자동생성 해준다.
원치 않는 속성을 출력하고 싶지 않을 때 아래와 같이 쓰면 된다.
문제점 :
@Data를 사용할 때 주의해야 됩니다!!
@Data는 장점에서 말한 사항에 대해 묶음으로 제공하는 어노테이션이지만 ORM(Object Relation Mapping)에서 주의해야 됩니다.
ORM은 객체간 관계를 가지는 조합의 형태로, 테이블 간 연관관계를 표현합니다.
이 경우에 부모와 자식의 toString()에서 문제가 발생하는데 상호호출문제로 인하여 무한루프에 빠져 StackOverflow가 발생할 수 있습니다.
Test Case
** 권고사항 : 라인이 길어지더라도 @Data 대신 @Getter @Setter @ToString을 따로 쓰는 이유는 여기에 있습니다.
Last updated