Spring Boot/Spring Data JPA(33)
-
Persisting Entities
Spring Data JPA에서 엔티티를 저장하는 방법과, 엔티티의 상태를 감지하는 전략에 대해 설명합니다.Saving Entities (엔티티 저장)엔티티를 저장하는 방법은 CrudRepository.save(…) 메서드를 사용하는 것입니다. 이 메서드는 내부적으로 JPA의 EntityManager를 사용하여 주어진 엔티티를 저장하거나 병합합니다. 만약 엔티티가 아직 영속화되지 않은 상태라면, entityManager.persist(…)를 호출하여 저장하고, 이미 영속화된 엔티티라면 entityManager.merge(…)를 호출하여 병합합니다.Entity State-detection Strategies (엔티티 상태 감지 전략)Spring Data JPA는 엔티티가 새로운 것인지 아닌지 감지하는 몇 ..
2024.10.19 -
Configuration
Spring Data JPA를 설정하는 방법에는 두 가지가 있습니다:Annotation-based Configuration (Java configuration)Spring Namespace (XML configuration)여기서는 첫 번째인 Annotation-based Configuration을 설명합니다.Annotation-based Configuration (JavaConfig)Spring Data JPA 리포지토리 지원은 JavaConfig 또는 XML 네임스페이스를 사용하여 활성화할 수 있습니다. 아래는 JavaConfig를 사용하는 예시입니다:@Configuration@EnableJpaRepositories@EnableTransactionManagementclass ApplicationCon..
2024.10.19 -
Defining Repository Interfaces
Repository 인터페이스 정의하기먼저, 도메인 클래스에 특정한 Repository 인터페이스를 정의해야 합니다. 이 인터페이스는 반드시 Repository를 확장해야 하며, 도메인 클래스와 해당 도메인 클래스의 ID 타입으로 지정해야 합니다. 도메인 타입에 대해 CRUD(생성, 읽기, 업데이트, 삭제) 메서드를 노출하고 싶다면, CrudRepository 또는 그 변형 중 하나를 확장할 수 있습니다.Repository 정의 미세 조정Repository 인터페이스를 정의하는 몇 가지 방법이 있습니다.CrudRepository 확장가장 일반적인 방법은 CrudRepository를 확장하는 것입니다. 이 인터페이스를 사용하면 CRUD 작업을 위한 메서드를 사용할 수 있습니다. CRUD는 Create(생성..
2024.10.19 -
Core concepts
Repository 인터페이스중심 인터페이스: Spring Data 리포지토리 추상화의 중심 인터페이스는 Repository입니다. 이 인터페이스는 관리할 도메인 클래스와 도메인 클래스의 identifier 타입을 제네릭 타입 파라미터로 받습니다. 기본적으로 이 인터페이스는 마커 인터페이스로 사용되며, 작업할 타입을 캡처하고 이를 확장하는 인터페이스를 발견하는 데 도움을 줍니다.도메인 객체: Spring Data는 도메인 타입을 엔티티로 간주하며, 보다 구체적으로 집합체(aggregate)로 설명합니다. 따라서 문서 전반에 걸쳐 "엔티티"라는 용어가 사용되며, 이는 "도메인 타입"이나 "집합체"와 상호 교환할 수 있습니다.도메인 주도 설계(DDD): 도메인 객체는 DDD의 관점에서 정의됩니다. 도메인 객..
2024.10.19 -
Getting Started
시작하기프로젝트 생성:start.spring.io: Spring이 제공하는 웹 기반 인터페이스로, Spring Boot 프로젝트를 신속하게 생성할 수 있습니다. 종속성을 선택하고 프로젝트 메타데이터(그룹 ID, 아티팩트 ID 및 버전 등)를 입력한 후, ZIP 파일 형식으로 프로젝트 구조를 다운로드할 수 있습니다.Spring Tools: Eclipse, IntelliJ 등에서 사용할 수 있는 IDE 플러그인으로, Spring 프로젝트를 생성하고 관리하는 데 도움을 줍니다. 최소한의 노력으로 Spring Boot 애플리케이션을 구성할 수 있는 내장 마법사를 제공합니다.예제 리포지토리GitHub의 spring-data-examples 리포지토리는 Spring Data의 다양한 기능을 보여주는 샘플 애플리케이..
2024.10.19 -
Query Hint
쿼리 힌트(query hint)는 데이터베이스 관리 시스템(DBMS)의 쿼리 최적화(Optimizer)기가 쿼리를 실행할 때, 최적화 경로와 전략을 어떻게 선택할지에 대해 개발자가 명시적인 지침을 제공하는 방법입니다. DBMS는 기본적으로 통계 정보와 내부 알고리즘을 통해 쿼리의 최적 실행 계획을 자동으로 선택하지만, 때로는 최적화기의 판단이 항상 최선이 아닐 수 있습니다. 이럴 때 쿼리 힌트를 사용해 실행 계획을 제어할 수 있습니다.DBMS는 각 쿼리에 대해 실행 계획을 수립할 때, 조인 순서, 인덱스 선택, 테이블 액세스 방식, 메모리 사용 방식 등 여러 요소를 고려합니다. 쿼리 힌트는 이러한 요소 중 하나 이상에 영향을 주어, 성능을 개선하거나 잘못된 실행 계획을 피하는 데 도움을 줄 수 있습니다...
2023.06.06