본문 바로가기

Spring45

#3 영속성 관리 영속성 관리 JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context)라고 할 수 있다. 이는 '엔티티를 영구 저장하는 환경'이라는 뜻으로 해석 할 수 있다. 영속석 컨텍스트는 눈에 보이지 않는 논리적인 개념으로, JPA에서는 엔티티 매니저를 통해 엔티티를 영속성 컨택스트에 보관하고 관리한다. 예를 들어 EntityManager.persist(entity)를 실행하면 바로 DB에 바로 저장되는 것이 아니라, 영속성 컨택스트에 엔티티가 저장된다. 이런 식으로 JPA는 엔티티를 DB에 바로 저장하지 않고 우선적으로 영속성 컨택스트에 저장하고 관리한다. 1. 엔티티의 생명주기 엔티티의 생명주기는 다음과 같이 분류될 수 있다. ● 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 .. 2021. 8. 25.
#2 JPA 시작 JPA 시작 JPA를 사용하기 위해서는 JPA 구현체인 하이버네이트와 DB를 추가해야한다. 메이븐 환경에서 xml을 이용해 JPA 하이버네이트와 H2 데이터베이스를 추가한다. [라이브러리 추가 - xml] 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 추가로 xml등을 이용해 JPA를 설정해주어야 한다. [JPA 설정 - xml] ● persistence로 시작. XML 네임스페이스와 사용할 버전을 지정한다. ● persistence-unit 으로 이름 지정 ● DB, 사용자 이름, 비밀번호, DB url 지정 ● hibernate로 시작하는 속성은 .. 2021. 8. 25.
#1 JPA 소개 JPA 소개 현재 주로 사용되는 언어는 객체 지향 언어, 주로 사용되는 데이터베이스는 관계형 DB라고 볼 수 있다. 이런 환경에서 애플리케이션 개발을 할 때는 결국, 객체를 관계형 DB에서 관리하게 된다. 때문에 각 객체마다 일일히 SQL을 사용해서 객체를 관계형 DB에 매핑해주어야 한다. 그런데 객체와 관계형 DB의 구조는 같지 않기 때문에 매핑하는 것 자체도 어렵다. 예를 들어 객체는 상속관계가 있지만 관계형 DB는 상속관계라는 개념이 없다. 수많은 객체를 관계형 DB와 매핑하는 것도 힘든데 그 과정도 어렵고, 매핑 후에도 객체와 관계형 DB 구조의 괴리 때문에 많은 애로사항이 발생한다. 이를 해결하기 위해 JAVA진영에서 ORM 기술 표준으로 나온 게 JPA(Java Persistence API)이.. 2021. 8. 25.
#11 파일 업로드 파일 업로드 HTML Form 으로 파일을 서버에 전송하기 위해서는 문자가 아니라 바이너리 데이터를 전송해야 한다. 게다가 보통 파일을 업로드할 때는 파일만 전송하는 것이 아니라 다른 추가적인 정보도 전송해야 한다. 이 문제를 해결하기 위해 HTTP는 mutipart/form-data라는 전송 방식을 제공한다. [mutipart/form-data] mutipart/form-data 방식은 다른 종류의 여러 파일과 폼의 내용을 함께 전송할 수 있다. 각 항목은 Content-Disposition이라는 항목별 헤더로 구분되어있다. 1. mutipart 설정 스프링에서 multipart 데이터를 사용할 때 application.properties에서 여러 설정을 적용할 수 있다. [업로드 사이즈 제한] spr.. 2021. 8. 3.