메가테라 포트폴리오 4주차 주간회고

샨티(shanti)·2022년 11월 14일
0
post-thumbnail

개발자가 되기 위해 공부하며, 혹등고래 성장일기를 쓰는 샨티입니다.
지극히 주관적이고 개인적인 이야기가 가득합니다. 😅

월요일에 주간회고를 작성하는게 아직 적응이 잘 안된다 ㅎㅎ
뭔가 지각생이 부랴부랴 월요일에 주간회고를 작성하는 느낌이랄까...ㅎㅎ
근데 적응 안된다고 하기에는 벌써 포트폴리오 주간이 4주나 지나버렸다.

우리 기수 모든 동료들이 '정말 시간 빠르다!!! 절반밖에 남지 않았어!!!' 하며 조급한 마음을 다스리고 있는데 나 역시도 마찬가지이다.
이미 지나간 시간은 돌이킬 수 없으니 얼마 남지 않은 시간동안 아직 비어있는 부분들이 있다면 기를 쓰고 채워나가고,
또 단단하지 않은 부분들이 있다면 더 무너지지 않도록 단단하게 또 견고하게 만들어나가야 한다.

이번주는 나에게 좀 버거운 주차이기도 했다. 평소보다 좀 더 목표치를 높이기도 했고 주 초반에 이틀 정도 특강에 참여하면서 프로젝트를 진행할 물리적 시간이 적게 느껴졌기 때문이다.
갠적으론 이번주에 목표로 삼았던 기능 중에서 약 80% 정도만 구현했다고 생각해서 마음이 편치는 않지만, 그래도 나만의 가이드를 아래와 같이 설정하고 개발을 진행했다.

  • 물리적인 시간이 부족할 때에는 '핵심이 되는 기능'이 무엇인지를 반드시 밝혀낸다. 단 2개의 태스크가 있다고 가정할 때, 그 태스크 두 개 중에서도 분명히 중요도가 0.000001 만큼 더 높은 태스크가 있을 것이다. 그걸 하는데 집중하도록 한다.
  • 주간 일정 뿐만 아니라 포트폴리오 전체 일정을 생각한다. 포트폴리오 전체 일정을 고려해야 하는 이유는 금주에 목표로 삼은 태스크들을 모두 수행하지 못했을 때 얼만큼의 버퍼를 확보할 수 있는지를 확인해야 하기 때문이다.

확실히 태스크에 우선순위를 부여하는 것이 큰 도움이 되었다.
순간 순간 '구현하고 싶은 것'과 '없으면 안되는 기능' 사이에서 선택해야 할 상황을 마주하는데 그 때마다 위에 적어둔 마음 속 가이드를 떠올리면서 '없으면 안되는 기능', 그리고 '우선순위가 높은 기능'을 구현하는데 집중했다.

이번주에 수행한 것들과 제대로 하지 못한 것들을 함께 생각해보면서 다가올 5주차, 스프린트로는 네번째 스프린트! ㅎㅎ 잘 준비해보고자 한다.


entity와 value object 사용범위를 넓혀본 한 주

이번주에 가장 큰 소득이 있다면 이틀 동안의 아샬님의 특강, 그리고 쑥스러움을 이겨내고 질문함으로써 entity와 값 객체에 대해 조금 더 명확히 구분하고 또 활용하게 된 점이다.
이 부분은 정말 큰 소득이고 앞으로 모델을 설계할 때에도 이번 경험을 살려서 좀 더 구조화된, 그리고 분명한 객체를 만들어나갈 수 있도록 공부할 것이다.

프로젝트를 진행하기 전, 강의를 통해서는 value object를 거의 만들지 않았었다.
14주차 풀스택 강의 막판에 AccountNumber라는 value Object를 만들어 사용했었지만 그 강의를 들을때만 해도 진정한 의미를 알지 못했다.
하지만 프로젝트 주간을 보내면서 entity에 들어갈 요소들이 굉장히 많아지고, 특히 '의미가 분명해지기 위해서 묶어주는 게 나아보이는' 요소들이 눈에 들어오면서 value object의 필요성을 정말 피부로 느끼게 되었다. 그리고나서 풀스택 강의에서 사용되었던 그 값 객체를 떠올려보니 반드시 우리 서비스 구현에 적용이 되어야 하는 사항이라는 점을 알게 되었다.

아샬님 강의를 듣고나서 좀 더 과감하게 value object를 사용해보기로 결정한 날 만들어 본 모델의 구조

처음이라서 좀.. 뭐랄까. 소심한 모습이다.

일주일이 지나고 난 뒤 조금 더 수정된 모델의 구조는 아래와 같다.

계속 모델 구조가 조금씩, 아-주 조금씩 약간씩 수정되는게 거슬렸는데...
오늘 스프린트 회의 때 노아님 피드백을 들으면서 문서나 설계가 조금씩 수정되는 것이 맞다는 이야기를 들으면서 더 좋은 방향성을 발견한다면 더 적극적으로 수정해야겠다는 생각이 들었다.


fake 객체로 삽질도 해보았음


삽질을... 해봤다는 것에만 의의를 두고싶은 fake....ㅎㅎ
아샬님이 아주 단호하게 말씀하셨다. fake를 남발하지 말라고...
그리고 정적 팩토리 메서드라서 절.대.로. 이렇게 쓰면 안된다고 하신다.

테스트 코드를 봤을 때 괴롭다 -> fake를 쓰면 간단할 것 같다는 생각이 들 때 도입하는 방향성이 맞다고 하셨다.

사실 이 삽질을 통해서 배운 것은 fake를 남발하지 말라~ 라는 것 뿐만 아니라 fake, 값 객체 등 결국 우리가 사용하려는 그 모든 것을 '왜 쓰는지' 고민해야 한다는 점이었다.
위에서 언급했던 값 객체도, 처음에는 쓰라니까 써볼까? 하는 생각이었다. 하지만 그렇게 사용해서는 다른 프로젝트를 진행할 때 뿐만 아니라 앞으로 개발을 할 때 '왜 이것을 사용해야 하는지'에 대한 근거가 없이 그저 후루룩 해치우는 데에 익숙해질 것이다.

지난 한주가 빡셌던 이유는 아샬님의 특강이 '왜 이것을 해야 하는가'를 끊임없이 질문하도록 만들었기 때문이다.
괴롭고 머리가 녹아내릴 것 같은 고통이지만 반드시 해야 하는 것. '왜' 이렇게 해야 하는가. '왜' 이것을 사용해야 하는가를 질문하는 것!


이번 프로젝트를 통해 잡고가고 싶은 부분 -> 로그인/회원가입 기능 구현 전 (가짜)로그인 계정 만들어서 테스트하기

심적으로 굉장히 난이도 높게 느끼는 부분이다.
로그인/회원가입 기능을 구현하기 전에 로그인 여부, 즉 액세스 토큰 보유 여부에 따라 달라지는 기능을 만들고 싶은데 가짜 로그인 계정을 가정하고 기능을 구현하는게 왜이렇게 어렵게 느껴지는지 모르겠다.
사실 header의 authorization 부분을 건드려주면 된다는 점은 알고 있지만 손이 잘 안떨어진다.

내가 생각하는 원인은 HTTP 통신에 대한 이해 부족이다.
그래서 이번 프로젝트를 통해 이 부분은 꼭. 그 process를 정확히 알고 가고 싶다.


미비한 문서 메이크업

노아님 피드백을 통해 문서 업데이트가 부족하다는 점을 발견했다. 마침 생각이 많은(ㅎㅎ) 동료가 문서 업데이트를 잘 하고 있어서 오늘은 새로운 기능 구현보다는 문서를 업데이트 하고 누락했던 인수테스트를 커버하는데 집중하고자 한다.
다음주 스프린트 종료 시 목표치 달성여부를 정확히 측정하기 위해 4주차 스프린트 계획 문서도 따로 만들었다 ㅎㅎ

기록하지 않으면 이력서에 쓸 수가 없으니.. 지금부터 좀 더 정교화시키는 작업을 해야겠다.
솔직히 말하면 기능 구현을 제시간 안에 못할까봐 항상 마음에 쫓겨서 문서는 신경을 쓰지 않았다. 하지만 더 중요한걸 놓친 채 남들 다 하는 기능 구현에만 매달린다면 핑크펭귄은 커녕... 이도저도 안되는 1인이 되겠거니...

이번주는 누수지점을 잘 잡아나가면서 도전적인 목표도 다 달성했으면 좋겠다.
욕심이지만!!!!!! 그래도 지난 주 달렸듯이 이번주도 잘 달려보자!

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글