디자이너와 프로그래머가 만났을 때 — 디프만 18기 백엔드로 보낸 16주와 PiKi 대상 회고
이번 회고는 팀원들에게 감사함을 담아 존댓말로 작성하겠습니다.
회사를 다니면서 개인 프로젝트를 몇 번 시도했다가 그만두기를 반복했었습니다.
기획부터 마땅한 아이디어가 안 나왔고, 어찌어찌 만들어도 UI가 조악했고, 내가 보기엔 이쁘지만 백엔드 개발자가 볼 때 이쁜 거 뿐이었습니다.
그러던 와중에 참여한 디프만 18기의 16주 세션이 7월 초, 모두 끝났습니다.
동아리에 들어간 이유
저는 입사 전까진 항상 스프링부트에 JDK 21+ 를 메인 스택으로 활용해왔습니다.
그런데 회사에 들어가 보니, 자사 서비스를 오래 운영해온 곳이 대개 그렇듯 이미 잘 돌아가고 있는 걸 쉽게 여러 단계로 마이그레이션할 수 있는 상황이 아니더라고요.
네, 레거시 스택을 쓰게 됐습니다.
기술 다운그레이드에 적응하는 게 쉽지 않았습니다.
람다가 안 돼? 스트림이 없어? java.time이 없어?
그게 잘못됐다는 건 절대 아니지만, 그냥 솔직히 스프링부트 쓰고 싶었습니다.
두 번째는 혼자서는 못하던 것들입니다.
동아리 이름부터가 디자이너와 프로그래머가 만날 때라, 디자이너와의 협업이 너무 기대됐습니다.
여러 프로젝트를 해보면서 결국 보기 좋은 프로젝트가 개발하기도 좋고 애정도 더 생긴다는 걸 익히 알고 있었거든요.
그리고 서버 아키텍처 아무리 이쁘게 짜놓고 우리는 멱등성이 어떻고 뭐가 어떻고 설명해봤자, 결국 UI 이쁜 쪽이 수상하더라고요.
마지막은 사람입니다.
개발 얘기를 나누는 사람이 싸피 때 만난 사람들로 거의 국한되어 있었습니다.
뭔가를 공유하고 같이 부딪혀볼 동료가 더 있었으면 했고, 거기서 더 친해지면 친구까지 얻고 싶었습니다.
기대와는 달랐던 부분
저는 1년차니까, 저보다 뛰어난 현업 개발자들이 많다면 다른 회사 분위기는 어떤지, 어떤 기술을 쓰는지, 어떤 식으로 개발에 임하는지를 같이 몸으로 부딪히면서 배우고 싶었습니다.
그런데 팀이 짜여지고 보니 현업 개발자가 몇 명 없었어요.
그래서 방향을 바꿨습니다.
팀원들이 하고 싶은 걸 다 해볼 수 있게 받쳐주는 것도 멋있을 것 같다고 생각했습니다.
예를 들면 기획 회의에서 "그건 서버에서 어려워요"를 되도록 안 하는 쪽으로..? 그렇게 컨셉을 잡고 동아리에 임했습니다.
그래서 백오피스를 만들고, 슬랙봇이랑 여러 metrics 지표 같은 것도 만들어서 제공했는데, 저 말고 많이 쓰셨는지는 사실 모르겠습니다.
무튼 만들고 "써봐" 하면서 무심한 듯 툭 주는 맛이 있었어요.
그래서 PiKi가 뭐야?
PiKi는 여러 쇼핑몰에 흩어져 있는 위시리스트를 한곳에 모으고, 그중 고르기 힘든 것들을 1:1 토너먼트로 붙여 하나를 고르게 해주는 서비스입니다.
누구누구 생일선물 고르기 처럼 남의 위시를 대신 골라줄 수도 있어요.
네이밍은 예빈 디자이너님 아이디어입니다.
확실히 예빈 디자이너님이 젊어서 그런지 아이디어를 상큼하게 잘 뽑으시더라고요.
디자이너 팀원분들이 열심히 작성하신 Behance 입니다. PiKi — From Wish to Pick 하입 부탁드립니다.
서버에서 개발하며 포스팅할 만한 내용은 이미 따로 적어뒀고, PiKi 2.0을 개발하면서 계속 업데이트하려 합니다.
- 비밀번호 없는 admin 페이지, 슬랙으로 내 IP를 등록해 여는 PiKi 운영 백오피스 — 알림 문구를 배포 없이 고치고 공지를 발송하는 화면. 개발 안 하는 팀원이 1차 사용자였습니다.
- 좋은 테스트란 무엇일까, 개발자라면 모두가 마주치는 테스트 이야기 — 마감이 있는 프로젝트에서 테스트를 어디까지 짤지 선을 그은 이야기.
- JWT 토큰, 어디에 담아야 할까 — 토큰 정책을 정하며 했던 고민.
회고에서는 기술 얘기보단 감상 위주로 하려고 합니다.
기억에 남는 딮커톤 세션
기억에 오래 남는 건 여러 가지가 있는데, 첫 번째는 팀원들과 다 같이 오프라인에서 밤을 샜던 딮커톤(디프만 해커톤)입니다.
밤샘 개발 자체가 처음은 아닌데, 이게 한 살 한 살 먹어가다 보니 내가 끝까지 버틸 수 있을까 싶었습니다.
밤에 다 같이 우르르 성수까지 걸어 나가서 한정선 사 온 게 기억에 좀 남습니다.

근데 그때 저는 아직 어색해서 누구랑 크게 말도 안 하고 걸었었는데, 지금 생각하면 좀 떠들면서 갈걸 그랬나 싶습니다..
처음 해본 부스운영
6월 20일, 공덕 서울창업허브에서 런칭데이를 했습니다.
15주간의 결과물을 외부인에게 처음 보여주는 자리입니다.
테마가 "Invest in Possibility"였어요.
방문객과 디퍼 한 명 한 명에게 가상 투자금 1,000만원짜리 투자권을 주고, 여섯 팀 부스를 다 돌아본 뒤 마음에 드는 팀 투자함에 넣게 했습니다.
한 팀에 1,000만원을 몰아도 되고, 쪼개서 투자할 수도 있었어요.

대개 컴퓨터공학과 나온 친구들은 졸업 프로젝트 느낌으로 부스를 운영해본 경험이 있지만, 저는 그런 게 없었습니다.
그래서 런칭데이가 특별했고 재밌었습니다.
이 부스는 저보다 팀원들이 훨씬 더 고생해서 만든 겁니다.
장바구니에 담아 골라보게 한 컨셉도, 영수증 모양 배너도, 맞춰 입은 흰 티도 전부 팀원의 아이디어와 실행이지 저는 한 게 없습니다..
오히려 사고를 쳤습니다.
특정 시간대에 트래픽이 몰릴 걸 대비해서, 전날 prod EC2를 스케일업 해두고 대비했다고 생각했습니다.
그런데 정작 deploy.yml을 안 고쳤습니다.
저희는 dev, staging, prod 세 환경을 쓰는데, 컨테이너 메모리 한도와 JVM 힙이 배포 워크플로에 전 환경 공통값으로 박혀 있었어요.
prod만 인스턴스를 키워놓고 배포 설정은 환경별로 안 나눈 겁니다.
그래서 prod 컨테이너는 스케일업 전 박스 기준인 --memory=400m, -Xmx256m에 그대로 묶여 있었습니다.
박스만 커지고 앱은 그 메모리를 못 쓴 거죠.
결국 힙이 꽉 찰 때마다 Full GC가 도는 시간만큼 서비스가 멈춰서 민폐를 끼쳤습니다...

왼쪽에 Grafana, 오른쪽에 로그를 띄워놓고 앞에서 시연하는 동안 서버를 보고 있었습니다.
의연 디자이너님은 런칭데이 회고 때 제가 서버에서 실시간으로 해결해줬다고 하셨지만.. 사실은 JVM이 스스로 GC를 비운 거지, 저도 멀뚱멀뚱 쳐다만 봤습니다...
제가 확인할 수 있는 건 아 힙이 꽉 찼구나, 비우고 있구나, 아 곧 안 될 거 같은데.. 아 곧 나 쳐다보겠군 이 정도..? 그냥 아이컨택하면서 내가 했다 이제 돼? 지금은 될 텐데 한 번 봐봐, 이러면서 신뢰를 줬달까..
다시 한 번 팀원들 죄송하고 감사합니다.
디프만 18기 대상. PiKi.

6월 27일, 서울시 노동자복지관 대강당에서 최종발표를 했습니다.
우수상, 최우수상, 대상 등의 구분은 평소 세션의 점수와 출석 점수 등이 포함된다고 했습니다.
16주 동안 결석은 최대 3번까지 할 수 있는데, 저는 MT처럼 낯선 자리가 부담스러워서 안 간 것들까지 포함해서 3번을 꽉 채웠습니다.
그래서 발표 직전에 걱정을 좀 했습니다.
팀을 위해 개근한 팀원이 계셔서, 혹시 나 때문에 대상 못 받으면 미안해서 어쩌지...
결과는 다행히 대상이었고 매우 기뻤습니다.
이번 디프만도 60명 넘는 참가자가 있었을 텐데, 우연히 만나게 된 저희 팀 한 명 한 명 실력도 인성도 매우 훌륭해서 버스 탔다고 생각합니다.
다시 한 번 팀원들께 감사합니다.
다음은 PiKi 2.0

개발 외적으로도 남는 게 있었습니다.
회사-집-회사-집으로 너무 반복적인 일상뿐이었는데, 여기서 팀원 이상의 좋은 친구들을 만났습니다.
팀원들도 저를 그렇게 생각했음 좋겠네요.
이것들 저것들 다 추억이 됐고, 다들 잘 됐으면 좋겠습니다.
최신 스택 쓰겠다고 지원한 것치고는 꽤 많이 챙겨 나온 것 같습니다.
지금은 PiKi를 계속 고도화하고 운영하려는 팀원들과 PiKi 2.0을 준비하고 있습니다.
그러니 또 다른 기술 포스트로 돌아오겠습니다.
그리고 제 블로그에서 첫 존댓말 포스팅인데, 뭐가 보기에 더 편하거나 불편한지 댓글 남겨주시면 감사드리겠습니다.
긴 글 읽어주셔서 감사합니다.
no comments yet.