주니어 개발자의 회고

김상헌·2023년 2월 7일
0

회고록

목록 보기
1/1

나는 어떤 사람인가?

나는 단순히 게임이 좋아서, 재밌어서 컴퓨터공학과로 진로를 정했다. 온전히 우연이였다.
대학교 1학년에서 알려주는 C 언어는 내가 사고하는 방식으로는 전혀 이해하지 못하였다.
C 언어의 반복문, 배열, 포인터 등 너무나 어려웠고, 자퇴를 고민하게 되었다.
교수님께 상담 요청을 드렸고, 그 끝내 휴학을 하게 되었다.

군대를 갈까 고민을 했던 와중, 어머니께서 언어 연수 제안을 해주셨고, 운이 좋게도 나는
누나가 살고 있는 캘리포니아로 어학 연수를 가게 되었다. 1년 동안 어학 연수를 통해서 500명을
넘는 사람들을 만나게 되었고, 사람들과 어울리면서 각자의 삶을 열심히 사는 모습을 보게되었다.

나는 뭘하고 있었는가 라는 고민을 하게 되었고, 한국에 돌아가서 군대부터 가야겠다라는 생각을 하게 되었다. 하지만 미국 생활에 몸이 적응하지 못했는지, 좋은 컨디션으로 돌아오진 못했다.
병원을 다니면서 치료했고, 한국에 돌아와서 8개월 만에 군입대를 하게 된다. 심지어 베이비붐 세대라 그런가 군입대도 쉽지 않았다. 군대 가려면 운이 좋아야했다.

지금은 사라진 306 보충대로 입대를 했고, 운이 안 좋으면 간다는 강원도 철원에 6사단 훈련소에 배치를 받게 된다. 그리고 GOP 대대로 입대를 한다. 많은 남성들이 비슷하겠지만 21개월동안의 군 생활은 전역 이후의 삶에 동기부여가 되었다.

전역을 하고, 학교로 복학했을때, 11학번이였던 나는 15년에 복학한다. 학교 복학 이후 나는 학업에 충실하기로 했다. 도서관에서 살다싶이 했고, 공부가 재밌어졌던 시기였다. 4학년 마지막 졸업 프로젝트를 진행하면서, 개발이라는 것에 흥미가 생겼다. 사실 졸프 하기전까지 개발 공부를 하나도 안해서, 개발자로 취업하는 길이 꽤 막막했다. 쌓아온 포폴도 없었고, 뭘로 시작해야되는지 하나도 몰랐다.

개발자로 첫 발걸음, SSAFY

2019년에 졸업을 했다. 다들 취업을 하려면 알고리즘을 해야된다 해서 알고리즘 공부를 시작했다. 진짜 하나로 모르겠었다. 공부를 하면서도 과연 이것만 해서 취업이 되나 싶을 정도로 걱정이 많았다. 그 시기에 아는 동생이 1기로 들어간 Ssafy 2기 공고가 열렸다. 그 친구가 1기를 하다 삼성에 취업을 했기에 아 나도 이 과정에서 개발자로 성장할 수 있지 않을까 라는 생각이 들었다.

서류 전형을 통과하고 면접을 봤다. 알바 이런 면접이랑은 다르게 생에 첫 제대로 된 면접을 봤던 기억이다. 엄청 떨렸고, 나는 간절했다. 면접에 대한 아무런 정보 없이, 내가 왜 개발자의 길을 선택하게 됬는지, 어떤 개발자가 되고 싶은지 어필했고, 합격했다.

지금의 Ssafy 의 교육 과정이 많이 바뀐거 같은데, 내가 2기로 속해있을때, 전반기, 후반기로 나뉘어서 전반기에는 웹 개발자 (Java, Spring, Vue.js), 알고리즘에 집중했고, 후반기에는 실제 프로젝트 개발에 집중했다. 전반기를 통해서, 웹 전반적인 생태계를 배워서, 간단한 프로젝트는 개발할 수 있는 실력이 되었다. 후반기에서 몇가지 프로젝트를 진행했는데, 지금 생각해보면 나는 전반기에 배운 내용에서 더 발전하지 못하고 있었던 것 같다. 익숙한 내용으로 개발하려고 했고, 현재 코드에서 답답한게 뭔지 고민해보려고 하지도 않았다. 사실 그렇게 고민 안했던 이유를 생각해보면, 자만이였다. 그 시기에 나는 Naver, Kakao, Coupang, Line 등 모든 신입 개발자들이 서류만 내면 떨어지는 굴직한 기업에 서류, 알고리즘 테스트 통과하고 면접을 봤기에 그랬던게 아닌가 싶다. 그렇게 자만하던 시기에 카카오 Sumer Tech Intership 에 합격까지 했다.

카카오 인턴십

설레는 마음으로 판교로 와서, 첫 출근을 했다. 첫 일주일은 온보딩 Week 였다. 너무나 알아야할게 많았고, 내가 과연 할 수 있을까라는 생각이 들었다. 나도 모르게 어영부영 일주일이 지나갔고, 팀 시니어 분들께서 시간을 내어 인턴 프로젝트에 대해서 설명해주셨다. 버스 데이터를 통해서 버스의 혼잡도를 예측하는 서비스를 하는 프로젝트였다. 기술 스택은 Scala, Apache Spark Framework 였다. 언어만 익히기에도 부족한 시간에 Apache Spark Framework 를 익히는건 나한테는 무리였다. 어떻게 프로젝트를 완성하고, 결과를 냈지만, 프로젝트 결과는 좋지 않았고, 팀원에게 좋은 인상을 주지 못했기에 나는 인턴십에서 탈락했다.

인턴십 회고

카카오 인턴십을 2020년 7월에 했는데, 지금 거의 3년이라는 시간이 지나서 회고를 하게 된다. 사실 팀원분들은 애초에 쉽지 않은 프로젝트를 주신게 맞다. 지금 와서 생각해보면, 신입 개발자에게 필요한 역량이 어떤것인지, 잘 성장할 수 있을지를 보는 과정이였다라는 생각이 든다. Apache Spark Framework 를 처음 사용하는 시니어 개발자를 데리고 와서 했었더라도, 쉽지 않은 프로젝트였을꺼라 생각한다.

지금 와서 내가 생각해보면 내가 인턴십에서 떨어진 이유들은 정체, 찾아서 도전해보지 못함, 자기 위안이였다고 본다. 나는 실제로 서비스할 수 있는 데이터를 도출해내는데 목표를 잡았었다. 그래서 코드가 느려도, 읽기 힘들어도 위안하였다. 하지만 거기서 좀 더 포커싱을 옮겨서 실제로 업무할때 사용하게 될 Apache Spark Framework 를 더 잘 사용하는 법, 예를 들어 데이터 프로세싱 과정의 속도를 개선하는, 더 가독성이 있는 코드를 작성하는 노력을 들였다면, 물어보기 전에 먼저 찾아보고 여러 데이터 프로세싱 방식 중에 지금 상황에 어떤 방식을 적용해야 되는지 고민을 미리했다면 결과는 달라졌을꺼라 생각한다.

42Seoul

인턴십 탈락 이후 서울에서 생활하기 위해서는 난 공부할 돈이 필요했다. 카카오 인턴십을 하는 동안 모은 돈으로 취업할때까지 생활하기는 어려울거라 보았다. 그래서 또 다른 교육 과정을 찾아 공부도 하면서 취업 준비를 할 수 있는 곳을 알아보았다. 42Seoul 은 너무 적합한 교육 과정이였고, 해당 교육 과정에 지원하여 또 교육 과정에 입소하였다. 42Seoul 은 자기 주도형 개발 교육 과정이다. 강사도 교수도 존재하지 않고, 팀원을 구성해 서로 서로 도와가며 프로젝트를 완료해내는 그런 과정이다. 이 과정을 통해서 사실 리눅스 환경에 대한 기초를 닦을수 있었다. 교육 과정을 진행하면서 취업 과정도 반복했다. 그러다 몇 회사에 합격했고, 결국 현재 재직하고 있는 직장으로 오게 되었다.

첫 직장

첫 직장의 이미지는 자유로움 그 자체였다. 일단 첫 직장, 안정적인 월급을 주는 회사에 입사했다는 것 만으로 너무 벅찼다. 첫 몇달은 팀에서 사용하는 기술을 익히는데 바빴다. AWS 환경은 나한테 너무 낯설었고, VPC, Subnet, Load balancer, API Gateway 등 모르는 것 들 천지였다. 3달정도가 지날쯔음 프로젝트를 맡게 되었고, 제품들의 알림을 발송하는 시스템 개발을 담당하게 되었다. 첫 프로젝트라 시간을 쏟고 잘 해보려고 노력했다. 프로젝트 개발 이후 각 제품에 해당 시스템이 포함되어 지속적으로 릴리즈가 되었다.

해당 프로젝트가 끝난 후, 그룹에서 제공하는 제품들의 데모 프로젝트를 담당하게 되었다. 코드 개발 뿐만 아니라 배포까지 담당하였다. 책임감이 컸고, 또 잘해보려고 노력했다. 프로젝트가 잘 마무리 되었다.

이 프로젝트 이후 나는 잘 하고 있구나라는 자기 위안을 했다. 또 이전에 개발한 알림 시스템에 도 큰 문제가 없이 동작했다. 그래서 나는 또 내 코드는 문제가 없다라고 자만했다. 또한 나는 담당하는 업무 이외에 일에 대해서는 크게 관심을 가지지 않았다. 팀원이 무슨 일을 하던, 내가 맡은 일에만 책임감을 가지고 업무를 처리했다. 이런 여러 나의 문제점은 나의 성장에 발목을 잡게 되었다.

회고

비록 늦었지만 지금이라도 나는 스스로에 대한 회고를 하고자 한다.
나의 문제점과 개선 방법에 대해서 고민하고자 한다.

  • 세상에 문제가 없는 코드는 없다. 문제없이 잘 동작하는 코드는 존재할지 몰라도, 개선이 필요없는 코드는 없다.
  • 담당하는 일 뿐만 아니라, 팀원들이 진행하는 일에 관심을 가지지 않으면, Take over 하는 과정이 쉽지 않다. 항상 팀원들이 하는 일에 관심을 가지고 기울여볼 필요가 있다.
  • 입사 이후에 회사에서 일적으로 배우는 것에만 그쳤고, 위안했다. 하지만 이러한 위안은 나를 크게 성장시킬수 없다. 시간을 할애하여 기술적인 변화에 관심을 가져야 한다.

어떻게 개선할 것 인가?

  • 1주일에 한번은 코드 개선 여부에 대한 필요성을 검토한다.
  • 매 스크럼에 팀원들이 공유하는 내용에 대한 노트를 작성한다. 코드 개발의 경우, 어떤 부분에서 추가되었고, 개선되었는지 확인한다.
  • 주 2회 Quality 있는 Blog Posting 을 하며, 기존 팀 내에서 사용하는 기술에 대한 심화 스터디, 새로운 부분에 대한 스터디 두 가지 내용에 대한 포스팅을 진행한다. 해당 스터디를 진행하며 만약 코드가 생성되었으면 Github 에 코드 내용을 첨부한다.

개발자의 꾸준함은 중요하다. 그 꾸준함을 지키기 위해 노력한다 라는 말 뿐만 아니라, 나의 노력의 증거를 산출하고자 한다.

이 글을 읽으시는 분들께

개발을 시작한지 2년이 조금 안된 주니어 개발자로서 개발을 시작하게 된 계기와 지금까지 어떤 개발자로 지내오고 있었는가, 왜 성장하는 개발자가 되지 못했는가에 대한 회고입니다. 따끔한 말 혹은 따뜻한 말 모두 환영합니다. 이 세상의 모든 주니어 개발자들의 성장을 응원합니다.

profile
배움을 즐기는 개발자입니다.

0개의 댓글