본문 바로가기

JPA4

12/20 GDSC 백엔드 스터디 정리 목차 1. 백엔드 과제 요구사항 이번 주는 백엔드 스터디에서 과제를 주었다. 가상의 기획자가 존재한다는 가정하에 기능 요구 사항이 주어지고 이에 따른 데이터베이스 구성과 엔티티 형성을 생각해보자 백엔드 과제 요구 사항 기능 요구 사항 주어진 주제 -> 페이스북 유저 유저는 회원가입, 로그인을 통해 가입할 수 있습니다. (필요한 값: email, nickname) (도전) 회원가입과 로그인 시 JWT와 Session 중 하나를 선택할 수 있습니다. 글 유저는 게시글을 올릴 수 있습니다. (필요한 값: 게시글 제목, 내용) 유저는 게시글을 수정할 수 있습니다. 유저는 게시글을 삭제할 수 있습니다. 유저 모든 유저는 모든 게시글에 좋아요를 남길 수 있습니다. 모든 유저는 게시들에 남긴 좋아요를 취소할 수 있습.. 2022. 12. 25.
11/28 GDSC 백엔드 스터디 정리 목차 1. Data JPA Data JPA Data JPA Interface Data JPA 주요 메서드 save(S): 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다. delete(T): 엔티티 하나를 삭제한다. 내부에서 EntityManager.remove() 호출 findById(ID): 엔티티 하나를 조회한다. 내부에서 EntityMaganager.find() 호출 getOne(ID): 엔티티를 프록시로 조회한다. 내부에서 EntityManager.getReference() 호출 findAll(_): 모든 엔티티를 조회한다. 정렬(Sort)이나 페이징(Pageable) 조건을 파라미터로 제공할 수 있다. Data JPA 기타 메서드 COUNT: count...By 반환타입 long EXIS.. 2022. 12. 4.
11/21 GDSC 백엔드 스터디 정리 목차 1. JPA 2. Data JPA JPA 영속성 컨택스트 JPA를 이해하는데 가장 중요한 용어 엔티티를 영구저장하는 환경이라는 뜻 EntityManager.persist(entity); 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저 팩토리와 엔티티 매니저 엔티티와 엔티티의 생명주기 엔티티 ==> 테이블에 대응하는 하나의 클래스 비영속(new/transient) -> 영속성 컨택스트와 전혀 관계가 없는 새로운 상태 영속(managed) -> 영속성 컨택스트에 관리되는 상태 준영속(detached) -> 영속성 컨택스트에 저장되었다가 분리된 상태 삭제(removed) -> 삭제된 상태 비영속 영속 영속성 컨택스트의 이점 1차 캐시 동일성(identity)보장 트랜잭션을 지원하는 쓰기 지연(tran.. 2022. 11. 26.
11/14 GDSC 백엔드 스터디 정리 목차 1. ORM 2. JPA 3. 트랜잭션 ORM ORM Object - relational mapping(객체 관계 매핑) 객체는 객제대로 설계 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 대중적인 언어에는 대부분 ORM 기술이 존재 ORM의 등장 동기 데이터베이스를 사용함에 있어 기본적으로 SQL에 의존적인 개발을 피하기 어렵다. 사실상 개발자 == SQL 매퍼 객체지향 프로그래밍의 장점 객체지향 프로그래밍은 추상화, 캡슐화, 정보 은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. ORM이 없을 시 상속의 경우 1. 객체 분해 2. INSERT INTO ITEM ... 3.INSERT INTO ALBUM ... 4. 각각의 .. 2022. 11. 20.