문득 든 생각
개발을 한 지 어느덧 2년 정도가 흘렀다. 짧으면 짧고 길면 긴 2년이지만 에이전시부터 시작해서 커머스 스타트업에 이직하면서 많이 배우고 많은 좋은 사람들을 만났다. 문득 2년동안 개발자로 일하면서 성장에 대한 나의 생각과 개발에 대한 나의 생각이 어떻게 변했는지 정리하고 싶어서 이 글을 쓰게 되었다.
에이전시에서의 개발자
2021년 8월 말에 입사해서 2022년 3월에 퇴사했다. 비전공자로서 부트캠프를 수료하고 취업 준비를 할 때 중견기업/스타트업/중소기업 등 가리지 않고 많은 곳을 넣었다. 그 당시만 해도 신입도 서류 합격이 잘되던 시기라 여러기업들의 서류 합격을 하여 면접을 보게 되었다.
그중에 붙은 곳 중에 2군데를 고민하게 되었다. 한 군데는 집과 가까우며 내가 당시 하고싶었던 기술 스펙인 Kotlin/JPA 등을 사용하고 트래블테크 서비스를 하는 회사였다. 그리고 다른 한 군데는 Java/Mybatis를 하는 에이전시 회사였다. 당연히 지금이라면 전자를 선택했겟지만 그당시만 해도 면접경험이 에이전시 회사가 너무 좋았다. 면접관 두분이 들어왔는데 내가 당시 만든 포트폴리오에 대해서 질문도 많이하고 경청도 잘해주고 또 회사에서 하는 업무, 소개 등 자세하게 설명을 해주었다. 그리고 트래블테크 회사는 반대로 면접관님이 면접 중 전화를 받으러 나가고 대화의 티키타카가 되지않는 느낌이 들었다. 결국엔 에이전시에 가게되었다.
회사에 들어가기전 나는 사수가 있고 같이 프로젝트를 하면서 코드리뷰를 하며 점점 개발자로서 성장해가는 상상을 했다. 하지만 그것은 상상일 뿐이였다. 에이전시에 들어가자마자 매트리스 커머스의 웹 프로젝트가 주어졌다. 퍼블리싱만 된 사용자/관리자 템플릿를 3개월안에 프론트/백엔드 개발을 하고 완료했어야했다. 개발자로서 회사가 처음이라 당연한 줄 알았다. 그 당시 신입의 패기였던건지 충분히 가능하다 생각했엇다(이 당시 진짜 나는 어떤 자신감이였는지 지금도 이해가 안간다). DB설계/백엔드 개발/프론트 연동 등 하나의 프로젝트를 처음부터 끝까지 하게됨으로써 당시 CRUD도 잘 못 만들던 나는 많이 배운 계기가 되었다. 또한 커머스다보니 외부 API를 연동하는 일도 많아졌다. 결제, 카카오 알림톡, 소셜 로그인 등 당시 어려웠지만 결국에는 구현하고 성취하는 귀한 경험도 했다.
에이전시에서의 첫 두세달은 많이 성장했다고 생각한다. 하지만 그 후에 프로젝트를 완료하고 새로운 프로젝트를 들어갔을 때 번아웃이 많이 왔다. 어느새 CRUD는 익숙해졌고 혼자하는 프로젝트다보니 점점 나 자신에게 관대해지고 코드를 돌아가게만 짜고 유지보수/확장성은 생각하지도 않은 진짜 코더가 되었다는 생각을 하게 되었다. 또한, 사람들이 점점 퇴사하고 일이 몰리기 시작하면서 개발하는게 싫어지는 지경이 되었다. 그 때만 해도 2개의 프로젝트 유지보수, 1개의 프로젝트 서포트, 2개의 메인 프로젝트를 진행하고 있엇다. 그리고 부트 캠프 동기중에 서비스 회사에 간 다른 친구들과 이야기를 하면서 나는 무지성으로 코드를 짜고 개발하는 코더/ 코드 몽키가 되어가고 있다고 생각을 했다. 그 때 부터 내가 맡은 프로젝트들은 완료하고 퇴사하기로 마음을 먹었던 거 같다.
드디어 서비스 회사로 이직
운이 너무 좋았다. 에이전시에서 먼저 퇴사하신 분이 커머스 스타트업으로 이직하게 되었다. 그리고 그 분이 회사에서 추가 채용을 한다며 나를 추천해줘서 면접을 보고 합격이되어 이직을 결정하게 되었다.
모든게 다 새로웠고 짜릿했다. 디자인 팀, 기획 팀, 개발자, 마케팅 팀 등 여러 팀들이 협업하여 하나의 프로덕트를 같이 만든다는 생각이 너무 설렜엇다. 또한 매주 월요일에 스크럼을하며 애자일스럽게 업무를 진행한다는 것 조차도 너무 재밌고 새로웠다.
그 중에 가장 좋았던 건 같이 일하는 동료들이었다. 가장 기억나시는 분은 한 시니어 분이다. 그 분은 진짜 개발자 그 자체였다. 어떤 질문을 물어도 술술 a부터 z까지 설명해주시고 잘 알려주셨다. 신기했던게 서비스를 운영하고 개발하면서 문제가 생기면 엄청 흥미로워하고 이슈가 해결될 때까지 의자에 일어나지 않으셨다(만약 나라면 운영중인 서비스에 문제가 생기면 패닉부터 올 거 같다). 그래서 그 때부터 좋은 개발자는 어떤 개발자인지 생각하게 되고 방향성이 잡히기 시작한 것 같다.나와 비슷한 연차인 주니어 개발자 분들도 여럿있엇다. 잘하시는 분들이 많아서 동기부여도 많이 되었고 많이 배웠다. 또 서비스회사의 큰 매력은 기술스택도 정해진 에이전시와 다르게 그때 그때 상황에 맞게 필요한 기술들을 사용하는게 신기하면서도 어려웠엇다.
스타트업에 일하면서 크게 배운건 세가지가 있다.
- 좋은 기술이 모든 상황에서 무조건 좋은 기술은 아니다. 상황에 맞게 기술을 선택해 사용해야한다.
- 기능이 새로 만들어지고 없어지고 이런 기획 사이클이 관리자 분들에 결정에 의해 빠르게 변화된다. 그래서 개발 스펙도 그에 따라 빠르게 변경됨으로 바쁘지만 모두 하나의 프로덕트의 성공을 위해 협업하는 모습이 재밌엇다.
- 코드 리뷰를 함으로써 다른 개발자분들에 의견을 듣고 내가 보지 못한 부분에 대해 시야도 넓어지고 개발을 할 때 최대한 유지보수,확장성 등을 생각하여 깔끔하고 꼼꼼하게 짜도록 변한것 같다.
커머스 스타트업을 다니면서 개발자에 대한 방향성이 많이 바뀐거 같다. 예전에는 그냥 개발자가 되고 싶었다는게 전부였는데 현재는 성장이라는 키워드에 관심을 갖고 좋은 개발자가 되고 싶다는 생각이 든다. 그래서 그 때부터 이것저것 나한테 필요한 강의들을 듣고 스터디도 하면서 지내왔다.
갑자기 주제 파악
위에서 말한 것처럼 강의들을 듣고 스터디를 했다. 하지만 요즘 드는 생각은 내가 너무 겉멋만 들고 성장 호소인이 되고 있다는 생각이 든다. 왜냐하면, 듣는 강의들이 내가 필요하기보단 주위에서 이거 요즘 많이 쓰고 좋다더라 한다는 기술들의 강의 위주로 들었다. 그러면서 갑자기 드는생각이 내가 이런 강의들을 듣기에 지금 맞는걸까하는 고민이 들었다. 사실 지금 객체지향 언어(java/kotlin)을 메인으로 개발을 하지만 객체지향의 장점을 살리며 객체지향스럽게 코드를 짠다고 자신할 수 없다. 또한 클린한 코드를 짠다고도 자신 할 수 없다. 그래서 나는 더 늦기전에 처음부터 기초를 탄탄하게 쌓아올리고 상황에 맞게 필요한 기술들을 공부하며 개발자로써의 스펙트럼을 넓혀갈 생각이다. 클린 코드/객체지향/네트워크/CS 등 fundamental 관련된 책들을 다시 집중해서 정리하고 읽고 공부할 계획이다. 내가 원하는 목표는 누구나 봤을 때 이해하기 쉽고 읽기 쉬운 코드를 작성하고 싶다.