처음으로 저에 대한 이야기를 쓰는 거 같습니다. (앞으로 종종 기록할 예정입니다..)
원래 저에 대한 이야기를 잘 하지도 않고 기록도 안했었지만 이직이라는게 저의 커리어에 있어서 큰 터닝포인트가 된다고 생각했기 때문에 하나의 여정을 기록하고자 합니다. 다른 분들이 작성한 후기들을 통해 많은 도움을 얻었어서 저도 이 글을 보는 또 다른 분들에게 도움이 되었으면 합니다.
현재 까지 저의 개발자 역사에 대한 기록이 없기 때문에 간단하게 요약해보겠습니다.
2020.01 ~ 2020.12 유플러스 입사전
서버개발자 시작
학부 연구생으로 인공지능 알고리즘중 하나인 CNN 에 대해서 졸업 프로젝트했었습니다. 하지만 재대로 깊게 알고 한 것도 아니였고 결과도 이상했는데 어찌저찌 끼워맞추면서 무사히 넘긴거 같습니다. 학부 시절에 인공지능 프로젝트들이 쏟아져 나오던 때라서 당연히 인공지능으로 선택해서 프로젝트를 진행했었지만 마음 속에는 그냥 빨리 취업하고 싶었습니다. 그러면 어떤 개발자로 취업을 해야할까 생각했고 가장많이 뽑는 개발자인 서버개발자로 취업해보자 했습니다. 그래서 부랴부랴 인프런에서 JPA 강의와 알고리즘 강의 하나 구매해서 열심히 들었습니다. JPA 강의는 김영한님 강의를 들었었는데 당시 JPA강의 1개와 QueryDSL강의 1개가 있었던걸로 기억합니다. 지금은 엄청 많아 진걸로 알고 있습니다. 처음부터 JPA를 듣자니 아무것도 모르겠어서 중간쯤 듣다가 포기했습니다.
방황하던 시기
제가 학부때 뭘 배웠나 싶을 정도로 강의를 거의 이해못했습니다. JPA는 아닌거 같아서 기존에 하던 python으로 웹개발해보자 하면서 flask 나 django 와 같은 프레임워크에 대해서 찾아보기 시작했습니다. 구글링해보신 분들은 아시겠지만 flask와 django로 진행하는 강의가 잘 없습니다. 있더라도 대부분 영어로 되어있기도 해서 영어를 못하는 저로써 힘들었습니다. 안되겠다 싶어서 교보문고 가서 python으로 시작하는 서적에 대해 검색하고 "탄탄한 백엔드..." 로 시작하는 책한권을 샀습니다. 책을 고르는 기준은 뭐라도 하나 만들어보면서 이해하고자 했습니다. 그래서 예제 중심으로된 책을 선정했었고 책을 보면서 한줄 한줄 타이핑하며 뭔가 완성이 되었습니다. 근데 뭐라도 만들면 이해가 되겠지 했는데 완성은 했지만 이해는 하나도 못했습니다. 이쯤되면 웹개발자는 내 적성이 아닌가하는 생각도 들었습니다. 그래서 기존에 구입해둔 강의인 알고리즘강의를 들었습니다.
알고리즘으로 시작
처음엔 파이썬으로 알고리즘을 시작했습니다. 1일 1문제는 아니지만 코딩테스트에 나오는 유형은 다 풀어보자는 마인드로 접근했습니다. 알고리즘 공부는 다행인지 제 적성에 맞았습니다. (물론 어려운 문제는 예외..) 고등학생 때부터 어려운 수학문제나 탐구하던 문제를 좋아했습니다. 그래서인지 문제 푸는 그 시간에는 온전히 집중할 수 있었고 코딩실력을 늘릴 수 있었습니다. 뭔가 공부를 했다는 느낌이 들기 시작하는게 기분 좋았습니다. 코딩테스트에 자주 나오는 유형의 알고리즘은 어려운 알고리즘이 아니여서 재밌게 할 수 있었습니다. 주로 백준으로 문제를 풀었고 문제푸는 시간은 2시간을 넘기지 않도록 하였습니다. 문제 유형은 BFS , DFS 만 거의 했었던거 같습니다. 알고리즘 실력을 처음으로 테스트하는 사건이 있었는데 바로 삼성에 서류전형이 합격한 것입니다.
삼성 코딩테스트 합격.. 하지만 그것뿐
당시 코로나가 심해서 투명장갑끼고 마스크쓰고 코딩테스트 봤던 걸로 기억합니다. 삼성 코딩테스트는 2문제를 3시간동안 푸는데 1문제만 풀자는 마인드로 접근해서 결국 1문제를 풀긴했습니다. 1문제를 1시간도 안걸려서 풀어서 남은 시간에 다 풀수 있겠다 싶었는데 웬 걸 이상한 오류가 나면서 도저히 풀 수가 없었습니다. 삼성 지원해보신 분들은 아시겠지만 매번 지원자수도 어마어마하고 그만큼 발표시간이 엄청 길어서 오픈카톡방에서는 맨날 발표날 다가오면 영차영차 거립니다. 오랜 기다림 끝에 코딩테스트를 합격하고 면접준비에 들어갔습니다. 제가 학부시절 진행했던 인공지능에 대해서 준비하고 주변 합격한 선배분들의 자소서 보면서 대충 준비했습니다. 면접을 다 보고난 뒤 또 어마어마한 기다림뒤 발표가 나왔는데 "불합격" 입니다. 순간적으로 멘탈이 엄청 흔들렸습니다. 그러면 다른 회사에 지원해보자고 IT대기업은 다 지원했습니다. 네이버,카카오,라인,쿠팡,11번가 등등 지원했지만 전부 서류 탈락입니다. 웹개발자를 뽑지만 저는 웹개발을 재대로 해본적이 없었습니다. 그래서 저번에 중단한 JPA강의를 다시 듣기 시작했습니다.
강의 위주 공부
책으로도 공부를 해봤는데 책은 도저히 속도가 안났습니다. 매번 챕터 3쯤에서 너무 지쳐버려서 뭐라도 한 싸이클을 완주하고 싶었습니다. JPA가 뭔지 하나도 모르지만 JPA강의를 들으면서 JAVA를 다시 공부하기 시작했고 JAVA에 익숙해지기 위해서 알고리즘의 메인언어를 python에서 JAVA로 변경했습니다. 그리고 이해안되면 이해될때까지 구글링했습니다. 확실히 책으로 보는 것보다는 속도가 빨랐습니다. JPA강의를 듣고 난뒤 Spring강의도 몇 가지 더 들으면서 계속 복습했습니다. 그러다보니 예전에 이해했었던것이 잘못 이해했었단걸 깨닫기도 하였고 앞으로의 목차를 보면서 강의 내용 예측도 어느정도 가능해졌습니다. 이해가 안되던 강의가 갑자기 이해가 되는건 아닙니다. 사실은 끝까지 구글링해본 경험이 많은 이해가 되었는데 구글링의 대부분이 제가 학부때 배웠었던 기본 개념들이었습니다. 예를 들어 어떤 URL을 설정한뒤 똑같이 요청 보내는데 어떤건 POST고 어떤건 GET인데 차이가 뭔지등 기본 CS개념들이 뒷받침되어야 이해가되는 것들이었습니다. 또 다른 예로 JPA강의에서 많이 나오는 말중에 하나가 DB 커넥션과 같은 말들인데 처음 들을땐 데이터베이스랑 연결되는 거구나 하고 넘겼지만 DB와의 커넥션을 자바에서는 어떻게 제공하는지 조금 검색해보면 이해의 깊이가 달라집니다. 이렇게 꼬리에 꼬리를 무는 구글링을 통해 기본을 다졌습니다. 이렇게 공부만 하던중 유플러스 공고를 보게 되었고 JAVA 개발자를 채용한다고 하여 지원하게 되었습니다.
유플러스 인턴십
유플러스 지원할때 제가 공부한 기술들에 대해서 많이 물어볼 줄 알았지만 다행인지 모르겠지만 기술들에 대한 질문들이 거의 없었습니다. 어찌저찌 유플러스에 합격하게 되었고 인턴십을 진행하게 되었습니다. 처음으로 뭔가 그럴 듯한 웹개발 프로젝트를 진행했습니다. 팀원들끼리 깃플로우도 만들어보고 노션으로 개발 이력도 정리하면서 즐겁게 개발했습니다. 중요한건 개발의 방향만 주어지고 온전히 모든 개발은 팀원들과 제가 함께 선택하는 것입니다. 개발의 자유도가 높았기 때문에 이것저것 다양하게 시도해볼 수 있었습니다. 또한 팀원들 역량이 대단해서 많이 배울 수 있었습니다.
2021.01 ~ 2022.05 유플러스 SI 개발자
배움에 대한 갈증
유플러스에 입사하고 알았지만 유플러스에서 개발자를 공식적으로 채용한 것은 이번이 처음이였습니다. 그렇다보니 이것저것 시도해보는 분위기였고 그런 분위기 속에 저는 3월달 부터 바로 개발에 투입되었습니다. 처음 실무를 해본다는게 긴장도 되고 설레기도 했습니다. 여튼 업무를 할당 받고 보는데 첫 느낌은 모르겠다 였습니다. 물론 지금도 잘 모르지만 그때는 당황했었던거 같습니다. 그래서 계속 질문드리고 열심히 탐구해보지만 시원하게 해결된 적이 없었던거 같습니다. 기술적인 문제가 아니라 접근을 못했던거 같습니다. 예를 들어, "A를 해주세요" 라고 한다면 "A"는 직관적이어야 합니다. 하지만 추상적이라면 이해하기 힘들 뿐더러 개발 시작전 부터 많은 리소스를 들여야했습니다. 개발자를 처음 투입하였고 이제 시작해보는 단계라 그러려니 하니까 또 적응이 되는게 신기했습니다. SI 개발자로서 느낀 프로세스는 제가 개발한 프로그램을 일정기간안에 납품(?)을 해야하고 제가 개발한 프로그램에 대해 테스트를 거쳐 완료가 되는 프로세스입니다. 저는 제가 만든 프로그램들에 대해서 사실 자신이 없었습니다. 코드 단위로 리뷰한건 아니고 단순히 보이는 것만 테스트한 것이라 매번 오류가 나면 고쳐야하는 구조입니다. 아니 오류가 날 수 밖에 없습니다. 매번 겉만 고치는 듯한 개발방식에 저의 개발 스킬 확장에 대한 갈증이 커졌습니다. 그래서 퇴근하고 오면 틈틈히 알고리즘과 저의 블로그에 기록된 다양한 개발 내용을 공부했었던거 같습니다.
완벽한 결과는 없다
공부하면서 느끼는 가장 큰 감정은 "나는 공부를 했는데 왜 아무것도 안한거 같을까" 입니다. 지금도 비슷한 감정이고 특히 개발공부는 나는 정말 몇시간 동안 구글링도 해가면서 구현한 기능이 너무 하찮아 보일때가 있습니다. 이렇게 작고 소중한 기능이 나에겐 일주일을 온전히 투자한 결과이지만 누군가에겐 "너 뭐했냐" 와 같은 시선으로 보일 수 있기 때문입니다. 그리고 책이나 강의를 보면서 블로그에 기록을 해야하는데 기록을 하는 가장 큰 이유중 하나는 나중에 다시 떠올리기 위해서 입니다. 개발은 정말 근간이 되는 기술이 아니면 대부분 복잡한 말초신경계처럼 지식이 흩뿌려저 있는데 이 모든 것들을 기억하는 건 사실 쉽지 않습니다. 그래서 나중에 비슷한 문제가 생겼을때 아 그땐 그랬는데 뭔가 비슷한 해결책도 존재하지 않을까 하면서 굉장히 큰 인사이트를 얻을 수 있습니다. 처음에는 이런 블로그의 기록을 "완성되면 공개해야지", "내 글은 수준이 낮아서 안될거같아" 와 같은 생각 때문에 망설여졌습니다. 하지만 완성은 무슨 챕터3도 못끝내는데 이대로라면 영원히 기록을 못할 듯 했습니다. 누군가에겐 귀여운 내용이지만 제가 쓴 내용들이 귀여워 보이는사람이 과연 얼마나 많을까 하는 생각도 했습니다. 분명히 도움이 되는 분들이 더 많을 거라 생각하고 기록을 시작했습니다.
카카오 뱅크 합격까지
카카오뱅크 지원
우연히 카카오뱅크 공고를 보고 금융권 IT에 가고 싶었던 저로써 지원해보게 되었습니다. 지원하기전에 "나같은 사람도 뽑을까?" , "완벽한 개발자만 가는 곳 아닌가?" 와 같은 생각때문에 또 망설였습니다. 반면에 완벽한 개발자가 있을까 하는 생각도 하면서 그동안 열심히 했으니까 제가 그동한 한 모든 것을 영끌해서 보여주고 떨어지면 받아들이자는 마인드로 지원했습니다. 지금까지 따로 진행한 프로젝트도 없고 토이프로젝트도 제대로 런칭해본적도 없어서 걱정 많이 했지만 유플러스에서의 경험을 충분히 녹여보고자 했습니다.
서류전형 결과
지원서에 항목은 짧아서 좋았습니다. 서류에는 제가 그동안 어떤 개발을 했는지 무슨 역할을 담당했는지 경력 위주로 간단하게 작성하고 깃허브와 블로그 주소를 적었습니다.
코딩 테스트
서버개발자 부분은 따로 과제전형이 아니라 알고리즘 코딩테스트를 진행했습니다. 프로그래머스로 진행을 했고 4시간 정도 진행하고 5문제가 출제 되었습니다. 개인적으로 다 풀기에는 시간이 모자랐지만 어려운 알고리즘은 없었던거 같습니다. 다 푸는게 목적이라고 한다면 쉽지 않은 테스트였습니다. 기본적인 자료구조를 사용하지만 요구사항이 간단하지 않은 문제도 있어서 시간이 꽤 걸렸습니다.
화상 코드 리뷰
코딩테스트 합불 연락이 아니라 화상코드 리뷰 안내가 왔습니다. 정말 본인이 코딩테스트를 진행했는지 어떻게 풀었는지 간단하게 확인해보는 자리 인거 같았습니다. 그래도 혹시 모르니까 제가 풀었던 모든 내용을 머릿속으로 복기하면서 정리하고 리뷰에 참여하였습니다.
코딩테스트 전형 합격
화상리뷰가 끝나고 얼마 안가 코딩테스트 합격메일을 드디어 받았습니다. 코딩테스트를 다 풀어야 갈 수 있는 줄 알았는 데 저뿐만 아니라 어려웠던 분들도 있었나 봅니다. 다행입니다.
면접준비
사실 면접이 가장 긴장되는 순간입니다. 다시는 이 기회가 오지 않으리라고 생각하고 코딩테스트 합격 메일을 받은 날 부터 매일 밤마다 그동안 공부했었던 모든 CS와 Spring 프레임워크에 대해서 면접에 나올거같은 질문들을 모으고 정리하기 시작했습니다. 엄청 피곤하고 힘든 시간이었지만 그때마다 지금이 인생에서 다시는 안 올 기회라는 것을 떠올리면서 열심히 준비했었던거 같습니다.
CS중에 특히 네트워크와 운영체제가 자신 없었기 때문에 네트워크와 운영체제에 많이 투자를 했습니다. 그외 스프링에서 사용하는 대표적인 기술인 DI나 IoC등 기본적인거 위주로 정리했었습니다. CS는 깃허브에서 많이 보이는 키워드들로 구성하였으며 최대한 깊게 정리했습니다. Java에 대한 것 역시 최대한 깊게 정리했습니다. JVM의 동작원리나 StringBuilder 와 String 차이 등등 대표적인 질문들은 무조건 대답해야겠다 싶어서 정리하고 꼬리질문에 나올거 까지 대비했습니다.
1차 면접
대망의 면접날. 면접시간이 오후2시였지만 오전 10시에 근처 카페에 도착한다음 면접내용을 계속 머릿속으로 생각했습니다. 판교 H스퀘어에서 면접을 봤고 금융회사다 보니 휴대폰을 제외한 소지품을 모두 프런트에 맡겨야 했습니다. 그리고 영입담당자분이 대기실로 안내해 주시고 친절하게 면접 일정에 대해서 소개해주셨습니다. 면접장에 들어가서는 4분정도가 앉아 계셨는데 다들 인상도 좋으시고 면접관님들 부터 본인 소개 해주셔서 긴장감이 풀리는 느낌이였습니다. 또한 면접질문도 면접자에 대해 상당히 배려해주는 듯한 질문들이였으며 기술 질문들에 대해서는 다행히 공부했던 것들이 나와서 신나게 대답했었습니다. 1시간 정도 면접을 진행하고 영입담당자분이 다시 오셔서 카페에서 커피쿠폰으로 커피를 선물해주셨습니다. 그러고는 프런트에서 제출했던 소지품을 다시 돌려받고 춘식이 텀블러 선물도 받고 나갔습니다. 곧 1차 면접 합격 결과가 나올걸 알기 때문에 속으로 굉장히 긴장했습니다. H스퀘어 앞 벤치에서 그냥 멍이나 때리면서 핸드폰만 보고 있었던거 같습니다.
2차 면접
왜 이렇게 합격결과가 안나오나 하는 순간 30분쯤 지났을때 1차면접 합격 문자가 먼저 왔습니다. 1차면접을 합격한 순간 그동안 면접 준비하면서 힘들었던 순간이나 긴장되었던 것이 다 풀렸습니다. 바로 근처에 카페에 가서 노트북을 열고 2차면접에 대비 글을 읽기 시작했습니다. 1차 기술면접을 준비하면서 이 글을 제발 읽을 수 있었으면 좋겠다고 생각한 글이여서 기분은 좋았습니다. 2차면접에서도 기술 질문이 있을 수 있다고 했지만 대부분 문화적합성 관련된 질문들일 거라고 예상해서 내가 카카오뱅크에서 뭘 할 수 있는지 어떤 개발자가 될건지 스스로 정리해봤습니다. 그러고 면접장소로 가서 안내를 받고 대기실로 입장했습니다. 대기실에는 1차면접을 보러온 분들이 많이 계셨습니다. 저는 레퍼런스 동의서나 보안 유지 관련된 문서에 사인을 하고 면접장으로 이동했습니다. 2분이 앉아 계셨고 저를 보시자마자 되게 편안해 보이신다고 하시길래 저는 긴장되면 웃고있는다고 말하면서 면접이 시작되었던거 같습니다. 면접 질문은 정말로 무난하게 개발자로서 어떤 역량이 중요한지 힘들었던 경험이 있었는지와 같은 질문을 하셨습니다. 면접내내 편안하게 질문을 유도해주셨고 면접자에 대해 정중하게 인사해주시는 모습을 보면서 정말 좋은 면접경험이었다고 생각했습니다.
최종 합격
면접을 보고 16일 뒤에 결과가 나왔습니다. 오후 3시쯤 문자가 먼저 오면서 결과가 나온거 같습니다. 16일 동안 엄청 불안했지만 내심 합격할 거 같은 생각이 컸습니다. 합격할거 같다는 생각기 있었지만 제 예상에 맞게 합격메일을 받아서 너무 기분좋았습니다. 하지만 그동안 함께 일했던 동기들이 너무 좋았기 때문에 아쉽기도 했습니다. 이제 카카오뱅크에서 새로운 커리어를 시작할 것이며 앞으로 어떤 공부를 하게 되고 어떤 사람들을 만날지 기대가 됩니다. 운이 좋았다면 굉장히 좋았다고 말하겠지만 그 동안 틈틈히 공부하면서 노력했었던 결과라고 생각하면 뿌듯합니다. 하지만 개인적으로 늘 부족하다는 느낌을 받는 때가 많아서 실력을 키우는데 온전히 집중할 수 있는 날이 많았으면 좋겠습니다. 커리어에 있어서 큰 터닝포인트가 될 카카오뱅크에서 더욱 성장하여 블로그에 기록을 해야겠습니다.
'일기' 카테고리의 다른 글
그냥 개발자의 2022년을 마무리하며 쓴 회고 (0) | 2023.01.01 |
---|
댓글