본문 바로가기
정리 { Java 백엔드 }/(인강) JPA 프로그래밍 +스프링부트

(JPA_활용1) _1강. 프로젝트 환경 설정

by 해피퀄리아 2023. 5. 10.

복습 다시함 처음부터 다시

교육자료 프로젝트 환경 설정 목차

  1. 프로젝트 생성 (스프링 부트 라이브러리)
  2. 라이브러리 살펴보기
  3. View 환경 설정
  4. H2 데이터베이스 설치
  5. JPA와 DB 설정, 동작확

<1> 프로젝트생성 : 스프링부트 라이브러리 설치

[ 1 ] 방법

  • 방법1: Spring initializer 사용하기 (웹사이트 : start.spring.io)
  • 방법2: Gradle프로젝트 수동으로 하기

 

[ 2 ] 스프링 부트 버전 변경하는 경우

 

[ 3 ] Spring initializer 기본 옵션

1. Project

빌드도구 : Gradle-Groovy

2. Language

Java (버전 11)

3. Spring Boot (버전)

버전 2.1.7
버전 2.4.X도 괜찮다고 함.

버전. 두번째 자리부터 메이저 변화 달라질 수 있음.
학습이나 프로젝트 진행시 버전 오류 잘 생각해야함

  • 스프링부트3을 사용하게 되는 경우
    1. Java 17 이상을 사용해야 합니다.
    2. javax 패키지 이름을 jakarta로 변경해야 합니다.
      오라클과 자바 라이센스 문제로 모든 javax 패키지를 jakarta로 변경하기로 했습니다.
    3. H2 데이터베이스를 2.1.214 버전 이상 사용해주세요.
      패키지 이름 변경 예)
      JPA 애노테이션
      javax.persistence.Entity jakarta.persistence.Entity
      스프링에서 자주 사용하는 @PostConstruct 애노테이션
      javax.annotation.PostConstruct jakarta.annotation.PostConstruct
      스프링에서 자주 사용하는 검증 애노테이션
      javax.validation jakarta.validation
      스프링 부트 3.0 관련 자세한 내용은 다음 링크를 확인해주세요: https://bit.ly/springboot
    4. ……
  • 주의! - 스프링 부트 3.0
    스프링 부트 3.0을 선택하게 되면 다음 부분을 꼭 확인해주세요.

4. Project MetaData

  • group : jpabook
  • Artifact : jpashop

5. Dependencies : 라이브러리 디펜던시 옵션

설치할 라이브러리

→ web, thymeleaf, jpa, h2, lombok, validation

  • Spring Web Starter (현재 Spring Web)→ 웹 어플리케이션에 기본적인 것
  • Thymeleaf → 뷰. 서버사이드 자바 템플릿 엔진
  • String Data JPA → Java Persistence API (Spring Data + Hibernate)
  • H2 Database → 개발 및 테스트 용으로 적절하다. 간단하게 사용하기 쉽다.
  • lombok → 코드 자동화 어노테이션

6. Generate

→ zip파일로 생성됨.

7. 인텔리제이로 열기

다운 → 폴더에 zip파일

폴더 이동

import project 또는 open

→ 처음 할 때는 build.gradle 파일을 선택해서 오픈해주면, 프로젝트가 뜬다.

(라이브러리 다운 받는 동안 오래걸린다.)

 


<2> build.gradle 살펴보기

미리 build.gradle파일 버전 수정해서, 인강에서 하는 강사선생님 버전에 맞추었다.

plugins

스프링부트 버전 등

plugins {
    id 'java'
    id 'org.springframework.boot' version '2.1.7.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
}

그룹과 자바 버전들

group = 'jpabook'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations

lombok 관련한 annotationProcessor

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories

라이브러리 가져온 곳

repositories {
    mavenCentral()
}

dependencies

웹사이트에서 선택한, 라이브러리와 관련 설정들

선택한 거는 3~4개 정도 밖에 없지만, 해당 라이브러리가 의존하는 다른 라이브러리를 다 끌고 온다.

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'
    runtimeOnly 'com.h2database:h2'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

……


<3> 실행 연습

main 메서드 실행.

(스프링 이니셜라이저에서, 메인메서드가 만들어놓았음.

테스트 케이스도 만들어준다.)

package jpabook.jpashop;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class JpashopApplication {

    public static void main(String[] args) {
        SpringApplication.run(JpashopApplication.class, args);
    }
}

콘솔창

embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''

→ 내장 톰캣

웹서버 실행 여부

Whitelable Error Page 나오면 성공

……


<4> 롬복 설치 및 확인

→ 나는 원래 설치되어 있었다.

설치 및 설정 방방법

인텔리제이 preference에서

: 윈도우의 경우에는 File→Settings

  • 1) plugins 에서 lombok 검색 설치
  • 2) Annotation Processors 설정
    • → Enable annotation processing 선택

롬복 실행되는지 확인

테스트용으로 getter setter 만드는 것을 통해 확인해보기

@Getter
@Setter
public class Hello {

    private String data;

}
package jpabook.jpashop;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class JpashopApplication {

    public static void main(String[] args) {

        Hello hello = new Hello();
        hello.setData("헬로우");
        String data = hello.getData();
        System.out.println("data = " + data);

        SpringApplication.run(JpashopApplication.class, args);
    }

}

sout → System.out.println();

soutv → System.out.println("변수이름 = " + 변수);

……

댓글