Today I Learned

2024 스파르타 내일배움캠프 Sping 트랙 참여 // day25

shinelee26 2024. 11. 6. 21:39

오늘 진행한 학습 요약

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
      •  
  • 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 요청과 응답을 변환하는 인터페이스
      • 요청 데이터를 자바 객체로 변환하거나 자바 객체를 응답 본문으로 변환

 

  • 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 형식으로 담아 전달

 

  • CRUD 실습
    • HTTP API 설계  
      • 로그인과 같은 특별한 기능을 제외한 대부분의 API는 CRUD 작업을 수행
      • HTTP Method
        • POST : CREATE
          • /memos
        • GET : READ
          • /memos/{id}
        • PUT, PATCH : UPDATE
          • /memos/{id}
        • DELETE : DELETE
          • /memos/{id}
      • Restful API → URL Mapping
      • HTTP Method + URL 만으로 어떤 API인지 구분가능해야 함