![[Spring] 프로젝트 생성 및 환경 세팅](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJLVQQ%2Fbtr0qXu0vNO%2F6u1kFbtKvaeOJb4RTsZMa0%2Fimg.png)
스프링 프로젝트 생성 및 세팅에 대한 정보는 인프런 김영한 님의
'실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발'을 참고하였습니다!
프로젝트 생성
시작에 앞서 프로젝트 생성 시 기본적인 세팅은 다음과 같이 하였습니다.
Lombok: Java 라이브러리로 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다.
Spring Web: Spring MVC를 사용하여 RESTful 웹 애플리케이션을 구축합니다. Apache Tomcat을 기본 내장 컨테이너로 사용합니다
Thymeleaf: 자바 라이브러리로, 웹과 독립 실행 환경 모두를 위한 TEXT, HTML, XML, Javascript, CSS를 생성할 수 있는 템플릿 엔진입니다.
Spring Data JPA: JPA를 추상화시킨 Repository Interface를 제공하여 개발자가 JPA를 더 편하게 사용할 수 있게 하는 모듈입니다.
H2 Database: 자바로 작성된 관계형 데이터 베이스 관리 시스템입니다.
위와 같이 프로젝트 세팅 후, 프로젝트를 생성을 하는 도중 다음과 같은 에러가 발생하였습니다.
원인은 스프링 부트를 3.0.2 버전으로 생성해서였습니다!
스프링 부트는 3.x 버전은 java17부터, 2.x 버전은 java11을 이용해야 한다고 합니다!
build.gradle 파일에서 스프링 부트 버전 변경을 완료하면 다음과 같이 정상적으로 프로젝트가 생성된 것을 확인하실 수 있습니다!
실행 또한 정상적으로 작동합니다.
개발환경 세팅
먼저 application.yml 파일입니다.
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
show_sql: true
format_sql: true
logging:
level:
org.hibernate.SQL: debug
org.hibernate.type: trace
- (ddl-auto: create) : 기존테이블 삭제 후 다시 생성 (DROP + CREATE)
- (show_sql: true) : 하이버네이트가 실행하는 모든 SQL문을 콘솔로 출력
- (format_sql: true) : SQL문을 보기 좋게 출력
- (org.hibernate.SQL: debug) : logger에 SQL문 출력
- (org.hibernate.type: trace) : 쿼리문 로그에 출력되어 있는 파라미터 ?값을 확인 가능
Q. System.out.println()이 아닌 logger를 사용하는 이유는 무엇일까?
A. System.out.println()은 로그가 표준 출력으로 출력되므로 파일로 저장되지 않고 휘발된다.
뿐만 아니라, 문제가 발생한 날짜, 시각, 문제의 수준 등 최소한의 정보도 기록되지 않는다.
logger의 경우, 로그가 저장되기 때문에 후에 문제를 진단하고, 재현하는 게 가능하다. 그뿐만 아니라 문제의 정보들을 참고하여 해결하는 데 도움이 된다.
application.yml은 외부 속성을 설정하는 파일입니다. 이러한 또 다른 파일은 application.properties가 있습니다.
Q. 이 둘의 차이점은 무엇일까?
다음은 application.properties 파일입니다.
spring.datasource.url=jdbc:h2:tcp://localhost/~/jpashop
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
A. application.yml은 계층 구조 형식으로 값을 지정할 수 있고, 가독성이 높다는 장점이 있습니다.
참고자료
프로젝트 생성 단계, build.gradle 오픈시 오류 - 인프런 | 질문 & 답변
build.gradle를 오픈하자마자 다음과 같은 오류가 뜹니다ㅜㅜ 자바는 11버전 설치했고 강의 제일 처음, build.gradle부터 오픈하자마자 저런 오류가 났고 아무것도 안건들었습니다. <오류코드>- 일부만
www.inflearn.com
https://hudi.blog/do-not-use-system-out-println-for-logging/
로깅을 System.out.println() 로 하면 안되는 이유
학습 배경 우테코 레벨3 팀프로젝트 3차 데모데이 요구사항 중 하나는 ‘디버깅할 수 있는 로그 파일 출력’ 이다. 이전까지는 로깅에 대해 전혀 신경쓰지 않고 있었는데, 슬슬 로깅에도 신경써
hudi.blog
https://yeonyeon.tistory.com/245
.properties vs .yml
🤔 서론 나는 설정 파일을 application.properties만 써봤다. 필요하다면 application-prod.properties나 application-dev.properties 등을 추가로 만들었을 뿐 큰 변화가 없었다. 헌데 최근 들어 설정 파일을 yml 타입
yeonyeon.tistory.com
'Spring' 카테고리의 다른 글
[Spring] Cascade옵션 알아보기 (0) | 2023.03.15 |
---|---|
[Spring] Bean Validation 알아보기 (1) | 2023.03.09 |
[Spring] DTO를 사용하는 이유를 알아보자 (0) | 2023.03.04 |
[Spring] 의존성 주입(DI) 알아보기 (0) | 2023.02.28 |
[Spring] JPA 연관관계 매핑 알아보기 (0) | 2023.02.23 |
느리더라도 단단하게 성장하고자 합니다!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!