[개발일지] who is older?_7 (끝)
약 4주 정도에 걸쳐서 진행되었던 프로젝트가 종료되었다. (물론 가장 시초는 상당히 오래되었지만...) 여러가지 사건 사고 이후에 본격적으로 개발에 착수한 것은 10월 초 였다. 부트캠프 안에서 매일 마다 과제를 진행하면서 코드를 직접 작성하는 것은 많이 해보긴 했지만 전반적인 과제들이 어느 정도 틀이 잡힌 과제 안에서 부족한 코드를 내가 작성하여 채워넣는 형태였다.
그런데 프로젝트는 완전히 아무것도 없는 상황에서 직접 코드들을 작성하면서 결과물까지 만들어내는 여정이었다. 물론 부트캠프의 마지막 스텝인 조별 프로젝트를 시작하면 똑같겠지만 그래도 미리 먼저 이러한 과정을 겪으면서 많은 점들을 깨달을 수 있었다.
1. 진행 과정
아무래도 부트캠프를 진행하면서 별도로 진행하는 프로젝트이다 보니 모든 팀원들이 많은 시간을 투자하긴 어려웠다. 환경적으로 매일 아침 9시부터 오후 6시까지는 무조건 수업 내용을 따라가야 하고 그리고 저녁에는 당일 학습한 내용을 복습하거나 블로깅을 하면서 사실상 아침 9시부터 밤 9시 ~ 10시까지 쉴 틈이 없었다. 그러던 와중에 팀 프로젝트에 따로 시간을 할애 해야한다는 점까지 고려하면 시간 관리하는 것이 쉽진 않았다. 팀프로젝트는 아침 6시반에 매일 1시간반~2시간 정도 투자를 하면서 진행되었다.
(지난 20년 넘게 야행성으로 살아온 인생에서 가장 부지런했던 순간인듯...)
평일에만 프로젝트를 진행하면서 매주 평균 8시간 정도를 썼는데... 처음에는 금방 프로젝트가 완성될 거라고 기대했는데 역시 인생은 기대와 다르게 흘러간다. ^^ 프로젝트 내용을 따지고 보면 반영되는 로직이나 UI가 크게 복잡하진 않았고 척척 진행될 것이라 생각했기 때문에 금방 끝날 줄 알았는데 예상 외의 변수들이 생겨나고 그리고 다들 팀 플젝이 처음이다 보니 어떻게 협업을 진행할 지 서로 의견을 제시하고 협의하는 과정도 다소 있었다. (약간 처음하는 부분에서 소진되는 시간 소모가 일부 있었다) 역시 단순히 코드만 짜는 것을 생각하면 계산이 정확하지 않다.
사실 이런 협업 과정을 통해서 리액트 관련한 숙련도의 증진이나 CSS 지식도 쌓아올리는 기회가 있었지만 그보다도 혼자서는 거의 획득하기 어려운 git, github을 통한 협업 프로세스 경험치를 획득한 것이 크게 의미가 있었던 것 같다.
2. 한계점 회고
한계점 회고는 이번 프로젝트를 진행하면서 반영하지 못해 아쉬웠던 부분 등을 회고해보고 다음에 프로젝트를 하게 되면 반영할 수 있을 만한 점을 짚어보자
일정 설계
프로젝트에서 목표로 했던 기능 및 UI 결과물은 모두 달성했지만 약간 코드가 좀 지저분해서 Redux 같은 추가 모듈 도입 등을 통한 리팩토링과 CSS 파일 정리와 리팩토링이 다소 필요했다. 하지만 마지막에 이런 리팩토링을 결국 마무리 못하고 완성은 했지만 완성도는 떨어진 상태로 마무리되었다. 아무래도 이런 결과가 발생한 것은 프로젝트 일정을 구체적으로 정의하지 못해서 그런 것이 아닐까 싶다. 핵심 부분은 지난 주에 모두 완성되었는데 부트캠프의 HA가 바로 코앞이라 리팩토링이 안되더라도 바로 마무리해야할 필요가 있었다. 아무리 처음부터 코드를 깔끔하게 작성하려고 하더라도 결과적으로 마무리에 리팩토링은 필요한 것 같다. 이러한 점까지 고려해서 일정을 미리 대략 짜놓고 진행하면 좀 그래도 의도한 대로 잘 가지 않을까 생각이 된다.(인간은 본래 마감에 민감한 동물이니까)
프로젝트 배포
이번 프로젝트를 마무리하고 가장 아쉬웠던 점이다. 이번에 만약 시간이 된다면 배포까지 해보고 싶었지만 리팩토링도 못한 마당에 배포를 배우지도 못한 시점이라서 단순히 기능과 UI만 완성한 단계에서 프로젝트를 마무리 짓게 되었다. 이번에는 AWS를 통한 배포도 배우고 하였으니 다음에 꼭 배포까지 달성하여 이 아쉬움을 풀 수 있으면 좋겠다. ^^
그 외 아쉬운 점
당시에는 정신 없어서 그냥 저냥 막 했던 부분도 있고 끝나고 생각을 하면서 좀 더 정리해보고 다음 프로젝트에 반영하거나 작업했던 프로젝트에 나중에 시간될 때 적용해보도록 해야겠다.
- 사전 CSS 작성 방식 협의 : 정신 차려보니 CSS 적용이 중구난방이었다.
- 추가적으로 활용할 라이브러리 정의 : 너무 기존에 사용하던 모듈을 쓰게 되어서 복습하는 느낌이 강했다
- 서버와 데이터베이스 설계 : 거의 프론트 내용만 적용되어서 꼭 서버랑 DB같은 백엔드 부분도 작성해보고 싶다.
- 리액트 쓸거면 그냥 리덕스도 앞으론 같이 쓰기 : 처음에 그냥 리액트로만 작업을 했는데 역시... state와 props의 향연으로 인해서 코드가 다소 지저분해 보이기 쉬웠다. 다음부터는 그냥 초장부터 리덕스와 함께 리액트를 작성하는 것이 좋을 듯 하다.