<aside>
🔐 JPA 가 무엇인가요?
</aside>
- JPA(Java Persistence API)란 자바에서 사용하고 있는 ORM의 표준으로 인터페이스의 모음이다. JPA의 인터페이스를 구현한 대표적인 오픈소스가 Hibernate, EclipseLink, DataNucleus이다.
- ORM(Object Relational Mapping)은 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. 객체지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용하여 두 모델 간의 불일치가 발생하게 된다. 이러한 문제를 ORM을 통해 객체 간 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해 줄 수 있다.
- Hibernate
- JPA의 실제 구현 class를 모아둔 것이 Hibernate.
- Hibernate에서 자주 사용하는 것들을 Spring boot가 묶어서 보관하는데 그것이 Spring date jpa이다.
<aside>
🔐 Controller, Service, Repository 가 무엇인가요?
</aside>
MVC패턴이란걸 먼저 이해해야 하는데, Model, View, Controller의 약자로서 개발을 할 때 3가지 형태로 역할을 나누어 개발하는 방법론을 이야기한다. Model은 데이터베이스의 데이터를 다루고, View는 시각적인 UI, Controller는 Model이 데이터를 어떻게 처리할지 알려주는 역할을 한다.
- Controller란, MVC에서 C에 해당하며 주로 사용자의 요청을 처리한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 한다. 즉, 사용자의 요청이 진입하는 지점이며 요청에 따라 어떤 처리를 할지 결정을 Service에 넘겨준다.
- Service가 Contoller에게 줄 알맞은 정보를 가공하는 과정을 ‘비즈니스 로직을 수행한다’라고 한다. Service가 비즈니스 로직을 수행하고 데이터베이스에 접근하는 DAO(실제로 DB에 접급하는 객체, DTO(계층간 데이터 교환을 위한 객체))를 이용해서 결과값을 받아온다.
- Repository란, Entity에 의해 생성된 DB에 접근하는 메서드들을 사용하기 위한 인터페이스이다.
<aside>
🔐 restAPI의 put 과 patch 는 어떤 차이점이 있을까요? 어떤 경우에 사용하면 좋을까요?
</aside>
| 구분 |
수정 범위 |
데이터 전송 |
전송되지 않은 데이터 처리 방법 |
| PUT |
전체 |
전체 데이터 |
null 값으로 업데이트 |
| PATCH |
일부 |
일부 데이터 |
기존 데이터 유지 |
<aside>
🔐 우리가 브라우저에서 구매한 도메인 주소를 입력하면 만들어 놓은 aws EC2 서버까지 전달이 되어서 해당 서버에게 요청을 보낼 수 있습니다. 이 과정이 상세하게 어떻게 진행되는지 그림으로 한번 그려볼까요?
</aside>

- 사용자가 브라우저에 URL을 입력하거나 화면에 보이는 버튼, a태그 등을 통해 요청
- 브라우저는 DNS를 통해 서버의 진짜 주소를 찾음 (ip 주소, port 번호)
- HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성