2023년 04월 25일

@VERO
Created Date · 2023년 04월 25일 11:04
Last Updated Date · 2023년 04월 25일 11:04

LOG

  • 우르와 페어가 됐다. 레벨 인터뷰 때도 같은 조고 같은 데일리 조원이라 사실상 아는 사람이었다. 처음으로 아는 사람과 페어가 되었다! 우르는 아는 게 정말 많다. 김영한님 강의를 다 들었다고 했는데 그래서 그런지 이번 미션하는 게 굉장히 수월했다. 칭찬을 많이 해줘서 뿌듯하게 페어 프로그래밍 할 수 있었다. 중간에 우르와 같이 이해가 안 되는 부분이 있었는데 납득할 만한 결론이 나온 것도 좋았다. 주장이 부딪힐 때 의견을 접지 않고 설득하려는 부분도 좋았다. 쓰고 나니 칭찬밖에 없네
  • 점심에 우르, 주노, 레오와 연어 식당에 갔다. 연어 식당에서 연어 비빔밥을 먹었다. 레오와 이야기 안 해봤는데 오늘 꽤 이야기한 것 같아서 좋았다.
  • 미션 구현이 빨리 끝났다. 내일 테스트 코드만 작성하면 돼서 조금 여유롭다. 하고 싶은 공부를 할 수 있어서 기쁘다~
  • 박스터와 저녁에 체스해서 졌다. 체스 어렵네;;; 열심히 하지는 않았지만 역시 머리 쓰는 거라 어려운 듯.. 주드에게 체스 실력 삼투압 받았어야 했는데 못 받아서 졌나 보다~

배운 것

  • @Controller 에서 상태 코드 지정 없이 void를 리턴하게 되면 view를 찾을 수 없다는 예외가 발생한다. 그런데 201 상태 코드를 지정하면 예외가 발생하지 않아서 이상하다고 생각했다. 찾아보니 상태 코드를 지정하지 않으면 자동으로 200 상태 코드가 지정되는데, 200이 반환되면 DispatcherServlet 이 뷰를 렌더링 해야 한다고 가정하게 된다. 제공된 view가 없으므로 view를 찾을 수 없다는 예외 메시지를 던지게 된다. 201의 경우에는 DispatcherServlet 이 요청이 성공적으로 처리되어 view를 렌더링할 필요가 없는 것으로 간주한다.
  • @ResponseStatus 를 사용하여 status code를 지정해 줄 수 있다.
@Controller
public class MyController {

    @PostMapping("/my-endpoint")
    @ResponseStatus(HttpStatus.CREATED)
    public void handlePostRequest() {
        // handle the request and create the new resource
    }
}
  • resources/data.sql 에 insert 문을 적어두면 자동으로 값을 넣어준다. (auto-increment 값도 넣어줘야 한다.)
insert into product(id, name, price, image_url)  
values (1, '피자', 10000, 'https://t1.daumcdn.net/cfile/tistory/241D303357DD2A1404');  
  
insert into product(id, name, price, image_url)  
values (2, '치킨', 20000, 'https://pelicana.co.kr/resources/images/menu/best_menu03_200623.jpg');

애플리케이션이 실행되면 data가 자동으로 삽입 된다.

  • validation 코드 작성하기
// build.gradle
implementation 'org.springframework.boot:spring-boot-starter-validation'

gradle에 의존성을 작성해준다.

import javax.validation.constraints.NotBlank;  
import javax.validation.constraints.Positive;  
  
public class ProductModifyRequest {  
  
    @NotBlank  
    private String name;  
  
    @Positive  
    private int price;  
  
    @NotBlank  
    private String imageUrl;  
  
    public ProductModifyRequest() {  
    }  
    public String getName() {  
        return name;  
    }  
  
    public int getPrice() {  
        return price;  
    }  
  
    public String getImageUrl() {  
        return imageUrl;  
    }  
}

validation 어노테이션을 사용해서 값 검증을 한다.

궁금한 것

  • @Validated@Valid 의 차이점이 뭘까?
  • axios는 뭘까

어려웠던 것

느낀 것

  • 친구가 쓴 블로그 글을 보게 되었는데, 가치관 글이었다. 최근에 내 가치관에 대해서 생각해 볼 일이 있었는데 나와 다르게 좀 더 긍정적인 글이라 신기했다. 멋지다고 생각하는 친구인데 가치관도 멋있어서 좀 본받아야겠다고 생각했다. 지금 밝고 긍정적으로 살고 있으니까 이때를 틈타서 긍정적인 가치관을 가져보는 것도 좋을 것 같다.
  • 사람마다 공부의 방식이 다른 것 같다는 생각을 요즘 더 많이 한다. 강의가 정말 잘 맞는 사람도 있고, 책 읽는 게 도움이 많이 되는 사람도 있다. 나는 어떻게 공부하나... 생각해 봤는데, 항상 뭔가를 사용해보고 이해가 안 되거나 궁금한 부분을 알아보는 방식으로 공부하는 게 제일 재밌는 것 같다. 생각해보면 예전부터 뭔가를 먼저 배우고 사용하는 건 너무 재미없었다. 앞으로도 부딪히면서 배워가는 사람이 되고 싶다.
  • 오늘은 많이 공부하고 배웠다. 이번주 시작한 지 2일 되기는 했지만 ㅋㅋ 주간 회고 모임에서 다짐했던 것처럼 이번 주에는 미션에 좀 더 열중하고 있어서 기쁘다. 이번 리뷰어는 럿고인데, 좋은 리뷰 받았으면 좋겠다!
  • 조급하지 않다. 조급하지 않은 게 좋은 걸까 아닌 걸까 싶다. 앞으로 인생이 좀 남았으니 너무 조급하지 않은 게 좋은 것 같다가도 내년에는 취업을 하고 싶은데 그걸 생각하면 좀 더 조급해야 할 것 같다. 내가 모든 걸 챙길 수는 없지만 지금 내가 챙겨야 할 걸 못 챙기고 있는 건 아닐까..? 그런 생각이 갑자기 든다. 뭐든 확신이 없어서 그런 듯. 조만간 뭐 어떻게든 방향을 정해야겠다.