2주 프로젝트 회고

김민석·2021년 5월 10일
0

프로젝트 회고

목록 보기
1/1

2주간의 프로젝트가 끝이났다.

정규 수업에서 진행하던 스프린트와는 결 자체가 다른 작업이었다.
지금까지는 이미 짜여져 있는 틀에 마지막 조각들을 맞추기만 하면 되는 느낌이었지만, 프로젝트를 완성시킨다는 것은 틀부터 쌓아가야했다.
내 머릿속에 있는 것을 그대로 구현하기만 하면 되어왔지만, 끊임없는 의견 조율이 필요했다.
혼자 공부하고 이해하면 되었었지만, 남들까지 이해시켜야 했고,
로직부터 코드의 상세 내용까지 '나만' 알아볼 수 있으면 되는 것이었지만, 내가 짠 코드를 누군가 자세히 살펴볼 것이며 그들이 이해하기 쉽도록 코드를 구성할 수 있는 방법을 끊임없이 생각 해야했다.

너무도 달랐다.


프로젝트에서 나는 백엔드, 배포, 그리고 약간의 프론트 엔드 부분을 맡았다.
처음부터 백엔드를 지망했었다.
코스 내에 백엔드를 희망하는 사람이 적어보였기 때문에 어느 팀에서나 하고자 하는 것을 할 수 있어보였고,
코드스테이츠의 코스 자체가 백보다는 프론트에 치중한 수업이기 때문에 코드가 끝나기 전에 백엔드에 대해 더 이해를 할 수 있는 기회가 되지 않을까 생각을 했기 때문이다. (아직 프론트/백 둘 중 어느 방향으로 나아가야 할 지 결정하지 못했다.)

결과적으로는 좋은 선택이었다.

앞서 언급하였듯, 코스 자체가 프론트의 성향이 강한 커리큘럼을 갖고 있기에 자칫하면 백엔드에 대한 이해가 전혀 없는 상황에서 졸업 했을 수도 있었을 듯 싶다.
그러나 프로젝트를 진행하면서 백엔드의 업무를 어느 정도 이해할 수 있게 되었다.

좁게 본다면

정규 코스에서 배웠던 cors 정책과, express, sequelize, API 문서의 중요성, 그리고 전체적인 배포의 흐름에 대해 더 깊은 이해를 할 수 있었다. 또한 리팩토링을 하며 사람이 이해하기 쉬운 코드를 작성하는 것의 어려움을 깨달을 수 있었다.

  • express로 엔드포인트를 통합하거나 세분화하며 MVC 패턴에 맞게 작성해볼 수 있었고
  • sequelize로 inner/outer join을 구현해보거나, N:M의 관계까지 구현해보았고, cascade option을 통해 삭제부분까지 신경쓰며 데이터베이스를 구축할 수 있는 기회가 되었다.
  • API 문서가 개발 프로세스에서 어떤 위치를 가지며, 어떻게 활용되는지 이해할 수 있었다. (백과 프론트가 구현되기 전, 계획만 존재하고 많은 것이 추상적인 상태에서 프로젝트의 기틀이 되는 문서라는 생각이 들었다.)
  • https 프로토콜까지 적용된 배포를 성공하였다. 그 과정에서 ec2,rds,s3 뿐 아니라 LD,CF,Route53에 대한 이해도 올라갔다. 다음 배포에 대한 자신감도 얻었다.
  • 읽는 사람이 기능을 명확하게 알 수 있는 함수를 구현하되, 실제 기능이 작동하는 부분은 뒤로 숨기는 방식으로 짜는 코드를 작성하는 방법에 대해서 맛을 볼 수 있는 기회였다.

넓게 본다면

프로젝트가 진행되는 순간에, 이 프로젝트가 앞으로 어떠한 절차를 거치게 될 것이며,
그 절차에서 내가 중요하게 생각해야하는 부분들은 무엇인지 배울 수 있었다.

과업 전체를 조망할 수 있는 능력은 효율의 측면에서 많은 차이를 가져올 것으로 생각한다. 물론 아직 부족하긴 하지만 다음 프로젝트에서는 이번 프로젝트에서 배운 것을 활용하여, 필요한 것은 선제적으로 조치하고 집중해야할 부분에 집중할 수 있게 될 것으로 보인다.


아쉬웠던 점

  • 백엔드에서 프론트로 데이터를 보내줄 때, null처리에 대한 이해가 적었다.

예를 들어, 특정 그룹에 4명이 있고 그중 2명에게만 할 일이 배정 되어있을 때
할 일을 배정 받지 못한 나머지 두 명을 어떻게 표현하여 보내줄 것인가에 대한 생각을 해본적이 없었다.
이 점이 프로젝트 막바지에서 큰 문제로 작용했었다.

  • API를 작성할 때, 각 엔드포인트의 응답의 통일성이 부족한 부분

대부분은 통일시키긴 했지만, 지금 와서 보니 아직도 통일되지 않은 부분이 보이는 점이 아쉽다.
다음에는 아예 응답의 형태를 고정시켜놓는 식으로 시작해야겠다.

  • 백엔드의 작업이 어느 정도 마무리 되었음에도 바로 프론트엔드로 넘어가지 못한 점

이 점은 아쉬운 점이라고 말하기에는 확실하지 않은 감이 있다. 백엔드가 어느 정도 구축되자마자 배포에 매진하기 되었기 때문에 프론트엔드에 신경을 쓸 수 없기는 했다.
그러나 백/프론트가 서로 분리하며 작업하는 와중에도 프론트엔드가 어떤 일들을 하고 있는지 흐름을 놓지 않았다면 부드럽게 넘어갈 수 있지 않았을까 하는 생각이 든다.

  • Vanilla JS를 최대로 활용해보지 못한 것

2주 프로젝트에서 Drag N Drop이나 모달 등을 바닐라 자바스크립트로 구현할 기회가 없었던게 아쉽다. 나는 백엔드로 참여하기도 했고, 또한 시간상 여유가 없었기 때문에 기능을 우선 구현하는 것에 집중했기 때문도 있다.

프로젝트가 끝나고 혼자 구현해볼 필요가 있어보인다.


끝으로

다른 사람들의 작품을 보며 새로운 시각을 얻는 시간이 되기도 했고, 공부해 왔던 것들이 헛되지 않았다는 생각도 들었다. 배울 것들이 아직도 수두룩하다는 것을 깨닫는 시간이 되기도 하였다.

2주간 밥먹고 자는 시간 빼고는 대부분의 시간을 컴퓨터 앞에 앉아서 시간을 보냈다.
열심히 했지만, 힘들다는 생각이 들지 않았다는 것이 신기했다. 오히려 너무도 즐거운 날들이었다. 이 기새를 4주 프로젝트까지 이어갈 수 있기를!


동작 gif

랜딩 페이지

로그인&회원가입

마이페이지

프로젝트 - 제목/세부 항목 추가

완료 항목 보관

0개의 댓글