본문 바로가기
WEB/Spring Boot

[Spring Boot] 쇼핑몰 - 환경설정(View, H2 Database, JPA)

by JooRi 2024. 10. 5.
728x90
반응형
SMALL

 

start.spring.io 사이트에서 스프링 부트 2.x에 대한 지원이 종료되어서 2.x를 더는 선택할 수 없습니다.
JDK도 17 이상을 사용해야 합니다. 

 

* 프로젝트 생성

스프링부트 프로젝트 생성

스프링부트 3.3.3
Java 17
 
 

SDK 설정

내가 설치한 자바 버전 17로 SDK 설정.
 
 

JVM 설정

JVM도 자바 17로 설정.
 
 

롬복 설정

플러그인에서 lombok 설치 후, 어노테이션 프로세서 설정.
 
 

실행

잘 동작하는지 코드 실행해 보기.
 
 

localhost:8080

localhost:8080에 접속해 보니 잘 동작하는 것을 확인할 수 있다.
프로젝트 생성 끝.
 

* View 설정

hello.html
HelloController.java

View 동작 원리
1. localhost:8080/hello에 접속하면 HTTP GET 요청이 서버로 전송된다.
2. 서버는 HelloController의 hello 메서드에 GET 요청을 매핑한다.
3. hello 메서드는 Model 객체에 "hello!!" 문자열을 data라는 키로 추가한다.
4. 메서드는 마지막 줄 return "hello";의 hello 문자열을 반환한다. 여기서 hello는 뷰의 이름이다.
5. 스프링부트는 hello라는 이름에 해당하는 뷰 파일(hello.html)을 찾아서 렌더링을 진행한다.
6. hello.html은 Thymeleaf 템플릿 엔진을 통해 Model에 저장된 data의 값을 가져와 "안녕하세요"와 결합하여 출력한다.
 
이렇게 뷰 렌더링 결과가 웹 브라우저의 응답으로 전송된다.
 
 

localhost:8080/hello

 

* H2 데이터베이스

H2 Database Engine

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size     Supp

www.h2database.com

위 사이트에서 본인 환경에 맞는 버전 다운로드.
스프링 부트 2.x 버전은  스프링 부트 3.x 버전은 
 
 

h2 실행

압축 풀고 실행.
 
 

localhost:8082

연결.
 
 

데이터베이스

데이터베이스 설치 끝.
(위 데이터베이스는 localhost:8082에 접속하여 접근한다.)
 

* JPA, DB 설정

yml 파일 설정

application.yml 설정 파일을 생성 및 설정.

 

 

package jpabook.jpashop;

import jakarta.transaction.Transactional;  // JPA 트랜잭션 관리
import org.junit.jupiter.api.Assertions;  // JUnit5 Assertions 클래스
import org.junit.jupiter.api.Test;  // JUnit5 Test 어노테이션
import org.junit.jupiter.api.extension.ExtendWith;  // JUnit5와 연동을 위한 확장
import org.springframework.beans.factory.annotation.Autowired;  // 의존성 주입을 위한 어노테이션
import org.springframework.boot.test.context.SpringBootTest;  // 스프링부트 애플리케이션 컨텍스트 로드
import org.springframework.test.annotation.Rollback;  // 테스트 후 트랜잭션 롤백 설정
import org.springframework.test.context.junit.jupiter.SpringExtension;  // 테스트 확장 기능

@ExtendWith(SpringExtension.class)  // JUnit5와 통합
@SpringBootTest  // 테스트 실행
@Rollback(false)  // 테스트 실행 후 롤백되지 않도록 설정
public class MemberRepositoryTest {

    @Autowired
    MemberRepository memberRepository;
    
    @Test 
    @Transactional
    public void testMember() throws Exception {
        // given : 테스트 설정
        Member member = new Member();
        member.setUsername("memberA");

        // when : 테스트하고자 하는 동작
        Long savedId = memberRepository.save(member);  // 멤버 id 반환
        Member findMember = memberRepository.find(savedId);  // id를 통해 멤버 조회

        // then : 결과 확인
        Assertions.assertEquals(member.getId(), findMember.getId()); // (기대값, 실제값)
        Assertions.assertEquals(member.getUsername(), findMember.getUsername());
    }
}

shift+ctrl+t로 테스트 파일을 생성 및 작성.

 

 

실행

테스트 파일 실행.

 

 

DB

테이블이 생성되었고, 데이터까지 잘 동작하는 것 확인.

 

 

localhost:8080

세팅 끝.

 

 

728x90
반응형
LIST

댓글