첫 프로젝트를 마치며

from0·2021년 2월 16일
0

처음 프로젝트 팀이 편성되고 모여서 역할을 논의했을 때 백엔드를 지망했다. 알고 보니 모인 세 명 다 백엔드를 희망하고 있었는데 다른 분들의 양보로 백엔드를 맡게 되었다.

팀장이 분배한 태스크를 해결하는데 예상치 못한 곳에서 자주 발목 잡혔다. DB 스키마대로 sequelize 모델을 구현해야 하는데 그 부분부터 막혀서 도움을 받았다. 또한 AWS 배포가 중요하다고 들어서 우리 팀은 초기에 배포 task를 만들었고 내게 할당되었다. 이 부분 역시 도움을 많이 받았지만 "Hello world"를 확인하기까지 하루가 꼬박 걸렸다. 이 과정에서 Route 53, 로드 밸런서를 처음 써보았다.

협업 툴의 데이터 구조는 꽤 복잡했다. 프로젝트를 진행하며 기획 수정을 거듭한 끝에 task에 표현하는 데이터는 많이 축소되었다. DB 테이블도 12개에서 5개로 줄었다. 아마 원래 기획이라면 API 문서는 지금의 두 배는 넘었을 것이다. API 문서를 쓸 때 프런트 팀원과 함께 보면서 써서 보다 명확하게 쓸 수 있었다. 따라서 2주 동안 순수 코드를 짜는 데 할애한 시간은 1/3 쯤 되는 것 같다. 회의나 문서를 정리할 일이 없을 땐 주로 이유 없는(이라 쓰고 실은 나의 무지에서 비롯된) 오류와 마주해야 했다.

왜 컴퓨터는 이토록 말을 듣지 않는 것일까? Postman으로 다 통과했는데 CORS 때문에 다른 팀원들 브라우저에서 되지 않는 문제, 회의에서 합의된 수정 사항을 API 문서에 제대로 반영하지 않아 팀원이 코드를 짤 때 시간 낭비한 경험, 서버 코드를 합동으로 짜며 두 기능의 분기 처리를 같게 해놔서 않아 둘 중 하나가 되지 않게 했던 경험, 이런 것들이 새내기 개발자의 첫 프로젝트를 위협했다. 그 중에서도 비교적 문제가 분명한 건 파악도 빠르게 걸렸고 반복하는 횟수도 줄어들 것이다. 다만 AWS 쪽은 갈 길이 한참 멀었다. 배포를 하면서 EC2 말고도 이렇게나 많이 필요하구나 하는 걸 느꼈다. 그게 왜 필요한 건지는 내가 직접 깨져봐야 더 잘 알 것인데 그러진 못했으니 누군가 친절히 적어둔 텍스트를 참조할 수 밖에 없다.

이건 비단 AWS 만의 문제는 아니다. 지금 숨쉬듯이 사용하는 스택과 도구들을 당연하게 생각하는 것을 경계하자. 그렇지 않으면 express라는 미들웨어를 쓰면서 그것이 애초에 왜 생겼는지는 점점 잊게 될 것이다. 고차원 툴과 미들웨어가 코딩을 편리하게 하지만 그게 원리로부터 멀어지게 하고 문제가 발생했을 땐 해결을 어렵게 한다. 첫 프로젝트를 하면서 부족함을 느끼는 순간들이 부쩍 많았다. '아, 이제부터 원리를 공부해야지' 이런 다짐은 또 공허한 메아리일 뿐이다. nodejs든 크롬이든 에러코드는 생각보다 친절하다. 그 에러 코드로 다양한 조합의 키워드로 검색하는 것부터 하자. 당연하지만, 문제 상

물론 생각보다 할 만했다 싶은 것들도 있다. RESTful API 같은 건 강의로 들을 땐 별로 와닿지 않아 주의 깊게 듣지 않았었다. 그런데 혼자가 아닌 협업을 하다보니 매우 중요해졌다. 위에서도 언급했지만 API 문서에 잘못 기입한 몇 줄이 팀의 시간을 지연시켰다. API 문서는 클라이언트가 어떻게 서버와 DB에 접근할지에 대한 약속이므로 잘 적어야 한다. 분기, 요청 메소드, 응답에 넣어줄 데이터 타입은 기본이고, 연쇄적 변화를 일으키는 요청에 대해서 빠짐은 없는지 꼼꼼히 따져봐야 한다.

그렇다고 해서 혼자 머리를 싸매는 것보다 어느 시간을 투입한 뒤에 안 되면 이슈를 공유하는 게 맞다. 내가 가장 어색했던 것 중 하나가 이 부분이다. 한번에 완벽하게 쓰려고 다양한 상황을 혼자 시뮬레이션 하곤 했다. 이를테면 '칸반보드에서 task 카드의 순서가 달라질 때 DB에 어떻게 기록되어야 하는가?' 같은 문제로 말이다. 빠진 게 있다면 바로 프론트엔드와 이야기해서 즉각 수정하는 것이 나은 것 같다.

2주의 결과물은 아래와 같다. 다른 팀에 비해 1명이 모자란 3명이었지만, 애초에 같이 하길 희망했던 팀원과, 새롭게 만났지만 역시 프론트+백을 오가며 활약해준 다른 팀원 덕분에 to-do 리스트와 협업 툴 중간쯤인 'ETON'이 탄생했다. 첫 프로젝트는 많이 실패하고 좌절해보라고 하던데, 그 말을 떠올리면 감사한 아웃풋이다.

https://github.com/codestates/ETON-client/wiki

0개의 댓글