[VIBE Clone] Retrospective


1. Browser differences

  • Safari, Chrome, Firefox 등 brower는 많은데, 같은 코드여도 브라우저마다 결과가 달랐다.
  • 특히 streaming을 구현할 때 많이 느꼈는데, 노래의 재생시간이 safari에서는 보이지 않았는데 chrome에서는 보였다.
  • 음악을 중간에 눌러서 seek하면서 듣는 기능(오디오 탐색 기능)은 firefox에서는 자동으로 가능했는데, chrome에서는 range 설정이 필요했다. (관련내용: Streaming)
  • 그래서 만약에 구현한 기능이 제대로 뜨지 않는다면, 다른 browser에서도 실행시켜 보고 뭐가 다른지를 비교하는 것도 방법이겠다.

2. Modeling

  • 모델링과 API 계획을 제대로 짜고 시작하는 게 좋을 듯 하다.
    고민 많이 하고 시작하는데도 모델링을 꼭 수정하게 된다. API를 짜다보면 아차 싶은 것들도 있고, 이건 이렇게 바꾸는 게 좋겠다는 생각도 많이 든다. 크롤링 하다가도 모델을 수정하게 된다. 물론 사이트 구조를 완벽하게 알지 못하는 상황에서 짠 모델링이기 때문에 바뀌는 건 어쩔 수 없지만, 대충 짜다가는 모델부터 다 갈아엎는 상황이 발생하니까 초반에 최대한 정성을 들여서 모델링을 짜기로 한다.

  1. 어떤 API가 필요한지, 어떤 정보들을 어떻게 가져와서 어떻게 return 해줄 것인지를 대충이라도 미리 생각해본다.
  2. 정규화(Normalization)를 항상 생각한다.
    user table에서 gender 같은 경우는 table을 따로 빼서 정규화가 가능하다.
    값이 계속 바뀌거나 새롭게 들어오지 않고 고정되어 있는 경우에는 정규화를 다시 한번 생각하자.

Normalization(정규화)

| Database를 설계할 때 관계를 최대한 활용하여 중복을 최소화하는 것

3. 느낀점

  • 오디오 탐색 기능(seek)은 우리 프로젝트에서 중요한 기능이었는데, 하루종일 방법만 찾다가 결국 코드 한줄로 그게 구현되었다.
    구글링을 계속하면 되긴 되는구나 언젠가 나오긴 나오는구나! 프로젝트 하면서 가장 기분 좋은 순간이었다. 그리고 이 엄청난(?) 기능이 코드 한줄이면 끝난다는 게 신기하기도 하고 코드 한줄 한줄의 소중함을 알았다.
  • 같이하는 팀원한테서도 많은 걸 느꼈는데, git repo에서 내가 PR 날린 것, merge 된 것들을 모두 다 읽고 질문하는 걸 보고 놀랐다. 어떤 걸 수정했는지, 왜 이 부분을 넣었는지 다 이해하려는 모습, 내 코드뿐만 아니라 다른 팀들의 코드도 많이 참조하고 익히고 활용하는 게 대단하기도 하고 존경스러웠다. 1차 프로젝트 때는 같은 팀이어도 서로의 코드를 모르면서 각자 할일만 했었는데, 이번 프로젝트에서 만난 팀원의 모습에 반성을 많이 했다.
  • 같이 일하고 싶은 사람이 되어야 한다는 말을 들었다. 프로젝트를 해보니, 무슨 일이 생겨도 차근차근 해결해나가려고 하고 팀원들에게도 차분하게 상황 설명을 하는, 멘탈 관리를 잘하는 사람들이 팀원들에게 안정감을 주었다. 나는 계획대로 되지 않으면 마음이 급해져서 어쩔 줄 몰라하는데 이런 모습은 팀원들에게 더 불안함을 줄 것 같았다. 뭐든지 해낼 수 있다는 마음가짐으로, 팀원들을 든든하게 해줄 수 있는 사람이 되어야겠다.