Published on

Spring Boot 입문하기

Authors

이직을 위해서 수많은 회사들의 잡 디스크립션을 읽어보다 보니 조금 큰 회사의 서버는 거의 대부분이 'Spring Framework 경험자'가 우대사항이었습니다. 군생활 때 잠시 다루고 잊었던 Spring을 결국 이렇게 다시 만나다니.. 흑. 스프링의 큰 개념인 AOP, DI 등을 보기에는 면접이 하루이틀 하는 상황이라서 재빠르게 게시판 정도 만들어보자! 라는 마음으로 시작했습니다.

여러 튜토리얼이 있는데, 시간이 조금 지났지만 유명하신 jojoldu 님의 튜토리얼을 보고 진행해 보았습니다. 스프링 부트를 쓰는 것을 넘어서 실제로 서비스를 배포해볼 수 있는 튜토리얼입니다. 따라 하다가 막히던 부분을 정리해 보았습니다.

IDE는 STS를 사용하다가 튜토리얼을 따라하는 중간에 Visual Studio Code로 갈아탔습니다(..) 감안하시구 읽어주세요.

Lombok 사용 에러

STS에서 Enable Annotation build 가 체크 안되어있을 때 나는 에러입니다. 이곳을 참조하였습니다.

에러 : access = AccessLevel.PROTECTED 에 빨간줄

import lombok.AccessLevel; 함.

java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter

JUnit이 없다는 에러입니다. 환경설정에서 라이브러리를 추가하면 됩니다.

Properties - Libraries - add Library - JUnit

http://localhost:8080/h2-console 접속했을 때 문제

Jdbc url을 기본 url 에서 jdbc:h2:mem:testdb 으로 바꿔주어야 한다.

LocalDate 사용 에서 Dependency 설정 변경하지 않은 문제

스프링 2부터는 기본적으로 Spring boot 2.0은 Hibernate 5.2.16을 지원하고 있으며 (현재 이글을 쓰고 있을 때 최신버전은 Spring boot 2.0.1) Hibernate 5.2은 JPA2.1을 디펜더시 받고 있으며 2.1을 지원하고 있다. 그렇지만 Hibernate 5.2는 JPA2.2 도 일부 지원하고 있다. JPA2.2 에서는 JSR-310 스펙인 Date and Time API를 지원한다고 합니다.

Test code를 test 폴더가 아니고 main 폴더에 만들어서 계속 에러가 났다.

Test code는 꼭 test 폴더에 만듭시다.

BaseEntity 개념

Rails에서는 ActiveRecord를 상속받기만 하면 되는데 스프링은 내가 필요한 BaseEntity를 만들어서 상속해야 합니다.