본문 바로가기

Programming/Spring JPA5

[자바 ORM 표준 JPA 프로그래밍] 영속성 관리 개요 JPA 영속성 컨텍스트에 대해 알아보자. 목차 영속성 컨텍스트란? 영속성 컨텍스트의 이점 Entity의 생명주기 (Entity LifeCycle) 영속성 컨텍스트란 정의 엔티티를 영구 저장하는 환경 EntityManager로 접근 가능 실제로 DB에 접근하기전에 영속성 컨텍스트 환경에 엔티티를 영속화 하겠다는 의미 (*영속화 : 참고 블로그 링크) EntityManager와의 관계 기본적으로 하나의 엔티티 매니저가 생성되면 1:1로 하나의 영속성 컨텍스트가 생성된다. 하지만 스프링 프레임워크와 같은 컨테이너 환경의 JPA에서는 여러 엔티티 매니저가 하나의 영속성 컨텍스트를 공유하게 된다. 컨테이너 환경에서의 JPA 컨테이너를 사용하는 스프링과 같은 환경에서는 개발자가 EntityManager를 생성.. 2022. 11. 27.
[자바 ORM 표준 JPA 프로그래밍] JPA 소개 개요 JPA 도입이 필요한 이유와 JPA가 무엇인지 알아보자. 목차 SQL을 직접 다룰 때 발생하는 문제점 패러다임의 불일치 해결을 위한 JPA 특징 JPA 란? SQL을 직접 다룰 때 발생하는 문제점 SQL mapper 를 사용하여 애플리케이션을 개발할 때의 문제점은 대표적으로 아래와 같다. - 엔티티를 신뢰할 수 없다. - SQL에 의존적인 개발을 하게 된다. 프로그램 운영을 하다보면 내부의 복잡성이 커지게 되는데, 그것에 대한 유지보수를 하기 어려워진다. 예를 들어, 회원테이블에 소속학교 필드를 하나 추가하는 단순한 작업만 살펴보아도 그렇다. 실 DB에 컬럼을 추가한 뒤, 해당 필드에 대한 조회,수정을 하는 작업을 하기위해서는 1.회원 클래스에 소속학교 필드 추가 2. select SQL, upda.. 2022. 11. 23.
[스프링부트와 AWS로 혼자 구현하는 웹서비스] Web Layer, Service Layer, Repository Layer 요약 *API를 만들기 위한 3개의 클래스 * Spring 웹 계층 스프링 웹 계층에 대해 알아보기에 앞서, API 서버에 필요한 클래스는 크게 3개가 있다. * Request 데이터를 받는 Dto * API 요청을 받을 Controller * 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 스프링 웹 계층에서 위의 3가지 클래스들이 어떤 구조를 이루며 구현되는 것이 좋을지 알아보자. Spring 웹 계층 Web Layer 외부 요청 (@Filter, 인터셉터, @ControllerAdvice) 에 대한 전반적인 영역 컨트롤러 (@Controller), 뷰/템플릿 영역 Service Layer @Service에 사용되는 서비스 영역 @Transactional이 사용되어야 하는 영역 트랜잭션과 .. 2020. 7. 23.
[스프링부트와 AWS로 혼자 구현하는 웹서비스] Entity 클래스 @Getter @NoArgsConstructor @Entity public class ArtItem extends BaseTimeEntity { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) private Long ano; @ManyToOne(targetEntity = Member.class, fetch = FetchType.EAGER) @JoinColumn(name="artist", nullable = false) private Member member; @Column(length = 500, nullable = false) private String title; @Column(columnDefinition = "TEXT", nullable = fal.. 2020. 7. 23.
[스프링부트와 AWS로 혼자 구현하는 웹서비스] JPA 소개 >> JPA를 사용하게 된 흐름 어떻게 데이터를 저장할까? 객체지향 프로그래밍 언어 => 기능과 속성을 한 곳에서 관리하는 기술. 서로 다른 사상을 가지고 있다. "패러다임 불일치 문제 발생" JPA를 사용하자 ! -개발자는 객체지향적으로 프로그래밍을 한다. -JPA는 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행한다. -SQL에 종속적인 개발을 하지 않아도 된다. JPA (Java Persistence API) 인터페이스이다. 자바 표준명세서이다. JPA라는 인터페이스를 사용하려면 구현체가 필요하다. 대표적으로 구현체로는 Hibernate, EclipseLink 등이 있다. 하지만, Spring에서는 구현체를 쉽게 사용하고자 추상화시킨 Spring Data JPA 모듈을 사용한다. JPA 관계.. 2020. 7. 22.