문과 출신 신입 개발자 6개월 차 후기
신입 개발자
첫 회사를 구하고 어느덧 6개월이라는 시간이 지났다. 요새 개발자 취업이 많이 힘들다고 한다. 필자는 운 좋게나마 작은 회사에 입사해 작고 소중한 경력을 쌓아가고 있다.
아직 꿈, 목표와의 거리는 몇 광년만큼이나 떨어져있지만, 그 첫 발을 내딛은 이 시점, 그간의 과정과 신입이 느낀 개발자 회사생활, 그리고 나의 목표에 대해서 작성해 놓고자 한다.
넣은 이력서 개수
요새 생신입보다는 중고 신입을 선호하는 기업이 많다고 한다. 나는 아쉽게도 인턴 경험 등 회사 생활에 득이 될 경험이 전무했기에 첫 발을 내딛기 힘들었다. 대기업이 아니라 적당히 다닐만한 중소기업, 중견기업에 지원하는데도 도통 면접에 불러주질 않았다. 당시 남들은 대체 몇 개 정도 이력서를 제출하는지 너무 궁금했다.
나는 이 회사에 입사 입사하기 위해서 약 200개 가량 이력서를 제출했다.(잡 코리아 등 포멧을 작성해놓고 이력서 클릭하기 버튼을 클릭한 횟수가 약 200개이다.) 그 과정에서 2번의 인턴 면접(아마 카카오 페이와 스파르타 코딩이었던 걸로 기억) 3번의 정규직 입사 면접을 봤으며, 마지막 면접에 합격하여 이 회사에 다니게 되었다.
이 회사에 지원자 수는 대략 잡코리아에서만 200명 정도라고 봤었고, 4명 정도가 정규직으로 뽑혔으니 약 100대 1정도 경쟁률이었으려나? 정확한 수는 모르겠지만, 이정도 규모의 회사에 그정도의 인원이 쏠리는 건 문제가 있다고 생각하긴 한다.
회사는 연 매출 약 900억 정도에 인원수 120명 정도 되는 회사이다.
코딩이 어렵다
회사 생활 1개월 차. 코딩의 벽에 부딛혔다. 정확히는 도메인의 벽이라고 해야겠다. 개인 개발은 그냥 하면 된다. 내가 생각하는 방향이 있고, 그 방향에 맞춰서 개발만 하면 너무 쉽다. 개인 개발은 도메인 지식이라고 할 것이 이미 내 머릿속에 들어차 있기에 방향성에 대한 고민이 크지 않았다.
그러나 회사에서의 개발은 무척 어려웠다. 우선 회사의 연력만큼이나 코드가 쌓여있다. 이 회사의 사업을 온전히 이해하지 못하면 코드의 의도를 단번에 받아들이기 힘들며, 기존의 코드들이 모두 깔끔하게 작성된 편도 아니다. 물론 신경을 써서 신입인 내가 봐도 단순한 설명만 듣고 단번에 이해갈 코드를 작성해 놓은 분들도 많았지만 그렇지 않은 경우도 많았다.
이렇게 되니 단순한 기능 수정의 경우에도 며칠씩이나 걸리게 되었다. 내가 수정한 이 코드가 가져올 파급력을 스스로 파악하기가 힘들기 때문이다. 단적인 예로 이 회사는 두 개의 회사 사이에서 통신을 주고받게 되는데, 이에 따라 각 회사의 데이터를 다르게 가공해야하기에 그만큼 분기가 늘어나게 된다. 물론 신입인 내 입장에서는 이토록 많은 분기를 이해하기 힘들며, 각 회사에 전달해야할 데이터 또한 문서화되어있지 않고, 존재하는 문서마저 최산화되고 있지 않다.
다행인 것은 지라와 작업 카드를 사용하기에, 이전에 비슷한 작업을 했던 사람의 작업물을 보며 어느정도 내가 해나가야 할 방향의 감을 잡을 수 있었다.
물론, 아직까지도 100% 내가 하는 방향이 옳다라고 확신하지는 못하고 그저 레거시를 따라서 작업을 이어가고 있다. 누군가 왜 이렇게 작업을 잡았냐고 물어보면, 0000년도 00월에 작업 방식을 따라갔다고 밖에 할 수 없는 것이다.
도메인 지식이 완벽하지 않아 애를 먹고 있다. 코딩이 어렵다기 보단 어떤 코드를 짜야하는지, 어디를 건드려야하는지가 제일 어렵다.
회사와 성장
개발자는 끊임없이 성장해야 살아남는다고 한다. 이 말을 개발자를 하기로 결심한 때부터 지금까지 속에 간직하고 있다.
그리고 나는 회사에 입사해서 필드에서 구르다보면 자연스레 성장할 것이라고 막연한 생각을 가지고 있었다. 물론 입사 1개월 차에 이 생각은 박살이 났다.
내가 이 회사의 면접 때 물어본 것은 아래 두 가지이다.
1. 코드 리뷰를 하는가
2. 컨퍼런스 등에 주기적으로 참여하는가
이 두가지에 대한 면접관의 반응은 그렇다, 였다. 그러나 (내가 아는 한) 6개월 동안 코드 리뷰는 단 한 차례도 없었으며, 컨퍼런스에 참여하는 개발자도 본 적이 없다. 물론 원하는 경우 컨퍼런스 비용등은 회사에서 지불해 준다고 입사 때 말했으나, 아무도 비용 청구하는 걸 본 적 없으니 신입인 내가 신청하기는 좀 힘들다.
여러모로 회사를 다니며 성장한다는 느낌은 받지 못했다. 그렇기에 퇴근 이후 개인 개발에 집착하게 되었다.(개인 프로젝트 세미 배포 때문에 첫 휴가를 냈는데 아무도 이해하지 못하더라)
지금은 회사 분위기상 개인의 성장이 회사에 아무런 도움이 되질 못한다는 것을 안다. 우리 회사는 새로운 것을 만들어내기 보다는 구축해 놓은 프로그램을 기반으로 새로운 계약을 따내는 것이 중요하다. 즉, 여기서 개발자의 역할은 1. 기존 프로젝트의 개선 2. 매일 모니터링하다 버그가 나오면 수정, 정도일 것이다. 신입 개발자를 키워도 회사가 얻을 메리트는 없다는 것이다. 나도 동의하는 바이다.
좋은 사람들
개인적으로 우리 팀 사람들 참 좋다. 작업 중 모르는 것을 물어보면 친절히 답해주며 뭐든지 괜찮다고 해준다. 나도 팀원들을 실망시키지 않기 위해 물어보는 모든 것을 따로 위키로 정리해두고 있다. 얼른 회사 도메인을 익혀 그들의 일을 가져와야 하기 때문이다. 사람 때문에 퇴사한다는 사람들이 꽤 많던데, 적어도 나는 사람으로부터 받는 스트레스는 없어서 참좋다.
내가 위키에 모든 지식을 정리하는 또 다른 이유는 나 또한 추후 좋은 선임이고 싶기 때문이다. 한 일 년 뒤에는 새로운 신입이 들어올 것이다. 그때 되어 내가 아는 지식을 잘 전수하려면, 문서화가 필수라고 생각한다. 기본적으로 나는 내 기억력보다 기록물을 믿는 사람이다.
이 회사에서 개발을 배우기에는 애매한 감이 없지 않아 있지만 사회 생활을 배우기에는 더할 나위 없어 시작 운이 좋다고 생각한다.
개발이 하고 싶다.
나는 무언가 만드는 걸 좋아하는 편이다. 개발 또한 꽤나 좋아한다. 그런데 신기하게도 회사 입사 후 개발팀에 들어 온 후 개발을 덜하는 것 같다. (어제는 단 한 줄의 코드도 작성하지 않았다.) 내가 가장 많이 시간을 쏟는 것은 로그를 보고 문제의 원인을 찾는 것이다. 앞서 우리 회사는 두 회사 사이에서 통신을 해야한다고 한 바 있다. 그렇기에 아주 다양한 이유로 문제가 발생한다. 이를 테면 한 쪽 회사가 잠시 버그를 고치기 위해서 서버를 내린다? 우리쪽에서는 바로 문제가 된다.
그렇기에 내가 하는 일은 로그를 보는 일이 하루의 50%를 차지한다. 수많은 프로젝트의 로그 파일을 눈이 빠지도록 뒤지다 문제가 된 곳을 찾는다. 이게 지금 내가 가장 많은 시간을 쏟는 일이며, 동시에 크게 허탈감을 느끼는 일이다. 로그 찾기, 너무 힘들다. 그리고 이 일이 내 성장과는 전혀 상관이 없다는 생각이 매 순간 머릿 속에 떠다닌다. 아직 열어본 적도 없고, 어떤 식으로 로그를 작성하는지도 제대로 모르는 프로젝트의 로그를 뒤적거리고 있다. 이는 뭔가 잘못되었다고 생각한다.
한 프로젝트씩 정복해 나가고 싶지만 이는 나약한 생각인가 보다. 나는 로그를 봐야한다. 나는 개발이 하고싶다.
나의 목표
나는 서비스를 만들고 싶다. 많은 웹, 앱을 출시해 월급 이상의 수입을 얻는 것이 내 중장기적인 목표 중 하나이다. 그렇기 위해서 단기적인 목표로 회사가 아닌 유저를 상대로 서비스를 만드는 회사에서 일해보고 싶다. 그 과정에서 얻는 노하우를 흡수해 조금씩 내 서비스를 만들어내고싶다.
또한 내 서비스를 기획, 개발, 운영하는 과정에서 얻는 노하우를 회사에 적용 가능한 수준까지 고도화하고 싶은 목표도 존재한다.
아직은 먼 날의 이야기이다. 하지만 글을 통해 많은 사람에게 공유되는 꿈은 더욱 명확한 형태로 다가오게 된다. 내가 쓴 글이 부끄러워서라도 그것을 해내기 위해 노력한다는 것이다.
이 블로그는 내가 성장해가는 과정의 기록이다. 기록은 내가 해나간 것들을 명확히 보여준다. 조촐하진 않으나 과장되지도 않았다. 적당한 의지력과 적당한 끈기를 가진 한 사람이 나아가는 발자국이다. 오늘의 발자취도 훗날 망설이는 나를 다잡아 줄 것이라 믿으며 이만 줄인다