Home part9. 백엔드 커리어 설계하기
Post
Cancel

part9. 백엔드 커리어 설계하기

백엔드 개발자

백엔드 개발자 또는 백엔드 엔지니어는 구인 사이트에 가장 많이 올라오는 직군이다. 백엔드 개발자가 통상적으로 하는 업무는 다음과 같다.

  • API를 개발해 프론트엔드의 요청을 처리한다.
  • 데이터베이스를 설계하고 백엔드 개발 로직과 연동한다.

그런데 관리자 페이지 개발이 가능한지 확인하는 회사도 있다. 또한 데브옵스 엔지니어를 별도로 두지 않은 경우 CI/CD 환경을 설정하고 관리하는 업무를 백엔드 개발자에게 맡기기도 한다.

이처럼 회사에 따라서는 백엔드 개발자에게 기본적인 개발 실력 뿐만 아니라 서버 세팅, 배포 관린 기술을 요구하거나 최소한의 보안 지식을 바라기도 한다.

따라서 백엔득 ㅐ발자로 취엽하려 한다면 회사마다 요구하는 역량이 다르다는 것을 알고 채용 공고의 직무 기술서(JD, Job Description)를 잘 읽어본 다음 지원해야 한다.

백엔드 개발자에게 요구하는 역량은 하드 스킬(hard skill)과 소프트 스킬(soft skill)로 나눌 수 있다.

하드 스킬은 개발 언어, 프레임워크, 라이브러리, 개발 방법론에 대한 지식과 경험, 즉 직무 역량을 말한다.

대개는 지원 서류를 작성하는 단계에서 자신이 할 수 있는 기술 스택을 밝히고, 기술 면접 때 이를 얼마나 이해하고 사용할 줄아는지 검증받는다.

소프트 스킬은 협업 역량을 말한다. 개발자라고 해서 개발만 잘하면 되는 것이 아니라 다른 개발자, 기획자, 디자이너 ,프로젝트 매니저 등과 협업할 수 있어야 한다. 지원 서류를 작성할 때 깃허브 활동이나 블로그 활동을 포함함으로써 소프트 스킬을 드러내고, 인성 면접에서 이를 확인 받는다.

백엔드 개발자의 성장 단계는 주니어, 미들급, 시니어로 나뉜다.

  • 주니어 개발자(0~3년차) : 개발 언어, 프레임워크, 라이브러리를 사용해 트러블 슈팅(trouble shooting, 문제가 발생했을 때 코드를 종합적으로 진단해 해결하는 것)을 할 수 있는 수준
  • 미들급 개발자(3~7년차) : 프로젝트 매니저, 기획자 등의 직군과 개발 관련 지식을 바탕으로 회의를 할 수 있는 수준
  • 시니어 개발자(7~10년차 이상) : 개발 중인 웹 애플리케이션의 산업군에 대한 도메인 지식을 갖추고 프로젝트 전체를 관리하는 수준

성장 단계별 필요 역량

주니어 개발자미들급 개발자시니어 개발자
가상화와 컨테이너웹 애플리케이션 아키텍처해당 산업군의 도메인 지식
클라우드 컴퓨팅테스트와 CI/CD 
버전 관리 시스템타 직군과의 소통 
API  
DBMS  
개발언어 + 프레임워크  
CS 지식(권장)  

아키텍트

아키텍트는 웹 애플리케이션의 전체 구조, 즉 아키텍처를 설계하는 사람으로, 개발하려는 웹 애플리케이션을 기획, 설계, 관리, 감독한다. 아키텍트의 역할은 구체적으로 다음과 같다.

  • 개발하려는 웹 애플리케이션 분야의 특징과 사용자 요구 사항을 분석해 그 결과에 맞게 설계한다.
  • 설계에 따라 개발에 사용할 기술을 결정한다.
  • 개발이 설계대로 잘 진행되고 있는지 코드 품질 및 프로젝트 관리를 수행한다.

아키텍트에게 중요한 역량은 ‘큰 크림’을 그릴 줄 아는 설계 능력이다. 아키텍트는 웹 애플리케이션을 구성하는 각 요소가 어떻게 작동하며 요소 간의 상호작용이 어떻게 이뤄지는지 이해하고, 각 요소가 전체 구조에 기능성, 성능적으로 어떤 영향을 미치는지 고려해야 한다.

다음과 같은 세부 직무로 구분된다.

  • 시스템 아키텍트 : 기업 전체의 IT 시스템 설계 및 구현을 담당한다. 하드웨어, 소프트웨어, 네트워크 등의 기술을 이해하고, 전체 시스템이 비즈니스 목표를 효율적으로 달성할 수 있게 지원한다.
  • 백엔드 아키텍트 : 백엔드 시스템을 설계하고 개발한다. 시스템의 성능, 안정성, 보안 등을 책임지고 다양한 백엔드 기술 스택을 다룬다.
  • 솔루션 아키텍트 : 특정 비즈니스 문제를 해결하기 위한 솔루션을 설계하고 구현한다. 비즈니스 요구 사항을 이해하고 적절한 기술 솔루션을 제시함으로써 요구 사항을 실현하는 역할을 한다.

DBA

DBA(DataBase Administrator)는 데이터베이스 설계, 구현, 유지보수, 보안 등의 업무를 수행한다.

  • 개발하려는 웹 애플리케이션 분야의 특징과 사용자 요구 사항을 분석해 그 결과를 데이터베이스로 구현한다.
  • 기존 데이터베이스의 비효율적인 작동 방식이나 설계 등을 찾아 성능을 개선하고 모니터링한다.
  • 다양한 상황에 대비해 데이터베이스 백업, 복구, 버전업 등의 작업을 수행함으로써 데이터베이스의 무결성과 가용성을 유지한다.

데이터베이스 관련 직무

  • 데이터 엔지니어 : 기업이 수집하는 대량의 데이터를 관리하고 구조화한다. 즉 데이터가 원활하게 입출력될 수 있도록 파이프라인을 설계하고 구축한다. 다양한 데이터베이스 시스템, ETL(Extract Transform Load, 추출 변환 적재) 도구, 빅데이터 기술, 프로그래밍 언어를 이해하고, 데이터의 성징이나 환경적 특성에 맞는 적절한 파이프라이닝 도구를 선택해 활용한다.
  • 데이터 분석가 : 수집된 데이터를 분석해 큰 규모의 의사 결정에 도움이 되는 지표나 근거 등의 인사이트를 제공한다. 다양한 통계 방법론, 데이터 시각화 도구, 데이터 분석에 특화된 프로그래밍 언어(예 : R)를 사용해 각 요소를 결합하고 해석해 그 속에서 의미를 추론한다.

그 외에 데브옵스 엔지니어, 프로젝트 매니저, 풀스택 개발자, CTO 등이 존재한다.

This post is licensed under CC BY 4.0 by the author.

part8. 테스트와 CI/CD

Cloud Essentials. AWS Billing and Cost Management