22년은 역대급으로 내 멘탈을 흔들었던 해이며, 동시에 가장 많은 성장을 한 해이기도해서 나도 많이들 쓰는 회고록을 한 번 써보고 싶어졌다. 다들 그 해에 했던 일들에 대해서 핵심 위주로 딱딱 잘 정리해서 쓰는 것 같던데, 난 좀 키보드만 잡으면 투머치토커가 되는 경향이 있어 좀 잡담이 많을 것 같다..ㅎㅎ
이직을 결심하게 된 계기
22년 초, 직장 업무에 대한 회의가 극으로 치닫아 이직을 결심했다.
입사 초기에는 바보같이 일단 개발회사에서 일을 하면 어떤 식으로든 그게 개발 실력의 향상으로 이어질 것이라고 생각했다. 아니.. 초기까지도 아니고 사실 거의 2년간은 그렇게 생각하고 있었던 것 같다. 애초에 SI/SM&솔루션&서비스 각 개발 산업 분야의 특징에 대해서도 명확히 모르고, 그저 SI는 개발자의 무덤이라는 얘기를 많이 들어서 SI만 어떻게든 피하여 솔루션 개발 업체로 입사한 풋내기 신입사원 때의 그 상태, 그때의 마인드에서 크게 벗어나지 못 한 상태로 2년 가량의 시간을 흘려 보냈다. 중소기업이지만 나름 기술력 있고 워라밸도 좋은 회사에 개발자로 입사를 성공했다는 사실에 안주하여 첫 1년 가량을 큰 발전 없이 보냈다.
그 당시 마침 회사에서도 Adobe Flash 서비스 종료에 대응하여 flex기반의 솔루션을 html기반의 솔루션으로 전환하고자 신규 프로젝트를 중단하고 본사에서 html버전 개발에만 집중하는 시기였기에, 업무중에도 큰 도전에 마주하는 상황이 거의 없었으며, 누군가 의욕적으로 연구개발을 이끌어가고자 하는 사람도 없었기에, 개발자들이 단체로 해이해져 현실에 안주한 채로 20년 초까지 시간을 보냈던 것 같다. 이 때 혼자서라도 정신을 차리고 현 상황의 문제를 지적하고 바꿔보려 하거나, 아니면 자기개발에라도 열을 올려서 내 실력을 키우는 데에 집중했어야 했던 건데, 나 역시 현실에 안주하고 극강의 워라밸을 즐기며 유유자적하게 지냈기 때문에 혹시 이때로 돌아갈 수 있다면 꼭 한번 뚝배기를 한대 씨게 후려버리고 싶은 시기이기도 하다.
그리고 본격적으로 이직에 대한 방향성을 고민하기 시작한 것은 아마 21년 말 쯤에서 부터인 것 같다. 그 계기가, 도대체 다른 개발자들은 어떤 일을 하고 어떻게 자기개발을 하는지가 궁금하여 한 주니어 오픈카톡방을 들어갔는데, 분명 주니어 톡방인데도 불구하고 사람들이 하는 업무적 이야기를 거의 알아듣지 못하겠다는 것이었다.. 나름 회사에서는 에이스 소리를 들으며 일을 하는 나였음에도, 거기서 하는 이야기는 당췌 알아들을 수가 없어 충격을 받았는데, 처음에는 방어기제가 발동하여 '저 사람들은 나와 전혀 다른 업무를 하는 사람들일거야.'라고 생각하며 잠깐 회피하다가 이내 정신을 차리고 그래 일단 어떤 일을 하길래 저렇게 차원이 다른 이야기를 하고 있는 것인가하며 한동안 대화를 나눠보니, 대부분은 SI나 솔루션이 아닌 자체서비스 기업에서 일하는 개발자들이라는 것을 알게 되었다. 사실 예전부터 왜 네이버 카카오 같은, 서비스의 구현 난이도가 그렇게 복잡하지 않을 것 같은 IT서비스 회사들이 그렇게도 고연봉을 주며 실력있는 개발자들을 영입하려는 것인지에 대해 의아해만 할 뿐 세세한 내용을 알려고 하지 않았었는데, 이분들의 대화를 듣고 있자니 그게 더욱 궁금해져 서비스 기업에서 일하는 방식과 중요시 여기는 것들에 대해 많은 정보를 찾아보기 시작했고, 이내 나는 정말 우물안의 개구리일 뿐이었구나 하는 것을 정말 절실하게 깨닫게 되었다. 참고로 말하자면 지금 블로그의 제목인 '깨달음의 비탈길'도, 이런 맥락에서 선정한 제목이다.

그리고 바닥을 친 자신감 속에서, 나는 적어도 방향성 하나만은 확실하게 정할 수 있었다.
'나도 서비스 기업의 백엔드 개발자가 되자!'
이런 방향 전환에는 상당한 고난이 예상되긴 했지만, 이미 알아버린 걸 모른척 할 수는 없었다. 게다가 내 성향 자체가 실력에 상당히 예민한 성향이라, '실력이 뒤떨어지는 나'라는 자아상을 가지고는 도저히 살아갈 수 없는 사람이었다. 그래서 22년도 들어서부터는 서비스 기업으로의 이직을 위한 본격적인 준비를 시작했다. 기존에 사용하던 Java나 Spring에 대한 것도 서비스기업에선 훨씬 근본적인 동작 원리에 대한 이해를 요구했고, AWS, Docker, Redis, rabbitMQ, JPA 등등 기존 회사에서는 사용하지 않던 수많은 최신 기술들을 많은 서비스회사에서는 이미 당연하게 사용하고 있었다. 이걸 알아가면 알아갈수록 막막함은 계속 배가 됐는데, 하나의 공부를 끝마치면 공부할 게 두개가 되어 있고, 두개를 끝마치면 네개가 되어 있는 등 하면 할수록 공부해야할 양이 제곱으로 늘어나는 경험을 하면서 이미 바닥이라고 생각했던 자신감이 지하실을 뚫고 지각을 뚫고 맨틀까지 내려가기도 했다. 그래서 퇴근하고 남는 시간은 무조건 집주변 카페가 문을 닫을 때까지(23시) 공부를 하다 집에 들어가고, 주말에는 혼자 집에있으면 하염 없이 늘어지길래 여러 스터디를 가입하여 어떻게든 집 밖으로 나가 공부를 하려고 갖은 노력을 했는데, 그런데도 이 공부의 끝은 쉽사리 보이지 않았다..
과거에 나는 원래 근자감이 대단한 사람이었고, 그 근자감을 원동력 삼아 살아가던 사람이었다. 여태 어떤 공부를 해도, 어떤 일을 해도 항상 상당히 잘 하는 축에 속했었고, 코딩 역시 학원에서 모든 이론 시험에 만점을 받으며 실습형 시험 역시 정답 제출 담당일 정도로 우수한 학생이었는데 취업하고도 에이스 소리를 들으니 아주 그냥 으쓱해져서 어깨뽕이 하늘까지 솟아 있었다. 난 내가 재능이 있다고 생각했고, 그래서 새로운 공부도 일단 하면 잘 할 것이고 결국 원하는 수준에 도달할 수 있을 것이라고 생각했다. 그런데.. 이번 이직을 목표로 한 공부를 시도하며 나의 그 근자감은 철저하게 무너졌다.
이제와 돌아보니 나는 여지껏 항상 쉬운 도전만을 해왔었다. 학원에서 우수한 학생이 되는 거? 물론 쉽다고만은 할 수 없다. 그렇지만 온갖 공모전, 해커톤, 교내 대회 등에 나가서 수상하는 전공자들에 비하면 새발의 피 수준이었다. 학생 때 공부 잘한 거? 애초에 공부 못하는 애들 모아둔 곳에서 잘한다고 한들 진짜 잘하는 애들 사이에 끼면 탈탈 털릴 것이었다. 여러 자격증들 항상 고득점으로 합격한 거? 단순 암기성 시험은 오버트레이닝하면 누구나 그정도 하는 거였다. 개발을 잘한다고도 생각했지만 돌아보면 제대로 된 상용 프로그램을 만들어서 운영하거나, 유용한 오픈소스를 만들어서 배포한 경험도 하나 없이 그냥 기본적인 웹 애플리케이션을 무리 없이 구성할 수 있다 정도의 수준으로 나는 내가 잘 한다고 생각하고 있었다. 물론 이 기본적이라는 것도 당시의 내 시야에서 기본적인 것이었을 뿐, 서비스 개발의 기준에서는 기본에도 한참 못 미치는 수준이었다.
이렇게 나에게 관대해도 너무 관대했던 나는, 이제서야 나의 위치를 아주 객관적으로 명확하게 직시하기 시작했다. 혹시나 조금 안주할 것 같은 느낌이 들면 금방 다시 실력자들의 삶을 찾아보며 내가 얼마나 멍청한지를 끝없이 되뇌었다. 항상 약간의 성취를 이루고 그 성취에 심취해 발전이 더디던 내 성격을 철저하게 부수고, 늘 낮은 자세로 내가 얼마나 더 부족한 것인지를 계속해서 점검하며 조금씩 깨달음의 비탈길을 올랐다.
3년가량의 경력이 있었지만 내가 경력자라는 생각을 버리고, 퇴사 후 신입이라는 마음가짐으로 다시 하나씩 차근차근 탑을 쌓아나갔다. 그리고 그 과정에서 시도한 일들을 정리하자면 대략 아래와 같다.
꾸준한 학습을 위한 환경 조성
일단 이것부터 마련하는 게 가장 중요한 일이었다. 자취를 하고 출근도 안 하는 상황에서 내가 혼자 집중력을 유지하며 공부를 지속할 수 있을까?하고 스스로에게 의문을 던졌을 때 솔직히 상당히 어려울 것 같다고 생각됐다. 나는 집에 혼자 있으면 끝없이 늘어지는 경향이 강한데, 그래도 일단 집 밖을 나가면 상당히 부지런히 살아서, 어떻게든 매일매일 밖으로 나갈 방안을 마련해보았다. 그리고 이 6개월간 부지런한 생활을 하는 데에 아주 큰 도움이 됐던 세가지 요소를 꼽아보자면, 첫째는 공유 오피스, 둘째는 챌린저스 앱, 셋째는 소모임 스터디였던 것 같다.

공유오피스는 패스트 파이브에서 1인 이용권을 끊어 매일 아침 10시쯤까지 출근해서 10시에 퇴근하는 생활을 반복했고, 압박이 없는 상황에서 시간을 지켜 나가기가 쉽지 않기 때문에, 같은 목표를 가진 참가자들이 돈을 걸고 목표 달성에 실패한 사람들의 돈을 성공한 사람들이 나눠갖는 신박한 아이디어로 운영하는 챌린저스라는 앱에서 돈을 매번 최대치인 20만원씩 걸고 단 한번의 실패도 없이 악착같이 지켜냈다. 또한 너무 혼자만 공부하는 것도 다소 루즈해지기 때문에 소모임 앱에서 각자 하고 싶은 스터디를 하는 모임도 자주 활용을 했었다.

김영한님 강의 다수 수강

그리고 실질적인 공부는 인프런 강의를 통해서 많이 진행했는데, 모든 강의는 듣기만 하는 것이 아니라 항상 직접 코드를 치며 체화시켰다. 서비스 기업으로 이직할 시 이 내용들을 토대로 바로 실무를 해야할 것이라 생각했기 때문에, 이해가 안 되는 부분이 있으면 다시듣고 다시 치는 식으로 확실하게 이해가 될 때까지 짚고 넘어가며 코딩했다. 해당 기록들은 모두 깃허브 Repository에 올려뒀기 때문에, 덕분에 잔디 심는 데에도 아주 용이했다.

그리고 1일1커밋 시도때부터 꾸준히 해왔던 알고리즘 문제풀이는, 간단한 문제만 풀고 커밋하는 식으로 다소 무의미한 커밋들로 잔디를 심게되는 경향이 자꾸 늘어나서 연초까지만 진행하기로하였다.
사이드프로젝트 Diang.lab

Github : https://github.com/destiny1017/typetest
또한 기술을 이론만 들어서 완전히 익힐 수 있을 리는 없기 때문에, 강의를 들으며 이 기술들을 활용한 사이드 프로젝트를 진행해야겠다고 처음부터 계획했었다. 다만 처음부터 어떤 프로젝트를 할지는 완전히 정하지 못했었는데, 마음 같아서는 만들고 싶은 서비스는 많지만 이직을 준비중이니만큼 왠지 내가 만들고 싶은 것보다 이직에 도움이 될만한 것을 만들어야 할 것 같아서 프로젝트 주제에 대해서는 계속 고민중이었다. 그런데 강의를 연달아 10개씩이나 들으며 달려오고 이후에 또 내가 큰 관심 없는 쇼핑몰같은 프로젝트를 진행하자니, 아 정말 너무 시작하기도 싫고 힘들 것 같았다..ㅠㅠ 그래서 결국 '도움은 조금 덜 되더라도 내가 재미있게 할 수 있는 프로젝트를 하자!' 로 마음을 굳히고, 내가 좋아하는 심리테스트를 주제로 잡기로 결정했다. 처음에는 테스트 수행 페이지들만 있는 간단한 프로젝트를 생각했으나, 막상 만들고 보니 너무 간단하고 이번에 배운 기술을 적용할 곳도 별로 없길래, 실컷 만들어놓고 프로젝트를 한번 뒤엎었다. 심리테스트를 여러개 만드는 것은 불필요한 일일 것 같았고, 그럼 이 심리테스트 페이지의 틀을 만들어놓고 컨텐츠만 넣어서 찍어낼 수 있는 사이트를 만들어 보는 게 어떨까하는 생각이 들어, 심리테스트 제작 솔루션으로 방향을 틀게 됐다.

지금 상태로는 테스트를 생성하더라도 view페이지는 직접 만들어서 넣어야하긴 하는데, 이것도 템플릿화 시켜서 여기서 모두 만들게하고싶은 욕심이 있었지만, 시간은 부족하고 남은 생활비는 한정적이고 할 건 산더미이고.. 그래서 결국 여기까지만 만들었다. 프론트를 따로 구해서 하면 내가 원하던대로 기술을 마음껏 이리저리 굴려보며 하는 식의 개발이 힘들어 질 것 같아 프론트를 따로 분리하지 않고 thymeleaf로 작업했는데, 생각보다 프론트 작업이 너무 힘들어서 소비한 시간이 정말 많다.. 그럼에도 프론트 프레임워크를 사용한 것이 아니기 때문에 어디 가서 프론트엔드도 할 줄 안다고 하기가 애매한 게 참 억울하다 흑흑.
아무튼 이 사이드 프로젝트는 생각보다 시간이 더 걸리고, 처음부터 설계를 딱 정하고 한 게 아니어서 계속해서 이래저래 바꾸고 하다보니 시간이 많이 지체되긴 했지만.. 그래도 역시 이번 이직 준비기간중에 가장 재미있게 몰두하면서 시간을 보냈던 시기이다. 역시 생각한 것을 내 손으로 직접 만들어내는 과정이 제일 재밌는 것 같다.
까치산 스터디 난입(?)

사이드 프로젝트를 거의 마무리 해갈 때 쯤, 이제 본격적으로 이직을 위해 이력서, 경력기술서, 포트폴리오 등을 준비하려는데 서비스기업을 목표로 준비해본적이 없다보니 혼자 준비하기가 정말 막막했다. 그래서 혼자만 하지 말고 어디 취업스터디나 개발스터디를 참여해보는 게 좋지 않을까.. 하는 생각들을 하고 있던 와중에 마침 자주 가는 카페에서 사람들이 노트북을 펼치고 이야기하고 있는 모습을 보았고, '앗 이 대화 내용은 분명 개발자들의 대화다!' 라는 생각이 들어 무슨 배짱인지 바로 합석하여 혹시 개발자 모임 맞냐고, 같이할 수 있냐고 적극적으로 구애(?)를 하여, 까치산 각코에 참여하게 되었다. 그리고 마침 각코 내에서 스프링 스터디를 진행하려고 하길래 올커니 싶어 스프링 스터디에도 참여하게 되었다.
그리고 이 스프링 스터디에서도, 진행방식이 각자 공부한 걸 개인 블로그에 포스팅하고 공유하는 정도로 진행하려고 하는 걸 내가 좀 더 적극적이고 빡세게 해보길 요구하며, 각자 공부한 걸 포스팅하고 그 내용을 토대로 돌아가며 발표하는 방식을 제안하여 그렇게 하기로 했다. 안그래도 유튜브에서 자주 보이는 우아한테크코스의 테코톡이라는 수강생들의 프레젠테이션 영상을 보며 상당히 멋지고 부럽다는 생각을 자주 하던 차였기에, 일주일에 하나씩 준비한다는 게 생각보다 쉬운 일이 아니긴 했지만 그래도 이 발표 덕분에 꽤 재밌고 뿌듯하게 스터디를 참여할 수 있었다.
이 외에도 사실 한 번도 들여다볼 생각조차 한 적 없었던 기술 서적들, 그 중에서도 개발자에게 거의 바이블과도 같던 로버트 마틴의 [Clean Code], 조영호님의 [객체지향의 사실과 오해]를 읽으면서 개발자로서 개발이라는 행위를 바라보는 안목 자체를 넓히고자 하기도 했다.
기능적 구현에 대한 고민을 넘어 성능에 대한 고민을 시작
과거에는 개발에 있어 어떤 고민을 하더라도 항상 '구현' 자체에 초점이 맞춰져 있었다. 애초에 수백만의 사용자가 사용할 것이라는 가정 자체를 해본적이 없기에, 나에게는 당연히 구현만 어떻게든 해낸다면 그게 끝이고 잘 해낸 것이었다.
그런데 이번에 공부를 하면서는 점점 관점 자체가 바뀌었다. 애초에 나는 성향 자체가, 무언가를 해야만하는 근본적인 이유를 명확히 이해하지 못하면 절대로 그 일을 열심히 해낼수가 없는 성향이기에, 이번 공부에도 항상 '왜?'라는 질문을 달고 살았고, 그러다보니 점점 관점이 "몇몇 테스트 케이스(입출력)에 대해 이상 없이 잘 동작하는 프로그램"정도에서, "수많은 사용자가 동시에 사용해도 성능이나 동시성 이슈가 크지 않은 프로그램"으로 관점이 넓어져갔다. 이런 관점을 갖기 시작하니 자연스럽게 수많은 요청에 대한 부하분산 방안, 멀티 스레드 및 다중 트랜잭션에서의 동시성 이슈, 분산 환경에서의 데이터 동기화 방안, 대용량 데이터의 처리 속도에 대한 고민 등을 하게 됐고, 이런 고민을 하다보면 결국 많이 듣던 레디스나 쿠버네티스, 엘라스틱 서치 등의 기술을 통한 해결에 다다르는 것을 경험하며 왜 이런 기술들을, 이런 이론들을 공부했어야 했던 것인가하는 것들을 깨닫게 되었다. 물론 그만큼 배워야 할 게 넘쳐남에 막막함도 느꼈지만, 여태까지 개발을 하고 있었음에도 여전히 미지와 같던 데이터와 네트워크의 전체적 흐름, 웹서비스의 전체적인 인프라 구조, 수많은 자료구조의 적절한 쓰임새 등이 눈에 들어오기 시작하면서 개발 자체가 한 층 재미있어지기도 해서 상당히 뿌듯한 경험이었다.
그리고 노력 끝에 성공한 이직
이런 다양한 도전과 노력, 성장 끝에 결국 12월에 나는 서비스 기업으로의 이직에 성공하였다.
IT채용 시장의 위축과, 나 자신의 능력에 대한 의문 등 처음에 걱정하던 것에 비해서는 생각보다 여러 기업들에 합격했다. 그중에서도 최근 시리즈D 투자유치에도 성공하고 상장을 준비중인 스타트업과, 지금은 많이 하락한 서비스이지만 한 때는 국내 탑급의 서비스를 운영하던 대기업 계열사에 합격을 해 두 회사 중 많은 고민을 했는데, 지금의 나는 역시 체계가 잘 잡혀있고 많은 트래픽을 겪을 수 있는 환경에서의 개발 경험이 더욱 필요하다고 느껴 대기업 계열사로의 이직을 결정하였다.
꽤 고된 시간을 겪어가며 서비스기업으로의 이직이라는 1차 목표를 달성했지만, 어디까지나 1차적인 목표일 뿐 나의 최종 목표는 특정 회사에 가는 것이 아니라 스스로 당당할 수 있을만한 전문성을 갖는 것이다. 이번 이직은 그러기 위한 첫 발자국을 내딛은 거라 생각하며, 또 다시 현실에 안주하여 해이해지지 않기 위해 오늘의 나는 과연 성장을 하였는지 매일 돌아보며 살아가고자 노력할 것이다.
'잡담' 카테고리의 다른 글
| 마인크래프트 서버 운영기 (3) | 2024.10.29 |
|---|---|
| 2023년 회고 (0) | 2023.12.31 |