[개인 프로젝트 01일차] 스프링 부트 초기 설정 개발환경 만들기!!+마이바티스+인텔리제이
안녕하세요 jju_developer입니다~
오늘부터 개인 프로젝트를 진행하고자 합니다.
앞으로 프로젝트 진행사항을 틈틈이 기록하여 더욱 발전해 나아가도록 하겠습니다~!
스프링 부트를 시작하기 앞서서 스프링 부트란?
스프링 레거시보다 최소한의 설정으로 production레벨의 스프링 기반 애플리케이션을
개발할 수 있도록 도와주는 스프링 프로젝트입니다~!!
다양한 기능들이 xml이나 JavaConfig 설정을 하지 않아도 자동으로 설정됩니다.
기존에 xml이나 JavaConfig에서 설정해야 했던 복잡한 Configuration 설정을
예약된 프로퍼티 키 값에 설정하는 것만으로 대체할 수 있기 때문에 스프링 부트를 선택하였습니다.
(비교적 접근도가 쉬움!)
database 설정 (단일 database의 경우)
log4j 설정 (로그 설정)
thymeleaf 설정 ( 문서 prefix, suffix 설정 )
필수적으로 설정해야 할 Configuration 설정이 매우 간편해져,
프로젝트 세팅에 들이는 시간을 최소화하며 하고자 하는 개발에 집중할 수 있도록 해줘서
기존의 Spring MVC Project보다 쉽게 웹개발을 할 수 있습니다.
지난번에는 MVC 프로젝트를 진행하였으니,
이번에는 부트에 전념을 해보도록 하겠습니다.
이번 포스팅에서는 Spring Boot로 웹 개발을 하기 전에 미리 세팅해 두면 편리한 몇몇 세팅들에 대해 다룹니다.
Spring Boot 프로젝트 과정은 점차 프로젝트를 진행하면서 계속 수정되며,
빌드도구는 Gradle, IDE는 Eclipse을 사용할 예정입니다.
앞으로 계속 개발 도구는 하면서 차츰차츰 변경하도록 하고 초기 세팅을 진행해 보도록 하겠습니다.
01. 부트를 이용한 쮸플 시작하기
1-1. Spring Initializer에서 설정하기
1-2. 인텔리제이에서 설정한 파일 open 하기
1-3. DB 생성
1-1. Spring Initializer에서 설정하기
스프링 초기 설정은 Spring Initializer에게 맡겨!
1. Project
- 빌드 자동화 도구 선택지
- 요즘 대세는 Gradle이라 함(Groovy기반).
2. Language
- 개발 언어 선택지
3. Spring Boot
- 스프링 부트 버전 선택지
- 뒤에 괄호 붙은 것들은 정식 버전이 아니기 때문에 없는 것 중 가장 최신 버전 쓰자
4. Project Metadata
- 프로젝트 정보 작성
- Package는 war 사용--> jar로 바꿈! 이유는 타임리프에는 jar가 좋기 때문!
- 자바 버전 선택
5. Dependencies
- 제가 선택한 라이브러리는 아래와 같습니다~
war로 만들었다가 타임리프 쓸 거라서 jar파일로 다시 만들었습니다.
-> GENERATE를 눌러줍니다.
1-2. 인텔리제이에서 설정한 파일 open 하기
다운로드 한 zip파일을 원하는 디렉터리에다 풀고 IntelliJ로 build.gradle 파일을 Open 하여 프로젝트를 열어줍니다.
아파치 톰캣 설정은 할 필요가 없습니다.
왜냐면 부트 내부에 톰캣이 내장되어 있기 때문입니다.
이렇게 설정을 다 하고 실행을 하면 당연히 오류가 나겠죠?
그 이유는,
아직 DB를 생성하지 않았기 때문이죠!
여기서 의존성중에서 db랑 연결하는 부분을 주석처리 해줍니다.
그다음에 애플리케이션을 실행할 때에 자동으로 크롬의 localhost:8080으로 이동하도록 설정해 주었습니다.
이렇게 다 설정을 마치고 나서 다시 실행을 해줍니다!!
1-3. DB 생성
이번에는 MySQL을 DBeaver에서 실행하였습니다.
USER : whipping
DB: cream
귀엽죠,,,,ㅎ
유저와 데이터베이스를 생성해 준 후, 테스트 테이블을 만들어보았습니다.
application.properties
server.port=8080
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/cream?characterEncoding=utf8
spring.datasource.username=whipping
spring.datasource.password=cream
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.9'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'org.project'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
이렇게 기초 설정인 spring boot + MySQL + IntelliJ 초기 연결을 마무리하였습니다.
생각보다 에러랑 DB 구축에 3시간 이상을 쏟아서 시간을 많이 잡아먹었습니다..🥲
다음시간에는 Index를 만들도록 하겠습니다.
감사합니다.😄