전체 글 (124) 썸네일형 리스트형 3. 영속성 관리 - 내부 동작 방식 JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping) 영속성 컨텍스트 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경"이라는 뜻 EntityManager.persist(entity); 엔티티의 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) : 영속성 컨텍스트에 관리되는 상태 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) : 삭제된 상태 영속성 컨텍스트의 이점 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연(transactional write-behind) 변경 감지(Dir.. 3. JPA 시작하기 프로젝트 생성H2 데이터베이스 설치 및 실행 (persistence.xml 작성)Maven Project 생성 (Java 8) (pom.xml 작성)데이터베이스 방언JPA는 특정 데이터베이스에 종속 X각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름- 가변 문자 : MySQL은 VARCHAR, Oracle은 VARCHAR2- 문자열을 자르는 함수 : SQL은 표준은 SUBSTRING(), Oracle은 SUBSTR()- 페이징 : MySQL은 LIMIT, Oracle은 ROWNUM방언 : SQL 표준을 지키지 않는 특정 데이터베이스만의 고유한 기능hibernate.dialect 속성에 지정주의할 점엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유엔티티 매니저는 쓰레드간에 공.. 2. JPA 소개 JPAJava Persistence API자바 진영의 ORM 기술 표준ORMObject-relational mapping (객체 관계 매핑)객체는 객체대로 설계관계형 데이터베이스는 관계형 데이터베이스대로 설계ORM 프레임워크가 중간에서 매핑대중적인 언어에는 대부분 ORM 기술이 존재JPA는 애플리케이션과 JDBC 사이에서 동작JPA는 표준 명세JPA는 인터페이스의 모음JPA2.1 표준 명세를 구현한 3가지 구현체하이버네이트, EclipseLink, DataNucleusJPA를 사용해야 하는 이유SQL 중심적인 개발에서 객체 중심으로 개발생산성- 저장 : jpa.persist(member)- 조회 : Member member = jpa.find(memberId)- 수정 : member.setName("변경.. 1. 강좌 소개 자바자바 ORM 표준 JPA 프로그래밍 - 기본편 ORM 표준 JPA 프로그래밍 - 기본편 JDBC → MyBatis, JDBCTemplate → JPA 2. 프로젝트 환경설정 1. Spring Boot 프로젝트 생성 2. Lombok 설정 3. H2 Database 설치 4. JPA와 DB 설정 (application.yml) spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop; username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging: level: org.hibernate.SQL: debug org.hibernate.type: trace 1. 강의 소개 9. 빈 스코프 빈 스코프란? 스프링 빈은 기본적으로 싱글톤 스코프(스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지)로 생성된다. 스코프 : 빈이 존재할 수 있는 범위. 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프. 웹 관련 스코프 - request: 웹 요청이 들어오고 나갈때 까지 유지되는 스코프. - session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프. - application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프. 프로토타입 스코프 프로토타입 스코프를 스프링 컨테이너에 조회하면 .. 8.빈 생명주기 콜백 빈 생명주기 콜백 시작 스프링 빈은 다음과 같은 라이프사이클을 가진다. 객체 생성 → 의존관계 주입 스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다. 스프링 빈의 이벤트 라이프사이클 스프링 컨테이너 생성 → 스프링 빈 생성 → 의존관계 주입 → 초기화 콜백 사용 → 소멸전 콜백 → 스프링 종료 초기화 콜백: 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출 소멸전 콜백: 빈이 소멸되기 직전에 호출 참고: 객체의 생성과 초기화를 분리하자. 생성자는 필수 정보(파라미터)를 받고, 메모리를 할당해서 객체를 생성하는 책임을 가진다. 반면에 초기화는 이렇게 생성된 값들.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 16 다음