[LG CNS AM Inspire CAMP 1기] JPA (1)

니니지·2025년 2월 4일

LG CNS AM Inspire Camp 1기

목록 보기
32/47

INTRO

오늘은 게시판 프로젝트를 JPA 형태로 다루는 방법을 학습했습니다.

1. JPA

자바 애플리케이션에서 관계형 데이터베이스와 객체 간의 매핑을 제공하는 표준 API.
JPA는 자바 객체를 데이터베이스 테이블에 매핑하고, 자바 객체와 데이터베이스 간의 데이터 전송을 관리.
JPA를 사용하면 데이터베이스 작업을 쉽게 처리할 수 있으며, SQL 코드를 줄이고 객체 지향적인 방식으로 데이터를 다룰 수 있음.

- 의존성 확인

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
		... (생략) ...

- application.properties 설정

spring.jpa.hibernate.ddl-auto=update

- 엔티티 생성

데이터베이스 테이블에 매핑되는 자바 클래스.
@Entity 애노테이션으로 정의 .

- 리포지터리 생성

리포지터리 인터페이스

CurdRepository

PaginAndSortingRepository

쿼리 메서드(Query Method)

https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html

@Query 사용

메서드 이름이 복잡하거나 쿼리 메서드로 표현하기 힘든 경우 ⇒ @Query 어노테이션으로 쿼리를 직접 작성.
JPQL 또는 데이터베이스에 맞는 네이티브 SQL 사용이 가능.

- 서비스, 컨트롤러, 화면 생성


2. 정리

  1. 백엔드 (스프링부트, JPA) 변경
    1.1 MyBatis → JPA로 전환
    엔티티 클래스 생성 : DB 테이블을 JPA의 @Entity 클래스로 매핑
    JPA 리포지토리 생성 : MyBatis의 매퍼를 JPA의 JpaRepository로 변경
    서비스 레이어 수정 : 기존 MyBatis 서비스를 JPA 방식으로 변경
    트랜잭션 관리

1.2 MySQL 설정 및 JPA 설정
application.properties 파일에서 JPA 설정을 추가

1.3 타임리프 → REST API로 전환
RESTful API로 변경해야 합니다.
스프링부트에서는 @RestController를 사용하여 API를 제공

  1. 프론트엔드 (React + Axios) 변경
    2.1 React 프로젝트 생성
    React 애플리케이션을 생성하고 Axios를 설치

2.2 React 컴포넌트 생성
다마고치 게임의 주요 화면을 React 컴포넌트로 만듭니다.

2.3 Axios 설정
Axios를 사용하여 백엔드 API와 통신합니다.
useEffect를 사용하여 컴포넌트가 로드될 때 API 요청을 보내고 응답을 받아 상태를 업데이트

2.4 CORS 설정
@CrossOrigin 어노테이션을 사용하거나 WebMvcConfigurer를 사용해 설정

  1. 마무리 작업
    테스트, 배포 준비(Spring Boot의 WAR 또는 JAR 파일로, 프론트엔드는 React 빌드)
profile
지니니

0개의 댓글