Spring 기초탄탄#1 JPA, MVC
2022/10/06
- 학습내용
1. JPA(Java Persistence API)
JAVA에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스 모음이다.
실제적으로 구현된것이 아닌 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다.
ORM(Object-Relational Mapping)
JAVA에서 클래스를 만들어서 실행하면 DB에 테이블이 자동으로 생성되게 하는 기법이다.
ORM 프레임워크는 객체와 테이블을 매핑해 패러다임의 불일치를 개발자 대신 해결해준다.
객체는 객체대로 생성하고, 데이터베이스는 데이터베이스에 맞도록 설계를 가능하게 해준다.
개발자는 이를 매핑하는 방법만 전달해주면 된다.
JPA는 JAVA를 통해서 영구적으로 프로그래밍하기 위한 인터페이스이다.
DB세상에 있는 데이터를 자바세상에서 모델링하려면 JPA가 필요하다. 즉 번역기 같은 역할이다.
자바 컬렉션(ex)배열, -> DTO같은 방식을 사용하기도 한다.)에 객체를 저장하듯이 JPA에게 저장할 객체만 전달하면 JPA가 대신 처리해준다.
2.controller, service, repository 구조 흐름
MVC패턴
(model-view-controller)의 약자로 개발을 할 때 3가지 형태로 나누어 개발하는 패턴이다.
사용자가 보는 페이지, 컨트롤, 데이터 처리 이 3가지 방식으로 구현한다.
중복코딩 방지, 유지보수 편리, 확장성 용이, 유연성 증가 등의 장점이 있다.
Client - Controller - Service - Repository - DB
MVC 패턴으로 구현하는 구조 흐름 방식이다.
controller
사용자(클라이언트)의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할
사용자의 요청 진입 지점, 요청에 따라 해당 처리 결정을 servic에 넘겨준다.
service
controller에서 호출받은 요청을 처리하는 역할이다.
DB의 데이터가 필요한 요청을 경우 Repository에게 요청을 한다.
service는 알맞은 정보를 가공(해당 로직을 수행)하여 controller에게 데이터를 넘겨준다.
controller는 servic의 결과물 데이터를 사용자에게 전달해준다.
repository
entity에 의해 생성된 db에 접근하는 메소드들을 사용하기 위한 인터페이스이다.
DB에 연결,해제, 자원 관리 등을 하고 CRUD 작업을 처리한다.
3. Request 방식
(param, query, body)
param
리소스를 식별해야하는 상황
특정 id나 이름을 가지고 조회할 때 사용한다.
이미 예상된 변수 값, 등록된 변수 값을 받아올 때 사용한다.
query
정렬이나 필터링을 해야하는 상황
어떤 키워드를 검색하거나, 요청 할 때 필요한 옵션을 전달 할 때 사용한다.
경로의 각 쿼리 문자열에 매개 변수에 속성이 포함된 개체
ex)localhost:3000/about?username=이동재
? 뒷부분을 query라고 한다.
usetname 매개변수의 이동재 라는 값을 가져온다.
body
query나 param으로 보이는 데이터 말고 URL에는 보이지 않는 오브젝트 데이터(XML, JSON, MultiForm)를 담는다.
보통 POST를 사용하여 JSON 형식 데이터를 request body 안에 넣어 보낸다.
post로 유저의 정보를 업로드 했을 때 사용한다.