개발을 시작하기에 앞서 필요한 모든 준비과정을 진행한다.

 

개발 환경 설정부터 유용한 툴 설치 등.

 

사항
OS Windows : 집 데스크탑
Mac M1 : 노트북, 맥에어
언어 Java 11
프레임워크 Spring 2.7.8
IDE IntelliJ
데이터베이스 MySQL
MySQL Workbench
API 테스팅 Postman
(선택) 깃허브 편리성 Github Desktop
문서관리 Notion

목차

1. Java 11 설치하기

2. IDE IntelliJ 설치하기

3. Spring Initializer에서 베이스 프로젝트 생성

4. IntelliJ에서 프로젝트 폴더 오픈 후 Gradle 설치하기

5. MySQL 설치하기

6. MySQL Workbench 설치하기

7. IntelliJ 포토앨범 프로젝트 내 DB 접속 관련 설정하기

8. Postman 설치

9. Github 설정 - Github Repository 사용

10. Notion 계정 생성

11. DB 설계 툴 Lucidchart


1. Java 11 설치하기

Java 8 vs. Java 11 비교

 

[Java] Java 8 vs Java 11

java-study에서 스터디를 진행하고 있습니다. Java란? Java는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체지향적 프로그래밍 언어이다. Java 언어의 특징 객체지향 언어이다.

steady-coding.tistory.com

지금까지 Java 8을 사용해와서 Java 11로 버전 변경을 해야 한다.

 

2. IDE IntelliJ 설치하기

IntelliJ vs. Eclipse 비교

 

[IDE] 이클립스 인텔리제이 장단점 비교(eclipse/IntelliJ)

[IDE] 이클립스 인텔리제이 장단점 비교(eclipse/intelliJ) 1. 이클립스(eclipse) 역사가 오래되어 잘 작성된 문서, 수 많은 플러그인들이 존재하며 가장 대중적으로 사용되고 있는 IDE이다. 가장 큰 강점

devuna.tistory.com

무료 버전인 Community Edition으로 설치

 

3. Spring Initializer에서 베이스 프로젝트 생성

현재(2023/02/10) 2.7.8 버전

Gradle - Groovy

Dependencies

  • Spring Web
  • Lombok

 

4. IntelliJ에서 프로젝트 폴더 오픈 후 Gradle 설치하기

Spring Initializer를 이용하여 생성한 프로젝트를 IntelliJ에서 열기

 

어 바로 에러야 ~

Cause: invalid source release: 11

처음 Application을 실행하니까 위와 같은 문제가 발생함. Java 버전이 일치하지 않는 듯

 

build.gradle과 jdk 환경변수는 11로 동일하게 잡혀 있는데 무슨 문제일까?

    > IntelliJ 껐다가 다시 키면 됨 ^^

 

바로 또 다른 에러

A JNI error has occurred, please check your installation and try again

인텔리제이 Gradle JVM 설정이 프로젝트에 세팅된 내용하고 달라서 발생

 

위 사진의 좌하단을 보면 "Process ~ /Java/jdk1.8.0~"으로 Java 8 버전을 잡고 있다.

 

  1. File > Settings > 좌상단 gradle 검색
  2. File > Product Structure > Project > SDK

두 경로에서 버전을 확인해 볼 것. 본인은 2번 경로에서 jdk1.8.0 이 잡혀 있는 걸 확인했고 수정하였다.

 

정상동작

 

5. MySQL 설치하기

이미 존재하기에 넘어감

 

6. MySQL Workbench 설치하기

local 커넥션 생성

DB Schema 생성

  • photo_album

 

7. IntelliJ 포토앨범 프로젝트 내 DB 접속 관련 설정하기

1) Dependency 설치 - JPA 관련

  • build.gradle 파일 안에 dependency 추가하고
  • 오른쪽 위 코끼리 아이콘을 눌러 해당 library들을 다운받아 설치
dependencies {
	...
	
    // JPA 관련
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'com.mysql:mysql-connector-j'
    implementation 'org.hibernate:hibernate-search:5.11.1.Final'
}

 

2) application.properties에 DB접속 정보 관련 내용 추가

  • src/main/resources/application.properties 내에 MySQL 접속정보를 추가해야 프로젝트에서 DB와 연결
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/photo_album
spring.datasource.username=root
spring.datasource.password=<위에서 저장해둔 Root Password 입력>
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
  • spring.datasource.url=jdbc:mysql://localhost:3306/photo_album
    > photo_album 스키마를 사용한다
  • spring.jpa.hibernate.ddl-auto=update
     update  : 기존의 스키마를 유지하며 JPA에 의해 변경되 부분만 추가한다.
     validate  : 엔티티와 테이블이 정상적으로 매핑되어 있는지만 검증한다.
     create  : 기존에 존재하는 스키마를 삭제하고 새로 생성한다.
     create-drop  : 스키마를 생성하고 애플리케이션이 종료될 때 삭제한다.
     none  : 초기화 동작을 하지 않는다.
  • spring.jpa.generate-ddl=true
    spring.jpa.hibernate.ddl-auto 속성을 사용할지 말지를 결정하는 옵션으로 기본값으 false이다.
    그래서 JPA에 의한 자동 초기화 기능을 사용하려면 true로 바꾸고 사용한다.
  • spring.jpa.show-sql=true
    JPA가 생성한 SQL문을 보여준다.

 

3) API를 재실행하여 설정이 잘 됐는지 확인

 

8. Postman 설치

API 테스팅에 최적화된 툴이다.

 

9. Github 설정

Github Repository 다운로드

  • 깃허브 작동을 편리하게 해주는 툴이다.

프로젝트 폴더 Repository 세팅하기

  • 프로젝트에 github repository를 만들어서 github으로 프로젝트를 관리
  • 커밋은 작은 것을 완료할 때마다 한 번씩 진행 -> 히스토리 파악에 좋음, 복원할 때 정확한 시점 선택할 수 있음
  1. File → Add Local Repository 선택
  2. Local Path 선택시  ~ create a repository ~  경고가 나오면 클릭
  3. Git Ignore → Java 선택 → Create Repository
  4. IntelliJ → .gitignore파일에 아래 항목 추가
    .gradle, build, .idea
  5. update gitignore 커밋 메시지를 세팅 후 → Commit to main 클릭
  6. 상단에 Publish repository 클릭
  7. 깃허브 내 프로젝트명 정하고 Publish Repository 클릭
#etc
.gradle
build
.idea

 

10. Notion 계정 생성

포토앨범 API 템플릿 → API 문서 작업용

 

11. DB 설계 툴 Lucidchart

루시드차트를 사용하여 관계형 DB 설계

 

 

Reference
 

스프링 부트 - 데이터베이스 초기화 - kwon | kwon's Blog

스프링 부트 - 데이터베이스 초기화 JPA를 사용한 데이터베이스 초기화 appication.properties123456789101112spring.datasource.driverClassName=org.mariadb.jdbc.Driverspring.datasource.url=jdbc:mariadb://localhost:3307/springbootspring.

kyu9341.github.io