2023년 2~3월, 약 4주간 진행했던 토이 프로젝트를 마무리하였다.
🪺NerdNest 배포
⛓️Back-End github
프로젝트를 같이 하자고 제안해주신 분은 전혀 접점이 없던 분이셨다. 그저 같은 부트캠프, 같은 기수일 뿐... 그래서 어떻게 저한테 제안을 하셨냐 물으니 블로그와 깃허브를 보고 열심히 하시는 분 같아서 제안을 드렸다고 했다.
(네?..제가요?)
하 일단 좋게 봐주셔서 너무너무너무 감사했지만, 메인 프로젝트에서 기초적인 지식이 부족하다는 것을 많이 느꼈기 때문에 참여여부를 두고 많이 고민했다. 그럼에도 토이 프로젝트에 참가한 이유는 부트캠프를 수료하고 반강제적인 9to6 활동이 사라지자 해이해진 학습활동에 활기를 불어넣기 위해서였다.
결과적으로는 약 4주간의 시간동안 즐거웠고 재밌었다!
1일 1레코드, 블로그에서도 github의 🌿잔디심기 처럼 모든 하루의 기록을 한눈에 볼 수 있습니다.
기술 블로그를 쓰는 모든 이들의 블로그, NerdNest🪺입니다.
위 프로젝트는 github의 contributions(🌿잔디심기)처럼 1일 1커밋 챌린지의 결과를 한눈에 볼 수 있는 블로그가 있다면, 1일 1블로깅 챌린지를 더욱 알차게 즐길 수 있지 않을까? 에서 시작되었다.
주된 기능은 블로그 작성, 댓글 작성, 블로깅 기록이었고, 부가적인 기능으로는 검색, 블로그 좋아요 정도로만 정하고 진행하였다.
구현할 기능들을 정리한 뒤 프론트와 백이 함께 API 문서를 작성하였다. 메인 프로젝트 때에는 기능 정도만 다 같이 결정하고 엔드포인트, Request, Response Resource는 백에서 정리해 프론트에 요청에 따라 수정하고는 했다.
이번에는 프론트 분들이 미리 작성한 피그마를 화면을 보면서 API문서를 작성해 나가자 문제가 발생했다. 이 전에는 도메인 위조로 작성했었기 때문에 구현에 있어서 조금 읽기 편했는데 화면 위주로 하다보니 여기저기 문서를 뒤적거려야 했다.
이 문제는 프로젝트가 끝나고 단체 회고를 할때 말씀을 드렸다. 서로서로 맞춰가야 하는 부분인데 일찍 말씀드리지 않아서 죄송할 뿐이었다.
또 한가지 문제가 있었다면, 엔드포인트를 설계에서 겹치는 부분이 상당히 많아 구분자를 넣어줘야 했다는 점이다!!😵
1차적으로 작성한 Erd 다이어 그램이다. 처음엔 쉽겠다 생각했는데 erd를 작성하다보니 아 이거 쉽지 않네
라는 말이 절로 나왔다.
역시 쉬운 것은 없어...
최종 Erd 다이어그램이다!!
처음 작성한 것과 크게 달라진 점이 없었다!
이번에는 메인 프로젝트에서 해보지 못했던 것을 하기로 하였다.
☝️ 회원 CRUD 및 로그인/로그아웃, JWT 토큰 관리, OAuth2.0 로그인, 이미지 파일 업로드, 좋아요 기능을 구현하기로 하였다.
또한, 둘 다 CI/CD를 제대로 해본 적이 없었기 때문에 같이 상의를 하면서 AWS EC2, S3, RDS를 생성하고 gitActions를 사용하여 자동 배포를 진행하였다.
Spring 공부를 하면서 가장 어렵고 하기 싫어 했던 부분을 고르자면 1순위로 Security를 말할 수 있다.
레퍼런스를 보고도 이해 하지 못했고 흐름 자체를 파악하지 못했다. 그림으로 그려진 흐름은 오케이 이해완!
해놓고 코드를 보면 어?
하고 멘탈이 터진게 여러번이었다.
그래서 그런지 작업 분담을 할 때, 팀원분께 제가 잘 할 수 있을지 모르겠다고 여럿 말한 기억이 난다. 결과적으로는 어려움을 직접 여러번 경험해봐야 한다는 것을 다시 한번 깨달을 수 있었다.
Jwt 토큰 발급 문제나, Reissue 요청에 관한 문제로 꽤 고생했지만 이제는 문제점을 디버깅을 통해 어떻게 찾아내는 지 알고 있으니!! 두려움은 없다👊
메인 프로젝트 때 Security 파트를 담당하셨던 분이 꽤나 고생하셨고 OAuth2.0 구현은 시간이 없어 못하겠다는 말씀을 하셨어서 두려움이 먼저 앞섰다. 그래서 기획 회의 단계에서 소셜 로그인은 후순위로 두자는 말을 했었다.
생각보다... 설정은 어렵지 않았고, Security, Jwt를 겪고 나니 생각보다 크게 어렵지는 않았다. 다만 클라이언트와 프론트 클라이언트 백 서버에 연결고리를 이해하는데 오랜 시간이 걸려서 고생을 했을 뿐이다.
재밌었다!
프로젝트를 시작하기 앞서 코드리뷰를 적극적으로 하자는 말이 나왔다. 백 팀원은 단 둘이지만 둘이서라도 할 수 있는 만큼 하기로 했다.
팀원과 나는 같은 부트캠프에서 교육을 받았음에도 생각보다 코드 구현하는 방식이 많이 달랐다. 남의 코드를 이해하는 건 많은 시간을 들여야 한다는 것도 알았다. 왜 이렇게 하셨지?
를 시작해서 아 이렇게 하셨구나~
로 끝나는 코드리뷰가 조금은 재밌었다.
멍충인증짤
아쉬운 점이 없다면 거짓말이다. 전체적으로 코드가 정돈된 느낌이 없고 뒤죽박죽 얽혀있는 느낌이다. 이걸 어떻게 리팩토링하면서 정리해야 할 지 벌써 머리가 아프고 기력이 딸려서 조금 쉬고 싶다는 생각뿐...
그래도 프로젝트를 진행하면서 너무 재밌었고 즐거웠다. 새로운 기능들을 구현해볼 수 있었고 새로운 지식들과 몰랐던 부분들을 서로 공유하며 공부할 수 있어서 더 좋았다.
프로젝트를 통해 좋은 인연들을 만날 수 있던 것도 참 좋았던 점이었다. 다들 취준생들이라 취업시장 이야기도 하고 절망적이고, 희망찬 이야기도 나눌 수 있었다.
다들 무사히 취뽀하셨으면 좋겠어요