profile image

L o a d i n g . . .

728x90

매번 스프링 부트를 활용해서 새로운 프로젝트를 진행할 때마다 기본 환경 구성이 너무 귀찮았습니다. 그래서 저는 제가 자주 사용하는 기술을 모아서 하나의 템플릿으로 만들어서 사용하고 있는데요, 이 프로젝트를 공유드리고자 합니다. 

https://github.com/seonwoo960000/spring-boot-all-in-one

 

GitHub - seonwoo960000/spring-boot-all-in-one: A spring boot project with default dependencies

A spring boot project with default dependencies . Contribute to seonwoo960000/spring-boot-all-in-one development by creating an account on GitHub.

github.com

해당 프로젝트의 의존성은 다음과 같습니다. 

  • Web layer 
    • spring-boot-starter-web
    • spring-boot-stater-validation: 요청 파라미터 검증
  • Database layer 
    • spring-boot-starter-data-jpa 
    • liquibase-core: 데이터베이스 스키마 버저닝 및 테스트 컨테이너에 스키마 적용
    • mysql-connector-j: MySQL을 위주로 하기 때문에 mysql 의존성을 활용
    • testcontainers: 도커에 MySQL을 띄워서 최대한 운영환경과 비슷한 환경에서 테스트 진행이 가능 
  • Utility 
    • mapstruct
    • lombok
    • commons-io
    • commons-lang3

데이터베이스의 스키마가 변경될 때 Intellij의 다음 기능을 활용하면 편리하게 코드에 변경분을 반영할 수 있습니다. 

  • JPA Buddy
    • 데이터베이스의 스키마를 읽어서 entity를 만들 수 있음 
    • Spring Data Repository 인터페이스의 생성 
    • Entity와 연동할 수 있는 DTO 생성 

JPA Buddy

  • Liquibase에 schema 변경 반영 

generateChangeLog 실행
db.changelog-master.xml에 생성된 changeLog 반영

 

728x90
복사했습니다!