웹 서비스 동작 원리 : 클라이언트와 서버의 요청과 응답으로 동작한다.
⭐ MVC 패턴 : 화면, 처리, 데이터 분야를 각 담당자 별로 나누는 기법 ⭐
- Controller : 클라이언트로부터 요청을 받고, - View : 최종 페이지를 만들어주고, - Model : 최종 페이지에 쓸 data를 View에게 전달
뷰 템플릿 페이지에 헤더-푸터 레이아웃을 적용하시오
DTO와 form의 action / method
JPA : JAVA로 DB에게 명령할 수 있게 하는 도구 / JPA의 핵심 도구 2가지 - Entity, Repository
동일 타입의 빈이 여러 개라면(하나의 인터페이스에 여러 개의 구현 클래스가 있다면) 스프링이 어떻게 구분을 해서 알맞은 빈을 주입할까?
개발 시 반복해서 작성되는 필수 코드들을 간소화 시켜주는 라이브러리를 **롬복(Lombok)**이라고 하며, 이러한 간소화를 '코드의 구조 또는 성능을 개선하는 작업' 즉, 롬복을 통한 **리팩터링(Refactoring)**이라고 한다.
1. 요청 url을 Controller가 받고 / 2. Repository가 찾는 데이터 정보를 DB에서 Entity로 가져오고 / 3. 이 Entity를 Model을 통해 View template으로 전달해 결과 페이지 만들기!
DB속 모든 Article을 목록으로 조회하시오
링크 (Link) : 미리 정해놓은 요청을 간편히 전송하는 것 / 리다이렉트(Redirect) : 클라이언트에게 재요청을 지시하는 것, 재요청을 받은 클라이언트
- 서버의 역할 분담은 `MVC` - DB와의 소통은 `JPA` - 데이터 관리는 DB의 언어인 `SQL` 을 통해 이루어짐 - 데이터가 서버로 전송되는 과정은 `HTTP`
RedirectAttributes = redirect시 데이터를 전달할 수 있는 방법 중 하나
DB 쿼리: INSERT(생성), SELECT(조회), UPDATE(수정), DELETE(삭제)
RestAPI 란? 웹 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식.
REST API 를 사용할 때는 설계 규칙을 잘 지키도록 하자!
RestController를 만들어 JSON 형식의 데이터를 주고받는 게시글 CRUD Rest API를 구현해보자.
Service 계층을 추가해 Controller 에 때려 박았던 역할을 분배하자. (+트랜잭션과 롤백 맛보기)
서비스를 검증하는 테스트를 진행해보자
Entity의 연관관계 설정을 위해 사용하는 @JoinColumn 과 DB에서 '특정 문자를 포함한' 값 전체를 찾는 방법에 대해 알아보자.