java
CHAPTER 53 / 69
읽기 약 2분
FUNCTION
Spring Data JPA CRUD
핵심 개념
JpaRepository로 CRUD를 구현한다. 쿼리 메서드, @Query, 페이지네이션, 정렬을 실무 수준으로 익힌다.
코드 분석
// 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