본문 바로가기

스프링 부트

(9)
직렬화(Serialization)와 역직렬화(Deserialization) 직렬화 : 객체를 바이트 스트림으로 변환 . 역직렬화 : 직렬화된 데이터를 해석해서 객체 형태로 만듬. 현재 실행중인 서버의 메모리에 저장되어있는 { name: "직렬화" , id:12345 } 이 객체를 하드디스크에 저장하고 싶으면 어떻게 해야 할까? ( 직렬화 ) 저장해둔 객체를 다시 서버가 꺼내와서 똑같은 객체로 변환시키고 싶으면 어떻게 해야 할까? ( 역 직렬화 ) 위 객체를 " {name: '직렬화' , id : 12345 } " 이렇게 하나의 문자열로 변환시켜서 파일에 저장해두고 나중에 해당 파일을 읽어와서 문자열을 파싱해 객체로 변환하는 방법도 있을것이고 [객체 프로퍼티 플래그 (ex 222) , 아스키코드("n") , 아스키코드("a") , .... , 객체 값 플래그 , 객체 값 ......
[JPA Entity 칼럼] Primary Key 칼럼 생성 - PK = @Id + @Column - 시퀀스 자동증가 PK = @Id + @Column + @GeneratedValue(strategy=GenerationType.IDENTITY) @Table(name="user_like") @Entity public class UserLike { @Id @Column(name="user_like_id") @GeneratedValue(strategy=GenerationType.IDENTITY) private Long userLikeId; } 실제 DB의 user_like 테이블 에서 user_like_id 칼럼은 UserLike 엔티티 에서 userLikeId와 대응됨. 데이터 타입: Long
[JPA] DB (Table) = 스프링 (Entity) = @Entity + @Table + 클래스 @Table(name="user_story") @Entity public class UserStory { // 해당 엔티티(테이블)의 칼럼을 정의 } 엔티티 이름: UserStory 데이터베이스에서 위 엔티티랑 맵핑되는 테이블 이름 = user_story
[프로젝트 적용] hibernate + Spring data jpa + postgresql build.gradle 에 의존성 추가 dependencies { //Spring data jpa implementation 'org.springframework.boot:spring-boot-starter-data-jpa' //postgresql runtimeOnly 'org.postgresql:postgresql' } application.properties 설정 #SET database (postgresql) spring.datasource.driverClassName=org.postgresql.Driver spring.datasource.url=jdbc:postgresql:도메인주소:포트번호/db # ex) spring.datasource.url= jdbc:postgresql://localhost..
[프로젝트 적용] Hibernate + Spring Data JPA 조합으로 ORM을 이용 JPA 구현체로는 Hibernate 라이브러리를 사용하고 Spring Data JPA를 통해 JPA를 더 쉽게 다룰 수 있도록 해서 이 둘의 조합으로 스프링 프로젝트에서 ORM을 활용 프로젝트에 적용 build.gradle에 아래와 같이 의존성을 추가하면됨. dependencies { // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' } 위 패키지를 설치하면 JPA 구현체 Hibernate도 같이 설치됨.
[Spring Data JPA] = JPA+ @ 이전글에서 Hibernate는 JPA구현체 중 하나라고 했음. 따라서 Hibernate 라이브러리를 사용한다면 JPA를 사용 할 수 있게됨. 이전글에서 JPA는 껍데기라고 했는데 (@Id, @Entity 등등의 단순 방법론을 정의한 인터페이스) 단순 JPA만 있다면 위 어노테이션을 사용할 수 없음 근데 Hibernate가 껍데기 속 내용을 채워줘서 JPA를 사용할 수 있게됨. 근데 Spring 프레임워크에서는 JPA를 보다 간편하게 사용할 수 있도록 Spring Data JPA를 지원함. Spring Data JPA는 JPA를 더 추상화 시켜서 기존 JPA의 방식을 사용할 수 있고 추가로 그보다 더 쉬운 방식으로 데이터베이스를 다룰 수 있게 해줌. 예를 들면, 사용자가 Repository 인터페이스에 정..
[JPA 구현체] 종류 Hibernate EclipseLink OpenJPA 여러가지가 있는데 Hibernate를 많이 사용함. 위의 구현체를 사용하면 JPA를 사용 할 수 있게됨.
[JPA] 자바에서 지원하는 ORM JPA (Java Persistence API) 약자. 자바 진영의 ORM 기술에 대한 API 표준 명세. JPA 인터페이스는 javax.persistence 패키지에 정의되어 있고 데이터베이스와의 상호작용을 위한 메서드들을 포함하고 있다. 쉽게 말하면 JPA는 이런거임. import javax.persistence.*; @Entity @Table(name = "students") public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int age; // Getters and setters } JPA에 따르면 1. 엔티티 클래스를 정의 ..