OPEN HYPER STEP
← 목록으로 (Java+Spring)
JAVA · 53 / 69
java
CHAPTER 53 / 69
읽기 약 2
FUNCTION

Spring Data JPA CRUD


핵심 개념

JpaRepository로 CRUD를 구현한다. 쿼리 메서드, @Query, 페이지네이션, 정렬을 실무 수준으로 익힌다.

코드 분석
JAVA📋 코드 (32줄)
// UserRepository.java
public interface UserRepository extends JpaRepository<User, Long> {
    // 쿼리 메서드 (자동 구현)
    Optional<User> findByEmail(String email);
    List<User> findByStatus(UserStatus status);
    boolean existsByEmail(String email);
    long countByStatus(UserStatus status);

    // 페이지네이션
    Page<User> findByName(String name, Pageable pageable);

    // JPQL
    @Query("SELECT u FROM User u WHERE u.email LIKE %:keyword%")
    List<User> searchByEmail(@Param("keyword") String keyword);

    // Native SQL
    @Query(value = "SELECT * FROM users WHERE created_at > :date",
           nativeQuery = true)
    List<User> findRecentUsers(@Param("date") LocalDateTime date);

    // 수정 쿼리
    @Modifying
    @Query("UPDATE User u SET u.status = :status WHERE u.id = :id")
    int updateStatus(@Param("id") Long id, @Param("status") UserStatus status);
}

// 서비스에서 페이지네이션 사용
public Page<UserDto> search(int page, int size) {
    Pageable pageable = PageRequest.of(page, size,
        Sort.by("createdAt").descending());
    return userRepository.findAll(pageable).map(UserDto::from);
}

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 Spring 'Data JPA CRUD' 코드에서
DI 관련 버그·순환 참조·트랜잭션 누수를
찾아서 수정해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'Data JPA CRUD'를 Spring Boot 3.x로 구현한
실전 API 코드(컨트롤러+서비스+레포지토리+테스트)를 완성형으로 만들어줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 Spring 'Data JPA CRUD' 프로젝트의 빈 구조와
의존성 트리를 전체 분석하고
N+1 쿼리·순환 참조·성능 병목을 정리해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

Spring 'Data JPA CRUD' vs Quarkus·Micronaut·Ktor의
동일 기능 구현을 2026년 한국 채용 시장 기준으로
솔직히 비교해줘.

⭐ 이것만 기억하세요
Spring Data JPA CRUD 이 3가지만 확실히 잡으세요
1.기본 CRUD만으로는 복잡한 조건 검색, 동적 쿼리, 페이지네이션을 처리할 수 없습니다
2.쿼리 메서드(findByNameAndAge), @Query(JPQL), Pageable로 페이지네이션을 구현합니다
3.다음 챕터에서 복잡한 동적 쿼리를 위한 QueryDSL을 배웁니다


공유하기
진행도 53 / 69