시간이 정말 빠른 것 같다......
스위프 4기가 끝난게 어제같은데, 벌써 2달이 더 지나고 5기가 마무리 되었다.
이번에는 5기 6팀의 프론트엔드 개발자로 참여했다.
이번 프로젝트의 아이디어로는 디자이너님의 '동료평가' 주제로부터 시작했다.
거기에 내가 반짝하고 떠오른 "사이드 프로젝트를 함께 한 팀원 평가"로 세분화되며 본격적인 기획이 시작되었다.
지난 번 팀원의 탈주와, 최대한 그런 분은 피하고 싶다는 생각이 문제 정의를 하는데 큰 도움이 되었다.
이에 기존에 실제로 같이 프로젝트를 진행한 사람들에게 설문지를 전송하여 설문지를 기반으로 한 평가를 AI가 분석해주고 이를 리포트처럼 보여주는 서비스가 탄생하게 되었다. (+이미지로 저장, 링크 공유까지!)
팀 구성 : 기획자1
, 디자이너1
, 프론트2
, 백엔드2
프로젝트 기간 : 6/17~7/28
유지보수 기간 : 7/29~8/10
스위프 4기에서 만났던 다른 프론트엔드 개발자분과 함께 5기에 동반참가 하게 되었다.
4기에서의 경험으로, 미리 프로필카드를 잘 읽고 9시 땡 치자마자 아주 재빠르게 팀 빌딩을 진행했다. (팀 빌딩 팁 : 아주 빠르게 진행되기에, 틈틈히 카드 미리 읽어두고 찜하기)
4기에서는 거의 혼자 작업을 진행했어서, 같은 직군에서의 협업
과 코드리뷰
의 경험이 부족했다. 이에, 서비스 처음부터 함께 아키텍처를 고민하고 타인의 관점을 이해하며 맞춰가는 경험을 하고싶었다.
그리고 이번 프로젝트를 통해 나의 니즈를 충족할 수 있어 아주 만족스러웠다. ㅇㄹ님,,,저랑 팀해주셔서 감사합니다
shadcn/ui
+ tailwindCSS
로 디자인 시스템 세팅하기SpinLog 때는 따로 테마나 컬러, 타이포가 없었다. 디자이너분이 제공해주지 않으신 것도 맞지만 나도 그것들이 필수인지 몰라서 요청을 하지 못했다. 이래서 아는 것이 있어야 몸이 덜 고생하는 것 같다. 이번에는 shadcn/ui
+ tailwindCSS
로 디자인 시스템을 미리 세팅하여 일관성 있는 UI를 구축할 수 있었다.
요즘 SpinLog에 다크모드를 추가하기 위해 작업중인데, 컬러를 정리하고 아이콘을 교체하는 과정을 겪으며 과거의 내가 너무 밉다. 하지만 나의 업보이니 한번 몸으로 고생하며 중요성을 체득하려 한다..
Sqush&Merge
로 커밋 기록 깔끔하게 관리하기 + 코드리뷰다른 프론트 개발자분이 제안 주신 git 규칙으로 issue 생성 + 브랜치 이름에 issue Number 적기 + Sqush&Merge
를 통해 정말 깔끔한 커밋 기록을 경험했다.
물론 이 방법은 개별 커밋에 포함된 상세한 변경 사항이나 문제 해결 과정이 사라질 수 있어 세밀한 히스토리 파악이나 단계 별 디버깅이 힘들다는 단점이 있다.
하지만 규모가 작은 프로젝트면서 하나의 branch에서 작은 단위의 기능을 추가한다면, 커밋 기록을 간결하게 유지하고 작업을 명확히 추적하는데 유리하여 유용하게 활용될 수 있다고 생각한다.
그리고 우리의 열정 넘치는 코드리뷰.
서로 놓친 부분들을 알려주고 새로운 관점에서 생각해볼 수 있는 좋은 경험이었다.
Next.js
컨셉 이해하기Next.js
를 공부해봐야지~ 써봐야지~ 하다가 사용을 해본 것은 처음이었다.
이 과정에서 Next.js
가 왜 나왔는지, 그 컨셉은 무엇인지에 대해 이해하고 스터디 하는 시간을 가졌다. (서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG), 초기 로딩 성능을 개선, SEO 향상, API 라우트 및 서버리스 지원을 통한 서버 사이드 로직 관리, 자동 페이지 라우팅,,, !)
공부하기 전에는 어렴풋이 브라우저 엔진
과 Node.js
처럼 같은 이름의 API를 제공하지만, 내부 구현은 각각의 환경에 맞게 다른 것 처럼 Next.js
도 내부 구현이 다른거지 useEffect
, useState
등을 서버측에서 사용할 수 있게 무언가 마법을 부린 것이라고 생각했다.
지금 생각하면 정말 어이없는 생각이었지만, 어쨌든 공부하기 전에는 그랬다.
추가로, 미리보기 모달을 만들 때 프로젝트 상세보기 뷰를 공유하고 있어서 병렬 라우팅 (Parallel Routing)
+ 인터셉터 라우팅 (Interceptor Routing)
을 통해 이동 방식에 따라 페이지로 표시되거나 모달에 표시되도록 라우팅 구조를 만들려 했었다. 열심히 찾아보고 적용까지 했으나, 만들고 나니 굳이 복잡하게 라우팅으로 구분할 이유가 없는 것 같아서 그냥 미리보기 전용 모달 레이아웃을 만들어 사용하는 방식으로 변경했었다. 어쨌든 이 기회를 통해 라우팅에 대해서도 많은 이해를 얻어가서 좋았다.
난 이번 프로젝트에서 커뮤니케이션이 조금 어려웠다.
기술적인 것들은 claude와 공식문서를 통해 해결이 가능하지만 역시 사람이 가장 어렵다.
하지만 이런 경험들을 통해 다양한 케이스를 접하고, 나에 대해서 훨씬 많이 알아가고!! 다음에 비슷한 상황이 있을 때 더 잘 대처할 수 있을 것이라 생각한다.
또, 나만의 가치관과 기준이 더 명확해지는 경험이 되었다.
그리고 역시 시간,,
4기 때는 연휴가 꽤 겹쳤으나 이번에는 연휴가 없어서 연차도 좀 쓰게되고,,
잠을 충분히 못자게 되니 예민해지는 것이 느껴져서 스스로에게 아쉬웠다.
이번에도 선릉과 역삼 사이의 디캠프에서 진행되었으며, 맛있는 간식이 잔뜩 준비되어있어 아주 좋았다.
그리고 이번에는 다행히 기획자분이 발표를 맡아주셔서, 양이 되는 경험은 피할 수 있었다. 🐑🐑
그리고 5기의 목표였던 가장 완성도 높은 서비스
수상 🎉🎉 !!!!!!!!!!!!!!
https://prism-space.vercel.app/
스위그를 통해서도 배포했지만, 아마 승인 절차로 인하여 위의 주소가 최신 버전으로 배포가 바로바로 될 예정이다!
사이트에 프로젝트를 등록하고, 함께 한 팀원들에게 설문 이메일을 전송 후 팀원들이 설문 평가를 해주면, 아래처럼 분석 결과를 리포트로 확인하고 이미지로 저장하거나 공유할 수 있다 🌟
다들 나는 어떤 팀원이었는지 궁금하지 않나요~~???
💎 PRism 서비스로 분석한 이번 프로젝트에서의 나의 평가 💎
https://prism-space.vercel.app/project/user/7d7b6c53-a399-4050-9a67-2be5621dac35/4
🦉 PRism 서비스로 분석한 SpinLog 프로젝트에서의 나의 평가 🦉
https://prism-space.vercel.app/project/user/7d7b6c53-a399-4050-9a67-2be5621dac35/12
미리보기를 통해 이미지로 저장하고 공유 가능 링크 복사하기!
아래는 무사히 프로젝트를 마치고 받은 수료증과,
상장입니다 !!!
이번 기수에서 수상을 할 수 있었던 이유는, 기술적으로 뛰어났다기 보다 서비스의 주제를 정하기까지 명확한 문제의식과 그 문제를 풀어내기 위해 아이디어를 잘낸 점 이라고 생각한다.
그 과정에서 하고싶고 넣고싶은 기능들이 너무 많아 추상적이었던 것들이, 하나 둘 씩 의견이 모아지며 흐름있게 정리되는 점 경험이 재미있었다.
그리고 6기를 한번 더 참여하기 보다는, 기존에 있던 프로젝트들에 대한 디벨롭을 진행하려 했는데... 최근에 시간적 여유가 많이 생길 일이 있어서,,,, 6기도 또 참여하게 되었다 !!!!!!!! (이번엔 진짜 진짜 진짜 마지막이다!!!!)
그리고 아직 내가 사용해보지 못한 기술들이 있어서 그것들을 도입해보고 싶은 마음이 가장 컸다. 시간도 많으니 이제 좀 공부하면서 진행할 수 있을 것 같다. (BFF, Socket, Next.js에서 초기 로딩 시 fetch를 커스터마이징한 헬퍼 함수 사용,, 중 하나라도 ..!! )
스위프에 2번 참여하며 느낀 점은 정말 다양한 사람들을 만나고 다양한 직군들과 협업을 하면서, 나에 대해서도 많이 알아간다는 점이다. 또한 추후 다른 직군의 도움이 필요한 일이 생겼을 때, 도움을 받을 수 있는 분들을 더 알아가는 좋은 기회라고 생각한다!
그리고 4기 참여 시, 프로젝트를 0부터 시작해본 경험이 부족했던 나를 받아준 아주 감사한 활동이다. 그때 프로젝트를 완수해본 경험으로 사이드 프로젝트계에서의 '경력'을 쌓을 수 있었다고 생각한다.. 그리고 무엇보다 자신감이 많이 생기기 때문에, 만약 경험이 부족하나 이것저것 알아보고 부딪히며 깨부술 열정이 있는 분들은..한번 스위프를 통해 사이드프로젝트 경험을 쌓아 나가기를 완전 추천한다 !!!
마지막으로.. 이번에도 역시! 프로젝트를 함께 완성해준 팀원들! 감사합니다!