SpringBoot 정리하기1

여상우·2022년 11월 18일
0

SpringBoot

목록 보기
2/3

Spring 공부 필기하기

Swagger : API 문서화 자동화 툴. 이 외에도 SpringRestDocs가 있다.


< Spring 간단 구조 >


Repository == DAO(Data Access Object)
DTO(Data Transfer Object)
VO(Value Object) : VO는 Read-Only이지만, DTO는 아님!

API에서 HTTP Method

  • GET : 리소스 조회
  • POST : 요청 데이터 처리, 주로 데이터 등록에 사용
  • PUT : 리소스를 대체, 해당 리소스가 없으면 생성
  • PATCH : 리소스를 일부만 변경
  • DELETE : 리소스 삭제
  • GET은 보통 리소스를 조회할 때 사용하며, 서버에 전달하고 싶은 데이터는 query를 통해서 전달한다. 메시지 바디를 사용해서 데이터를 전달할 수는 있지만, 지원하지 않는 곳이 많아서 권장하지 않는다. (겟방식, 데이터조회)

  • POST는 데이터 요청을 처리하고, 메시지 바디를 통해 서버로 데이터를 전달한다. 주로 ‘신규 리소스를 등록’하거나 ‘프로세스 처리’에 사용된다. (포스트방식 - 데이터 전송, 데이터 입력 / 생성 / 처리)

  • PUT은 리소스가 있으면 대체하고 리소스가 없으면 생성한다. 쉽게 말해 데이터를 덮어쓴다. (수정생성 및 덮어쓰기)
    PATCH는 PUT과 마찬가지로 리소스를 수정할 때 사용하지만, PATCH는 리소스를 일부분만 변경할 수 있다. (일부분만 수정생성 및 덮어쓰기)

  • DELETE는 리소스를 제거할때 사용한다. (삭제)

Idempotence (멱등성) : 여러 번 수행해도 결과가 같음. 즉 재호출에도 데이터의 변형이 이루어지지 않는다. (GET은 계속 해도 변형이 없으니까)


@Annotations

  • @Api(tags = “제일 큰 굵은 제목”) - 제일 큰 제목부분
  • @ApiOperation(value = “API에 대한 설명 적기”, notes = “추가적인 설명”) - 경로 옆의 소제목부분
  • @ApiModel(value = “맨 아래 Model 부분의 이름”)
  • @ApiModelProperty(example = “Example Value 부분에 대한 설명을 적을 수 있다.”) - 내용부분
  • @PostMapping(path = “”) 특정 주소로 Mapping하는데 Post 방식을 사용함
  • @PutMapping(path = “”) 특정 주소로 Mapping하는데 Put 방식을 사용함
  • @RequestBody : 클라이언트가 보낸 요청이 Request인데, 여기서 Get이나 Post의 경우 Body에 데이터를 담아 전송하지만, XML이나 JSON 기반의 메세지를(데이터를) 전송하게 되는 경우엔 이 데이터를 자바 객체로 변경해줄 필요가 있다. 그래서 어노테이션을 사용하면 자동적으로 자바객체로 conversion을 해 줄 수 있다.
  • @ResponseBody : 반대로 서버에서 클라이언트로 데이터를 전송 할 때는 해당 어노테이션을 붙여서 자바 객체를 http에서 요청한 바디의 형태로 변경해줄 수 있다.
  • @RestController : @Controller + @ResponseBody라서 @Controller에 추가적으로 어노테이션을 붙여줄 필요가 없다.
  • @RequestMapping : 특정 URI로 보낸 요청을 Controller에서 어떠한 URL, method로 요청받을지를 결정하는 어노테이션
    ex) @RequestMapping(value = “/hello”, method = RequestMethod.GET)
    근데 이러한 방식 말고, @RequestMapping(value = “/hello”)을 상위에 사용하고, 해당 class 내부에 @GetMapping(), @PostMapping 등등을 사용하는 방식도 가능하다.
  • @GetMapping에 추가 주소로 들어가고 싶을 때에는 @GetMapping(“/hi”) 와 같이 사용한다.
    (@RequestMapping은 class와 method에 모두 사용가능. @GetMapping은 class 하위의 method에만 사용이 가능하다.)

this : 해당 클래스 내부에서 멤버 변수와 지역 변수의 이름이 같을 때, 메소드 내에서 멤버 변수를 지칭해줄 때 ‘this.변수명’과 같이 사용이 된다.
(static 메소드에서는 사용이 불가능하다.)

profile
Keep forwarding person.

0개의 댓글