2024. 11. 30. 15:48ㆍ글/개발
- 토스 뱅크 과제 회고를 보고 떠올린 생각들이다.
- 사회에서 개발자라는 포지션을 가지고 1인분을 어떻게 하면 할 수 있을지 정리해보자
어떻게 하면 1인분 하는 개발자가 될 수 있을까 ?
1인분 하는 개발자란 무엇일가 ?
일단 자기소개를 하자면 .. 1년 경력을 가진 2년차 프론트엔드 개발자이다. 나는 취업 준비를 하는 입장이므로, 지난 1년간 회사를 다녔던 경험이 있다.
그런데 계속되는 서탈로 인해 메타인지가 박살났다. 취업에 대한 부담감을 덜어두는데에 시간이 많이 걸렸다. 부담감이 조금 덜어진 이 시점에서 회사와 취준생인 나를 제 3자로 두고 뭐가 부족한지 파악하는 시간을 가져보고 어떻게 다시 고쳐나갈 수 있을지를 목표로 작성하는 글이다.
회사의 환경에서 1인분 하는 개발자에 대한 생각을 정리해보고, 내 역량을 다시 평가하는 시간을 갖도록 해볼것이다.
회사
회사 4會社 어휘등급
명사 상행위 또는 그 밖의 영리 행위를 목적으로 하는 사단 법인. 주식회사, 유한 회사, 합자 회사, 합명 회사의 네 가지가 있다.
일단 회사는 영리행위를 목적으로 하는 집단이다. 내가 스타트업이든 중소기업이든 대기업이든 아무 이유없이 회사의 직원이 될 수는 없다. 이 회사가 나를 뽑은 이유가 있을것이다. 회사는 자선단체가 아니란 뜻이다.
그렇다면 회사를 들어가려고 마음을 먹은 순간 나를 회사에 맞춰야 하는 이유가 생긴것이다.
(심지어 나는 이런 기본적인 의견을 가지기 위해서도 시간이 걸렸다 대체 이유가 뭘까 머리가 너무 나삐진 느낌이다..)
왕자(회사)가 원하는 신데렐라가 되려면 준비를 해야되겠다. 그렇다면 어떤 준비를 해야할까 ?
회사가 원하는 인재상은 공고에 보면 나타나 있다. 이 정도는 해야 서류를 합격시켜주겠다를 보여주는 힌트가 되겠다.
나는 프론트엔드 개발자를 목표로 한다. 그러므로 토스뱅크 프론트엔드 개발자 채용공고를 가져왔다. 회사를 이루는 팀을 알려주고 있고, 팀에서 사용하는 기술 스택을 알려주고 있다. 회사의 동료가 되기 위해서는 프론트 기술들을 어느정도는 알고 있어야 한다는 뜻이고, 기술면접으로는 이 기술에대한 원리나 응용방법을 물어볼것이다.
물론 다 알아야 하는것은 아니지만 동료로 온다는것은 나랑 같이 일하는 한사람의 동료가 된다는 뜻이므로 기술을 얼마나 잘 알고 응용하고 있을까 도 중요하지만 이 사람이 나랑 같이일을 할 만한 사람이냐 알고싶어할 것이다. 그리고 내생각에는 서류로만 이것을 보여주는것은 되게 힘든일이라고 생각한다. 힘들지만 어쩌겠어 해야지..~
그래서 기업에서는 컷을 두는 코딩 테스트와 과제테스트를 보는경우가 있다. 이런한 과정을 두는 이유는
- 회사에서 요구하는 기술을 얼마나 잘 사용하거나 혹은 그렇지 않다면 기본기가 튼튼한가 ?
- 기본기가 튼튼하면 다른 기술의 습득이 빠르다.
- 기본적인 구현 능력을 알아본다
- (이제는 너무 어려워진) 기본적인 알고리즘 실력을 본다.
일것 같다. 회사에서 한명의 개발자로 서류가 합격 되기 위해서는 일단 1. 서류가 근거 있는 서류여야 하고, 2. 코딩 테스트나 과제 테스트로 실무를 잘 해결할 수 있는지를 증명해야 한다.
여기서 근거 있는 서류란 연차마다 다르기 때문에 나는 아직 주니어 수준이라서 최소한의 양심을 적용시켜 역지사지로 생각해보면 1인분 하는 개발자라고 할 수 있겠다.
1인분 하는 개발자
우리는 일단 서류 합격률을 높여야 한다. 자 서류의 합격률을 높이려면 서류에 내가 어떤 사람인지 어떤 개발자인지를 잘 녹여서 나 너랑 같이 일할만한 사람이야를 어필해야 과제나 면접의 기회를 얻을 수 있다.
사람사는 세상이니까 우리 이력서를 보는 사람도 당연히 사람이다. 눈길을 이끄는 이력서는 어떤 요소들이 있을까 나는 여때까지 성과와 수치가 있는 이력서라고 생각했다. 하지만 단순히 숫자를 넣는다고 해결될 문제가 아니였다.
문제는 어떻게 내가 개발자로서 역량을 표현할 수 있을까 였고, 그것이 현재는 되게 어려운 문제가 됐다.
AI 시대가 도래했다. 이말인 즉슨 웬만한 코딩 노가다는 AI 로 대체할 수 있다는 뜻이고 이는 결국 구현능력을 아주 잘하는 능력은 이제 그냥 필요가 없다는 뜻이다. 노가다를 할 줄 아는 사람은 그냥 널리고 널렸다. 인력이 문제가 아니란 뜻이다. 이러한 사실을 코로나가 끝나기 시작할 때 쯔음 알게 모르게 우리 사회에 스며든 하나의 사실이 된것 같아서 슬프다.
이런 슬픈 사실을 이겨내려면 다른 전략이 필요할 것 같다. 그것이 내가 주장하는 1인분 하는 개발자인데.... 어떤 능력이 있냐면
- 회사 동료로서 다른 직군과 소통하는 능력 좀 더 자세히 말하자면
- 내가 구현할 수 있는 것과 구현할 수 없는 것을 구별하는 능력
- 제품개선을 필요로 할때 타직군을 설득할 수 있는 능력
- 회사 동료로서 개발 직군을 설득할 수 있는 능력
- 라이브러리를 사용해야 하는 이유를 말할 수 있는 사람
- 니코드 내코드가 없는 상황에서 내가 짠 코드를 설득 시키는 사람
- 다른 사람의 코드를 보고 건설적으로 피드백을 줄 수 있는 사람
- 영리 조직인 회사의 목표를 개발로서 이룰 수 있는 능력
- 개발자 이지만 기술에 매몰되서는 안된다. 시장 상황괴 유저이 입장을 잘 헤아리는 능력을 가지는것이 중요하지 않을까?
- 말그대로 제품에 애정(주인의식)이 있어야 한다
아 .. 내가 생각한 거지만 이 능력을 다 갖추고 있으면 최고의 동료 같다. 말그대로 주니어때는 1인분을 하지만 나중에는 씩씩한 시니어가 될것만 같은 사람이다.
정리하자면 회사의 입장에서 봤을 때 개발자로 영입 가능하려면 바로 1인분 할 수 있는 개발자를 원하고 그 와 동시에 우리 회사의 동료와 죽이 잘맞고 소통도 잘되는 사람을 원하는 것이다.
그렇다면 위 능력을 서류로 보여주려면 어떤 액션 플랜이 필요로 할까..?
이력서 수정 액션 플랜 세우기
내가 나열한 능력의 포인트는 설득이다. 내가 왜 이 기술을 썻게? 이력서에 기술하면 읽는 사람은 아 이래서 썻구나 정말 잘 선택했네 라는 반응이 나오게 되면.. 되지 않을까 ? 11.30일 현재 기준 에서는 그렇게 생각한다.
- 단순히 기술을 사용해봤다기 보다는 어떤 문제를 해결하기 위해서 이 기술을 왜 선택했는지를 어필하자
그리고 이는 회사의 공고에 나와 있는 기술을 선택했으면 좀 더 OK > 여기서 기술의 원리나 응용법을 살짝 더해주면 개발자로서의 믿음이 더욱 생길것이다.
- ex) 왜 next.js 를 썻냐? 어떤 원리를 이용하기 위해서 어떤 기술과 장단점이 있나?
- 여기서 팀에서 사용하는 기술이기 때문에 썻다란 말은 주도적으로 보이지 않을 수 있다고는 하는데
- 사실상 어떻게 하냐 경력이 1년차고 신입의 입장이였을 텐데 참 많은 생각이 들지만 그 속에서도 주도적을 할 수 있던 부분이 있었을 것이다.
- 개발자로서 동료들을 설득했다란 과정을 글에 나타내면 어떨까 ?
협업을 했다면 무조건 타 직군과 말을 하게 될것이고, 무작정 OK 를 받는다면 일을 준 기획자나 디자이너도 의심스러워지는 상황이 발생될것이다. 근거를 잘 마련해서 동료를 설득한 경험이 있을것이다.
특히 스쿼드 조직처럼 하나의 스타트업같이 운영되는 팀이였다면 그 사실을 더욱 두드러지게 적을 수 있지 않을까?
- 문제의식을 느낀 이유 / 한명의 개발자로써 올바른 의사결정을 하게된 근거 / 리소스 산정을 위한 공감을 살리는 방안
- 구현이 중요한게 아니다. 왜 개발자는 이 기능을 이렇게 구현했는지가 중요한것 같다.
- 유저 스쿼드의 한 소속으로써 어떻게 의사결정을 정할 수 있을지
- ex) 이부분은 리팩토링이 필요할것 같은데 어떻게 팀원의 공감을 살려서 리소스를 받을 수 있었는지
자 그럼 설득을 잘하려면 전제조건이 필요하다. 바로 그 기술을 잘 알아야 한다는것 ㅋㅋ 스타트업 근무할 때도 느꼈지만 사실 기본으로 공부는 깔려있는 전제조건인것같다. 믿음직한 팀원이 되려면 일단 근본적으로 그 기술에 대한 지식과 적용했을 때의 사이드 이펙트와 세팅하는데 걸리는 시간과 비용등은 기본적으로 알고 있어야 하는것 같다.
지금 프론트엔드는 아키텍처나 서버를 다룰줄 알아야하기 때문에 사실상 풀스택으라고 생각하고 임해야 겠다.
자 힘든 시기인것을 인정하기까지 짧지 않은 시간이 걸렸다. 내가 부족한게 무엇인지 다시한번 더 생각해보고 고쳐나가는 시간을 가져야겠다.
혹시나 이 글을 보는 여러분에게 진심으로 도움이 됐으면 좋겠다.