본문 바로가기
💻 프로젝트/2021 年

[ETON 프로젝트] 회고록 4

by ddubbu 2021. 2. 14.

금요일 새벽, 그러니깐 바로 어제 코드 개발과 배포를 끝마치고 개운한 마음으로 잠이 들었다. 하고 싶었던 기획안이어서인지 밤을 새어도 재밌었고 약 2주일의 시간이 후딱 지나갔다. 그렇다 2주 프로젝트가 발표만을 앞두고있다. 우리 조는 3명으로 트렐로 칸반보드를 클론하는 프로젝트를 기획했다. 작년 선배 기수분들 중에 리트리보라는 프로젝트에서 감명을 받기도 했고, 2주 안에 해볼만한 것은 게시판 CRUD 이었지만 심심한 건 또 싫었다. 그래서 드래그 앤 드롭 기능을 갖고 있는 메모장을 기획하게 되었다. 처음 기획한 것은 Task Page 도 존재하여 완전한 트렐로 클론이었지만, 개발 중에 AWS 배포 환경 구축에 힘을 쏟다보니 그 기획은 포기하게되었다. 유종의 미를 거두고 싶었기 때문에 끝을 앞두고 기능 추가보다는 마무리를 하기로 결정했다.

 

이번 나의 포지션은 프론트, 그리고 팀장이었다. 그간 팀장 역할을 꽤 맡았기 때문에 거부감은 없었지만 그렇다고 내키진 않았다. 오롯이 코드 개발에만 집중하고 싶었지만 그럴 수 없는 위치이기 때문이다. 하지만 덕분에 큰 두가지를 얻을 수 있었다. 첫째, 팀원들이 개발에 헤매지 않도록 철저한 이슈카드 및 업무 분배를 하는 방법을 고안해낼 수 있었다. 우선, 매일 아침 진행한 회의 전에 오늘 해야할 큰 목표를 잡고 각자 해야할일을 리스트업했다. 그리고 오후 3시, 저녁 9시 중간 점검에 그 리스트를 기준으로 진행도를 파악하고 업무 조정을 할 수 있었다. 둘째로 전체적인 흐름 파악이 가능했다. 팀장은 이슈가 발생했을 때 대처 및 컨펌을 위해 전체 상황을 파악하고 있을 의무가 있기 때문이다. 그래서 프론트를 맡고 있었지만, 백엔드 배포 부분이 진행이 더딜 때 합세하여 문제를 해결할 수 있었다.

 

그리고 고맙게도 팀원간의 큰 갈등은 없었다. 서로 약 4달 동안 코스를 진행하면서 봐왔던 얼굴들이고 페어프로그래밍에 익숙해진 덕분이라고 생각한다. 그동안 문제를 "함께" 해결하는 능력을 키워왔기 때문에 문제가 생겼을 때 포지션과 상관없이 어떻게 해결하면 좋을지 의논하는게 개발 시간의 대부분이었다. 그래서 우리의 행아웃은 아침부터 저녁까지 꺼지지 않았다. 우리 팀원은 나 포함 총 3명이었다. 다른 팀에 비해 1명이 모자랐는데, 나는 이게 더 좋은 상황이라고 생각되었다. 3명인 지금도 한 안건을 결론 짓기 위해 많은 논의가 오가는데, 4명 아니 그 이상의 인원의 의견을 종합하는게 얼마나 힘든 일인지 체감했기 때문이다.

 

그러면 아쉬운 점은 없었을까? 당연히, 아니다. 우선 처음과 달리 기획을 줄였기 때문에 구현하지 못한 Task Page 가 매우 아쉽다. 그리고 component 간 depth 가 낮아 redux 와 같은 프론트 상태 관리 라이브러리가 필요없을 것이라는 헛된 추측으로 board page 그러니깐 칸반보드를 구현할 때 매우 애를 먹었다. 결국 유사하게 store 라는 변수에 모든 상태들을 담아 관리했다. 또한 react 상태 관리를 제대로 이해하지 못해서 board page 첫 렌더링 때 3번을 단계적으로 re-render 하는 현상이 존재한다. 마지막으로 초기 기획을 제대로 논의하지 않아 각자의 생각대로 각 페이지를 구현하다보니 개발 중간에 추가 논의 시간이 더 필요해 어찌보면  더 딜레이 되었던 것 같다. 

 

하지만 2주동안 개발에 몰두하면서 깨달은 점은 더더욱 많았다. 우선 프론트 포지션을 맡으면서 만족스러운 UI를 뽑아내었기 때문이다. 나는 내가 1px 의 차이를 발견하는 사람인지 몰랐다. ㅋㅋㅋ 로고가 중앙에서 살짝 오른쪽으로 치우쳐져 있는거 같았는데, 눈에 보이지 않은 margin 때문이었다는 것을 깨닫고 놀람을 금치 못했다. 그리고 보이는 화면을 그대로 구현할 수 있는 CSS 능력도 확인할 수 있었다. 이번 기획에서는 트렐로, 프로그래머스 디자인을 많이 참고했다. 그러다보니 프로그래머스의 주요 브랜드 컬러, 글씨체 등도 알게되었고 아름다운 UI를 위해서는 많은 속성들을 적용해야한다는 것도 알게되었다. 무엇보다 칸반보드에서 왜 트렐로가 배경화면을 적용하는지도 알게되었다. 밋밋한 하얀색 배경에 그림을 입혀 꽉찬 느낌을 통해 UI의 완성도를 높이는 경험을 했기 때문이다. 어떤 배경 이미지를 선택할까 많은 고민을 했다. 무채색, 자연 풍경, 메모장과 관련있는 사무적 배경 등.. 하지만 무엇을 적용해도 촌스러웠다. 그러던 중 구글 검색 페이지 창이 눈에 들어왔다. 바로 이거였다! 이거라면 우리 보드페이지의 허전함을 채워줄 완벽한 그림이었다. 화려하면서도 촌스럽지않은 작품이었다. 

 

 

그리고 바로 검색에 들어갔다. 구글 배경화면, geometric 배경화면 결국에는 tessellation wallpaper 키워드를 찾아내어  우리의 완벽한 보드 페이지를 완성했다. 아래는 우리 ETON 프로젝트의 결과물이다. (드래그앤 드랍 관련 아이디어, 구현 코드는 다음 포스팅으로 찾아오겠다.)

 

 

또 얻은 점은 git의 가능성과 AWS 의 도전과 성공에 대한 자신감이다. git은 대학교 2학년 그러니깐 18년도에 접해서 꾸준히 써왔지만 이렇게 많은 기능을 써본 것은 이번이 처음이었다. stash, branching, P/R, merge, conflict 해결, wiki, project, 칸반보드, 스켈레톤, 이슈카드 등 처음 git을 zip 파일 공유 툴로만 사용했던 과거가 떠오르면서 참 많이 배웠다는 생각이 든다. 그리고 두려움을 떨쳤다. 아! 다만 아쉬운 점이 있다면 팀룰로 commit 메세지로 verb 로 시작하기 외에는 정한 규칙이 없어서 조금 막 적었다는 점이다. P/R 의 한 예시에서 commit 기록을 보면 흐음... 그렇다 규칙이 보이지 않는다 ㅋㅋㅋㅋㅋ 뭔가 best-practice 를 공부하고 적용하기엔 시간이 없다는 핑계로 우리 나름의 규칙을 만들었고 진행했다.  규칙하니깐 생각난건데, 들여쓰기 칸 수 문제가 떠오른다. 공통으로 스페이스 2칸을 쓰기로했는데 팀원분이 적용하지 않아서 pull 받은 코드에 띄어쓰기가 4칸으로 난무해 다 2칸으로 수정한 커밋을 올렸던 경험이 떠오른다. 힘들진 않았지만 매우 당황스러웠다. 내가 그 코드를 고치기 위해 엔터를 치면 2칸이 적용되고 4칸들 사이에 2칸이 끼어있는 느낌이 묘했다... ㅎㅎ

 

 

배포는 정말 뿌듯한 주제로 드래그 앤 드랍 구현 다음으로  2번째이다. 한이음 때 못했던 배포를 정말 완벽히 해냈기 때문이다. 우리팀은 백엔드 서버 구축을 위해 HTTPS 통신을 기획했고 이를 위해 EC2, ELB, Route53, RDS 를 사용하였다. 나는 ELB, EC2 구축에 힘을 썼다. domain 도 사보고, 서비스간 연결도 해보았다. 그 덕에 연습으로만 꽤 비용이 나갔지만 뭐 어쩌겠는가, 배우기 위해 시도는 불가피하기 때문이다. 

 

 

아쉬운 점은, 구축할 때 많은 블로그 자료를 뒤져가면서 필요한 과정들을 조합하면서 겨우 겨우 연결은 했는데, 정작 그 서비스의 원리를 이해하지 않았다는 것이다. 그래서 프로젝트 발표에 힘을 쏟기 위해 그 원리 공부를 끝으로 마무리해보려고 한다. 

그 외에도 Restful API 를 구현함으로써 컨트롤러 분리를 쉽게 하고 메소드에 맞는 API 를 적기위해 노력했다는 점이다.

 

지금 떠오르는대로 주제를 막 적고 있다. 깨달은 게 많은지 재밌었는지 글 소스가 끊이질 않는다. 아, 팀원들과 거의 매일 시간을 보내다보니 장난을 치는 게 서스름 없어진 것도 좋은 일이다. 

 

끝으로, 회고록의 중요성을 쓰면서 글을 마무리해보려고한다. 최근에 슬의생 드라마를 보게 되었다. 슬의생은 작년 5월 종방한 프로그램이지만 십오야 유튜브 채널을 통해 꾸준히 메이킹 영상으로 하여금 시청자들이 잊지 않고 시즌 2를 기대하게 한다. 그걸 보면서 느낀게 끝난 이후 작업도 정말 중요하다는 점이다. 

 

금요일을 끝으로 코드 개발은 끝났지만, 여전히 나는 컴퓨터 앞에 앉아서 할일을 하고 있다. 바로 프로젝트 마무리를 위해서이다. 크게는 ReadMe 작성 (기획안을 정리하고 시연 gif 파일 만들기 등), 회고록 작성, 발표 영상 제작 등 할일이 많다. 그리고 나중에는 구현하지 못한 여러 기능들 그리고 코드 리팩토링도 진행하고 싶다. 팀원들과 의견을 조율하고 시간 상 포기한 것들도 있기 때문이다. 또한 내 스스로 배포도 진행해서 완전한 내것으로 만들어보고 싶다.

 

즉, 나는 끝났지만 끝난게 아니었다. 리뷰 작업을 통해 내 작품의 퀄리티를 최상으로 끌어올리는 것도 내 몫이었다. 그간, 내가 프로젝트를 진행하면서 못했던 것이 바로 마무리 작업이었던 것 같다. 나는 끝나면 그대로 손을 들었었다. 왜냐하면 나름 문서를 만들고 나만의 방식으로 표현했다고 생각했기 때문이다. 하지만, 면접관님들은 그걸 읽을 시간이 없다. 아니 열기도 귀찮으실 수 있다. 그리고 무엇보다 회고를 하지 않았기 때문에 배운것은 금방 휘발되었다. 부족한 점을 돌아볼 수도 없었다. 그래서 귀찮음을 무릎쓰고 이렇게 글을 쓰는 이 순간 대견하다. 마무리를 하기 위해 노력하고 있기 때문이다.

 

해야할 일은 많다. 제 때하자. 미룬다고 하지 않더라.

 

무튼, 2주동안 고생했고 개발하면서 크게 깨달은 점 및 이슈들을 찬찬히 정리해보려한다. 무엇보다 바닐라 JS로 드래그 앤 드랍 구현한 포스팅을 기대해달라!

 

고생했다. 남은 4주 프로젝트도 힘내보자!

'💻 프로젝트 > 2021 年' 카테고리의 다른 글

gractor - 2일차  (0) 2021.02.19
gractor - 1일차  (0) 2021.02.18
[ETON 프로젝트] 회고록3  (0) 2021.02.09
[ETON 프로젝트] 회고록2  (0) 2021.02.07
[ETON 프로젝트] 회고록 1  (1) 2021.02.03