Backend/JPA

· Backend/JPA
앞서, JPA를 이용해 데이터를 조회해와 클라이언트로 반환하는 API를 작성할 때에는 반환 타입으로 엔티티를 그대로 사용하면 안된다. 엔티티를 바로 반환할 때의 문제점은 아래 더보기를 참고하자.더보기엔티티를 직접 반환할 때의 단점 1. 엔티티를 직접 노출하게 될 경우 엔티티가 수정되면 API 스펙이 변경되어 버린다. 예를 들어 name 필드를 username으로 변경하게 되면, API를 호출해 Response를 받는 클라이언트측 입장에서는 갑자기 name 데이터를 제대로 가져오지 못하는 경우가 발생한다.2. 엔티티는 다양한 스펙의 API에 대응할 수 있어야 한다. 하나의 API에 의존하는 엔티티는 다른 API 스펙에 유연하게 대처할 수 없다.3. 프레젠테이션 계층을 위한 로직이 엔티티에 추가된다. 엔티티..
· Backend/JPA
JPA는 DB 데이터와 Java Entity를 맵핑해주는 역할을 한다. 이 때, 영속성 컨텍스트(Persistence Context)를 중심으로 엔티티를 맵핑하고 관리한다. 따라서 영속성 컨텍스트라는 개념 없이는 JPA를 이해하기 어렵다. 영속성 컨텍스트(Persistence Context) 영속성(Persistence)의 사전적 의미는 ‘영원히 계속되는 성질이나 능력’이다. 데이터의 상태를 영구히 지속되게 하는 방법은 DB에 저장하는 방식을 떠올리기 쉽다. 하지만, 이 영속성 컨텍스트가 데이터를 관리한다는 말이 실제로 데이터를 DB에 저장하는 것은 아니다. 영속성 컨텍스트는 일종의 논리적인 영역이다. 한번 DB에서 조회해온 데이터는 영속성 컨텍스트에서 관리하며 이를 ‘영속 상태’에 있다고 한다. JPA..
· Backend/JPA
클래스 Member의 구조 @Table(name = "member") @Entity @Setter @Getter @ToString(exclude = "certKey") @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "title", nullable = false) private String title; @Column(name = "content", nullable = false) private String content..
· Backend/JPA
JPA는 Java 진영의 ORM 기술 표준으로, 애플리케이션과 JDBC API 사이에서 동작합니다. 💡 ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스를 매핑시켜줍니다. 객체와 관계형 데이터베이스의 테이블을 매핑해서 두 패러다임간의 불일치 문제를 개발자 대신 해결해줍니다. JPA와 Hibernate의 차이 JPA는 Java ORM 기술에 대한 API 표준 명세입니다. 즉, 인터페이스들을 모아둔 것이므로 JPA를 사용하기 위해서는 JPA를 구현한 ORM 프레임워크를 사용해야 합니다. 이에는 Hibernate, EclipseLink, DataNucleus 가 있는데, Hibernate가 가장 대중적으로 사용됩니다. Hibernate는 자바 진영에서 가장 많이 사용되는 OR..
devYH
'Backend/JPA' 카테고리의 글 목록