Backend/SpringBoot

스프링부트 입문 3. 추가 설정들

오솔히 2024. 2. 29. 10:00

 

어쩌다 보니 JPA 위주의 스터디가 되고 있지만
2년 전에 JPA만 해도 신기술 같은 느낌이라
굳이 내가 이거까지 해야 하나 했는데,, (프론트만 할 생각이었다..)
이젠 필수인 거 같다 ^^;
무튼 코딩도 스타일과 변화가 있으니 나도 알아야겠다..
 
오늘도 가보자고

 

 
 


 

1. DB 접속 설정하기(H2)
 

application.properties를 이용하여 db연결을 해주자!
프로젝트 생성할 때 나는 dependencies에 H2 database를 추가하였다.
spring.h2.console.enable=true라는 속성을 추가하여 db 접속을 설정하였다.
 
간단하게 DB까지 연동해서 스터디할 때는 H2가 확실히 편한 거 같다.
DB 확인할 때는 :8080/h2-console url로 확인가능하다.
connect시 오류가 뜨면 jdbc url은 콘손창에 있는 url를 copy 해서 붙여 넣으면 된다.
 
 

2. Lombok

 
.gradle > dependencies에 롬복을 추가하고
plugins>marketplace에 lombok을 설치해 주자.
 
설치 후 dto에 적었던 생성자와 toString()을 지우고
@AllArgsConstructor, @ToString 어노테이션을 추가하자.
 
그리고 또 하나의 롬복의 기능은 로깅!
System.out.println() 대신 로깅을 이용하는 이유를 처음 알았다.
sysout을 이용하면 서버 성능에 안 좋은 영향을 끼친다고 한다..
@Slf4j를 추가하여 log.info()를 사용할 것
 
나는 롬복을 안 좋아했다..
예전 인턴기간동안 했던 프로젝트를 하면서 사용했었는데
롬복을 깔지 않은 사람들과 소스를 공유하면 오류가 나서 추가해야 하고 그런 게 번거롭기도 하고
뭔가 한 땀 한 땀 어노테이션을 달아주는 게 정성스럽고 내 코드라고 생각했었다.
근데 막상 실무를 해보니 내 코드란 없다...
빨리 끝내고 다음 일하기 바쁘다.
롬복이 필요하긴 하다..
 
@Getter / @Setter / @NoArgConstructor(파라미터가 없는 생성자를 생성) / @AllArgConstructor(모든 필드값을 파라미터로 갖는 생성자 생성) / @Data / @ToString 등
주로 데이터클래스에서 사용하는 메소드등을 어노테이션으로 변경가능하다.

여기서 @Data 어노테이션을 추가하면 모든 기능들을 한 번에 다 추가해 준다.
 

 

3. Swagger

 
스웨거란 API의 스펙을 전달할 때 용이한 문서 자동화 라이브러리이다.
pom.xml 등 설정파일에 dependecy를 추가해 주면 된다.
이전 회사에서는 화면단위의 역할 부담을 했어서
프론트와 백앤드 구별 없이 온전한 기능은 혼자 만들기 때문에 사실 API 공유는 필요가 없었다.
풀스택개발이 내 전문성을 떨어트린 건가 싶기도 하고,,
아무튼 @RestController 같은 어노테이션을 이용하면 자동으로 api를 구별해 준다니 참 기똥차다..
 
보통 config라는 클래스를 만들어주어 관리를 해주고
@Congifuration, @Bean 등의 어노테이션을 통해 관리가 가능하다.
개발 시 localhost:port번호/swagger-ui.html 로 접속 가능하다.

 

swagger 쓰다보니 이제 postman은 안쓸거같긴하다.
 


 
일차적으로 화면의 input을 DB까지 갔다가 오는 한 번의 루틴?이 끝났다.
추가 기능 또한 정리해 두었으니 나중에 보기 편하겠지..
오늘은 여기까지..