오늘부터 프로젝트 진행사항 등을 블로그에 기록합니다.
프로젝트 초기 설정 시작해 보겠습니다.
이 기록 겸 강의는 초보자 기준으로 작성이 되었고, 새로 시작하게 된 코틀린 스프링 유저에게 많은 도움이 될 수 있었다면 좋겠다는 마음으로 시작합니다.
틀린 부분이 있다면 알려주시면 감사하겠습니다.
시작과 앞서 개발 환경은 인텔리제이, DB는 MySQL을 사용합니다.
Spring Initializr
해당 링크를 통해 초기 파일을 만들어 주는데요
- Gradle-Kotlin 프로젝트 선택해 줍니다
- 언어는 코틀린으로 진행하기 때문에 코틀린으로 선택해 줍니다
- Spring Boot의 버전에 경우 오늘 기준 (2024.10.27) SNAPSHOT과 RC1이 아닌 것 중에 가장 상위에 있는 버전을 선택해 줍니다. (가장 상위 버전의 경우 개발 중인 부분이 많아 안정성이 떨어지기 때문에 중간에서 안정적인 버전을 선택합니다.)
- Dependencies의 경우 사용 할 기능들을 추가하는 겁니다. 각각 설명을 대략적으로 진행하면
- MySQL Driver: MySQL을 사용하고 연결하는데 도움을 준다고 볼 수 있습니다. 만약 다른 데이터 베이스를 사용할 경우 원하는 데이터 베이스를 연결하면 됩니다.
- Spring Data JPA: 데이터 베이스를 사용하기 위해 연결하고 그 모든 역할을 한다고 보시면 됩니다. MySQL이 아니더라고 다 사용한다라고 보시면 될 것 같습니다.
- Spring Web: 서버를 구축하고, 그에 맞는 웹을 보여 줄 수 있는 기능이라고 볼 수 있습니다.
원하는 Dependencies를 대략적으로 추가 하였다면 아래 GENETATE를 눌러 파일을 생성하고 압축 파일을 풀어서
IDE(통합 개발 환경. ex: inteliJ IDEA)에서 프로젝트 열기로 여시면 됩니다.
build.gradle.kts 수정사항
build.gradle.kts라는 파일을 보시면 내부에 방금 넣었던 것들이 추가되어 있습니다.
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("com.mysql:mysql-connector-j")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
추후에 개발하면서 필요한 부분은 추가적으로 넣어 줄 예정입니다.
추가적으로 JPA를 사용하기 위해 allOpen, noArg를 추가해 줍니다.
allOpen {
annotation("jakarata.persistence.Entity")
}
noArg{
annotation("jakarta.persistence.Entity")
}
allOpen : plugin.spring에서 Open 해주는 것 외에 추가로 Open 해준다는 내용입니다.
noArg : 매개변수가 없는 생성자를 자동으로 추가해 준다는 내용입니다.
다음은 프로젝트의 성격을 수정하는 부분으로 가보겠습니다.
src > main > recources > application.properties라는 파일을 수정할 건데요.
application.properties을 오른쪽 클릭하셔 리펙터링 > 이름 변경으로 들어가 properties을 지우고 yml로 변경해 줍니다.
차이는 자세하게 모르나 저는 이게 보기 편해서 이렇게 진행합니다
server:
port: 8080
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://{주소:포트번호}/{스키마 이름}?serverTimezone=Asia/Seoul
username: {유저 이름}
password: {패스워드}
jpa:
hibernate:
ddl-auto: create
show-sql: true
properties:
hibernate:
format_sql: true
show_sql: false
highlight_sql: true
open-in-view: true
logging:
pattern:
console: "[%d{HH:mm:ss.SSS}][%-5level][%logger.%method:line%line] - %msg%n"
level:
org:
hibernate:
SQL: debug
type.descriptor.sql: trace
이렇게 수정했습니다.
참고한 코드는 인프런의 김대디님의 강의를 참고하였습니다.
- server : 서버의 기본적인 사항을 수정합니다. 포트번호의 경우 8080을 사용하고 있지만 이미 사용 중이거나, 다른 포트번호를 희망한다면 변경하셔도 무방합니다.
- spring: 스프링에서의 사항을 수정합니다.
- datasource: 데이터베이스에 대한 항목을 추가해 줍니다. 해당 내용은 MySQL을 기준으로 작성되었습니다.
- jpa: 스프링에서 데이터베이스의 연결에 대한 항목입니다. 지금은 개발단계이기 때문에 ddl-auto: create지만 추후에 배포단계에서는 변경해야 할 부분입니다. 이 부분은 추후에 작성해서 올리겠습니다.
- logging: 서버실행 시 로그에 대한 변경 사항을 수정합니다.
이렇게 초반 설정을 마쳤고요. 다음 글부터는 회원가입부터 쭉 필요한 기능을 만들어보겠습니다.
부족한 글 읽어 주셔서 감사합니다.
피드백은 언제든 환영입니다.
'BackEnd > 코틀린 스프링' 카테고리의 다른 글
[Kotlin Spring] 프로젝트 04. JWT를 이용해 로그인 구현하기 01: JWT토큰 생성 (1) | 2024.11.04 |
---|---|
[Kotlin Spring] 프로젝트 Extra00. InteliJ에서 http통신 보내기 (0) | 2024.10.29 |
[Kotlin Spring] 프로젝트 03. 예외 처리 (1) | 2024.10.29 |
[Kotlin Spring] 프로젝트 02. 회원 가입 데이터 값 확인 (0) | 2024.10.28 |
[Kotlin Spring] 프로젝트 01. 회원 가입 만들기 (1) | 2024.10.28 |