집돌이 공대남 IT

JPA 프로그래밍 마스터하기: 초급부터 전문가까지 실습을 통한 학습(6) 본문

IT/웹개발

JPA 프로그래밍 마스터하기: 초급부터 전문가까지 실습을 통한 학습(6)

집공이 2023. 8. 19. 12:00

Spring Data JPA를 이용한 실제 애플리케이션 구축

안녕하세요! 공대남입니다.

오늘은 JPA와 Spring Data JPA를 이용하여 실제 애플리케이션을 구축하는 방법에 대해 알아보겠습니다.

Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로, JPA를 더 쉽고 편리하게 사용할 수 있도록 도와주는 프레임워크입니다. 그럼 바로 시작해봅시다!

 

1. 프로젝트 세팅

가장 먼저, Spring Boot 프로젝트를 생성해야 합니다. Spring Initializr 또는 IDE의 Spring Boot 프로젝트 생성 기능을 이용해서 생성하면 됩니다. 이때, 프로젝트 생성 시에 필요한 의존성으로 'Spring Web', 'Spring Data JPA', 'Lombok', 그리고 사용할 DB에 맞는 JDBC 드라이버를 추가합니다.

 

2. 데이터베이스 설정

application.properties 또는 application.yml 파일에 데이터베이스 연결 정보를 작성합니다.

spring.datasource.url=jdbc:mysql://localhost:3306/test_db
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.jpa.hibernate.ddl-auto=update

 

3. 도메인 모델 생성

JPA를 사용하는 애플리케이션에서는 DB 테이블을 Java 클래스로 표현한 것을 도메인 모델이라고 합니다. JPA에서는 이런 도메인 모델을 엔티티(Entity)라고 부릅니다.

import javax.persistence.*;

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

    // getters and setters
}

 

4. Repository 생성

Spring Data JPA를 사용하면, CRUD 연산을 위한 기본적인 메서드를 제공하는 Repository를 간단하게 생성할 수 있습니다.

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

 

5. 서비스 생성

비즈니스 로직은 대개 서비스 레이어에서 구현하게 됩니다. Repository를 사용하여 필요한 데이터를 조회하거나 조작하는 코드를 작성하면 됩니다.

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class UserService {

    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Transactional
    public User createUser(String name) {
        User user = new User();
        user.setName(name);
        return userRepository.save(user);
    }
}

 

6. 컨트롤러 생성

HTTP 요청을 처리하는 컨트롤러를 작성합니다. 여기서는 UserService를 주입받아 사용하게 됩니다.

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/users")
public class UserController {

    private final UserService userService;

    public UserController(UserService userService) {
        this.userService = userService;
    }

    @PostMapping
    public User createUser(@RequestParam String name) {
        return userService.createUser(name);
    }
}

이제 필요한 기능에 따라 위의 과정을 반복하면서 애플리케이션을 완성해 나가면 됩니다. Spring Data JPA는 개발자가 SQL 쿼리에 신경 쓰지 않고, 비즈니스 로직에 집중할 수 있도록 도와주는 강력한 도구입니다. 이를 잘 활용하여 효율적인 개발을 진행해 보세요!