프로젝트 생성
빌드 그래들 의존성 주입 확인
bulid.gradle에 해당 코드 주석 처리 후, mysql 상에서 db생성
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.10'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2'
//runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') {
useJUnitPlatform()
}
💡 의존성 범위 지정(Dependency Scope) 확인 implementation: 애플리케이션 컴파일 및 런타임 시 필요한 의존성. compileOnly: 컴파일 시에만 필요한 의존성, 런타임 시 포함되지 않음. developmentOnly: 개발 중에만 필요한 의존성, 프로덕션 빌드에는 포함되지 않음. runtimeOnly: 런타임 시에만 필요한 의존성, 컴파일 시에는 필요하지 않음. annotationProcessor: 컴파일 시에 어노테이션 프로세싱에 필요한 의존성. (컴파일 과정 중에 특정 어노테이션을 해석하고, 그에 따라 추가적인 코드를 생성하거나 검증하는 작업) testImplementation: 테스트 코드의 컴파일 및 실행 시 필요한 의존성. testRuntimeOnly: 테스트 실행 시에만 필요한 의존성, 컴파일 시에는 필요하지 않음. |
Application.properties
▼
application.yml로 변경
spring:
application:
name: class_blog_jpa_v1
server:
port: 8080
datasource:
url: jdbc:mysql://localhost:3306/jpa_demo?useSSL=false&serverTimeZone=Asia/Seoul
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: asd123
profiles:
active: dev # prod # 기본 활성화 프로파일을 dev로 설정
application-dev.yml 파일 수정
server:
servlet:
encoding:
charset: utf-8 # 요청 및 응답에 UTF-8 인코딩을 사용하여 한글 및 특수문자가 깨지지 않도록 설정
force: true # 강제로 UTF-8 인코딩을 적용, 클라이언트가 다른 인코딩을 요청하더라도 무시하고 UTF-8을 사용
port: 8080 # 서버가 8080 포트에서 실행되도록 설정
spring:
mustache:
servlet:
expose-session-attributes: true # Mustache 템플릿에서 세션 속성에 접근할 수 있도록 허용
expose-request-attributes: true # Mustache 템플릿에서 요청 속성에 접근할 수 있도록 허용
datasource:
driver-class-name: org.h2.Driver # 데이터베이스 드라이버로 H2 DB를 사용
url: jdbc:h2:mem:test;MODE=MySQL # H2 인메모리 데이터베이스를 MySQL 호환 모드로 사용 (테스트용)
username: sa # 데이터베이스 연결 시 기본 사용자 이름
password: # 데이터베이스 기본 비밀번호 (비어 있음)
h2:
console:
enabled: true # H2 데이터베이스 콘솔을 활성화하여 브라우저에서 데이터베이스를 관리할 수 있도록 함
#sql:
#init:
#data-locations:
#- classpath:db/data.sql # 애플리케이션 초기화 시 실행할 데이터 삽입 SQL 파일의 경로 (data.sql)
jpa:
hibernate:
ddl-auto: create # 애플리케이션이 시작될 때 데이터베이스 테이블을 자동으로 생성
show-sql: true # Hibernate가 실행하는 SQL 쿼리를 콘솔에 출력
properties:
hibernate:
format_sql: true # 출력되는 SQL 쿼리를 포맷팅하여 읽기 쉽게 출력
defer-datasource-initialization: true # 데이터베이스 초기화가 지연되도록 설정하여 JPA 설정 후에 데이터 초기화
output:
ansi:
enabled: always # 콘솔 출력 시 ANSI 색상을 항상 사용하도록 설정 (색상을 통해 로그를 더 쉽게 구분 가능)
logging:
level:
'[com.example.class_blog_jpa_v1]': DEBUG # 특정 패키지(com.tenco.blog_jpa_step1) 수준에서 DEBUG 레벨로 로깅을 설정
h2로 확인
'JPA > JPA 사용해보기 (Blog 만들기)' 카테고리의 다른 글
서비스, 컨트롤러 만들어 보기 - 4 (0) | 2024.10.04 |
---|---|
레포지토리 만들기 - 3 (1) | 2024.10.02 |
블로그 엔티티 만들기 - 2 (0) | 2024.10.02 |
빌드 시스템 (0) | 2024.10.02 |
Rest API (0) | 2024.10.02 |