[코드스테이츠] S3.Unit1 회고

JinYoung Choi·2023년 2월 19일
0

새롭게 세션3가 시작됐다. 주로 실습으로 진행한다고 한다.

실습으로 진행하니 시간도 순식간에 지나가버렸다,

나는 주로 직접 코드를 쳐보는걸 좋아하는 입장에서 꽤나 좋은 방식이었다.

유닛1에선 스프링mvc방식에 대해 설명했다. 예습 해둔게 있어서 그런지 무난했다.

이번 세션도 화이또!!

Spring MVC 아키텍처

Spring MVC는 클라이언트의 요청을 편리하게 처리해주는 프레임워크.

Model

  • Model은 Spring MVC에서 M에 해당
  • 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model

View

  • View는 Spring MVC에서 V에 해당
  • View는 앞에서 설명한 Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스(Resource)를 제공하는 역할

Controller

  • Controller는 Spring MVC에서 C에 해당
  • Controller는 클라이언트 측의 요청을 직접적으로 전달 받는 엔드포인트(Endpoint)로써 Model과 View의 중간에서 상호 작용을 해주는 역할

DispatcherServlet

애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용하면서 클라이언트의 요청을 처리한다

Controller

Spring Boot 기반의 애플리케이션에서 주로 사용되는 Java 패키지 구조

  • 기능 기반 패키지 구조(package-by-feature)
  • 계층 기반 패키지 구조(package-by-layer)

@RestController - 해당 클래스가 REST API의 리소스(자원, Resource)를 처리하기 위한 API 엔드포인트로 동작함을 정의
@RequestMapping - 클라이언트의 요청과 클라이언트 요청을 처리하는 핸들러 메서드(Handler Method)를 매핑해주는 역할
@GetMapping - 클라이언트가 서버에 리소스를 조회할 때 사용
@PostMapping - 클라이언트의 요청 데이터(request body)를 서버에 생성할 때 사용
@PathVariable - 클라이언트 요청 URI에 패턴 형식으로 지정된 변수의 값을 파라미터로 전달받을 수 있다.
@RequestParam - 쿼리 파라미터(Query Parmeter 또는 Query string), 폼 데이터(form-data), x-www-form-urlencoded 형식의 데이터를 파라미터로 전달 받을 수 있다.
@RequestHeader - 개별 헤더 정보 및 전체 헤더 정보를 얻을 수 있다.

Rest Client - Rest API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리를 의미

DTO(Data Transfer Object)

주로 클라이언트에서 서버 쪽으로 전송하는 요청 데이터를 전달 받을 때, 서버에서 클라이언트 쪽으로 전송하는 응답 데이터를 전송하기 위한 용도로 사용

DTO가 필요한 이유

  • 클라이언트의 Request Body를 하나의 객체로 모두 전달 받을 수 있기때문에 코드 자체가 간결해짐.
  • Request Body의 데이터 유효성(Validation) 검증이 단순해진다.

클라이언트 쪽에서 JSON 형식의 데이터를 서버 쪽으로 전송하면 서버 쪽의 웹 애플리케이션은 전달 받은 JSON 형식의 데이터를 DTO 같은 Java의 객체로 변환하는데 이를 역직렬화 라고 한다.
서버 쪽에서 클라이언트에게 응답 데이터를 전송하기 위해서 DTO 같은 Java의 객체를 JSON 형식으로 변환하는 것을 직렬화라고 한다.

profile
백엔드 취준생

0개의 댓글