본문 바로가기
Spring/스프링 JPA 활용

[스프링 JPA 1편] 1 - (1) 프로젝트 생성

by Poorm 푸름 2023. 12. 12.

* Mac사용, Java17 사용

 *  진도 : 섹션1 
 *          : 자바 클래스명,         : 코드,         : 단축키

 

1. Open JDK11 설치

 

Archived OpenJDK GA Releases

Archived OpenJDK General-Availability Releases This page is an archive of previously released builds of the JDK licensed under the GNU General Public License, version 2, with Classpath Exception. WARNING: These older versions of the JDK are provided to he

jdk.java.net

 

JDK 다운로드 후 압축풀기

 

방법 1) Finder 앱 실행 → 상단에 이동 - 컴퓨터  Macintosh HD - 라이브러리 - Java - JavaVirtualMachines → 내가 다운로드한 버전의 JDK 파일 해당 폴더에 넣기

 

방법 2) Finder 앱 실행 → 상단에 폴더로 이동  library 검색 - Java - JavaVirtualMachines → 내가 다운로드한 버전의 JDK 파일 해당 폴더에 넣기

 

 

< 만약 자바가 버전이 여러개라면? >

 

아래 블로그를 참고해주세요

 

https://ifuwanna.tistory.com/247

 

[MacOS] Java(JDK) 버전 변경 하기

맥북이나 아이맥같은 MacOS에 여러 버전의 JAVA(JDK)가 설치 되어 있을 경우 아래 설정을 통해 원하는 버전을 기본으로 설정 할 수 있습니다. 1. java -version 명령어를 통해 먼저 사용중인 Java 버전을

ifuwanna.tistory.com

 

 

2. IntelliJ 환경 설정

<환경설정 1>

command + , 클릭 → [ Build, Execution, Deployment - Build Tools - Gradle - Build and Run ] 에서 Gradle 로 설정

 

<환경설정 2>

command + ; 클릭 → [ Project Settings - Project - SDK ] 에 내가 설치한 자바 버전으로 설정

 

<환경설정 3>

command + ; 클릭 → annotation 검색 후 Enable annotation processing 체크

 

< 환경설정 4 >

build.gradle에서 dependencies 마지막에 Unit4 부분 추가하기

testImplementation("org.junit.vintage:junit-vintage-engine") {
     exclude group: "org.hamcrest", module: "hamcrest-core"
 }

 

< 환경설정 5 >

쿼리 파라미터 로그 남기기위해 build.gradle에서 dependencies에 코드 추가

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'

 

 

3. 스프링 프로젝트 생성

https://start.spring.io  클릭 → 아래와 같이 설정  나머지는 강의를 참고해주세요

4. H2 설치

 

https://www.h2database.com 경로에서 다운받아 압축풀고 터미널에서 아래와 같이 입력

 

< 파일 경로 입력 방법 >

터미널 창에 cd라고 입력 후 나머지 경로는 원하는 폴더를 그대로 드래그해서 옮겨놓으면 자동으로 경로가 붙여넣기 됩니다

 

< 권한 설정 >

./h2.sh 해도 실행이 안된다면 chmod~ 코드를 이용해 권한을 허용해 줍니다

 

 

5. H2 실행

 

1. url에서 8082 앞부분만 localhost: 로 변경

 

 

2. 처음엔 아래와 같은 JDBC URL로 연결하고 그 다음부터는 jdbc:h2:tcp://localhost/~/jpashop로 설정해 접속

 

 

3. ~/jpashop.mv.db 파일이 제대로 생성되었는지 확인 ( 파일 저장 경로 = C:\Users\사용자명 )

 

5. JPA와 DB 설정 (띄어쓰기 중요)

Spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
       format_sql: true

 

- H2 DB 접근 Spring: datasouce: ~

 

- jpa 설정 ddl-auto create ~

 

  • 엔티티로 등록된 클래스를 보고 기존 테이블을 삭제(drop)하고  매핑되는 테이블을 자동으로 생성(create)

  • ddl-auto 란?
    엔티티만 등록하면 DDL을 자동으로 작성하여 테이블을 생성 또는 수정해주는 기능

    5가지 종류
    - create / create-drop / update / validate / none(default)

    ddl-auto 주의 사항
    validate와 none을 제외한 속성 create나 create-drop는 DB에 연결해 애플리케이션을 실행해버리면 운영 DB의 테이블이 모두 삭제될 수 있기 때문에 DB에는 사용하면 안된다

    update 또한 not null 칼럼을 추가할 경우 변경사항이 반영되지 않은 버전을 배포하게 되었을 때 테이블에 데이터가 INSERT 되지 않으므로 비추천한다
    ddl-auto 속성은 테스트 환경에서는 분명히 편리한 기능이 맞지만 운영 서버에서는 사용 안하는게 좋다 

logging:
  level:
    org.hibernate.SQL: debug
    
#   org.hibernate.orm.jdbc.bind: trace 
#   스프링 부트 3.x, hibernate6

 

- 콘솔에서 SQL 확인 org ~ debug

 

 

 

 

 

 

 

 

 

[출처] 김영한 강사님 인프런 스프링 JPA 1편

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1

 

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의

실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프

www.inflearn.com