First Project: 회고

Hiz·2020년 3월 9일
1
post-thumbnail

Fist Project는 어언 2달이나 지난 프로젝트라 내가 잘 쓸 수 있을 지 모르겠다... 기억을 끄집어내며 최대한 회고 포스팅을 작성해봐야겠다...

프로젝트 소개

diSlack

첫 번 째 프로젝트라 새로운 서비스를 만들기 보다는 그 동안 배웠던 것들을 복습하는게 더 좋을 거 같았고 그래서 클론 코딩을 해보기로 했다. 후보에 올랐던 건 '디스코드'와 '슬랙' 두 개였다. 슬랙을 베이스로 잡고 하되, 디스코드처럼 음성 메시지 전송까지 계획에 잡았다. (결국 이건 못했지만 ㅜㅜ) 그래서 프로젝트 이름은 두 개의 프로그램 이름을 합쳐 디슬랙으로 하게 되었다!

(우리가 만든 슬랙 클론 웹 페이지 중 하나. 워크스페이스 부분의 UI는 내가 작업했다.)


프로젝트를 하면서...

솔직히 이 프로젝트에는 아쉬움이 많이 남는다. 첫 프로젝트에 아쉬움 없는 사람 어딨겠냐고 할 수도 있겠지만 차원이 다른(?) 아쉬움이랄까...

일단 복습 차원에서는 잘 선택했던 프로젝트였다. 나중에 기본적인 REST API가 작성된 후에는 모듈 몇 개를 들여오긴 했는데 그 전에 기본 구동은 모두 수작업(?) 이었다. 인증모듈이라던가 이런 것들을 쓰지 않고 순수 작성한 API였기 때문에 서버의 역할이 아직 잘 잡히지 않았을 때 해보기 좋았던 프로젝트였던 것 같다.

하지만 적어도 나는 도전적이진 못했다. 같은 팀원분들 중에 유난히 속도가 빠른 분이 계셨다. 내가 맡은 부분까지도 본인이 새벽에 리팩토링 하시는 분이셨다. 그래서 나는 내가 작성한 코드에서 발전할 기회가 없었던 거 같다.

그래도 따라가고 배우기엔 좋았다! 비록 내가 작성하지 않은 코드라도 원본의 코드 파일을 같이 공유하고 있었기 때문에 내가 몰랐던 모듈을 사용한 부분은 직접 리서치하는 시간을 가졌다. 그 팀원분께 코드리뷰를 요청하기도 하고 이후에 더 자세히 알고 싶은 것은 혼자 코드를 보며 따라가려고 노력했다. 당시엔 내가 뒤쳐지는 거 같아 스트레스도 많이 쌓였었는데 파이널 프로젝트 때 이러한 부분이 밑거름이 되어 다양한 시도를 할 수 있게 되었다.

서버와 클라이언트는 분리되어 있기도, 아니기도 한다. 퍼스트 프로젝트 때 S3 sdk를 사용하려고 했지만 급한 마음에 결국 오류만 대거 방출해내고 성공하지 못했다. 당시에 클라이언트는 클라이언트대로, 서버는 서버대로 완전히 분리해서 작업을 했고 나는 클라이언트가 약하기까지 한데 분리해서 작업을 하니 나중엔 아예 클라이언트 코드를 따라가지 못하게 되었다. sdk를 사용하려면 클라이언트에서도 서버에 이미지를 보내줘야 했었는데 그 부분을 내가 처리하지 못했기 때문이다. 그래서 회고 시간에는 완전히 분리된 포지션이 아니라는 것을 같은 서버 포지션 팀원이랑 뼈저리게 느꼈었다. 이 경험을 토대로 파이널 프로젝트 때에는 같이 해보려고 했지만 결국 분리해서 작업할 수 밖에 없었다. 다른 점이 있다면 스키마 작성이나 플로우같은 초기 기획은 포지션을 나누지 않고 같이 했다는 점이다. 기획이 보다 탄탄해서 그런 지는 모르겠지만 파이널 때는 분리해서 작업을 해도 크게 핀트가 어긋났다는 점을 받지 못했다.

포인트는 '소통', '플로우', 팀원간의 우애(?) 였던 거 같다. 파이널 프로젝트 때도 역시 S3 sdk를 사용했지만(이번엔 내가 맡지는 못했지만ㅜㅜ) 오로지 서버에서도 처리가 가능한 부분이었다. 서버에서 먼저 S3에 보내주는 미들웨어를 작성한 뒤 클라이언트에 요청만 보내달라고 말하기만 하면 되었다. 퍼스트 때는 이 부분을 무조건 클라와 서버 동시에 작업해야한다고 생각해서 완전히 분리된 포지션이 아니구나-라고 느꼈는데 파이널 때 또 깨달은 것은 서버는 서버의 역할만을 수행할 수 있다는 점이었다. 이제와서 돌이켜보니 파이널 때는 클라와 백 사이에 소통이 전보다 원할했기 때문에 가능했던 것 같다. (나의 실력차이일 수도...?) 플로우도 두 포지션 같이 맞춰가려고 해서 파이널 때도 똑같이 내가 클라이언트의 코드를 보진 않았지만 나는 서버의 자리에서 서버의 역할만을 충실히 잘 해낼 수 있었던 것 같다.


회고를 마치며...

여러모로 퍼스트 프로젝트는 아쉬움이 많이 남는 프로젝트였지만 나는 이것 역시 이겨내려고 노력했다고 생각한다. 내가 뒤쳐지는 느낌을 받았어도 뒤에서 다른 팀원이 작성한 코드를 보며 따라가려고 노력했고 포기하지 않았다는 것에 의의를 둔다.

profile
Back-end engineer / Full-stack developer

0개의 댓글