블로그 프로젝트 - 프로젝트에 필요한 개발 개념, 스프링 어노테이션에 대하여

최민수·2023년 2월 5일
0

[개발] Java Spring

목록 보기
1/18

SSR vs CSR, SPA vs MPA 특징과 장단점에 대해

  • SPA와 CSR이 같은 것인지?

  • 정답은 No! https://velog.io/@hlna0308/SPA와-CSR은-같을까
    - SPA, MPA는 페이지를 하나만 쓰는지, 여러개 쓰는지의 차이이고 CSR, SSR은 렌더링을 어디서 하냐의 차이로 비교 대상이 아니다.
    - SPA에서는 첫 페이지만 받아오고 이후에 데이터의 수정,조회를 하고 싶기 때문에 CSR이란 방식을 채택한 것이다.
    - 반대로 MPA는 동적이지 않은 페이지를 상황에 맞게 클라이언트에 뿌려주기 때문에 SSR이란 방식을 채택한 것이다.

  • 참고링크:
    https://hanamon.kr/spa-mpa-ssr-csr-장단점-뜻정리/


URI vs URL

  • URL은 URI의 종류 중 하나. URI가 인터넷의 resource를 name 또는 location으로 가르키는 identifier라면, URL은 무조건 name+location으로 이루어진 URI 타입 중 하나. 즉, URL은 리소스 뿐만 아니라 인터넷에서 어떻게 접근할 수 있는지까지 알려주는 것.

  • 참고링크:
    https://danielmiessler.com/study/difference-between-uri-url/


Http Method 9가지

각각 무슨 기능 담당, 어떤 상황에 사용하는지

  • GET - 주어진 URI를 통해 서버에서 데이터를 검색할 때 사용.
  • POST - HTML form을 사용하여 데이터를 서버로 보낼 때 사용.
  • PUT - 데이터 수정 시 사용. 데이터의 내용을 replace 할 때 사용.
  • DELETE - 주어진 URI로 특정 표현을 가진 모든 데이터를 삭제할 때 사용.
  • PATCH - 데이터 수정 시 사용. PUT과 유사하지만, 바뀔 내용만을 JSON이나 XML 형태로 들고 있어야 됨.
  • OPTIONS - 특정 웹서버가 지원하는 HTTP 메소드 목록이나 기타 옵션이 궁금할 때 사용.
  • HEAD - GET과 동일하지만, status line과 header section만 전송.
  • TRACE - HTTP 요청 내용을 요청자에게 다시 echo함. 디버깅할 때 사용.
  • CONNECT - 클라이언트가 웹서버에 대한 네트워크 연결을 설정할 때 사용.

참고링크:
https://www.tutorialspoint.com/http/http_methods.htm


RequestParam, RequestBody, ModelAttribute, ResponseBody

어떤 상황에 사용하는지 정확한 쓰임새 알기

  • RequestParam : GET이나 POST로 request로 전달된 데이터들이 url 상에 params로 존재할 때 @RequestParam 이 붙은 변수에 자동으로 값을 할당해 주는 기능.
  • @ModelAttribute : json format 데이터를 dto 클래스나 특정 data type 객체를 만들어 할당하여 가져와줌.
  • @RequestBody : HTTP 메세지의 body 정보를 그대로 조회하는 기능.
  • @ResponseBody : model을 view로 반환하지 않고 반환된 객체를 response에 그대로 담도록 하는 기능.
    - ResponseBody + Controller → @RestController

Junit5 jsonpath 사용법


ControllerAdvice 사용법

  • 클래스에 어노테이션을 달면 그 특정 controller 뿐만아니라 Application 전체에 걸친 controller에서 exception이 터지면 여기의 메서드로 넘어옴.

RequriedArgsConstructor, NoArgsConstructor, AllArgsConstructor 사용법

  • @RequiredArgsConstructor: final 또는 @NotNull 이 붙은 필드의 생성자를 lombok으로 생성해주는 어노테이션.
  • @NoArgsConstructor: 기본 생성자(paramater X) lombok으로 생성해주는 어노테이션.
  • @AllArgsConstructor: 객체 내에 모든 필드를 인수로 받는 생성자를 lombok으로 생성해주는 어노테이션. 하지만, 보통 build 패턴으로 사용하는 것이 코드 가독성 측면에서 더 선호됨.

profile
CS, 개발 공부기록 🌱

0개의 댓글