오늘 진행한 학습 요약
1. 기초 Spring 5주차
- HTTP 요청 데이터
- Client에서 Server로 Data를 전달하는 방법
- Spring 요청 데이터
- @RequestParam
- @ModelAttribute
- HTTP Message Body(요청)
- TEXT
- HttpEntity
- @RequestBody, @ResponseBody
- JSON
- HTTPMessageConverter
- Spring 응답 데이터
- Server에서 Client로 Data를 전달
- 정적 리소스
- View Template
- HTTP Message Body(응답)
- CRUD 실습
2. 알고리즘 코드카다 Day21 (작성 생략)
CodingTest Git-hub 링크 : https://github.com/chews26/CodingTest
학습 정리
1. 기초 Spring 5주차
- HTTP 요청 데이터
- Client에서 Server로 Data를 전달하는 방법
- 1. GET + Query Parameter(=Query String)
- 2. POST + HTML Form(x-www-form-urlencoded)
- 3. HTTP Request Body
- Client에서 Server로 Data를 전달하는 방법
- Spring 요청 데이터
- @RequestParam
- URL에서 파라미터 값과 이름을 함께 전달
- @ModelAttribute
- 요청 파라미터를 받아 필요한 Object로 바인딩
- HTTP Message Body(요청)
- @RequestParam, @ModelAttribute는 GET + Query Parameter와, POST HTML Form Data를 바인딩하는 방법
- TEXT
- HTTP Request Body에 Data가 전송되는 경우 HttpMessageConverter를 통해 바인딩
- 현대에는 Restful API를 주로 사용하고 있어서 대부분의 경우 JSON 형식으로 통신
- HttpEntity
- HttpEntity는 HTTP Header, Body 정보를 편리하게 조회
- Spring은 Http RequestBody Message를 읽어서 String이나 Object로 자동으로 변환
- @RequestBody, @ResponseBody
- Spring에서 @RequestBody, @ResponseBody 어노테이션을 사용하면 각각 Request, Response 객체의 Body에 편하게 접근하여 사용
- JSON
- Json은 @RestController 에서 가장 많이 사용되는 데이터 형식
- Request Header의 content-type이 꼭 application/json
- HTTPMessageConverter
- Spring Framework에서 HTTP 요청과 응답을 변환하는 인터페이스
- 요청 데이터를 자바 객체로 변환하거나 자바 객체를 응답 본문으로 변환
- @RequestParam
- Spring 응답 데이터
- Server에서 Client로 Data를 전달
- 정적 리소스
- View Template
- HTTP Message Body(응답)
- 정적 리소스
- 웹 애플리케이션에서 변하지 않는 파일들을 의미
- HTML, CSS, JavaScript, 이미지 파일들(JPG, PNG, GIF) 등이 정적 리소스에 해당
- View Template
- Spring에서는 Thymeleaf, JSP와 같은 템플릿 엔진을 사용해 View Template을 작성
- iew Template은 서버에서 데이터를 받아 이를 HTML 구조에 맞게 삽입
- 클라이언트에게 전송되는 HTML 문서로 변환하여 사용자에게 동적으로 생성된 웹 페이지를 제공
- HTTP Message Body(응답)
- REST API를 만드는 경우 Server에서 Client로 HTML을 전달하는 방식이 아닌 HTTP Message Body에 직접 Data를 JSON 형식으로 담아 전달
- Server에서 Client로 Data를 전달
- CRUD 실습
- HTTP API 설계
- 로그인과 같은 특별한 기능을 제외한 대부분의 API는 CRUD 작업을 수행
- HTTP Method
- POST : CREATE
- /memos
- GET : READ
- /memos/{id}
- PUT, PATCH : UPDATE
- /memos/{id}
- DELETE : DELETE
- /memos/{id}
- POST : CREATE
- Restful API → URL Mapping
- HTTP Method + URL 만으로 어떤 API인지 구분가능해야 함
- HTTP API 설계