본문 바로가기

회고록 모음/코드숨-스프링 과정 회고록

[회고록] 코드숨 Spring - 2주차 코드리뷰 (Spring Web MVC, ControllerAdvice, Marko.js)

[ 2주차 회고록 📚]

📌 커리큘럼 

 


📌 코드리뷰 with 깃허브

github.com/CodeSoom/spring-week2-assignment-1/pull/2

 

[Spring 2주차 과제] Spring Web으로 ToDo REST API 만들기 by developerOlive · Pull Request #2 · CodeSoom/spring-week2-a

📍Backend ToDo 목록 얻기 - GET /tasks ToDo 상세 조회하기 - GET /tasks/{id} ToDo 생성하기 - POST /tasks ToDo 제목 수정하기 - PUT/PATCH /tasks/{id} ToDo 삭제하기 - DELETE /tasks/{id} npm 테스트 통과 확인 테스트 코드 작

github.com


1. 한 것

- 코드숨 스프링 2회차 강의 2개 듣기(스프링 웹, 프론트엔드 만들기) 

- Spring Web으로 ToDO REST API 만들기 과제 수행하기

- Marco.js 사용하여 프론트엔트 작업해보기

- 코드 리뷰 확인 후 리팩토링 진행

- Spring MVC 관련 자료 공부해보기

- 자바 Optional 관련 자료 공부해보기

- 데메테르(디미터) 법칙 관련 자료 찾아 공부해보기

 

2. 배운 것

 

만든 ToDo REST API를 테스트해본답시고 내가 추가해본 최대 할 일 개수가 5개이다.

프로그램이 잘 돌아가고, 테스트를 통과하면 '됐다.'라고 생각하기 쉬웠다.

하지만 내가 회사에 들어가서 다룰 데이터의 수가 과연 저렇게 적은 숫자일까?

생각보다 엄청난 숫자일 수 있다.

 

 

일례로, 2020년 크리스마스 때 왓차 서버가 터진 적이 있었다고 한다.

 

서버가 터진 왓차.....

"해피 크리스마스, 해리" 대사를 25일 오전 12시에 정확히 보기 위해 

10시 32분 59초에 해리포터와 마법사의 돌을 재생하려는 사람들이 몰려 서버가 터진 것이다.

 

'난 이제 신입으로 취직하니까 아직 저렇게 큰 서버를 다루는 회사를 바로 들어가진 않지 않을까?'

이런 생각을 하지 말자. 큰 생각을 할 수 있어야 큰 곳에 갈 수 있다.

 


 

 

 

내부 구조를 노출하지 않는 것.... 기본적이면서도 중요한데 깊게 인지하지 못했던 부분이다.

종립 트레이너님 블로그 글에 이해하기 쉽게 정리가 잘 되어 있어서 공부하는데 도움이 많이 되었다.

(아래 공부하면서 참고한 스크랩 목록에 주소 있음)

 

 


 

Optional을 제대로 공부하지 않고 썼다는 것을 반증해주는 피드백인 듯하다.

그래서 관련 자료를 찾아보는데 생각보다 내용이 많고 난이도가 있다고 느껴졌다.

다시 공부를 좀 더 해봐야 할 것 같다...

 

 


 

 

 

나는 따로 service 클래스를 만들지 않고 controller와 repository클래스만 있었는데,

다른 동기분들 코드를 보니 service 클래스를 따로 분리해 놓는 경우가 있었다.

 

그래서 종립 트레이너님께 관련하여 문의를 드렸는데,

controller / service / repository의 역할을 공부해보라고 말씀하셔서 위와 같이 정리하고 피드백 요청을 드렸었다.

 

 

 

ㅎㅎㅎㅎㅎ "아쉽다"는 코멘트가 3번이나 등장한다.

내 답변 내용이 아쉬운 것이 나 자신도 아쉽다...😂

 

그래도 '이와 관련된 질문을 회사 면접 등에서 듣게 되었을 때 어떻게 대답할지를 고민해보세요.'라는 부분 때문에

더 자세히 공부하게 된 것도 감사했고, 

어떤 면을 보완해야 할 지도 그리고 어떤 답변이 더 나을지도 자세하게 피드백을 주셔서 너무 감사했다.

 

 

"Repository는 추상화된 DB 역할입니다."라는 것이 정말 맞는 말인데,

저 피드백을 보고 '추상화'에 대한 자료를 찾아봤는데 생각보다 너무 어려웠다.

뭔 말인지 대-충은 알겠는데 그래서 설명해보려면 정리가 안 된다.

좀 더 공부해보고 다시 답변을 보완해서 트레이너님께 피드백 요청 드려야겠다...!

 


 

3. 느낀 것

개발자의 길을 오래 걸으신 고수분들의 코드 리뷰를 받는다는 게

나에게 얼마나 큰 도움이 되는지 다시 한번 느끼게 되는 한 주였다.

 

그 범위와 그 깊이가 나와 너무 차이가 나서 허우적대며 따라가고 있다.

그래도 몰랐던 것을 하나하나 알아가게 될 때의 그 기분은 참 좋다.


 

윤석 트레이너님께서 1주차 마지막 코멘트로

테스트 요구사항에 대해서 아직 정확히 파악하지 못하신 것 같은데

다음 과제에서는 요구사항에 맞게 테스트를 통과시키면 좋을 것 같다고 하셨었다.

그래서 이 부분을 가장 첫 번째 목표로 두고 했는데 잘 통과되어서 다행이었다.

 

근데 테스트 통과는 어떻게 보면 기본적인 기능 구현(요구하는 기능 구현)이 되었는지를 체킹 하는 것이고,

실제로 코드가 잘 돌아가는지는 테스트 코드를 통해서 더 자세하게 해봐야 했었다.

근데 테스트 코드를 처음 접하다 보니... 이게 뭐시여... 하면서 겨우 테스트 코드 하나(?)를 작성해보았다.

 

 

테스트 코드를 배우기 시작하면 장난 아닐 것 같다... (마음의 준비를..... 후헙....)

 


그리고 정말 크게 와 닿았던 것 중에 하나는,

1주차 과제를 할 때 고민도 많이 하고 코드도 길었었던 부분이 Spring Framework를 통해서 간단하게 해결된 것이다.

'이래서 Framework를 사용하는구나.'라는 것을 정말 많이 느꼈다.

 

 

4. 자기 선언

 

- 지치지 말자. 

나를 독려도 해주고, 너무 몰아세우지 말고, 그래도 열심히는 하되 지치지 않도록 노력하자. 

지치면 아무것도 못한다.