일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조
- 개발자
- HashMap
- dfs
- 스타트업
- 코딩테스트
- 스프링부트
- IntelliJ
- 이직
- 해결
- 프로그래머스
- 도커
- spring boot
- spring
- docker
- 해시맵
- HTTP
- 구현
- bfs
- 구름LEVEL
- 명령어
- 스프링 부트
- 스프링
- 문자열
- Java
- Linux
- 인텔리제이
- 백엔드
- 배열
- 주니어
- Today
- Total
마이의 개발 블로그
2년차 주니어 개발자의 이직 이야기 2 - 다시 돌아갈 수만 있다면 어떤 회사를 선택해야 할까? 본문
이전 직장은 너무나 중요합니다
이직을 결심하고 회사를 나온 후 벌써 2개월이 되었습니다. 그 과정에서 자료 수집과 고민을 거쳐 몇몇 좋은 회사들(당장 가기는 어렵다고 판단되나 내 수준을 가늠해보기위해)에 지원했는데, 서류 광탈이라는 뻔한 결과를 마주하고 나니 내가 해왔던 일들을 토대로 내가 갖춘 자격 조건과 스펙에 대해 다시 한 번 분석하고 고민해보게 되었습니다.
경력 이직은 너무나 당연한 이야기이지만 이전의 직장이 어떤 곳이고, 그곳에서 무엇을 했는지에 따라 다음에 이직하게될 직장에서의 나의 가치가 정해지게 됩니다. 특히 개발자는 사용하는 언어, 프레임워크도 봐야하고, 상황에 따라서는 운영했던 서비스의 규모에 따라 트래픽을 다뤄본 경험이나 장애 대응 경험을 묻기도 합니다. 외부API 연동 경험을 필수조건으로 명시해놓은 곳도 있고, 특정 플랫폼을 이용한 서비스 제작경험이 있는지 등의 특수한 경험을 요구하기도 합니다. 같은 개발자 타이틀을 달고있다고 해서 같은 일을 수행하는 것이 아니기 때문에 가끔은 그냥 직장인이면서도 1인 기업에 좀 더 가까운 직종이 아닌가 하는 생각을 해봅니다.
신입은 성장가능성만 가지고도 사람을 뽑지만, 경력은 그렇지 않습니다. 적어도 경력 인정을 받기 위해서는 이전에 했던 일들이 어느 정도는 지원하게될 회사에서 수행할 업무들에도 부합해야합니다. 그런 관점에서 저 자신을 분석했을 때 저는 어쩌면 제가 가고자하는 회사에 따라서 신입일때보다 현재 가치가 더 떨어졌을 수도 있겠다는 생각이 들기도 했습니다. 아래에서 그 이유들에 대해 말해보겠습니다. 그리고 직장을 구하실 때 이런 곳들은 최대한 피하시라고 권하고 싶네요.
이전 직장에서 내가 후회하는 점들
1. 주니어밖에 없다보니 성장보다는 프로젝트를 쳐내기에만 급급했던 것 같다.
주니어 개발자들밖에 없다보니 프로젝트의 완성도에 신경쓸 겨를이 없었습니다. 나름 공을 들여 기술적인 완성도를 높이고 최대한 문제가 없도록 프로젝트를 수행해나갔으나, 내가 가는 길이 맞는 방향인지 확인해줄 시니어가 없었기에 어느 순간부터는 기술적인 성장보다는 업무 완료를 우선시하는 나와 동료들을 발견하게 되었습니다. 동료들끼리 머리를 맞대면서 외부 교육이나 스터디를 통해 기술적인 부분을 채우려고 노력하기도 했으나, 주어진 업무들의 컨텍스트에 맞는 경험의 부재를 채우기에는 역부족이었다고 생각합니다. 만약 회사를 다시 선택할 수 있다면, 개발 파트에 시니어가 있으면서 완성도와 마감기한 둘 다를 고려하여 프로젝트를 수행할 능력이 있는 회사를 찾아볼 것 같습니다.
2. 관리자들의 개발 문화에 대한 이해가 전혀 없었다.
관리자들이 개발의 복잡성과 기술적인 요구사항을 이해하지 못하는 상황에서 일하다보니, 단순하게 개발 가능여부와 인건비, 마감 일정만을 고려하여 일정이 산출되었는데 이는 퀄리티있는 개발을 저해하는 요소였습니다. 성장에 뜻이 있어 함께 고민하던 개발자들끼리는 이것이 문제임을 인지하고 있었고 회사의 미래를 위해서라도 어느 정도는 개발 문화를 만들어나가기 위한 투자가 필요함을 사측에 여러 번 어필하였으나, 전혀 먹히지 않았습니다. 비즈니스는 개발 문화에 우선하는 것이 맞지만, 적어도 IT기업이라면 최소한 개발자들이 성장하기위한 최소 조건인 개발 문화를 이해하고 이를 장려해야 한다고 생각합니다. 다시 돌아갈 수 있다면, 개발 문화에 대한 이해가 있는 리더십을 갖춘 회사를 우선적으로 고려했을 것입니다.
3. 기술 스택이 중구난방이여서 하나를 깊게 경험할 기회가 없었다.
프로젝트에 따라 기술 스택이 중구난방으로 구성되어 있었습니다. 주 서비스를 개발, 운영하기 위한 기술스택과 프레임워크가 있었고, 외주를 받아 수행하는 프로젝트들을 위한 프레임워크는 프로젝트에 따라 수시로 바뀌었습니다. 그 과정에서 다양한 기술을 경험하면서 어떤 기술이 와도 공부해서 적응할 수 있겠다는 자신감을 얻게된 것은 정말 좋은 일이라고 생각하나, 결정적으로 한 가지 기술을 깊게 학습하고 전문화하는 기회가 없었던 것이 저에게는 큰 단점으로 여겨집니다. 연차가 쌓이면 쌓일수록 그 연차에 맞게 요구되는 능력과 경험이 있는데, 그런 것들을 제때 쌓아나갈 가능성이 줄어들기 때문입니다.
선배 개발자들 의견을 종합해보면 일정 연차 이상이 쌓여 깊이가 생기게 되면 사실 다른 기술로 넘어가는 것은 문제가 되지 않는다고들 합니다. 이미 주요 기술에 대한 개념과 로드맵이 잡혀있는 상황에서 문법이나 사용법정도만 새로 익히면 된다고 하더군요. 그러나 반대로 다양한 기술스택을 사용해봤다는 경험은 연차가 쌓이면 쌓일 수록 회사 입장에서 별로 매력적인 요소는 아니라고 합니다. A라는 기술에서 B라는 기술로 마이그레이션 해야하는 경우가 아니라면 말이죠. 다시 돌아갈 수 있다면, 특정 기술, 특정 서비스에 좀 더 집중할 수 있는 환경을 찾아나섰을 것입니다.
4. 서비스의 방향성이 없었다.
저의 이전 직장은 초기 단계의 스타트업입니다. 그 직장을 선택할 당시, 대표님이 추구하는 방향성과 서비스에 대해 매력을 느꼈고, 인터뷰를 하며 대화가 잘 통한다고 생각하여 좀 더 조건이 좋은 곳들을 포기하고 직장을 선택했습니다. 그러나 막상 입사를 하고보니 시간에 지남에 따라 회사가 만들어가려는 서비스는 겉모습만 있어보이는 서비스였고 회사의 비전이 생각보다 구체적이지 않다는 것을 깨닫게 되었습니다.
처음에는 외주프로젝트를 통해 수입을 창출하여 서비스 제작에 기여한다는 자부심을 느끼며, 동료 개발자들과 함께 서비스를 더 재미있게 만들어 시장에 내놓고 싶다는 마음으로 업무에 임했습니다. 하지만 지금 와서 생각해보니 정작 회사는 그런 것보다는 스타트업의 성격을 유지해서 얻을 수 있는 국가자금 지원, 임대료 지원 등의 이점들은 취하면서, 한편으로는 외주 프로젝트로 수입을 창출하고자 하는 일에 관심이 많았던 것 같습니다. 무늬만 스타트업이었던 셈이지요. 어느 순간 그것을 깨닫고 나니 개발에 대한 열정이 사그라들었고 저도 더 이상 여기서는 뭔가를 해나갈 수 없겠다는 생각이 들었습니다. 근로기준시간을 초과해가며 외주 프로젝트를 수행하여 회사를 먹여살리고자 노력했던 저의 과거가 온전히 부정당한 느낌이었거든요.
만약 스타트업을 고려하고 계신 분이 있다면, 충분한 대화와 자료 탐색을 통해 회사에 대해 자세히 알아보시길 당부드립니다. 그리고 실제로 수익을 내면서 운영 중인 서비스가 있는 곳(당장의 먹거리 걱정 안 해도 되는 + 트래픽이 발생하여 관련 경험을 쌓을 수 있는)을 우선적으로 고려하시길 당부드립니다. 구상 단계에서 아무리 서비스가 매력적이고 비전이 좋게 느껴진다고 해도, 이를 시장에서 증명해내는 것은 전혀 다른 영역의 문제입니다. 그리고 가슴뛰는 일도 중요하지만, 실제 수행하는 개발 업무에서 어떤 일을 하는지가 훨씬 중요합니다. 주니어라면 더더욱이요.
5. 상황에 따라 개발자에게 개발과 전혀 상관 없는 일들을 시켰다.
이전 회사에서는 기존의 서비스를 중단한 후 새로운 사업을 발굴하려고 했는데, 그 과정에서 점차 개발과 전혀 상관없는 일들을 개발자에게 시키기 시작했습니다. 이는 개발자로서의 역할과 집중력을 흐리게 만들었고, 효율적인 업무 수행에도 영향을 주었습니다. 어느 정도로 상관없는 일을 시켰는지 여기에 다 적을 수는 없지만, 누가 들어도 말이 안 되는 엉뚱한 일들을 개발자에게 수행하도록 지시함으로써 회사가 분야 전문성조차 고려하지 않는다는 점을 알게된 씁쓸한 경험이 제게는 있습니다. 혹시나 공고에 개발이나 개발과 연관된 업무들 이외의 무언가가 우대 조건으로 명시되어있다면 다시 한 번 생각해보시길 당부드립니다. 개발에만 집중하여 나의 역량을 성장시키기에도 아까운 주니어 시기를 다른 일을 하느라 보내지 마시길 바랍니다.
만약 다시 신입이 되어 회사를 고른다면 어떤 기준으로 고를까?
만약 내가 현재의 상황에서 다시 돌아갈 수 있다면, 신입으로서 어떤 회사를 선택해야 했을지 생각을 해보곤 합니다. 처우나 복리후생은 너무나 당연한 요소이기에 기준에서 제외했고, 순서대로 중요하다고 생각하는 네 가지 요소를 꼽아봤습니다.
1. 한 가지에 집중할 수 있는 회사
빠른 성장과 기술적인 발전을 이루어내기 위해서는 주력 기술을 갖고있거나 서비스를 운영하는 회사에서 일해보는 경험이 필요하다고 생각합니다. 하나의 프로덕트를 내것처럼 여기며 지속적으로 발전시켜나가는 경험, 그 과정에서 발생되는 여러가지 상황들에 대처하는 업무 수행 경험, 그리고 업무 수행을 하며 각 파트의 이해관계자들과 의사소통해나가는 경험만큼 주니어에게 필요한 것은 없다고 생각합니다. 그러한 경험이 자산이 되어 조직 안에서의 개발자로서의 나의 역할에 대해 탐색해볼 수 있고, 향후의 커리어 발전 방향을 설정할 수도 있기 때문입니다. 부가적으로 기술적인 깊이도 무시할 수 없는 요소이므로 주력으로 발전시켜 나가고자 하는 기술 스택이 있다면 그 기술을 사용하는 회사에서 하나를 깊게 파기를 추천합니다.
2. 학습과 성장을 위한 환경이 구성되어있는 회사
주니어 개발자에게는 지식과 경험을 쌓기 위한 환경의 구성이 매우 중요하다고 생각합니다. 간혹가다 혼자서도 잘 해내는 주니어 개발자들이 있기는 하지만, 보통 가장 빠르게 성장하는 데에는 경험 많은 멘토의 지도 아래 극한의 상황을 극복해나가는 방법만한 것이 없는 것 같습니다. 그러므로 선배 개발자들로부터 배울 수 있는 기회가 매우 소중하며, 학습과 성장을 위한 적절한 회사의 지원도 필수적입니다. 만약 제가 다시 돌아가서 선택할 수 있다면 1) 회사가 멘토링 프로그램을 운영하거나 교육 관련 지원을 하는지, 2) 정해진 사수가 있어 나의 업무를 봐줄 수 있는지, 3) 코드 리뷰와 스터디 등의 개발문화가 확립되어있는지(업무시간을 이용하는지), 4) 컨퍼런스 참여를 독려하는지 등의 요소를 고려하였을 것입니다.
3. 문화와 가치관이 나와 잘 맞는 회사
이전의 경험들을 통해 알게 된 것은 개발자로서 일하기 위해서는 구성원들과의 원활한 커뮤니케이션이 매우 중요하다는 것입니다. 조직에서의 개발은 혼자서 하는 작업이 아니라 팀으로 협업하는 과정이기 때문에, 팀원들과의 화합의 중요성을 무시할 수 없습니다. 이전의 업무 경험들로 미루어볼 때, 내가 속한 조직의 문화와 가치관이 나와 잘 맞을수록 그 조직에 속한 구성원들과의 커뮤니케이션도 원활할 가능성이 높다고 생각합니다.
저는 다행히도 이전에 경험했던 조직들 대부분에서 좋은 분들과 함께 팀을 이루어 일을 할 수 있었는데, 사람이 편하고 소통이 원활한 것만큼 편하게 일할 수 있는 환경이 없습니다. 특히나 개발자라면, 요구사항을 잘 알아듣고 개발 관련 업무를 잘 설명하는 능력을 갖추는 일도 중요하지만, 그에 앞서 나와 함께 일하는 사람들이 나에게 요구사항을 편하게 이야기할 수 있을 정도의 신뢰가 구성원들 사이에 확립되어 있는지를 살펴보는 일이 더 중요하다고 생각합니다. 조직의 정체성은 특히나 면접때 면접관들을 통해 잘 드러나기 때문에, 많은 질문과 함께 컬쳐핏을 놓치지 않으시면 좋겠습니다.
4. 비전과 목표에 공감할 수 있는 회사
저에게 있어 개발은 하나의 도구이며, 저는 기술 그 자체보다는 기술을 통해 할 수 있는 일들에 더 많은 관심을 갖습니다. 물론 기술 자체를 소홀히 여기라는 말은 절대 아닙니다. 그러나 발전을 지속하기 위해서는 내가 속한 회사가 기술을 가지고 하고자 하는 일들이 나의 관심사와도 어느 정도 일치해야 합니다. 그렇기에 회사의 비전과 목표는 매우 중요한 요소입니다. 공감할만한 비전과 목표가 있는 회사에 속해있다면 내가 만드는 제품이나 서비스의 개발에 기여하는 시간을 아까워하지 않을 것입니다. 개인적인 목표와 일치하는 방향성을 가진 회사를 만난다면 성장은 물론이고 번아웃도 예방할 수 있어 일석이조라고 생각합니다.
완벽한 회사는 없다
모든 것을 만족시키는 이상적인 회사는 사실 유니콘같은 존재에 가깝습니다. 그리고 사람의 욕심은 끝이 없어서 아무리 좋은 환경에 있더라도 일단 한 번 적응하고 나면 부족한 점을 찾아나서기 마련입니다. 제 나름의 기준을 세워 여러 회사들의 정보를 수집하는 과정에서 느낀 것은 결국 명확한 기준과 우선순위가 있어야 필터링이 쉽다는 것입니다. 회사들을 비교하다보면 어느 지점에서는 결국 장단점을 취사선택 해야하는 상황이 옵니다. 만약 내가 가장 중요하게 여기는 것과 가장 빨리 포기할 수 있는 것이 무엇인지 이미 잘 알고있다면 채용공고만 보고도 내가 이 회사와 잘 맞을지가 판단이 되기도 하더군요. 결국에는 내가 무엇을 원하고 어떤 생각을 가지고 이 일을 하는지를 나 자신에게 계속 되묻는 과정의 연속인 것 같습니다.
'생각들' 카테고리의 다른 글
시리즈A 스타트업 코딩테스트 후기 (0) | 2023.09.02 |
---|---|
2년차 주니어 개발자의 이직 이야기 3 - 면접에 관하여(시리즈C 스타트업 후기) (0) | 2023.08.06 |
2년차 주니어 개발자의 이직 이야기 1 - 경험과 성장을 위한 도전 (0) | 2023.06.23 |
'개발자로서 ChatGPT를 학습에 활용할 수 있을까?'에 대한 생각 (0) | 2023.02.06 |
코딩테스트가 정말 중요한가? (0) | 2023.02.02 |