
어느 덧 11월이 다 지나가 참 시간이 빠르다고 느낀 한 주였다. 이번 주에는 새로 시작한 팀 스터디를 개시했다. 또 두 번째 단위 프로젝트가 시작했던 터라 할 일이 많아졌으며, 스프링 부트 강의가 공부할 새 없이 몰아쳐 정말 쉽지 않던 한 주였다.
이번주도 어떤 내용 학습했는지 링크 아래에 남겨두고, 회고 시작해 보겠다.
지난 미니 프로젝트 이후로 스프링 부트 수업과 프로젝트를 시작하기 전에 개인적으로 연습해 보기로 한 개인 프로젝트가 많은 도움이 되었다.
하지만 정말 깨작거리듯 해서 정말 자그마한 예습만 되었다. 미리 어떻게든 해보니 예습이 되었고, 또 반대로 개인 프로젝트에 작성했지만 이해하지 못했던 것들이 이해가 되는 부분도 있었다.
단위 프로젝트가 시작됐다. 개인 프로젝트, 사이드 프로젝트와 스터디가 겹치지만 어느 것 하나 타협할 수 없는 것 같다.
Rest API 와 PostMan, Swagger 사용 방법을 배웠다.
Rest API란 자원에 URL로 이름을 붙이고 이에 대한 작업을 HTTP메서드 GET, POST, PUT, DELETE 으로 표현하는 것이다. 표현은 JSON으로 주로 한다.
REST API 에서 JSON을 사용하므로, @ResponseBody + @Controller 조합을 통해 응답방식을 처리한다. 얘는 View를 반환하지 않고 JSON을 반환한다.
@ResponseEntity를 통해 상태코드 + 헤더 + Body를 개발자가 직접 구성하는 객체이다.
이번 단위 프로젝트는 Swagger를 사용해야 한다. Swagger의 어노테이션은 아래와 같다.
| 어노테이션 | 역할 |
|---|---|
| @Tag | API 그룹 설명 |
| @Operation | API 설명, 요약 |
| @ApiResponses | 여러 응답 코드 정의 |
| @ApiResponse | 하나의 응답 코드 정의 |
| @Schema | DTO 필드 설명 |
| 기능 | 어노테이션 |
|---|---|
| REST API Controller | @RestController |
| 요청 URL 매핑 | @RequestMapping, @GetMapping 등 |
| URL 경로 변수 | @PathVariable |
| 단일 파라미터 | @RequestParam |
| Form → 객체 | @ModelAttribute |
| JSON → 객체 | @RequestBody |
| 응답 상태코드 | @ResponseStatus |
| 개별 예외 처리 | @ExceptionHandler |
| 글로벌 예외 처리 | @RestControllerAdvice |
여기서 중요하다고 생각되는 것 몇 가지만 정리해놓겠다.
/users?id=3@GetMapping("/search")
public String search(@RequestParam String keyword) {}
form-data를 객체(DTO)로 자동 바인딩@PostMapping("/join")
public String join(@ModelAttribute UserDTO user) {}
@PostMapping("/users")
public String save(@RequestBody UserDTO user) {}
1주차 때 공부한 내용은 DB, 서버, 스프링과 스프링 부트에 대해 공부했다. 주로 IoC, DI, SpringContainer, Bean에 대해 이야기했다.
이 시간을 통해 얻은 내용은 빈의 필드 주입보다 생성자 주입을 하는 이유, RDB의 중요성, @RestController의 역할 등이 있다.
어떤 공부를 했는지는 깃허브 링크에 들어가보면 확인할 수 있다.
개인 프로젝트 공부 시간 부족으로 인해 수업 진도 따라가기 벅차고 뒤쳐짐. 새롭게 생긴 스터디와 그 위에 또 얹힌 단위 프로젝트로 개인 공부하고 정리할 시간이 정말 부족했다. 물론 스터딩 공부 내용과 프로젝트 경험이 소중하지 않은 것은 아니나 나의 페이스를 놓치고 싶지 않은 마음에 불안했던 것 같다.
한동안 개인 데일리 스크럼 로그를 작성하지 않아서 내가 무얼하고 있는지 손에 잡히지 않는 기분도 들었다. 현재 우선순위를 파악하고 무엇을 먼저 하고 지켜야할지 판단하고 선택할 필요가 있다.
단위 프로젝트에 대한 경각심이 첫 번째 단위 프로젝트보다 많이 떨어졌다. DB작성, 비지니스 로직 작성, 그리고 API 작성과 swagger 사용법 까지 오히려 해야할게 훨씬 많고 더 많이 준비하고 공부해야 하는 영역인데 속도가 나지 않고 무얼 해야할지 감이 잘 잡히지 않아 조바심이 날 때가 있다.
개인 프로젝트를 계속 빼먹고 있는데 짬을 내서라도 진행해보자.
스크럼 로그 다시 시작
단위 프로젝트에 대한 마일스톤을 혼자라도 정해서 무엇을 언제까지 해야할지 정해놓아야 마음이 편할듯 하다.
기록도 빼먹지 말고 이어가야 자산이 되므로 프로젝트 회고도 준비해보자.
스토디 팀에서 진행중인 데일리 커밋, 스터디, 사이드 프로젝트도 속도 조절은 하되 멈추지는 말자.