[와이즐리] 통합스토어 런칭, 그리고 회고

와이즐리 통합 스토어 런칭 프로젝트와 함께 와이즐리에서의 개발 여정을 회고하는 글입니다.

개요

통합스토어 프로젝트는 와이즐리컴퍼니에서 진행했던 다른 프로젝트들보다 나에게 더 많은 의미를 지닌 프로젝트이다. 내가 와이즐리컴퍼니에서 개발한 마지막 프로젝트이기 때문이다. 그렇기 때문에, 이번 글은 통합스토어 프로젝트 회고 + 와이즐리컴퍼니의 회고글이 될 것이다. 통합스토어 프로젝트는 지금까지 런칭했던 와이즐리의 브랜드들을 하나의 이커머스 시스템으로 통합하는 프로젝트인데, 와이즐리에서 진행했던 지난 프로젝트들이 머릿속에 스쳐지나가서 더 기억에 남았다. 면도용품을 판매하는 시리즈 A 단계의 스타트업에 입사해서, 어느덧 시리즈 C 에 근접해가는 회사를 보며 시원섭섭한 감정을 느꼈다.


대기업 SM 업무를 하며

나는 원래 대기업 그룹의 IT 를 운영/개발하는 회사에 재직했었다. 취준생 때 가지고 있던 나의 꿈이 있었는데 (이 꿈은 지금도 유효하다), 그것은 모든 사람이 내가 만든 소프트웨어를 사용했으면 좋겠다 는 것이었다. 또 이왕이면 그 소프트웨어가 많은 사람들을 행복하게 만들길 바랬다. 그러한 측면에서, 나는 많은 사람들이 사용하는 시스템을 운영/개발하는 회사에 입사하게 되어서 기뻤다. 또 주니어 개발자 입장에서, 체계가 갖춰진 대기업에서 일하면서 선배들에게 코드, 그리고 일하는 방법을 많이 배울 수 있을 것 같아서 기뻤다. 하지만 직접 들어가서 보니, 내가 기대했던 커리어와는 많이 다르다는 점들을 느꼈다. 물론 다른 사람들이 부러워할만한 점들도 많이 있었다. 다른 IT 회사들에 비해서 워라밸이 많이 보장된 회사였고, 대기업에서 제공해주는 기본적인 복지(직원할인, 건강검진, 식대 지원, 업무외 근무에 대한 보상) 들이 제공되었다. 하지만 내가 가장 기대했던 개발자로서의 커리어 개발은 만족할 수 없었다. 문제가 되는 코드들에 대해 리팩토링할 기회가 없었고, 코드를 리뷰하는 문화도 없었다. 마지막으로, 내가 코드를 고민하고 작성하는 양 자체가 크지 않았다. 회사에서 나에게 기대한 가장 큰 업무는 기존 시스템에 문제가 없도록 운영하는 것이지, 좋은 코드를 만들거나 개발하는 것이 아니었다. 스스로 많은 고민을 했고, 내가 갈증을 느꼈던 부분에 대해서 도전을 해보기로 했다. 아직 시스템이 제대로 갖추어지지 않은 스타트업에서, 내가 직접 시스템을 작성해보며 성장할 수 있는 곳을 찾기 시작했고, 나와 핏이 맞는 회사를 찾아 이직하게 되었다.

와이즐리컴퍼니로의 합류

와이즐리컴퍼니에 확신을 가지게 된 이유는 생각보다 의외의 순간이었다. C레벨과의 면접 과정에서, 중요하게 물어본 질문 중 하나가 다른 사람들의 의견이 잘못되었다는 생각이 들 때, 그들에게 의견이 잘못되었다고 말할 수 있습니까? 였다. 전에 있던 대기업에서는, 보통 이러한 직원들은 피해를 보는 경우가 많았다. C레벨이 직원에게 원하는 자질이 이러한 것이라면, 이 스타트업은 건전한 방법으로 성장하고 있겠다는 생각이 들어서, 결정적으로 합류를 결심하게 되었다. 입사한 후에 많은 어려움과 도전이 있었지만, 이러한 나의 결정은 지금도 후회하지 않는다. 실제로 나는 많은 부분들이 잘못되었음을 지적했고, 다른 팀원분들과 C레벨 분들은 이러한 나의 모습을 긍정적으로 받아주셨다.

레거시 시스템

와이즐리컴퍼니에 합류해서 놀란 점들은 여러 가지가 있었지만, 개발자로서 가장 놀랐던 부분은 레거시의 크기였다. 당시 와이즐리컴퍼니의 백엔드 시스템은 struts2 + Stored Procedure 로 대부분의 로직이 구성되어 있었다. 배치성으로 수행되어야 하는 작업들은 MSSQL Agent Job 을 통해 운영되고 있었다. 당시의 코드에 기여할 수 있는 Java 백엔드 개발자는 나를 포함해서 2명이었고, 특정 부분에는 Transaction 도 제대로 걸려있지 않았다. 내가 처음 제안했던 것은 struts2 시스템을 Spring 으로 바꾸자는 것이었지만, 당시 팀에서는 인력 부족을 이유로 나중으로 미루었다. 이러한 과정에서, 레거시 시스템은 점점 커졌다.

새로운 팀, 새로운 언어, 새로운 프레임워크

시간이 어느덧 흘러, 다음으로 입사하신 백엔드 개발자분도 회사의 레거시 시스템이 거대하다는 점에 동감해 주셨다. 레거시 시스템 이슈로 인해 사내에 많은 일들이 있었고, 결과적으로는 레거시 시스템을 걷어내고, 신규 시스템을 구축해야 한다는 것에 공감대가 생겼다. 이 무렵 팀장님도 교체되셨는데, 새로운 팀장님은 Java 기반의 시스템을 Typescript 기반으로 변경하길 제안하셨다. Typescript 는 대학생 때 혼자 FE 를 연습하며 배워본 적은 있지만, 실무에서 Node.js + Typescript 를 활용해 본 경험은 없었다. 새로운 팀장님은 나에게 계속 Java 로 개발을 해도 상관없다고 하셨지만, 나는 Typescript 로 개발을 해보겠다고 말씀드렸다. 이유는 두 가지가 있었는데, 코드리뷰와 개발 생산성을 위해, 그리고 개인적으로 Typescript 를 깊게 학습해보고 싶어서 였다. 하지만 회사에서는 시스템 재구축을 위해 몇개월을 기다려 줄 수는 없었다. 초기 단계의 스타트업은 빠른 속도로 성장해야 하는데, 레거시 시스템 제거를 위해 회사의 비즈니스가 희생할 수는 없었던 상황이었다. 결론적으로, 우리는 신규 비즈니스 로직은 Typescript 기반으로 개발하고, 기존의 레거시 시스템의 기능을 변경해야 할 경우, 해당 레거시 시스템을 Typescript 로 재구축한다. 라는 원칙을 세우고 일했다. 이러한 컨벤션 하에서, 20개월 쯤의 시간이 지났을 때 마지막 레거시 코드를 제거하고, 기존 시스템을 셧다운 시킬 수 있었다. EC2 로 운영되던 레거시 시스템을 셧다운 시키는 순간은 내가 와이즐리컴퍼니에서 일했던 최고의 순간 중 하나이다. 마지막 레거시 시스템은 결제 시스템이었는데, 사내의 가장 중요한 시스템이면서도 가장 위험한 코드들이 많아서 배포하는 순간까지도 계속 조마조마했었다. 특히 수천 건이 넘는 정기결제가 정상적으로 돌지 않으면 어쩌지 라는 불안감이 가장 컸었는데, 정상적으로 정기결제가 수행된 것을 보고 안심하며 퇴근했던 기억도 난다. 이처럼 와이즐리컴퍼니는 나에게 개발자로서 많은 숙제를 내주었고, 다행히 팀원들과 함께 숙제들을 하나씩 해결해 나갈 수 있었다.

팀원들의 퇴사, 어쩌다보니 백엔드 파트리더로

와이즐리컴퍼니에서 좋았던 기억들도 많지만, 아쉬웠던 감정도 많이 느꼈다. 가장 아쉬웠던 기억들은 같이 일했던 팀원들이 퇴사를 결심했을 때였다. 팀은 한동안 점점 커져서 8명까지 규모가 커졌지만, 나중에는 인원이 점점 줄어서 3명까지 줄어들게 되었다. 팀원들이 주로 퇴사했던 이유는 예상외로 개발외적인 부분들이었다. 당시 와이즐리컴퍼니에는 흔히 다른 회사의 웹 PM/PO 라고 불리는 포지션이 없었다. 따라서 개발자들이 비즈니스 담당자들과 직접 소통하며 개발해야 했었는데, 이러한 면이 개발자들의 피로도를 많이 증가시켰다. 비즈니스 담당자들은 IT 지식이 없는 상태에서 기획서를 작성하였고, 많은 경우에는 보통 기획서 자체가 정리되지 않고 구두로 전달되었다. 또한 상당 부분의 요구사항은 개발하기에는 기획 상의 구멍이 너무 많았지만, 런칭 일자는 이미 fix 되어있는 상태였다. 이러한 상태에서 엔지니어 팀원들의 피로도가 점점 누적되었고, 결론적으로는 팀장님을 포함한 팀원들의 퇴사로 이어지게 되었다. 3명의 팀원들과 남게 되었을 때에, 나 또한 심리적으로 많이 흔들린 것은 사실이다. 백엔드 팀에서 가장 많은 코드를 작성하고, 가장 오래 재직한 사람이 나였기에, 자연스럽게 회사에서는 나를 백엔드 파트리더로 대했다. 처음에는 엄청 많은 부담감을 느꼈지만, 돌이켜보면 3년차 개발자가 경험하지 못할 경험들을 많이 했고, 그만큼 많이 성장했다고 생각한다. 기획 회의, 시스템 개발, 그리고 엔지니어 채용까지, 그동안 깊게 살펴보지 않았던 점들을 내가 직접 고민하고 구상해야 했다. 가장 재밌고, 잘했다고 생각했던 부분은 페어프로그래밍 도입 이었다. 팀의 규모가 매우 작았지만, 긍정적으로 해석하면 커뮤니케이션 시간이 빨랐고 변화에 민첩하게 대응할 수 있었다. 이러한 측면에서, 페어프로그래밍을 도입해 보았고, 힘든 환경에서 좀 더 재미있게 일할 수 있는 장치가 되었다.

의도치 않은(?) 이직

2022년 설날에는 집에 내려가지 않게 되었다. 이러한 상황에서, 우연히 링크드인 프로필만으로 지원할 수 있는 채용공고를 보게 되었고, 경험삼아 지원해 보기로 했다. 얼마 지나지 않아 서류 통과 메세지를 받고, 과제 전형으로 넘어갔다. 과제는 설날연휴 기간에 풀었고, 명절답지 않게 열심히(?) 명절을 보냈다. 명절이 지나고 직무 면접, 그리고 컬쳐핏 면접을 보았다. 공통적으로 느낀 점은, 회사가 나의 코드에 정말 집중하고 있다는 점 이었다. 주변에서 널리 듣기도 했었고, 이러한 회사에서는 내가 개발자로서 성장할 수 있을 것 같아 이직을 결심하게 되었다. 또 모든 사람이 내가 만든 소프트웨어를 사용했으면 좋겠다 라는 나의 오랜 꿈을 좀 더 구체적으로 실현시켜줄 수 있는 회사라는 느낌이 들어서, 더 이직에 확신을 가지게 되었다. 예상치 못한 타이밍에 이직을 하게 되어서 설레고 어벙벙한 면도 있지만, 대용량 시스템에서 팀원들과 함께 코드를 고민해가면서 더 성장하고 싶다.

기타


통합스토어 런칭 전에, 이제는 보지 못할 기존 사이트의 모습들을 기록해 놓았다.

[와이즐리쉐이브] Image Image Image Image

Image Image Image Image Image

[오픈워크] Image Image Image

Image Image Image

[헤드웍스] Image Image Image

Image Image Image Image

[해비추얼] Image Image

Image Image

[통합스토어 배포중] Image

[통합스토어] Image Image Image

Image Image Image Image


이것도 읽어보세요