본문 바로가기
💻 뚝딱뚝딱/북북클럽

[개발일지#000] 프로젝트 생성 (요구사항 분석, 프로젝트 생성, MySQL 연결, 개발 편의 설정 등)

by 뚜루리 2025. 1. 3.
728x90
320x100

[사용기술]

Java, Spring Boot, Spring JPA, MySQL

 

[만들려는 것]

책을 위한 SNS.

 

[오늘 하려는 것]

스프링 프로젝트를 생성하고 MySQL 연결하기
개발에 편리한 설정 추가하기 (application.properties, build.gradle)

 


0. 간단 요구사항 분석

[회원]

  • 회원 가입
  • 회원 수정
  • 회원 조회

[타임라인]

  • 게시글 작성
  • 게시글 수정
  • 게시글 삭제
  • 타임라인 조회
  • 덧글 기능
  • 좋아요 기능
  • 팔로우 기능
  • 팔로잉 기능

1. 스프링 스타더 사이트를 이용하여 프로젝트 생성하기

  • 스프링에서 제공하는 스프링스타터(https://start.spring.io/) 를 이용해 프로젝트를 생성해 준다.
  • [Dependencies]로는 Spring Web, Spring Data JPA, Lombok, MySQL Driver, Thymeleaf 총 5가지를 선택해 넣어주었다.
  • ※ 스프링스타터를 통해서 프로젝트를 생성하고 생성된 프로젝트를 인텔리제이에 빌드하는 방법은 아래의 포스팅을 참고하면 됨.

 

 

스프링스타터를 통해서 프로젝트를 생성하고 생성된 프로젝트를 인텔리제이에 빌드하는 방법

 

[인텔리제이/스프링] 스프링스타터로 스프링 프로젝트 생성하기

스프링 프로젝트를 만들 때 스프링스타터 사이트를 이용하면 간편하게 만들 수 있음. 1. 스프링 스타터 사이트 접속 https://start.spring.io/ 2. 아래와 같은 화면이 있을 텐데 만들 프로젝트의 설정을

ddururiiiiiii.tistory.com

 

 

(+) 프로젝트가  잘 돌아가는지 Run을 했는데 아래와 같은 에러가 뜸. 

간단히 설명하면 MySQL에 관련된 설정을 안해놔서 그렇다!

평소에 공부할 때는 H2 데이터베이스를 사용했는데 한 번에 빌드가 잘 되었는데 MySQL은 따로 별도의 설정을 먼저 해줘야 하는 것 같다.

(영한님이 H2데이터베이스는 내장데이터 베이스를 사용해서 여러모로 편하다고 말할 때는 뭐가 편한지 몰랐는데 이런 점을 말하신 듯)

 

※ 스프링부트(JPA)에 MySQL을 설정하는 방법에 대해서는 아래의 포스팅에 따로 작성해두었다.

https://ddururiiiiiii.tistory.com/563

 

[스프링(Spirng)] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be confi

[문제발생]스프링스타터를 이용하여 프로젝드를 생성해서 첫 Run을 했더니 아래와 같은 에러메세지가 떴다.***************************APPLICATION FAILED TO START***************************Description:Failed to configure a

ddururiiiiiii.tistory.com

 


3. Lombok 설정 켜기

Lombok을 디펜던시에 추가했지만, 추가적으로 설정이 필요함. 

[Settings] - [Annotation Processors] - [Enable annoatation processing] 체크!

 


4. application.properties 추가 설정

데이터베이스 설정 외에 개발에 편리한 추가적인 설정을 해준다.

spring.jpa.properties.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.format_sql=true
#spring.jpa.properties.hibernate.show-sql=true
logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.orm.jdbc.bind= trace

 

[각 설정에 대한 설명]

  1. spring.jpa.properties.hibernate.ddl-auto=create
    • 애플리케이션 시작 시 데이터베이스 스키마를 자동으로 생성하거나 업데이트
    • 값의 종류:
      • none: 스키마 자동 생성 비활성화
      • validate: 스키마가 엔티티와 일치하는지 검증
      • update: 기존 스키마를 업데이트
      • create: 기존 스키마를 삭제하고 새로 생성
      • create-drop: 종료 시 스키마 삭제
  2. spring.jpa.properties.hibernate.format_sql=true
    • SQL 쿼리를 보기 쉽게 포맷팅하여 출력 -> 실행되는 SQL이 가독성 있게 정렬
  3. logging.level.org.hibernate.SQL=debug
    • Hibernate에서 생성되고 실행되는 SQL 쿼리를 로그에 출력 -> SQL 쿼리 확인 가능. show-sql과 비슷하지만, 로그 파일에도 저장될 수 있음.
  4. logging.level.org.hibernate.orm.jdbc.bind=trace
    • SQL 쿼리에 바인딩되는 파라미터 값을 로그에 출력 -> 쿼리에서 실제 값이 어떤 형태로 바인딩되는지 확인할 수 있음.
    • SELECT * FROM users WHERE name = ? 대신 SELECT * FROM users WHERE name = 'John'처럼 값이 표시

 


 

5. 외부 라이브러리 추가 (build.gradle)

개발의 편리성을 위해 쿼리 파라미터를 로그로 남기는 외부라이브러리를 추가한다.

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'

※ 시스템 자원을 사용하므로, 개발 단계에서는 편하게 사용해지만 운영시스템에 적용하려면 성능테스트를 하고 사용해야 한다.

728x90
320x100