[스위프 웹 12기 후기] 협업 IT 프로젝트 :백엔드 성장의 기록

Jin·2026년 3월 31일

대회

목록 보기
3/4
post-thumbnail

작성일 : 2/28
원본 : https://blog.naver.com/didxlsxh/224198984293

이번에 6주 동안 진행했던 스위프(SWYP) 12기 활동을 마무리하며, 다사다난했던 기록을 남겨보려 한다.
평소 산업공학을 전공하며 머신러닝과 데이터 분석분야를 공부해왔지만, 실제 유저가 사용하는 서비스에 관심이 많았고 관련하여 서비스개발도 공부하고 있던 터라, 백엔드부터 직접 구축해보고 싶어 망설임 없이 지원했다. 참가비 24만 원 중 보증금 15만 원은 프로젝트 완수 시 환급된다는 가이드가 있었기에, 열정 하나로 시작했다.

https://swyp.im/

노션에 신청자 마다 본인 소개를 적어 어필하고, 팀빌딩을 하여 팀을 구성하는 방식이였다.

웹 12기는 pm이 좀 적었고, 백엔드가 다른직군에 비해 매우 많았다.

슬랙 DM으로 개별적으로 컨택하여 팀빌딩을 진행하는 방식이라서, 정말 피튀기는거 같다.

우리 팀은 PM 1명, 디자이너 3명, 프론트엔드 2명, 백엔드 4명으로 구성되어 프로젝트를 시작하게 되었다.
스위프측에서 제공되는 혜택인 뤼이도라는 협업툴도 활용하였다.

처음에는 꽤 균형 잡힌 팀 빌딩이라 생각했지만, 문제는 주제 선정 단계부터 시작되었다.
처음 나온 주제는 지나치게 모호해서 결국 전체를 엎어야 했고, 우여곡절 끝에 새로 정한 주제조차 명확한 방향성이 보이지 않았다.

기획을 따라가야 하는 개발자 입장에서 더 구체적인 정의를 원했지만, 과정마다 명확히 정해진 것이 하나도 없었다. 결국 디자이너와 백엔드들이 직접 기획 회의에 참여해 내용을 수정해나가야 했고, 이 과정에서 체력적, 심리적 소모가 상당했다. 개발을 시작하기도 전에 기획 단계에서 에너지를 쏟아야 하는 상황이 무척 힘들었다.

기획이 계속 흔들리다 보니 가장 마지막 파트인 프론트엔드 파트의 작업 시간은 매우 부족해졌다.

정말 다행히였던 점은 우리 백엔드 파트 분들은 굉장히 좋았다는 점이였다.
의기투합하여 단순 기능을 넘어선 확장 가능한 아키텍처를 설계하는 데 집중했다.

우선 우리가 만들었던 서비스가 무엇인지 먼저 소개를 하자면
KEEPIT(킵잇 - 키빗이라고 발음하면 편하다.)은 사용자가 웹 링크를 저장하고 레퍼런스 폴더로 관리하며, 탐색 탭에서 카테고리·키워드 기반 추천 콘텐츠를 확인할 수 있는 링크 아카이빙 서비스다.

https://keepit.im/

이런식으로 폴더를 만들어서 링크를 저장할 수 있고, 좌측 하단에 + 버튼을 눌러서 카드모달에 저장을 하면

우측 사이드 패널처럼 링크를 파싱해서 ai가 핵심 요약과 함께 정리하여 저장해주는 기능을 메인 기능으로 잡았다.

또한 탐색 탭에서는

사용자들이 공유한 링크를 수집하여 키워드 기반 유사도가 높은 순으로 추천해 주는 기능을 구현했다. 카테고리별 키워드 기반 추천 알고리즘을 설계하여 사용자 맞춤형 콘텐츠를 제안하도록 했으며, 검색창에 키워드를 입력하면 관련 결과를 즉시 확인할 수 있는 검색 기능도 함께 구축했다.

백엔드 파트는 단순 기능을 넘어선 확장 가능한 아키텍처를 설계하는 데 집중했다.

서버는 스위프 측에서 지원해주는 네이버 클라우드 100만원 지원을 활용하여 ncp 서버를 이용하였다.
처음써보는데 나쁘지 않았다. AWS나 GCP보다는 조금 비싼거 같았다.

DDD 기반으로 User, Link, Reference, Recommendation 도메인을 분리해 API-Service-Domain-Infra 구조를 설계했다.
탐색 탭 이슈(전체 빈 응답, 스크롤 중단)를 해결하기 위해 추천 정책(공개 데이터, 내 링크 제외, 중복 제거)을 일관화하고 조회 경로를 보강했으며, 응답을 contents/nextCursor/hasNext 형태로 정리해 무한 스크롤 연동 기준을 명확히 했다. Swagger는 RecommendationApi로 분리해 문서와 구현 책임을 분리했고, MySQL·DBeaver 기반 SQL 검증으로 코드 이슈와 데이터 이슈를 빠르게 구분했다.

이외에도 모든 결정을 확장성과 유지보수성을 고려하여 논의를 하면서 결정하였다.
Elasticsearch 도입과 와 hash_url을 고려해보는 부분도 많은 도움이 되었다.

https://github.com/SWYP12-Team9/keepit-backend
흩어진 링크를 한곳에, Keepit 🔗 - BE. Contribute to SWYP12-Team9/keepit-backend development by creating an account on GitHub.
github.com

중간에 백엔드 팀원 한 분이 이탈하는 악조건도 있었지만, 남은 동료들과 밤낮없이 코드를 짰고 결과적으로 나름대로 기술적인 완성도만큼은 자부할 수 있는 수준까지 끌어올렸다.

데모데이는 선릉에서 진행되었다.
모든 팀의 팀원들이 모여 본인의 서비스를 소개하고, 전체투표를 통해 1등팀을 선출하였다. 이후에는 전체 네트워킹도 진행되었다.

결과적으로 우리 팀은 핵심 기능의 UX 미흡 등을 사유로 미수료 및 환급 불가 판정을 받았다. 가장 아쉬운 점은 과정 중에 PM의 리드에 대해 더 명확하게 쓴소리를 하지 못했다는 것이다. 환급을 못 받을 줄 알았으면 그때 더 강하게 요구하고 제안했어야 했다는 후회가 남는다.
팀 내에 악의적인 빌런은 없었지만, 명확한 리드 없는 프로젝트가 얼마나 힘든지 뼈저리게 느낀 시간이었다. 프론트 작업 시간이 부족해지면서 발생한 UX적 한계가 결국 백엔드에서 공들여 만든 로직까지 통째로 부정당하게 만드는 것을 보며, 협업의 연쇄적인 책임 구조를 실감했다.

비록 보증금 15만 원은 공중분해 되었지만, 나는 이 금액이 서버비와 백엔드 동료분들의 값진 가르침값이라고 생각하기로 했다.

무엇보다 나보다 더 열심히 임해주신 백엔드 파트 천사 현제님과 현자 준현님이 나보다 더 분할거같은데,
훌훌터는 모습을 보며 마인드셋을 본받기로 했다.

(다들 너무 수고 많으셨습니다...백엔드파트 최고)

기간이 끝난 이후에도 백엔드파트분들과 함께 계속 고도화를 진행해 나가기로 했다.
k6를 통한 부하테스트와 레디스,logback 도입등등 좀 더 개선할 수 있는 부분들을 개선해보고 성능 개선 검증까지 할 생각이다.

스위프에서 겪은 시행착오를 밑거름 삼아, 더 능력있는 실력자가 되기 위해 노력하겠다.
고수가 되어야한다. 꺼드럭은 고수가 된 후에 해도 늦지않다.(늦나?)
힘들었지만, 그만큼 나를 단단하게 만들어준 활동이었다.

더불어 미환급 이슈로 스위프 한탄도 많이 했지만, 이번엔 또다시 스위프 앱 4기 PM으로 지원하여 활동 중에 있다. 웹이랑 다르게 앱은 결제 서비스까지 도입해야해서 프로젝트를 설계하는 과정이 힘들지만, 나름 재미도 있는거 같다. 6주가 많이 짧은시간이긴하지만, 이번 경험을 발판 삼아 최고의 팀과 서비스를 만들어내는데 집중하겠다.

profile
develop을 꿈꾸는

0개의 댓글