우아한형제들

우아한형제들을 퇴사하며

Jay22 2024. 4. 23. 00:33
반응형

우아한형제들에서 4년간 일을 하고 퇴사한 시점에 적는 회고록입니다. 4년동안 정말 재밌고 많은 일들이 있었는데 그 중에서 기억나는것들을 하나씩 적어보려고 합니다.

어떤 일들을 했는가

나는 총 3개의팀에서 일을 했다. 각 팀에서 어떤 일들을 했는지 주요한것들만 나열을 먼저 해본다.

배민장부팀

  • 배달의민족에 입점한 업주중 10만명 정도를 대상으로한 매장카드, 배민매출, 현금영수증, 전자세금계산서를 포함한 매출 통합 관리를 위한 서버 개발 및 유지보수
  • 일 수백만건의 매출데이터 크롤링, 저장, 처리 파이프라인 개선 및 유지보수 & 크롤링 서버들 모니터링 환경 개선
  • 배민 B2B데이터 연동 및 적재하여 업주님들에게 유의미한 지표 제공

배민셀프서비스팀

  • 배달의민족 30만 업주들이 사용하는 통합 장사관리 서비스 개발
  • 레거시 시스템 개편 및 신규서버로 이관하여 api gateway 구조 개선
  • 다양한 부서와의 커뮤니케이션을 통해 배달의민족 내의 다양한 B2B 경험
  • 팀내 개발문화 확립 및 신규입사자 온보딩 기획

배민리스팅광고개발팀

  • 배달의민족 내 다양한 광고상품 개발
  • 월간 MAU 2천만 배달의민족 애플리케이션에서 사용되는 광고리스팅 API개발
  • 각종 성능튜닝 및 비용절감 (ES 마이그레이션, 성능테스트를 통한 서버 리소스 사용률 개선)

경험과 성장

각 팀에서 어떤 느낌들이 들었는지 적어보려고한다.

배민장부팀

대학교를 마치고 우아한테크코스에서 본격적인 개발자준비를 시작했었다. 나는 1기 출신이다. 그때 당시에는 취업보장도 없었기때문에 어떻게보면 도박에 가까운 선택이었다. 취업에 있어서는 도박이었지만 개발자로써 커리어를 만들어나가는데는 확신이있었다. 교육을 들으면서 여러 동기들과 같이 과제도하고 프로젝트도 하고 정말 즐겁게 1년을 보냈다. 수료 직전까지 취업에 대한 걱정도 거의 없을만큼 재밌게 보냈다. 수료후 우아한형제들에 입사기회가 있어서 면접을 보게되었다. 면접 도중 범준님의 날카롭고 논리적인 질문에 등골이 서늘해지는 경험을 했지만 운이 좋게 1,2차 면접에 모두 합격을 했고 정식입사를 하게 되었다.

 

신입으로 입사를 한 팀은 배민장부팀이었다. 교육을 마치고나서 가고싶은 팀을 정해야했었고 나를 리뷰해주신 분이 일하는 팀을 선택하였다. 그 분은 우아한테크코스 당시 나에게 코드리뷰를 통해 매우 많은 조언을 해준 분이었고 나는 그것을 계기로 더욱 성장에 박차를 가했던 기억이 있다. 그 분이 속해있던 팀이 바로 배민장부팀이었다.

 

 

그 당시 배민장부는 신사업에 속해있었고 건물 층도 별도로 따로 썼었다. 즉 ‘우리’들만 있는 팀이었고 우아한형제들에 속해있었지만 스타트업에서 일하는 느낌이 들정도로 소규모 팀이었고 개발주기로 빨랐다. 어쨌든 배민장부에 입사를 하고 입사 첫날 모두가 앉아서 걸어들어오는 나에게 박수를 쳐주었다. 나는 이 분위기가 처음에 굉장히 어리둥절했었다. 적어도 대한민국에서 직장을 다니는거라면 굉장히 딱딱하고 사무적인 분위기일거라고 생각했다. 내가 미생이라는 드라마를 본 이후라서 더 그런지 모르겠지만 매우 당황했던 기억이 있다. 그 이후 팀 문화에 점점 녹아들어 나도 편하고 재밌게 다니게 되었다. 정말이지 일터가 너무너무 시끄러웠다. 안좋은 의미가 아니라 항상 웃음소리가 넘쳐났고 대학교 동아리가 같은 분위기였다. 어찌됐건 배민장부는 모든 직군이 모여있는 원팀이었다. 서버개발자, 프런트개발자, 기획자, 디자이너까지 모든 사람들이 같이 있었다. 그러다보니 프로젝트에 대한 이야기와 방향성에 대해서 더 많은 이야기를 나눌 수 있었다.

 

입사하자마자 바로 업무에 투입이 됐다. 간단한 피쳐 하나를 친뒤에는 조금 더 큰과제를 받았다. 매출데이터 크롤링 - 적재 - 가공 파이프라인을 통째로 개선하는 작업이었다. 지금 생각해보면 조금 더 큰게 아니라 정말 컸었다. 데이터흐름 자체를 갈아치우는 작업이라 어느 한곳에서 문제가 생기면 연달아 다 문제가 생겨버리는 작업이었기 때문이다. 그 당시 aws kinesis로 데이터흐름을 만들었었는데 이게 비용이 만만치 않았다. 하여 sqs로 전환을 하기로 되었는데 이 작업을 내가 바로 맡게 되었다. 1주일동안은 코드 한줄을 건드리지도 못했다. 하루종일 모듈구조파악했고 raw data가 수집된 시점부터 최종 data가 만들어지는 과정이 어떻게 되는지 그리고 흐름의 어디를 고쳐야하는지 전혀 이해가 안되었다. 한 1주일정도를 파악하고나니 대충 어떻게 돌아가는지 알겠더라. 내가 하려고하는 방향을 ppt에 도식까지 그려서 팀 내 모든 개발자들 앞에서 작업계획을 발표했다. 시니어분들이 맞는 방향성이라고 피드백을 주셨고 개발작업이 시작되었고 개발이 끝난 이후에 운영배포까지 마무리를 했다. 멋지게 큰 프로젝트를 마무리하는가 싶더니 결과는 장애가 터졌다. 데이터를 보내고 받는 과정에서 역직렬화가 잘못되어 매출데이터가 잘못 적재 되었던 것이다. 급히 코드 수정을 했고 감사하게도 옆에 계신 시니어분이 데이터클렌징부터 재적재까지 도와주시는 바람에 수습을 하긴 했지만 배포에 대한 경각심을 가지게된 첫 중요한 계기였다.

 

그 이후에도 다양한 과제들을 수행하면서 여러 경험들을 했고 나의 롤모델을 만나게 되었다. 같이 일을 자주하게된 시니어개발자분이셨는데 경외감이 들정도로 논리적이고 꼼꼼한 사람이었다. 언제나 문제의 논점을 흐리지 않으며 해결해야할 문제에 정확히 집중하는 분이었다. 감사하게도 몇달동안 붙어서 같이 일할 수 있는 기회가 있었다. 정말 밀접하게 같이 붙어서 여러 프로젝트를 수행했었다. 길게는 몇달짜리 프로젝트도 있었는데 플래닝부터 개발업무분장, 코드리뷰, 배포, 모니터링까지 같이 할 수 있었다. 코로나가 터져서 zoom으로 항상 회의를 했고 필요하면 페어프로그래밍도 진행하였다. 바쁠때는 하루종일 이야기할때도 있었고 며칠씩 모니터링으로 새벽 3시까지 함께하는 날도있었다. 오죽하면 그 분이 말씀하시기를 본인 와이프나 애기들보다 나랑 더 많이 얘기한다고 할정도였으니까. 또 하나 기억나는내용은 같은 코드를 5번이나 빠꾸를 맞은일인데, 정말이지 그 분이 왜이렇게 피드백을 주시는지 이해를 못했다. 나의 고집을 버리고 그 분이 어떤 의도를 가지고 있는걸까를 생각하면서 반추해보니 내가 틀렸다는걸 알게 되었다. 그 분과 일하는게 좋았던점은 나에대해서 좋은 의도로 항상 채찍을 주셨기 때문이다. 모든것에 대해 항상 개선점에 대한 피드백을 주셨고 한번도 나에게 잘했다라는 말씀을 하시지않았기에 나로써는 성장의 기회가 되었다.

 

1년이 살짝 넘게 배민장부팀에 있다가 회사차원에서의 조직개편으로 팀 자체가 사라지게 되었다. 서비스는 fade out을 하지 않았기에 이 서비스를 그대로 등에 업고 다른 팀으로 가게 되었다. 내 롤모델인 분은 광고팀쪽으로 배정을 받으셨다. 나는 이 헤어짐이 무엇보다 아쉬웠다. 헤어지면서 그분께 면담을 요청했고 내 롤모델 시니어분은 “이제 할만큼 했으니 해산해”라는 말씀을 하셨다. 나는 아직 애송이인데 그 분이 없어진 나를 생각하면 걱정부터 앞섰지만 해산허락(?)을 받았기에 눈물을 머금고 해산할 수 밖에 없었다. 나머지 같이 일했던 개발자들은 또 다른 팀으로 가거나 퇴사하거나 했고 셀프서비스라는 팀으로는 나까지 총 3명이 오게 되었다. 하지만 두 분도 곧 퇴사를 하게 되었다. 물론 그들의 발전을 위한 도전이었고 그 두분의 앞길을 응원하며 아쉬웠던 기억이 난다. 이 분들은 아직까지 종종 만나서 술한잔하면서 친분을 이어가고있을 만큼 멋지고 좋은 분들이다.

셀프서비스팀

초기 배민셀프서비스팀은 서버개발자가 없었다. 서버 개발자가 없으므로 당연히 서버도 없었다. 프런트 개발자들만이 업주님들에게 제공해야할 B2B데이터를 다른 팀의 서버를 gateway형식으로 찌르고있었고 상당수 로직들을 본인들이 담당하고있었다. 배민장부를 유지보수하면서 배민셀프서비스 서버를 신규로 구축하고 gateway로 되어있던 부분을 마이그레이션해야 했다. 남은 서버개발자들도 퇴사를 했기에 나 혼자 남게 되었다. 이제 배민장부에 대한 히스토리를 아는 개발자는 이 팀에 나밖에 없었고 새로운팀의 신규서버도 새로이 구축해야하는 상황에 직면했다. 팀장님, 실장님도 나에게 면담을 요청하시고 밥도 사주시면서 나의 퇴사에 대한 걱정을 내비치셨다. 어떻게 보면 막연하고 걱정되는 이 상황에서 나는 내 팀과 서비스를 절대 그냥 두고 갈 수 없었다. 저 절대 퇴사안할거니까 걱정하지마시라고 못을 박았다. 책임감도 있었고 나를 필요로 하는 사람들의 대한 기대감까 있었기 때문에 나는 오히려 이 상황을 해결하기 위한 의지가 더 컸다. 내 롤모델인 시니어분을 생각하면서 그분이라면 이상황에서 어떻게 행동했을까?를 생각하면서 말이다. TO가 있기 때문에 윗선에서 채용을 계속해서 진행하실거고 나는 그분들이 오면 빠른시간안에 제일 효율적으로 온보딩을 시키고 업무에 투입시키면 되겠다고 생각했다. 내가 사람이 들어올때마다 일일이 설명하는것도 나의 시간을 blocking하는 것이기 때문에 위키정리나 녹화를 통해 배민장부에 대한 히스토리와 개발방식들을 정리했다.

 

 

그리고 셀프서비스팀은 배민장부와 마찬가지로 모든 직군들이 모여있었다. 그분들은 서버개발자와 교류를 해본 기회가 많이 없었어서 서버개발자들을 충원하고 같이 일을 하는데에 있어서 서먹서먹하거나 잘 모르는 부분들이 있을거라고 생각했다. 개발을 빨리 잘하는것도 중요하지만 모든 직군이 있는 팀은 팀의 화합이 매우 중요하다고 판단했다. 서버개발자가 이 팀에와서 어떤 역할을 하는지, 대화하면서 나오는 개발용어는 무엇을 뜻하는지 그리고 개발하고 있는 서버 아키텍쳐까지 비개발자들에게 최대한 이해하도록 그림 및 예시와 함께 설명하는 세션을 기획했다. 그리고 그분들이 느끼기에 최대한 통일되고 쉬운 용어로 소통을 약속하며 조금이라도 소통이 어려워지거나 서버개발자와 일하는데 불편함이 있으면 언제든지 이야기를 해달라고 부탁드렸다. 시간이 지나면서 서버개발자들이 충원되고 팀이 점점 안정화가 되기 시작했다. 스무스하게 진행된것처럼 보이지만 서버개발자가 없었던 시점에는 힘든점도 많았다. 장애도 났었고 무엇보다 배민장부라는 큰 서비스를 유지보수하면서 신규서버를 구축해야하는 점이 쉽지 않았다. 배민장부는 배포가능한 서버군 모듈만 20종류가 넘고 수백대의 인스턴스들이 가동되고있으며 분단위부터 시간단위까지 돌아가는 배치만해도 백여개가 넘었다. 시스템에 잠시라도 눈을 떼면 불안감이 엄습했고 불면증이 올정도였다. 그럼에도 팀의 재건이라는 목표를 달성하고 싶었기 때문에 내가 할 수 있는 한 최대한 노력했다. 이후 신규입사자들이 들어어고 어느정도 안정화가 된 이후에는 그 다음 나의 목표를 재수립했다. 조금 더 개발적으로 성장하고 싶은 마음이 생겼고 일반사용자들이 배달의민족 애플리케이션에서 직접 경험할 수 있는 것들을 개발하고싶었다. 마침 내 롤모델시니어분이 배민광고를 담당하는 팀의 팀장으로 계셨고 사내전배를 통해서 해당 팀으로 옮기게 되었다. 언제든 이별을 아쉽지만 내가 없어도 다 돌아갈 수 있게 끔 문서화나 지식공유도 팀내 서버개발자들에게 모두 한 뒤였기 때문에 팀 이동을 선택했다.

배민리스팅광고개발팀

(팀 이름은 자주바뀌어서 지금은 또 다른 이름이 되었지만) 이 팀은 배민앱에 노출되는 광고(여기서 말하는 광고노출은 흔히 말하는 애드테크의 광고라기보다 앱내 노출되는 가게라고 생각하면된다. 업주들이 광고상품을 구매하고 본인들의 가게가 앱내 특정 지면들에 노출되기 때문에 광고라고 부르는것이고 어떻게 보면 가게리스팅에 가깝다)를 담당하는 팀이었다. 그렇기떄문에 실제 고객들의 트래픽을 직접 받는 부분들이 상당수 존재했다.

 

 

대고객 트래픽을 받아볼 수 있고 무엇보다 롤모델시니어분과 다시한번 일을 해볼 수 있는 기회가 생겨서 좋았다. 하지만 그 분은 팀장 업무로 실무 개발을 많이 하시지 못했고 멀리서 종종 피드백을 받는 것에 만족해야 했다. 이것만으로도 나는 좋았다. 이 당시 팀은 광고상품개발과 광고노출개발을 다 커버하고 있는 팀이었고 스프린트마다 개발하는 도메인들이 달라지는 경우도 있었다. 몇달은 광고상품개발을하고 몇달은 광고노출개발을 했다. 회사차원에서도 업주들과 고객들이 긍정적으로 경험할 수 있는 기능들을 개발해야했고 이모든것들은 광고상품개발로 출발했다. 또한 광고데이터들을 앱내에 노출시키기 위해서 다양한 큐레이션들이 있었고 이런 API들을 개발할 수 있는 기회들도 많았다. 실제 데이터로 성능테스트도 해보고 여러 성능개선작업들도 경험해보았다. 아무래도 고객 트래픽을 직접 받다보니 축구경기나 크리스마스 등 여러 이벤트가 있는 날에는 돌아가면서 모니터링을 진행했다. 뭔가 이벤트가 있을때 맘편히 이벤트를 즐길 수 없는 팀이지만 그만큼 중요한 역할을 하는 팀이고 이 나름대로 개발적으로 많은 경험들을 해서 너무 좋았다.

 

그리고 작년부터 특히 더 바빠졌던것 같다. 회사차원의 이유로 여러 광고상품들을 개발해야했고 정해진 일정속에 여러 변동되는 사항들까지 커버하면서 일을 해야했다. 회사매출에 있어서 광고상품은 제일 처음에 생기는 원장데이터라고 할 수 있고 이 데이터를 수많은 팀들에서 활용을 하기 때문에 연관된 팀들도 매우 많았다. 일정산정, 모든팀들과의 커뮤니케이션, API 및 데이터스펙 협의, 개발, 성능테스트 등을 정해진 일정안에서 수행해야했다. 회사차원에서 중대한 과제다보니 방향성도 기민하게 바뀌었고 벌어진 상황에서 최선의 선택을 해야했다. 배민1이라는 광고상품에 대한 대대적인 개편작업이 있었고 이러한 변화가능성을 대비하는 차원에서 최대한 심플한 아키텍쳐를 제안했다. 미래 예측의 정확성은 시스템이 복잡해질수록 낮아지기 때문이다. 우리팀에서 제시하는 아키텍쳐에 따라 유관부서의 개발 방향이 바뀌고 자칫하면 걷잡을 수 없는 결과를 초래할 수 있다. 어떻게보면 유연성이 떨어지고 엄격해보이는 구조였지만 나는 이 구조가 회사매출과 연관되어있는 데이터기 때문에 절대 실수가 발생하면안된다고 생각했고 이것을 사전에 차단하려면 구조적인 장치로 강제하고싶었다. 그리고 이러한 방향이 코드측면으로도 훨씬 간단하고 직관적이었다. 사내업무라 모호하게 이야기 했지만 여튼 퇴사직전에 마지막으로 회사차원의 의미있는 과제를 하게 되었다. 퇴사하면서 롤모델인 팀장님과 마지막 면담을 했다. 여기 회사에 4년동안 있으면서 나에게 한번도 내 앞에서 잘했다라는 말씀을 하시지 않았지만 처음으로 “잘했다” 라고 하셨다. 만감이 교차했다. 내가 잘했다기보다 나가서 잘해라 라는 의미로 말씀하셨을거라고 생각한다.

한계를 시험한 프로젝트

보통은 무난한 프로젝트들을 주로하지만 4년동안 있으면서 땀이 삐질삐질 나거나 잘못하면 굉장히 큰일나는 프로젝트들 몇개만 이야기해보려고한다.

셀프서비스 서버 마이그레이션

셀프서비스팀에 들어와서 마이그레이션 작업을 마치고 첫 배포를 했었던 때였다. 대수술이었기 때문에 점검을 걸고 진행을 했다. 점검은 보통 새벽에 진행을 한다. 내 기억에 3시부터 점검을 했던거같다. 당시 새로운 개발자분들이 팀에 합류를 했지만 서버 마이그레이션 작업은 처음부터 진행한것이 아니기 때문에 무언가 문제가 생기면 무조건 내잘못이었다. 아키텍쳐는 gateway와 internal 서버를 분리하여 public, private 망에 배포를 할 계획(업주님들 단말에서 호출이 되기 때문에 public망으로 앞단 서버가 필요했다)이었고 점검기간동안 운영QA를 태우고 8시에 점검해제를 할 계획이었다. 배포시나리오까지 완벽하게 준비를 했기때문에 절대 롤백될일이 없다고 생각했다. 심지어 같이 일하는 프런트 개발자분들께도 롤백시나리오는 있긴하지만 롤백될일 없다고 자신있게 말했다. 배포날 새벽에 일어나서 택시를 타고 회사를 갈계획이었지만 혹시나 자버릴까봐 불안해서 전날 저녁에 그냥 회사를 갔다. 혹시라도 회사 책상에서 잠들면 누군가와서 깨워주기라도 하겠지라는 생각이었다. 도착은 했는데 약간의 긴장으로 잠도 오지 않아서 뜬눈으로 3시까지 기다렸다. 개발자분들과 기획자분들 그리고 QA분들이 회사에 도착하기 시작했다. 시간이되어 점검 job이 돌면서 일반사용자의 접근이 막혔다. 시나리오대로 배포를 시작했다. 배포가 완료가 되었는데 예상치 못한 일이 벌어졌다. 메인지면에서 503이 떨어지면서 접근이 안되는것이었다. 이미 QA까지 다 끝마친 코드인데 접속부터 서버에러가 떨어지는게 말이 안되었다. 일단 옆에 있는 커피부터 들이켰다. 에러로그도 찍히지 않았다. 보통은 로그로 트래킹을 하는데 로그가 없으니 눈감고 찾는것과 같았다. 배포 profile이 잘못됐다고 생각했고 배포파이프라인부터 코드까지 전부 profile점검했지만 찾을 수 없었다. 서버 배포가 안되니 QA는 당연히 하지도 못하고 모든 인원들이 전부 대기를 했다. 손에 땀이 점점 나기 시작했다. 애꿎은 커피만 계속 마셨다. 주변사람들이 뭐좀 먹으면서 하라고 과자, 초콜렛등을 하나씩 가져다주었다. 도저히 먹을 수가 없었다. 먹을게 옆에 점점 산더미처럼 쌓여만 갔다. 커피만 계속 마시니 각성이 되어 정신은 또렷한데 원인을 아무리 찾아도 알수가 없으니 미치고 환장할 노릇이었다. 시간은 하염없이 흘러 동이 조금씩 트기 시작했다. 떠오르는 태양 빛 아래로 등줄기 땀이 흘렀다. 떡까지 왔다.

 

이 배포는 셀프서비스 서버가 새로이 독립하여 구축된거기 때문에 축하할일은 맞지만 팀장님이 떡까지 맞춰오실줄은 몰랐다. 이거 다된 잔치상 들러엎게 생긴것이다. 다들 뒤에서 문제가 해결되기만을 바라고 있었다. 여러 사람들이 쳐다보고있는 상황에서 몇시간동안 아무것도 못하는 내자신에 현타가 왔다. 이 모든게 꿈이었으면. 시간이 지나니 실장님도 오셨다. 내뒤에서 가만히 보시더니 아무말씀 안하시고 가셨다. 어떤거때문에 안되는건지 물어보셨을법도한데 믿고 내버려두신거같아서 감사하고 죄송했다. 점검해제시간이 다가왔다. 롤백 판단을 내려야하는 시점이 다가왔다. 꼭두새벽에 모두가 나오고 수십만 업주분들이 점검으로 인해 불편함을 겪었는데 롤백하면 이 과정을 또해야된다는 생각에 계속 미련을 가지고 버텼다. 더 이상 지체할 수 가 없는 10분전.. 배포에 대해 호언장담했던 내모습이 아른거렸다. 자존심 다 내려놓고 무릎이라도 꿇어야겠다는 생각으로 롤백하시죠 라고 말했다. 다들 롤백준비를 하기 시작했다. 내 미련을 내려놓는 바로 그 순간 운영 public환경에 한 가지 차이점이 생각이 났다. public환경에 리소스를 배포하려면 보안팀의 사전 점검을 받고 WAF를 붙여준 기억이 났다. 바로 cloudFront 콘솔에 접속해 로그를 살폈다. 에러로그를 발견했다. path에 특정단어가 포함된 url 요청이 모두 block됐고 그 api가 메인지면에서 최초에 호출되는 api였던 것이다. 기본적으로 내부리소스를 조작하려는 행위가 의심되는 단어를 가진 path는 다 막아버리는 것이었다. api path명을 수정하는게 맞지만 급한대로 보안팀에 연락을해 해당 rule만 exclude처리를 부탁했다. 이 문제임이 확실해지자 롤백판단을 철회하고 다시 배포를하여 점검해지 1분전에 배포를 마칠 수 있었다. 항상 만일을 대비하고 개발환경과 운영환경의 차이를 확실하게 아는것이 매우 중요하다는것을 깨달았다.

배민광고데이터 마이그레이션

광고팀에와서 처음으로 제일 떨리는 작업이었다. 배민의 돈통을 건드리는 일이었는데 새로운피쳐개발이 아니라 기존에 돌아가고있던 저장소를 이관하는 일이었다. 연에 수천억씩 벌어들이는 데이터인데 잘돌아가고있는거 건드렸다가 잘못되기라도하면.. 정말 아찔했다. 그렇기때문에 성공하면 본전, 실패하면 역적이 되는 과제였다. 사실 이과제를 내가 하고싶다고 팀장님께 말씀드렸다. 한번쯤 이런 긴장되는 일을 해보는게 재밌지 않을까? 나의 담력은 어디까지인가? 라는 미친생각을 했던거같다. 내용은 아래 우아한형제들 기술블로그에 적어보았다.

링크: https://techblog.woowahan.com/14041/

배민1 신규광고상품 (배민1플러스)

퇴사하기전에 마지막으로 했던 프로젝트였다. https://ceo.baemin.com/guide/12051

4달은 걸린것 같다. 중간에 방향이 많이 바뀌고, 뒤집어지고 엄청난 풍파속에 치뤄진 작업이었다. 광고상품개발을 주로했는데 수많은 유관부서와의 커뮤니케이션, 개발 일정 관리, 무리한 요구사항 쳐내기, 수시로바뀌는 정책 대응, 남는시간에 코드쳐내기, 하루하루가 정신이 없었다. 대대적인 개편이었기때문에 아키텍쳐도 심플하게 고치고 싶었고 나중을 위한 발판을 만들고싶었다. 물론 나는 이프로젝트가 배민에서의 마지막 작업인걸 알고있었다. 마무리를 깔끔하게 하고 싶기도했고 회사에 대한 애정이 많이 남아있어서 진심으로 잘만들고 가고싶었다. 중간중간 어려움이 많았지만 (쓰기엔 너무길다..) 믿음직한 팀원들과 함께 장애물을 헤쳐나갔다. 배포전에 이미 다른 회사들에 최종합격을 했고 현재 하고있는 프로젝트의 마무리를 잘하는것에 집중하였다. 한켠으로는 좋은 동료들과 헤어질생각에 마음이 좋지 만은 않았다. 결국 큰 문제 없이 오픈을 했고 맘편히 작별인사를 할 수 있었다.

중요하게 깨달은점

일하면서 수많은 느낀점들이 있었지만 그 중 제일 생각나는걸 적어보려고한다. 이러한 느낀점들은 내가 더 발전시켜나가야할 부분들이다.

개발자는 코딩만 하는 사람이 아니다.

개발자라는 직업자체가 개발을 하는 사람은 맞다. 하지만 단순히 코드를 만들어내는 일을 하는게 진짜 개발자의 역할이라고 생각하지는 않는다. 나는 코드 한줄 안짜더라도 주어진 문제를 해결하는게 진짜 개발자라고 생각한다. 그리고 개발자는 직업의 특성상 도메인이 굉장히 다양하다. 음식, 보험, 의료, 금융, 유통 등등 수많은 산업들이 있고 그 산업안에 개발자들이 존재한다. 그렇기 때문에 특정 산업에 종사하는 개발자는 그 산업에 대한 이해를 가지고있어야 한다. 다른 산업군의 개발직군으로 이직을 하게되면 또 그 산업에 대한 이해를 가져야 한다. 단순히 1+1 계산을 잘하는 사람은 산업내에서 방향을 잡기가 힘들다. 산업에 대한 이해도를 바탕으로 여러 이해관계자와의 커뮤니케이션을 하며 다양한 문제를 해결해 나가는것이 개발자다. 물론 나도 그런 사람이 되도록 노력중이다.

사람들이 중요하다

혼자서는 전투를 이길수는 있지만 전쟁을 이길수는 없다. 결국 큰 것을 이루려면 여러 사람들과 함께 협력해야한다. 내 의견이 중요하다고 생각하면 상대방의 의견도 똑같이 중요하다. 같은 목표로 나아가는데 있어서 여러 의견이 나올 수 있는데 상대방의 의견을 존중하면서 나의 의견과 합일점을 찾아나가야 한다. 그리고 나의 의견이 선택이 되든 상대방의 의견이 선택이 되든 팀은 선택한 방향대로 나아가야한다. 경선에서 패배한 당원이 승리한 당원을 서포트하는것처럼 말이다. 나 혼자만의 성과보다는 우리 팀, 더 나아가 우리 회사가 이길 수 있는 방향으로 노력을 해야된다는 것이다. 그것이 어떨때는 내의견과 반대되는 일이더라도 말이다.

사람들에 대해 느낀 점 또 한가지는 모두 다 자신의 세상속에서 살아간다는 것이다. 자신의 가치관들이 각기 다르고 나는 그것을 판단할 자격은 없다. 예를 들어, 같은 말을 두 사람에게 해도 한사람은 전혀 못알아듣는 경우가 있었다. 그 사람의 이해도가 떨어진다고 생각하는게 아니라 내가 그사람이 알아 들을 수 있는 말로 바꿔서 말을 해야하는것이었다. 얼마전에 FAANG중에 한곳에 재직중인 이사님을 만났다. 어떻게 보면 미래에 내가 되고 싶은 모습이 앞에 계셨던 것이다. 나는 이사님께 수십년간 굴지의 회사들에서 어떻게 살아남고 커리어를 이어올 수 있었는지에 대해 물었다. 많은 조언들을 해주셨고 그 중 하나가 사람들과의 대화기법이었다. 왜 저사람은 못알아듣지라고 생각하는게 아니라 내가 어떻게 말을 해야 의미가 전달 될 수 있을까를 고민하라는 것이었다. 결국 이것도 원만한 팀워크에 기반이 되는 내용이라고 생각한다.

분석능력

일을 하다보면 매일매일 크고작은 선택들을 내려야한다. 그날의 기분에 따라 선택하는것이 아니라 항상 판단에 대한 기준을 세워야한다. 판단에 대한 객관적인 기준을 세워야하고 (수치화가 되면 더 좋다) 그 기준에 따라 행동해야한다. 그래야 팀 내에 일관성이 생기고 혼란이 적어진다. 이러한 판단들은 어떤 문제를 얼마나 잘 분석하는 것에 달렸다. 추정이 아닌 확실한 판단 근거가 있으면 제일 좋겠지만, 추정이 필요한 경우에는 그 추정이 어떤 내용을 기반으로 나왔는지에 대한 내용을 명확히 이야기할 수 있어야 한다.

언제나 답을찾을 것이다

어떠한 문제에 직면했을때 어떨 때는 도저히 못할것 같다라는 생각이 들 때도 있다. 지나고나보면 어떻게든 해결을 해나갔다. 때로는 누군가의 절대적 도움으로 해결하거나, 때로는 우연을 통해 해결하거나, 해결하지 않아도 되는 상황으로 바뀌거나, 지독히 물고늘어져 해결을 하거나 등등 여러 상황이 있었다. 하지만 최종적으로는 어떻게든 답을 찾을 것이다라는 믿음을 저버리지 않는것이 중요하다.

앞으로의 행보

여러 기업들의 면접을 봤다. 최종합격한 곳들중에서 나를 가장 힘들게 했던 회사를 선택했다. 나는 어려운상황, 못할거같은상황에 뛰어들어가 깨지고 배우고 정복하는데 재미를 느낀다. 4년간 쌓아온 것에 대한 대우, 보상 전부 포기하고 새로운 도전을 하러 뛰쳐나왔다. 이러한 선택이 미쳤다고 하는 사람들도 있다. 대박이면 어떻고 쪽박이면 어떤가. 매 순간 최선을 다하면 그만이다.

 

 

반응형