[프리온보딩] 일곱번째 과제 회고

이동훈·2021년 11월 27일
0

프리온보딩

목록 보기
8/8

대망의 프리온보딩 마지막 과제가 나왔다. 마지막 과제답게 이번엔 개인 과제로 나왔고, 이제 그동안 팀 프로젝트를 통해 얻었던 노하우들을 활용해야 하는 단계에 왔다. 기간이 일주일이 주어졌기 때문에 다소 여유가 있는 편이었지만, 그동안 훌륭한 팀원들로부터 도움을 많이 받아왔던게 사실이기에 약간 걱정이 되었다. 그래도 어쩌겠느냐! 부딪쳐 봐야지.

고민했던 점

과제 내용을 읽어보며 어떻게 DB 구조를 짜고, 어떤 service와 controller를 만들어야 할지 생각했다. 과제 내용이 친절하게 제시되어있는 편이었는데도, 역시나 몇 가지 의문점이 생겼다.

  • 사용자가 다른 사용자의 타이어 정보를 볼 수 있는가?

    • 과제 설명에선 인증해야 api를 호출할 수 있다고 했지만, 인가에 대한 이야기는 없었다. 하지만, 개인정보인 userId를 마음대로 query나 params에 쓰는 것은 아닌 것 같았다. (다른 사용자의 타이어 정보를 조회한다는 것도 이상하고) 따라서 사용자는 자기 자신의 타이어 정보만 조회할 수 있도록 가정하고, 토큰값을 이용하여 조회하는 방식을 택했다.
  • 자동차 정보 저장과 타이어 정보 저장 api를 분리해야 하는가

    • 데이터를 한꺼번에 받아와 저장해야 하므로, 한 api로 묶는게 맞지 않나 생각이 들었다. 하지만 하나의 api는 하나의 역할에 집중해야 한다는 원칙이 자꾸 머릿속에 아른거렸다. 고민 끝에 결국 한 api로 묶기로 했다.
  • 올바르지 않은 타이어 규격 정보?

    • 과제에 주어진 포맷과는 약간 다른 타이어들도 존재한다. 이 타이어들이 잘못된 정보는 아닌 듯하여 고민이 되었다. 하지만 과제에서 형식에 맞는 데이터만 넣으라 했기에, 일단 형식에 맞지 않으면 에러메시지를 반환했다.
  • 자동차 정보 저장 시 upsert?

    • 중복된 데이터가 들어올 경우 upsert를 고려하려 했다. 굳이 중복된 데이터를 upsert할 이유가 없는 듯하여(수정사항이 있는 것도 아니고), 에러메시지를 반환하는 방식으로 변경했다.

결국 어느 정도 빈 부분은 나의 재량에 달려있는 듯 했다. 분명 내가 잘못 이해한 부분도 있을 수 있지만, 최대한 과제가 요구하는 바에 맞추기 위해 노력했다.

배운 점

이번 프로젝트를 진행하며, 이전에 진행했던 팀 프로젝트들을 많이 참고했다. 이 모듈이 하는 역할은 무엇이고, 어떻게 동작하는 지를 다시 살펴보며, 전체적인 그림을 그려보는 시간을 가졌다. 덕분에 실제 작업이 원활하게 진행될 수 있지 않았나 생각한다.

비록 작업에 들어가기 전에 테스트 코드부터 작성했던 것은 아니지만, 이번엔 Unit 테스트 코드도 만들어보았다. jest가 아직 많이 낯설다. 이후에 다른 작업할 때도 계속 적용해보면서, 내 것으로 습득하는 과정을 거쳐야겠다.

혼자 하더라도 협업을 하는 것처럼 커밋 메시지 컨벤션과 이슈 관리에 충실히 임했다. 확실히 그동안의 팀 프로젝트로 습관화된 것이 도움이 된 것 같다.

profile
I will find a way, I always have.

0개의 댓글