기획 - 디자인 - 개발 (프론트 + 백) - 배포의 사이클을 경험
내 스스로 무엇을 하고싶다고 생각을 해서 직접 어떤 기능을 넣을지 기획을 하고, 피그마로 디자인도 해보고, 직접 프론트엔드와 백엔드를 구현한 뒤 배포까지 해본 첫 프로젝트였다. 사람들이 사용하는 실제 서비스까지는 아니었지만 시작부터 끝까지 개발의 한 사이클을 제대로 진행해보고 나니 이제야 흐름이 이해가 되는 부분들이 있었다. 이전 팀 프로젝트에서 백엔드 팀원들과 소통하면서 전혀 이해하지 못한 부분들이 많았는데 다시 그때로 돌아가서 똑같은 이야기를 한다면 이제는 어느정도 알아들을 수 있을 것 같다는 생각이 든다. 이게 이번 프로젝트에서 가장 큰 수확인 것 같다.
써보지 않았던 다양한 라이브러리들을 공부할 수 있었다
새로운 스킬을 배운다는 점에서 나의 지식욕을 가장 채워준 부분이 아니었을까 싶다. 이름만 들어봤던 라이브러리를 직접 사용해보며 어떻게 사용하는지 알 수 있었고, 그것을 계기로 궁금증이 생겨 작동원리는 어떻게 되는지 찾아보기도 했다. 이게 생각보다 더 많은 부분을 이해할 수 있게 도와주는 것 같다. (어떤 조건에서 어떤 라이브러리가 적합한지, 어떤 장점과 단점을 가지는지 등등)
함께한 팀원분과 소통을 중요시하며 프로젝트를 진행해보았다
팀원이 많았던 것도 아니고 둘이서 진행을 했는데도 불구하고 소통에 오류가 생기는 일이 있었다. 상대방이 내 말을 잘 이해할 수 있도록 명확하게 전달하는 것이 정말 중요하다는 것을 느꼈다. 그래서 개발자들에게 커뮤니케이션의 중요성을 강조하나보다. 또, 팀원간 규칙을 정하고, 기록을 세세하게 남기고, 상대방에게 내용을 한번 더 확인하는 등 소통을 확실하게 하기 위해 부가적인 방법을 사용했는데, 많이 도움이 되었던 것 같다.
어려울 것이라 생각했음에도 도전했다
이번 프로젝트때는 내 나름대로 큰 도전을 했다고 생각한다. 어렵다고 생각했던 부분들에 대해 타협하지 않고 전부 시도했다. 백엔드 구현도 그렇고, 써보지 않았던 라이브러리들을 여러개 사용해본 것, 그리고 무엇보다도 캘린더 페이지를 구현했던 것이 그렇다. 구현하기 어려운 레이아웃을 구현해보고 싶었는데, 구글 캘린더의 월간/주간 달력과 등록한 일정의 시간에 따라 일정 카드가 특정 위치에 생성되는 부분이 구현하기 어려워보여서 캘린더 웹 어플리케이션을 만들어보자 했던 것도 있었다. 실제로 다른 부분보다도 캘린더를 구현하면서 제일 마음고생을 했다 (백엔드보다도.... CORS에러보다도....!!!!). 맘대로 움직여주지 않는 엘리먼트들에 대해 머리를 싸매고 고민하다 결국 눈물을 흘렸던 적도 있다. 그렇지만 지금은 이런 도전들 덕분에 짧은 시간 안에 더 많이 성장한 것 같아 뿌듯하다.
이전 프로젝트에서 부족했던 부분들을 개선하여 이번 프로젝트에 적용했다
이전 프로젝트에서 Access Token으로 사용자 인증을 했는데, Refresh Token에 대해 알고있었음에도 불구하고 제대로 적용해보지 못했던게 아쉬웠다. 그래서 이번 프로젝트에서는 Access Token과 Refresh Token을 사용해서 사용자 인증 로직을 구현했다. 깃허브 커밋 메세지나 PR을 작성할때 형식이 통일되지 않았던 것도 이번에는 조금 더 신경써서 규칙을 정해서 통일감 있게 진행해보았다. 그 외에도 여러 아쉬웠던 부분들이 개선되는 것을 눈으로 보게 되니 동기부여도 되고 더 즐겁게 프로젝트를 할 수 있었다.
구현을 하는것에 급급해서 코드에 조금 더 신경을 쓰지 못했다
처음에는 나름대로 어떻게 하면 코드를 조금 더 줄일 수 있을까? 어떻게 작성하면 더 효율적일까? 하는 부분들을 고민하면서 코드 작성을 했는데, 코드가 복잡해지고 길어지면서 '일단 구현 먼저 하자'가 우선이 되었던 것 같다. 같은 상황인데도 불구하고 팀원분은 useMemo나 useCallback 같은 훅들을 어느 부분에서 사용하고 최적화를 해볼까 고민하신 흔적이 남아있어 더 아쉽게 느껴진다.
반응형 페이지를 고려하지 못했다
1920 x 1080 해상도에 맞춰 피그마 디자인을 진행한 탓에, 거기에 맞추려고만 생각했던 것 같다. 캘린더 페이지를 다 만들고 줌으로 축소해놨던 화면을 100% 비율로 돌리니 화면이 넘쳤다.. 하하 🥲 이것은 변명의 여지 없이 명백한 내 잘못이고, 지금와서는 어떻게 그런 기본적인 것을 고려하지 못했나 하는 생각이 든다. 하지만 덕분에 반응형 웹 페이지의 중요성을 뼈저리게 깨닫게 되었다. 시간이 될 때 조금씩 리팩토링을 하려고 하는데, 수정사항 1순위로 정해놓았다. 사용자의 입장에서 한번 더 생각하고, 불편한 점은 없는지, 특히 이렇게 눈에 바로 보이는 요소들에 더 세심하게 신경쓸 수 있는 프론트엔드 개발자가 되어야겠다고 다짐하는 계기가 되었다.