1주차때 순수 자바 코드로만 작성하던 TODO 과제를 Spring Framework로 다시 진행을 하면서 훨씬 편리하고 빠르게 기능개발을 할 수 있었다. 하지만 작성을 다 하고 코드리뷰를 받으면서 아직 Spring이 제공해 주는 기능에 모르는게 정말 많은 것을 알 수 있었다. 단순히 기능만 구현되고 예외처리를 어떻게 해줘야 할지 상태코드는 어떻게 내려야 할지에 대한 고민을 하면서 Spring이 제공해주는 기능에 대해 더 확실하게 공부해야 한다는 것을 느낄 수 있었다.
Front는 MarcoJS를 이용했는데 자바스크립트를 제대로 공부해본 경험이 없어서 가장 어려웠던 부분은 Front쪽의 개발부분 이였다. 감 조차 잡을 수 없어 다른 개발자분의 PR을 보면서 이해하려고 했지만 문법이 어색하여 기본적인 자바스크립트 문법 또한 공부해야 겠다고 생각했다.
@Override
public Optional<Task> updateTask(Long taskId, Task task) {
Optional<Task> editTask = findTask(taskId);
...
}
컨트롤러에서 호출되는 수정하기 메소드 코드이다. updateTask 이름으로 메소드를 작성했는데
변수명을 처음에 수정하는 객체의 뜻으로 editTask로 이름을 지어주었다. 오히려 변수가 editTask로 수정하는 메소드처럼 보인다는 피드백을 받고 나는 이것이 객체라는 것을 좀 더 명확하게 지어줘야 할 것 같은 느낌을 받아서 editTaskObject 로 변경해 주었다.
하지만 더 이상해 졌다는 피드백을 다시한번 받게 되면서 edit 키워드가 무언가를 수정하라는 뜻을 가지고 있는것 같다고 하셨다. 나는 다시 세번째로 taskObject 로 다시 변수병을 바꿧지만 foundTask 의 이름이 적절할 것 같다고 말씀해 주셨다. 이렇게 변수 이름으로 계속 고민을 하게 되면서 변수 이름을 조금 더 깊게 생각하고 지어야 한다는 것을 알게 되었다.
클라이언트에서 Json 값이 넘어올 때 컨트롤러에서는 String 타입으로만 받아 줘야 하는 줄 알고 있었지만 Long이나 다른 값들로 받을 수 있는것을 알게 되었다.
스프링에서 제공하는 ControllerAdvice와 ResponseStatus를 처음 사용해 보았다. 그 외에 더 많은 기능들을 살펴보고 공부해야겠다.