Skip to content

스프링 프로젝트 생성기록

Heyz edited this page Mar 18, 2023 · 4 revisions

🍃 Spring Starter

🙋 Spring Project Start with intelliJ
intelliJ Ultimate 기준으로 작성
스프링부트 3.0.3 최신 lts로 도전했더니 참고할 만한 레퍼런스가 아직 많지 않아 좀 힘들다...😭

✔️ 프로젝트 생성

  • intelliJ > new Project > Spring Initializr 선택 및 project metadata 설정
    springNewProject
  • initial dependencies 세팅
    initialDependencies

✔️ 의존성 추가

  • 초기 세팅한 의존성 목록

    • Spring Web❓ 스프링 프로젝트가 웹서버로서 작동할 수 있게함(임베디드 톰캣)
    • Spring Security❓ 애플리케이션의 보안(인증과 권한, 인가 등)을 담당.
    • Lombok❓ getter/setter, constructor와 같은 보일러플레이트 코드 줄여주는 디펜던시.
    • Spring Configuration Processor❓ @ConfigurationProperties를 사용하기 위한 의존성으로 applicaiton.yml 파일의 값을 읽어와 멤버변수에 자동 할당.
    • Spring Data JPA❓ 자바 ORM 표준 JPA
    • queryDsl❓ com.querydsl:querydsl-jpa:5.0.0:jakarta**(springboot3.0/hibernate6.0이상의 환경에서는 javax -> jakarta로 네임스페이스 변경됨)**
    • mySql❓ com.mysql:mysql-connector-j**(springboot3.0이상 버전)**
    • swagger❓ API 문서작성 springdoc-openapi-starter-webmvc-ui**(springboot3.0.x 이상에서 사용할 수 있는 의존성임!)**
    • jwt❓ jjwt from okta 사용
    • test❓ junit
  • 논의대상 의존성 목록

    • lucy-xss-servlet❓ 보안관련. 참고링크
    • org.apache.commons
  • 추후 추가할만한 의존성 목록

    • Spring DevTools❓ 개발 편의성 높임. 참고링크
    • Spring Cloud❓ MSA 구성시에 필요. 참고링크
    • Spring Redis❓ 캐쉬 구성.
    • Spring Boot Actuator❓ 프로젝트 모니터링. 참고링크

✔️ build.gradle 구성시 주의

  • gradle7에서 compile은 deprecated 됨, implementation로 대체.
    • compile 은 연결된 API 가 모두 프로젝트에 의해 노출이되고, implementation 은 노출되지 않음.
    • 참고링크
  • Gradle 버전에 맞는 각 의존성 버전은 공식문서에서 확인 가능.
    • 공식문서
    • reference docs > dependency version에서 확인!
  • acoe 프로젝트의 build.gradle 문서에 주석 설명 참고! build.gradle
  • maven repository에서 검색

✔️ GitIgnore 구성

  • intelliJ 플러그인 gitIgnore로 구성 > 기본 탬플릿 gitIgnore

✔️ Application.yml

  • YAML 파일 환경별로 profile 분리함. 참고링크1, 참고링크2
  • application.yml, application-local.yml, application-dev.yml
  • applicationProfile

✔️ branch 분리

  • git flow 전략 사용하여 dev분리