[Spring] 프로젝트 생성 기초

2024. 11. 13. 15:37·Dev Tool/Spring boot

Spring 프로젝트 생성

spring boot 프로젝트는 보통 다음 사이트에서 생성하는게 일반적이다.  https://start.spring.io/

다음과 같은 값으로 지정하여 프로젝트를 생성하였다. 의존성들은 필요하다고 생각되는 것들은 모두 추가해놓았는데 추후 더 필요하게 되면 추가 가능하니 많이 신경쓰지 않아도 될 듯 하다.

 


주요 라이브러리

스프링 부트 라이브러리

spring-boot-starter-web :  웹 애플리케이션 개발을 위한 필수 라이브러리 모음으로 내장 톰캣 서버와 스프링 mvc 설정이 포함됨

spring-boot-starter-tomcat : 스프링 부트 내장 웹 서버

spring-webmvc : 스프링 웹 MVC를 구성하는 라이브러리

spring-boot-thymeleaf : 타임리프 템플릿 엔진. 서버 사이드 렌더링 기능을 지원

spring-boot-starter-logging : 스프링 부트의 기본 로깅 설정을 위한 라이브러리. logback, slf4j를 사용

테스트 라이브러리

junit :  테스트 프레임워크

mockito : 목 라이브러리

assertj :  테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리

spring-test :  스프링 통합 테스트 지원


생성한 스프링 프로젝트를 인텔리제이에서 열면 위와 같은 구조로 존재함을 확인할 수 있다. 제대로 된 것인지 확인할 겸 간단한 웰컴 페이지를 하나 생성해서 화면을 띄워보았다. 



이 상태에서 바로 실행을 하게 되면 아래와 같은 에러가 발생한다. 이 에러는 Database에 연결하기 위해서 필요한 정보가 존재하지 않기 때문에 발생하는 에러다. application.properties에 연결하고자 하는 디비 정보를 입력하면 된다.

 

프로젝트에 사용할 디비는 팀원이 생성해 둔 MySQL을 사용할 예정이다. 서비스가 사용되면서 발생하는 데이터(회원, 장바구니 등등)은 MySQL에 적재되어 사용될 예정이고, 검색과 조회를 위한 데이터(상품, 로또)는 검색 성능을 위해서 엘라스틱 서치를 사용하기로 하였다. 

spring:
  application:
    name: lotto
  elastic:
    url: ${ELASTIC_URL}
  datasource:
    url: ${DATASOURCE_URL}
    username: ${DATASOURCE_USERNAME}
    password: ${DATASOURCE_PASSWORD}
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: update
    show-sql: true
    properties:
      hibernate.format_sql: true
      dialect: org.hibernate.dialect.MySQL8InnoDBDialect
    defer-datasource-initialization: false

테이블 스키마 설정에 대한 옵션은 다음값들 중에서 골라서 사용하면 된다. 일반적으로 개발환경에서는 update를, 운영환경에서는 validate를 사용한다기에 update로 설정하였다.

  • none : 엔티티가 변경되더라도 데이터베이스를 변경하지 않음
  • update : 엔티티의 변경사항을 데이터베이스에 반영
  • validate : 변경사항이 있는지 검사만 진행. 다른 부분이 있을 경우 애플리케이션을 실행하지 않음
  • create : 서버가 시작될 때 모두 drop하고 새로 생성
  • create-drop : create와 동일하게 진행되며 종료시에 다시 모두 drop함

기본 설정을 마치고 간단한 html을 작성해 spring이 잘 구동하는지 확인해보았다.

저작자표시 (새창열림)

'Dev Tool > Spring boot' 카테고리의 다른 글

[Spring] 로또 API 단위 테스트 코드 작성  (0) 2025.01.23
[Spring] 테스트 코드 기본 개념  (0) 2025.01.22
[Spring] 로또 API 구현(2) & 예외 처리(@validate)  (0) 2025.01.22
[Spring] Swagger 연동  (1) 2025.01.22
[Spring] 엘라스틱 서치 연동 & API 구현  (0) 2025.01.22
'Dev Tool/Spring boot' 카테고리의 다른 글
  • [Spring] 테스트 코드 기본 개념
  • [Spring] 로또 API 구현(2) & 예외 처리(@validate)
  • [Spring] Swagger 연동
  • [Spring] 엘라스틱 서치 연동 & API 구현
70_0ewd
70_0ewd
내가 보려고 적는 나의 공부 기록
  • 70_0ewd
    Seung's Learning Record
    70_0ewd
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • DE (2)
      • Dev Tool (29)
        • Flutter (5)
        • AWS (8)
        • Django (7)
        • Spring boot (9)
      • 프로그래밍 (30)
        • C++ (0)
        • JAVA (6)
        • SQL (13)
        • Python (8)
        • WEB (3)
      • 알고리즘 (26)
      • CS (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    Flutter
    SQL
    공룡책
    웹 스크래핑
    stl
    스택
    C++
    JOIN
    Java
    Python
    자바
    BFS
    백준
    AWS
    DFS
    heap
    백트래킹
    파이썬
    플러터
    django
    데브코스
    delete
    Queue
    깊이 우선 탐색
    큐
    너비 우선 탐색
    DP
    group by
    select
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
70_0ewd
[Spring] 프로젝트 생성 기초
상단으로

티스토리툴바