본문 바로가기

JPA

(4)
스프링 부트 프로젝트 시작할 때, 몰랐던 것 - JPA(2) 이동욱 님의 책 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"를 보면서 기본적인 것들, 팁들을 많이 알았다. 이글의 출처이다. API를 만들기 위해 세 가지 클래스가 필요하다. * Request 데이터를 받을 DTO * API 요청을 받을 Controller * 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service -> 여기서 Service는 트랜잭션, 도메인 간의 순서 보장의 역할만 한다. 스프링 웹 계층을 살펴보자 Web Layer : 뷰 템플릿의 영역. 컨트롤러, JSP 등. 더불어 외부 요청과 응답에 대한 전반적인 영역. Service Layer : @Service에 사용되는 영역. 일반적으로 컨트롤러와 DAO의 중간 영역에서 사용된다. -> @Transactional이 사영되어야 하는..
스프링 부트 프로젝트 시작할 때, 몰랐던 것 - JPA(1) 이동욱 님의 책 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"를 보면서 기본적인 것들, 팁들을 많이 알았다. 이글의 출처이다. JPA는 자바 표준 ORM 기술이다. 웹 애플리케이션에서는 거의 관계형 데이터베이스가 필수이다. 따라서 객체를 관계형 데이터베이스에서 관리하는 것이 중요하다. 하지만 객체지향 언어를 사용한다면 여러 문제가 생긴다. 1. 프로젝트의 대부분이 코드보다 SQL이 가득해짐. -> 관계형 데이터베이스는 SQL로만 조작할 수 있다 보니, CURD에 대한 SQL을 매번 생성해야 한다.(했다.) 2. 패러다임 불일치. -> RDB는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이고 -> 객체지향 프로그래밍 언어는 기능과 속성을 한 곳에서 관리하는 기술이다. -> 이 둘의 시작점 조차 다르..
JPA와 Entity 기본 JPA : JAVA Persistence API. ORM(Object Relational Mapping)으로 RDB의 정보를 객체지향으로 활용할 수 있도록 도와주는 도구 JPA는 Object와 RDB를 매핑시켜 데이터를 쉽게 다루는 기술을 제공한다. 쿼리보다 객체를 더 다루기 때문에 프로그래밍에 더 집중할 수 있게 해주는 라이브러리다. JPA를 사용하기 위해 먼저 표기법을 알아야 한다. Camel Case : 첫문자는 소문자, 띄어쓰기 대신 대문자로 표기 - 자바의 변수를 선언할 때 사용 - userId Snake Case : 모두 소문자로 표기, 띄어쓰기는 언더바로 - DB칼럼에 사용 - user_id 표기법을 지켜야 JPA가 매핑시킬 수 있다. Entity : DB의 테이블과 대응되는 JPA의 클래스..
Spring Boot - JPA란? 데어프로그래밍 님의 스프링 부트 강의를 듣고 정리하는 글입니다. JPA란? Java Persistence API이다. -> Persistence(영속성)은 데이터를 생성한 프로그램이 종료되도 사라지지 않는 데이터의 속성이다. JPA는 자바의 데이터를 영구히 기록할 수 있는 API다. API라는 것은 인터페이스라는 것이고, 그렇다면 그것을 구현하는 무언가가 있어야 한다. ORM 기술이다. -> Object Relational Mapping. Object를 DB와 매핑하는 방법이다. JPA의 인터페이스를 이용해 자바의 클래스와 맞는 DB의 테이블을 자동 생성해준다. 반복적인 CRUD 작업을 생략하게 해준다. -> 자바 프로그램과 DB와의 연결, 쿼리 전송, 데이터 타입 변환 등등의 기능을 함수로 제공한다. ..