Spring Boot 프로젝트를 처음 시작할 때 진행하는 단계를 정리해보았다.
Spring Boot 프로젝트 생성 -> DB 연결 -> Git repository 연결 순으로 진행한다.
IntelliJ, Java, MySQL는 설치되어 있다는 가정 하에 포스팅한다.
🍃 Spring Boot 프로젝트 생성
spring initializr
스프링부트를 기반으로 프로젝트를 생성해주는 사이트로 프로젝트를 다운하여 쉽게 사용이 가능하도록 만든 사이트이다.
위와 같이 프로젝트의 버전, 라이브러리, 언어 등을 선택하여 간편하게 생성할 수 있다.
https://start.spring.io/
Project : Spring Boot를 빌드하고 배포하는 방식
Maven, Gradle 2가지 중에 선택하면 된다.
스크립트 가독성이 좋고 빌드 테스트 속도가 더 빠른 Gradle을 사용하는 추세이다.
프로젝트 규모가 작을 수록 꼭 Gradle을 사용하지 않아도 되고 Maven을 사용해도 무방하다.
자세한 차이는 추후 포스팅을 진행하겠다.
Gradle vs Maven 차이 : (추후 포스팅)
Language : 개발 언어
Java, Kotlin, Groovy 중 주로 Java를 일반적으로 사용하고 요즘은 Kotlin도 자주 이용한다고 한다.
개발할 때 사용하길 원하는 언어를 선택하면 된다.
Spring Boot : 버전
괄호 없이 버전 숫자만 써있는 버전은 정식 버전이기 떄문에
이 중에서 원하는 버전을 선택하거나 가장 최신 버전을 선택하면 된다.
- SNAPSHOT : 개발중인 버전
- M1 : 정식으로 릴리즈 되지 않은 버전
Project Metadata
- Group : 기업의 도메인명, 개인이라면 자유롭게 기입한다.
- Artifact : 빌드되어 나올 결과물 이름이다.
- Name : 프로젝트명이다. (일반적으로 Artifact와 동일하게 사용한다.)
- Description : 프로젝트 설명을 간단히 작성한다.
- Package name: 패키지 이름이다. (Group과 Artifact를 설정하면 자동으로 만들어 준다.)
- Packaging : 배포 형태이다. 웹화면이 필요한 어플리케이션은 war, API 서버와 같이 java 프로젝트로만 동작하는 어플리케이션은 jar을 선택한다.
- Java : 사용하고자 하는 자바 버전을 선택한다.
Dependencies
- Spring Web (중요) : 웹 서비스를 만드는 데 가장 중요한 모듈이다. 내장 톰캣 뿐 아니라 Spring MVC 패턴을 구현하는 데 필요한 기능이 대부분 들어있다. REST API 서버를 만든다면 필수이다.
- Lombok (추천, 거의 필수) : getter, setter, toString, equals, constructor 등의 메소드들을 간단한 어노테이션(@)으로 지정해줄 수 있다.
- Spring Data JPA (필수) : JPA는 Java Persistence API의 약어로 자바 ORM(Object Relational Mapping) 기술의 토대를 이루는 기술 명세이다. Class Entity를 마치 DB처럼 사용할 수 있어 매우 유용하다.
- MySQL Driver : MySql의 드라이버를 자동으로 연결해준다.
이외에도 유용한 dependency가 많으니 아래를 참고하여 원하는 모듈을 간편히 추가할 수 있다.
나중에도 직접 dependency를 추가할 수 있어 꼭 여기서 추가를 다하지 않아도 된다.
참고 : Spring Initializr를 통해 보는 스프링 각종 모듈 알아보기(1) - Developer tools, Web, Template Engine, Security, Sql, Nosql
설정이 완료되면 GENERATE 버튼을 눌러 zip 파일을 다운받고 압축을 해제한다.
IntelliJ를 열어 OPEN 버튼을 누르고 압축을 해제했던 파일 중 build.gradle을 누른다.
OPEN AS PROJECT 버튼을 누른다.
Spring Boot 프로젝트 생성이 완료되었다.
이제 main application을 실행해보면 추가한 depedency에 따라서 아래와 같은 오류가 날 수도 있을 것이다.
나의 경우에는 Spring Data JPA dependency를 추가해놓았기 때문에 위의 오류가 발생한다.
전체 오류 메세지는 아래와 같다.
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
Failed to configure a DataSource 에러는 DB에 연결할 때 필요한 정보가 없거나 잘못 되었기 때문에 발생한다.
🔗 DB 연결
🔽 지금 DB와 연결하고 싶지 않고 JPA를 나중에 사용해도 된다면 ?
build.gradle에서 아래 라인을 주석 처리 한다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
코끼리 새로고침 눌러 반영해주기!
다시 실행해보면 정상적으로 실행된다.
DB와 연결하기 위해서
src > resources > application.properties 혹은 application.yml 에 아래 내용을 추가해준다.
application.properties
spring.datasource.url=jdbc:[Database]://localhost:5432/[Database스키마]
spring.datasource.username=[DB 아이디]
spring.datasource.password=[DB 비밀번호]
spring.datasource.driver-class-name=[JDBC 드라이버]
application.yml
spring:
datasource:
url: jdbc:[Database]://localhost:3306/[Database 스키마]
username: [DB 아이디]
password: [DB 비밀번호]
driver-class-name: [JDBC 드라이버]
나는 MySQL을 사용하고, 스키마 이름은 wanted, DB 아이디는 root, DB 비밀번호는 T@@@@@ 여서 아래와 같이 작성하였다.
실행이 정상적으로 된다!
이제 Git과 연결해보겠다.
🐱 Git repository와 연결하기
Git Reposiroty를 하나 생성해준다.
위에서 생성한 프로젝트의 터미널 창을 열어 명령어를 입력해준다. (이외 아무 터미널이나 가능)
git init
현재 디렉토리를 기준으로 Git 저장소가 생성된다.
.gitignore 수정 (필수 X)
.DS_Store와 같이 불필요한 파일이나 DB url, 비밀번호 등 git에 올리고 싶지 않은 내용의 파일들이 있다면 .gitignore에 추가해준다.
사이트 추천 : https://www.toptal.com/developers/gitignore
java + intellij + macOs + windows + dotenv 추가한 gitignore
https://www.toptal.com/developers/gitignore/api/java,intellij+all,macos,windows,dotenv
git add .
모든 파일의 변경 내용을 스테이징 영역(staging area)에 추가한다.
git status
파일 상태 확인용 명령어이다.
git add 후 git status를 입력했을 때 파일들이 스테이징 영역에 넘어가 있다면 초록색 글씨로 파일명들이 나온다.
git commit -m "first commit"
변화한 부분을 git에 영구적으로 저장한다.
-m 옵션으로 간략한 메세지(ex. first commit)와 함께 저장할 수 있다.
git remote add origin [레포지토리 링크]
로컬에 생성한 디렉토리를 원격 저장소와 연결한다.
레포지토리 링크를 모르겠다면 repository를 처음 생성한 후 나온 위의 명령어를 그대로 복사하면 된다.
git push -u origin main
원격 저장소(remote repository)에 코드 변경분을 업로드한다.
-u 옵션으로 최초에 한번 저장소명(ex. origin)과 브랜치명(ex. main)을 입력하고 이후에는 생략할 수 있다.
Git과 프로젝트 연결이 완료되었다!
참고
https://jin2rang.tistory.com/entry/Spring-Boot-%EC%85%8B%ED%8C%85%ED%95%98%EA%B8%B0-startspringio
https://psip31.tistory.com/139
'프레임워크 > Spring Boot' 카테고리의 다른 글
[Spring Boot] 멀티모듈에서 .env 파일이 로드되지 않는 문제 해결하기 (1) | 2024.09.04 |
---|---|
[Spring Boot] application 설정 파일에서 민감한 정보 숨기기 (application.properties, application.yml) (1) | 2024.08.15 |
[Spring Boot] 멀티 모듈 프로젝트에 BeanDefinitionOverrideException 에러 해결 (0) | 2024.06.19 |
[Spring Boot] ExceptionResolver으로 예외 처리하기 (0) | 2024.05.21 |
[Spring Boot] 유효성 검사 with @Valid, @Validated (0) | 2024.05.17 |