210520 목 TIL

bongf·2021년 5월 20일
0

TIL

목록 보기
36/43

✔ Done

  • api, url 설계
  • 호눅스 수업 ( 야구 게임 데이터 넣는 과정 )
    • 알게된 것 : 원래 게임에서는 세션 디비가 따로 있으며 일시적으로 저장하는 데이터는 (ex. 게임의 현상태) 이곳에 저장한다
      • 왜 야구 게임을 할 때 데이터베이스가 복잡했는지 알게 되었다.
    • 디비저장하는 기준 : 남겨야할 데이터인가?
      • 하지만 엄격하게 기준을 적용해 데이터를 조금 남기게 되면 로직이 복잡해진다.

📂 Feeling

Good

  • 오랜만에 TIL을 작성한다. 앞으로 다시 꾸준히 작성해보자

Bad


🗒 Learned

1) GetMapping은 @RequestBody 불가

1.1) 문제

  • AIRBNB 서비스를 만들면서 여러 검색조건에 대한 검색 결과를 받는 요청을 만들고 싶었다.
  • PostMapping과 같이 @RequestBody로 적용해보았다.
    • 1) POSTMAN에서 실행해 봤을 때 적용되었지만
    • 2) 이노께서 프론트 단에서 fetch로 보내봤을 때 해당 요청이 가지 않는다고 했다.
      • 실제로 해보니 그랬다.

1.2) 이유

1.3) 해결1. 파라미터로 받기

  • 각각의 요청을 여러 파라미터로 나눠서 받는 방법이 있다.
    • http://localhost:8080/searches?location="hello"&checkIn="checkIn"

1.2) 해결1. @ModelAttribute 로 받기

  • 그런데 필드가 너무 많은 경우 @ModelAttribute를 활용해 묶어줄 수 있다.
    • 단, form-data 형태로 전달되어야 한다.
    • 단, @MdelAttribute 객체에는 setter 필요
    • 요청객체안에 또다른 객체가 있는 형식은 불가하다. 파라미터 하나하나를 값으로 받아준다고 생각하면 된다.
  • 정리 잘 되어있던 블로그 : @RequestBody, @ModelAttribute, @RequestParam의 차이

1.2.1) 해결1보충 : @ModelAttribute 어노테이션이 없어도 된다.

@ModelAttribute을 지정하지 않아도 별도로 어노테이션 지정이 없으면 @ModelAttribute을 자동 할당합니다.
profile
spring, java학습

0개의 댓글