커리어일반/비전공개발자전직기

백엔드 커리어 로드맵 - 나는 어떤 백엔드 개발자가 되고 싶을까?

bsh6226 2024. 5. 24. 16:16

  면접에서 커리어 목표에 대한 질문은 지원자가 직무와 회사에 대해서 얼마나 관심을 갖고 있는지에 대한 질문이다. 직무와 회사에 대해서 깊이있는 이해가 있어야 단기적으로는 입사후 어떤 성과를 내기 위해서 노력할 것인지 중기적으로 어떤 노력을 통해 어떻게 성장을 할 것인지 답변할 수 있다. 

  현재는 특정회사에 대한 지원이 정해지지 않은 상태이므로 오롯이 백엔드 개발자 직무 관점에서만 서술하도록 하자. 역량에 대해서는 크게 태도적인 측면과 기술/지식적인 측면으로 나눠볼 수 있을 것이다. 먼저 태도적인 측면에서, 내가 되고자하는 백엔드 개발자는 아래와 같다.

 

1. 끊임없이 발전하고 배우는 개발자

  IT기술은 역사가 길다면 길지만 짧다면 짧다. 상용화가 된 것은 최근의 일이며 기술의 발전속도가 선형이 아니라 Exponential하다는 것을 누구도 부인하지 못할 것이다. 앞으로 가속도가 빨라질 기술의 발전 속에서 꾸준히 기술과 지식을 익혀나갈것이며, 나아가 수많은 지식과 기술 속에서 어떤 것을 익힐지 신중하게 고려하는 개발자가 될것이다. 그리고 배운 것은 바로 활용하고 접목하여 항상 쇄신하는 것을 즐기는 개발자가 되고싶다.

 

2. 고객들의 편의성과 생산성을 올려주는 개발자

    개발자라는 직업은 단편적으로는 단편적으로는 코드를 짜는 직업이지만 크게보아서는 소프트웨어의 작업물로 고객의 생산성을 올려주는 데에 있다고 생각한다. 단순히 코드에 대해서만 생각하는 것이 아니라 내가 만드는 제품에 대해서 관심과 애정을 갖고서 나의 작업물이 어떤 목적과 영향을 주는지 고려하는 개발자가 될것이다.

 

3. 비즈니스 전략과 철학을 이해하는 개발자

    나는 상경계 전공으로 마케팅이론과 산업분석이론을 꽤나 재밌게 들었다. 또한, 3년간 제조업의 거래현장에서 근무하면서 비즈니스에 대한 경험도 있다. 덕분에 어떤 회사의 제품이나 광고를 보면 관련된 STP분석, 4P전략, 제품분석, 산업분석 등을 어느정도 이해할 수 있다. 내가 만드는 서비스의 효용을 넘어서 회사가 속한 산업이 어떤 상황이고, 사내의 경영과 마케팅 전략이 어떠한지 이해하고 이를 적절하게 서비스에 구현해 내는 과정에서 기술적 자문을 해줄 수 있는 사람으로 성장하고 싶다. 사내 경영전략이나 마케팅전략은 해당 부서에서 짜겠지만 그들이 보지못하는 기술적 관점에서 인사이트를 제공할 수 있는 사람으로 성장하고 싶다.

 

 

 

태도 중요하지만 결국에 소프트웨어 엔지니어는 결국에는 기술적 역량으로 말해야한다. 백엔드 개발자로서 필요한 기술과 지식은 위의 로드맵에서 볼 수 있는 것처럼 다양하고 방대하다. 프로그래밍언어, 프레임워크, CS지식, DB활용능력, 알고리즘과 자료구조,  CI/CD, 클라우드 등등 ... 현재 학습의 과정에서 특정 기술스택과 지식에 대해서 딱 집어서 선택과 집중을 하겠다고 말할 수 는 없을 것이고 교육과정 속에서 그리고 현업에서 필요에 따라 배우게 될 것이다.다만, 현시점에서 내가 개인적으로 관심있는 분야는 아래와 같다.

 

1. 개발과정에서의 AI의 적극적인 활용

가까이는 Intellij Ultimate의 자동완성 기능부터, Copilot, Gemini, Chat GPT까지. 주어진 Tool들을 적극적으로 활용하여 생산성을 대폭 증대시키는데 집중하겠다. 또한, 새로운 지식을 탐색함에 있어서 AI와 심도있는 내용검증을 통해서 빠르게 지식을 학습할 수 있도록 하겠다. AI의 도입으로 '지식을 습득하고 기술에 숙련되는 시간'의 장벽은 현저하게 내려가고 '적절한 호기심과 탐구심 그리고 주어진 자원의 활용'의 효용성을 매우 증대되었다고 생각한다. 후자의 경우 나름 자신있는 분야로 가파르게 성장하기 위해서 주어진 적성과 자원을 적극적으로 활용하겠다.

 

2. 서버 부하처리

학습과정에서 단 한줄의 코드 입력으로 알고리즘이 개선되고 프로그램의 처리속도가 대폭증가하는 것을 수차례 경험하였고 이로부터 즐거움을 느꼈다. 실제 프로젝트에서는 대용량 트래픽을 저하되는 서버의 서능을 개선할 수 있도록 알고리즘 최적화와 서버설계개선을 통해서 병목현상을 해결하는 문제해결에 관심이 있다.  CS지식과 알고리즘의 학습을 하여 서버 운영에 적용할 것이다.

 

3. 데이터베이스 설계 및 데이터 조작 

내가 처음 개발에 관심을 갖게된 것은 엑셀 스프레드 시트의 데이터 처리 중, 효율적인 처리를 위해서 VBA를 학습하면서이다. 방대한 데이터를 관리하고 처리하는데 흥미가 많아 데이터를 분석하고 그 분석의 결과에 따라서, 데이터베이스 구조를 최적화하고 쿼리를 효과적으로 작성하여 안정적인 데이터 엑세스를 구현해보고 싶다. 

 

4. 자동화

개발자의 역할 중 하나가 사람들의 수동적인 개입을 최소화시키는 것이라고 생각한다. 사람의 손길이 개입되는 곳에는 시간비용이 들며, 휴먼에러가 항시 따라다닌다. 사람들의 직접적인 조작을 줄여주어 안정적인 시스템을 만들고 사람들의 시간을 더 가치있는 데 사용되게 하는 것을 중요하게 여긴다. 이를 위해서 Jenkins, Docker, Kubernetes와 같은 자동화 도구를 적극적으로 활용하여 개발 및 배포 과정을 자동화하고, 효율적인 CI/CD 파이프라인을 구축할 수 있도록 학습할 것이다.