Spring Model
-
JPA는 OR Mapping을 기반으로 동작한다. JPA에는 자바 객체와 DB의 테이블을 연결하기 위한 많은 장치들이 있는데 객체와 테이블의 차이를 잘 이해하지 못하고 사용하면 전~혀 생각하지 못했던 SQL이 동작하면서 우리의 프로젝트를 망가트린다.지난 시간까지는 하나의 테이블을 어떻게 엔티티로 표현할 수 있는지 살펴봤는데 이번 시간에는 테이블의 연관관계를 어떻게 객체의 관계로 표현할 수 있는지, 주의해야 할 내용은 뭐가 있는지 살펴보자.그 둘은 다르다!! 관계 구성 방식먼저 DB를 구성하는 테이블이 관계를 맺기 위해서는 Foreign Key(이하 F.K)를 이용한다. 이때 F.K를 설정한 테이블은 관계의 소유자가 된다. Post와 Reply의 관계에서는 Reply 테이블에 F.K 제약사항을 설정하며 R..
01. 연관 관계 - N:1 단방향 관계 처리JPA는 OR Mapping을 기반으로 동작한다. JPA에는 자바 객체와 DB의 테이블을 연결하기 위한 많은 장치들이 있는데 객체와 테이블의 차이를 잘 이해하지 못하고 사용하면 전~혀 생각하지 못했던 SQL이 동작하면서 우리의 프로젝트를 망가트린다.지난 시간까지는 하나의 테이블을 어떻게 엔티티로 표현할 수 있는지 살펴봤는데 이번 시간에는 테이블의 연관관계를 어떻게 객체의 관계로 표현할 수 있는지, 주의해야 할 내용은 뭐가 있는지 살펴보자.그 둘은 다르다!! 관계 구성 방식먼저 DB를 구성하는 테이블이 관계를 맺기 위해서는 Foreign Key(이하 F.K)를 이용한다. 이때 F.K를 설정한 테이블은 관계의 소유자가 된다. Post와 Reply의 관계에서는 Reply 테이블에 F.K 제약사항을 설정하며 R..
2020.06.03 -
이번 포스트에서는 OR-Mapping에 사용되는 애너테이션들에 대해 좀 더 자세히 알아보자.주요 annotation들 @Entity@Entity는 Entity로 관리할 클래스에 추가해야 하는 필수 annotation으로 클래스를 DB 테이블과 매핑하게 한다.@Target(TYPE)public @interface Entity { String name() default "";}@Entity의 target이 type이지만 final class, enum, interface 등에는 사용할 수 없다.name 속성은 entity의 이름으로 일반적으로 생략하면 클래스 이름이 적용된다. 패키지는 다르지만 이름이 같은 entity가 있다면 구별을 위해서 설정할 수 있다. entity의 이름은 나중에 JPQL을 작성할 ..
02. OR-Mapping과 상속이번 포스트에서는 OR-Mapping에 사용되는 애너테이션들에 대해 좀 더 자세히 알아보자.주요 annotation들 @Entity@Entity는 Entity로 관리할 클래스에 추가해야 하는 필수 annotation으로 클래스를 DB 테이블과 매핑하게 한다.@Target(TYPE)public @interface Entity { String name() default "";}@Entity의 target이 type이지만 final class, enum, interface 등에는 사용할 수 없다.name 속성은 entity의 이름으로 일반적으로 생략하면 클래스 이름이 적용된다. 패키지는 다르지만 이름이 같은 entity가 있다면 구별을 위해서 설정할 수 있다. entity의 이름은 나중에 JPQL을 작성할 ..
2020.06.02 -
이번 포스트에서는 Entity 작성법과 간단한 C/R/U/D 동작을 테스트해보자. 객체와 테이블의 매핑JPA는 OR Mapping 프레임워크이다. OR Mapping은 자바 객체인 Object(=Entity)와 DB의 테이블(=Relation)을 매핑시키는 작업으로 JPA의 출발점이라고 볼 수 있는 매우 중요한 작업이다.Entity 클래스 작성Entity 클래스를 작성할 때는 몇 가지 반드시 지켜야 하는 규칙들이 있다.기본 생성자: Enttiy 클래스는 반드시 기본 생성자를 가져야 하며 생성자의 접근자는 public 또는 protected만 가능하다.@Entity: 클래스 선언부에 반드시 @Entity가 필요하다.기본 키: 모든 Entity는 반드시 하나 이상의 필드를 기본키로 지정해야 하며 이를 위해 ..
01. Hello Spring Data JPA이번 포스트에서는 Entity 작성법과 간단한 C/R/U/D 동작을 테스트해보자. 객체와 테이블의 매핑JPA는 OR Mapping 프레임워크이다. OR Mapping은 자바 객체인 Object(=Entity)와 DB의 테이블(=Relation)을 매핑시키는 작업으로 JPA의 출발점이라고 볼 수 있는 매우 중요한 작업이다.Entity 클래스 작성Entity 클래스를 작성할 때는 몇 가지 반드시 지켜야 하는 규칙들이 있다.기본 생성자: Enttiy 클래스는 반드시 기본 생성자를 가져야 하며 생성자의 접근자는 public 또는 protected만 가능하다.@Entity: 클래스 선언부에 반드시 @Entity가 필요하다.기본 키: 모든 Entity는 반드시 하나 이상의 필드를 기본키로 지정해야 하며 이를 위해 ..
2020.05.30 -
이번 시간에는 스프링에서 Model 단 프로그래밍을 위한 내용에 대해 살펴보자.Model MVC 디자인 패턴MVC 디자인 패턴이란 애플리케이션을 구성하는 가장 기본적인 패턴으로 애플리케이션을 Model, View, Controller 3가지 모듈로 분리해서 바라본다.Controller: 사용자의 입력을 처리하고 Model과 View 사이의 인터페이스 역할(@Controller)Model: 비즈니스 로직과 데이터 관리 로직을 처리하는 부분(@Service, @Repository)View: 사용자에게 보여지는 부분(JSP, Thymeleaf, ...)이렇게 영역을 모듈로 분리해서 관리하는 이유는 대부분 모듈 교체에 따른 유지보수가 용이하게 하기 위함이다. 예를 들어 View를 구성할 때 JSP로 만들었다가 ..
01. Model 영역과 Spring이번 시간에는 스프링에서 Model 단 프로그래밍을 위한 내용에 대해 살펴보자.Model MVC 디자인 패턴MVC 디자인 패턴이란 애플리케이션을 구성하는 가장 기본적인 패턴으로 애플리케이션을 Model, View, Controller 3가지 모듈로 분리해서 바라본다.Controller: 사용자의 입력을 처리하고 Model과 View 사이의 인터페이스 역할(@Controller)Model: 비즈니스 로직과 데이터 관리 로직을 처리하는 부분(@Service, @Repository)View: 사용자에게 보여지는 부분(JSP, Thymeleaf, ...)이렇게 영역을 모듈로 분리해서 관리하는 이유는 대부분 모듈 교체에 따른 유지보수가 용이하게 하기 위함이다. 예를 들어 View를 구성할 때 JSP로 만들었다가 ..
2019.09.09