지난 3년 되돌아보기
2022년이다. 21년엔 목표하던 IT 서비스 회사로 이직을 하게되었다. 이직에 성공하면 회고록을 적어보고 싶다는 로망(?)이 있었는데, 미루다가 새해를 맞이하면서 써보려고한다. 스스로를 되돌아보면서 생각을 정리하고, 새로운 한 해 또한 즐겁고 열심히 살 수 있길 바라본다.
개발자로서 사회의 첫발을 내딛다.
18년 10월 대기업(연봉은 중견기업) IT 계열사에 입사하게 되었다. 나는 전공자이지만 학부생 때 코딩을 엄청 열심히 한 것도 아니고, ‘개발자로서 성장하기 좋은 회사’에 대해 생각해본 적은 더더욱 없었기 때문에 그냥 전공을 살려서 취업을 했다는 사실과 약 8개월 간의 취준을 마쳤다는 사실이 너무 기뻤다.
앞서 말했듯 코딩 덕후는 아니었지만, 그래도 개발을 할 때면 재밌고 적성에 맞는 것 같다는 생각은 하고 있었는데, 일을 하다보니 ‘나에게 정말 잘 맞는 직업이구나’라고 느끼게 되었다.
익숙함과 실력을 착각하다.
내가 속한 프로젝트는 약 2년 동안 진행된 대규모 프로젝트였다. 내가 처음에 맡은 부분은 레거시 시스템의 화면 부분을 React
기반으로 바꾸는 것이었다. React
는 고사하고 javascript
에 대한 개념과 기초가 부족했기 때문에 코뿔소 책을 사서 나름대로 공부를 했다. 또한 상태 관리 라이브러리인 redux
에 대해 어느정도 이해가 되고나니 내가 맡은 부분에 있어서는 큰 어려움 없이 구현을 할 수 있었다.
점점 익숙해지다보니 깊게 공부하기보다는 그냥 아는 지식으로 구현하는 것에 만족하면서 지냈던 것 같다. 지금 돌이켜 생각해보면 시간 내에 구현하는 것 = 실력
이라고 착각했던 것 같다. 물론 정해진 기간 내에 맡은 일을 마무리하는 것은 매우 중요하지만, 그것은 개발자의 기본 소양인 것 같다. 진짜 실력은 생산성과 더불어 얼마나 좋은 코드를 작성하는지에 달린 것 같다. 내가 생각하는 ‘좋은 코드’의 특징은 크게 유지보수하기 좋다
, 트레이드 오프가 적절하게 고려되었다
인 것 같다.
하나의 프로젝트를 마치고 운영까지 해보니 프로그램을 유지보수
하는데 드는 비용을 줄이는 것이 매우 중요한 것 같다는 생각이 들었다. 특히, 요구사항이 변경되거나 추가될 때 ‘코드를 얼마나 적게 고치면서 반영 할 수 있는지’, ‘기존의 작성된 코드가 이해하기 얼마나 수월한지’ 등 실제로 지출되는 돈은 아니지만 개발자가 인지하고 작업하는데 걸리는 시간을 비용으로 생각하고 이것을 고려하면서 코드를 작성하는게 매우 중요하다고 생각한다.
"은 탄환은 없다"
라는 말처럼, 모든 문제에 통용되는 해결방법은 없다. 예를 들어 ‘멀티 스레딩을 활용한 비동기 처리를 통해 성능을 향상시킨다’라는 해결법이 있을 때, 단순히 성능 향상
에만 초점을 맞추게 되면 성능이 안나오는 경우에 우선적으로 멀티 스레딩을 적용시키려고 할 것이다. 하지만, 멀티 스레딩을 사용했을 때 발생할 수 있는 경합
, 컨텍스트 스위칭 비용
등에 대해서도 고려한다면 오히려 멀티 스레딩이 역효과를 불러오는 상황도 분명 있을 것이다.
이렇듯, 내가 생각하는 실력있는 개발자가 되기 위해서는 끊임없는 고민과 학습이 필요하다고 생각한다. 지금 편할수록 나중에 개발자로서 설 자리는 점점 줄어든다는 생각으로 또한 IT 서비스로 세상에 좋은 영향을 끼치기 위해, 꾸준히 그리고 즐겁게 공부하자.
끔찍한 평생공부 ?
입사 후 약 1년 정도 지났을 때부터였나, 언제가 될지는 모르지만 개발자에게 좋은 회사로 이직하려면 퇴근 후 공부를 해야겠다는 생각이 들었던 것 같다. 어떤 공부를 해야할까 고민하던 중 취준할 때 많은 도움을 받은 잇다를 찾게되었고, 여러 멘토님들께 사이드 프로젝트
를 시작해보라는 조언을 듣게 되었다.
딥러닝을 활용해서 운동화 커스터마이징
을 해보면 재밌겠다는 생각에 GAN에 대해 공부해보았다. 하지만, 얼마 지나지 않아 사이드 프로젝트를 멈췄다. 야근도 많긴했지만 의지도 약했던 것 같고, 지금 생각해보면 가장 큰 문제는 와닿지 않았기 때문이었던 것 같다. 쉽게 말해, 공부한 내용을 내가 현재 하고있는 실무에 적용할 수 있는 것도 아니고 부수입과 같은 어떤 부가적인 가치를 창출해내는 것이 아닌 소위 말해 ‘공부를 위한 공부’를 하고 있었던 것이다.
사이드 프로젝트가 흐지부지되고는 찰스 펫졸드의 CODE
와 같은 개발자 필독서라 불리는 책들을 간간히 읽었던 것 같다. 하지만 지금 생각해보면 이 또한 그냥 ‘공부를 안하기는 좀 뭐하니까’라는 생각에 보냈던 시간같다.
이러한 시간들을 통해 나는 공부를 위한 공부는 하기 힘들어하는 성향이고 이렇게 학습한 것은 머릿속에도 많이 남지 않는다는 것을 알 수 있었다. 따라서 지금은 실무에 필요한 공부, 내가 부족한 부분에 대한 공부 등 나에게 와닿는 공부를 하면서 스스로를 좀 더 동기부여 할 수 있게 되었다.
‘개발자는 평생 공부해야하는 직업이다’라는 말을 많이 들었고 공감하는 부분이다. 그렇기 때문에 평생을 괴로워하면서 공부하고 싶은게 아니라면 자신에게 맞는 학습 방향과 방법을 찾는 것은 매우 중요하다고 생각한다.
취준보다 간절했던 이직
21년 한 해 나에게 가장 중요했던 키워드 중 하나는 이직
이다. 이직 사유는 이전 회사가 마음에 들지 않아서가 아니었다. 개발 프로젝트를 마치고 해당 시스템을 운영하다보니 개발할 일은 거의 없고, 그렇다고 기존의 코드를 리팩토링하면서 좋은 코드 품질을 위해 노력하는 분위기도 아니었기 때문에, 개발자로서 성장하기에 한계가 있을 것 같다는 생각이들었다.
또한 실력이 없으면 부당한 상황에서도 본인의 선택권 없이 회사가 하라는대로 할 수 밖에 없는 많은 상황들을 지켜보며 실력을 키워야겠다는 생각이 더욱 절실하게 들었다. 그리고 항상 마음 한켠에는 일반 사용자를 대상으로 하는 서비스(나도 사용하는) 회사에 가서 프로덕트에 좀 더 애정을 갖고 일하고 싶다는 생각이 있었다. 따라서, 네카라쿠배
가 아니더라도 반드시 IT 서비스 회사를 가야겠다고 생각했다.
작년 초 결혼을 하고나서부터 이력서를 작성하고 코딩테스트를 준비하는 등 본격적으로 이직 준비를 시작했다. 그리고 3월에 네이버 계열사 중 한 곳의 면접을 볼 수 있게 되었다. 단순히 불합격을 넘어 결과는 참담했고 그 면접을 통해 현재 내가 어떤 수준이고 얼마나 부족한지를 자각할 수 있었다. 가장 문제라고 생각된 부분은 면접시 내가 한 부분에 대해 자신있게 얘기할게 없었다는 것이었다. 기술에 대한 깊은 이해, 좀 더 좋은 코드, 다양한 문제 해결 방법을 생각하며 일하지 않고 단순히 구현하기에 바빴던 나에게 어떻게 보면 당연한 결과였던 것 같다.
전략적으로 준비할 필요가 있다고 생각이들어 일단 회사에 지원을 하는 대신 이력서에 채울 내용을 찾아야겠다고 생각했다. 그리고 가장 좋은 컨텐츠는 내가 현재 유지보수 하고있는 시스템의 문제점들을 개선시키거나, 있었던 문제들을 어떻게 해결했는지 등에 대해 정리하고 다양한 해결 방법에 대해 생각해보는 것이었다. 성능 개선
, 테스트 코드 적용
, 확장성 좋은 코드
등에 대해 학습하며 실무에 적용할 수 있었고, 부족함을 채우기 위해 퇴근 후 매일 새벽까지 공부를 했다.
하지만, 공부를 할수록 ‘내가 모르는게 정말 많았구나’라는 생각이 들었고 분명 조금씩 나아지고 있지만 ‘내가 정말 서비스 회사에 갈 수 있을까?’라는 두려움이 엄습해오기도 했다. 이번에도 잇다에서 멘토님께 조언을 구했고, 한 멘토님께서 모든 부분을 다 알 수는 없으니 본인이 한 부분에 대해 자신감을 갖고 도전해보는게 좋을 것 같다고 하셨다. 두렵지만 다시 한 번 이력서를 재정비하고 여러 회사에 지원을 했다. 약 6개의 회사에 지원했고 그 중 4개 회사에 최종면접까지 갈 수 있었다.
결과적으로 3개의 회사에 붙었고, 내가 실제로 많이 사용하는 서비스를 하는 회사로 최종 선택을 했다. 매일 밤에 혼자 방에서 공부하던 시간들이 헛되지 않았던 것 같아 정말 기뻤다. 물론 수습 기간 3개월이 있기 때문에 아직 완전히 정착한 것은 아니지만 끝까지 좋은 결과가 있길 바란다.
TMI로 탈락의 고배를 마셨던 나날들을 추억해본다…
마무리하며
현재 직장에 11월 22일에 입사했으니 온지 벌써 한 달이 넘었다. 팀원분들 모두 너무 친절하시고 잘해주신다. 여기서는 깊게는 아니더라도 기본적으로 인프라 부분까지 서버 개발자가 담당하기 때문에 낯선 작업들이 많다. 그리고 스프링 기본에 대한 부족함 또한 많이 느끼고 있다. 적응하는게 쉽지는 않지만 목표하던 곳에 온만큼, 열심히해서 1인분 이상의 몫을 하고 더 나아가 서비스를 발전시켜 사람들의 생활에 편리함을 줄 수 있으면 좋겠다.
끝으로 아래 문구를 마음에 새기면서 이전처럼 업무가 익숙해진다고 안주하지 말고, 더욱 성장하고 잘하는 개발자가 되기 위해 꾸준히 공부하고 노력하자 !
If you do nothing, nothing happens.