본문 바로가기
WEB

개발자 직무 이해하기

by 맑은청이 2021. 5. 17.
728x90
반응형

오늘은 개발자 직무에 대해서 이야기해볼 것입니다.

개발자는 크게 4가지로 나뉘어지는데요. 

 

1. 매니저(Manager)

2. SE(Software Engineer)

3. QAE(Quality Assurance Engineer)

4. SRE(Site Realiability Engineer)

 


1. 매니저

 

이름 그대로 엔지니어들을 관리(Management) 하는 직업입니다. 

경력에 따라서 타이틀은 다음과 같이 나뉘게 됩니다. 

 

1) 엔지니어링 매니저

2) 시니어엔지니어링 매니저

3) 디렉터

4) 팀장급 관리자(VP)

5) 최고기술경영자(CTO) 

 

이들은 서비스의 품질을 유지하기 위해 모든 분야의 엔지니어들과 협업을 해야합니다. 엔지니어들 간의 소통과 문제해결을 위해 힘쓰고 가이드를 진행하는 역할을 수행합니다. 


2. SE(Software Engineer)

 

다음은 SE 입니다. 많이들 들어보셨을 프론트엔드, 백엔드 개발자가 여기에 속합니다. 

 

1) 애플리케이션 엔지니어 (소프트웨어 엔지니어)

 

이 분야는 또 세부적으로 나뉘게 됩니다. 

  • 프론트엔드(Frontend) : 웹페이지에서 사용자 인터페이스(User Interface)를 개발하는 직군 
  • 백엔드(Backend) : 서버 쪽 로직을 개발하는 직군
  • 모바일 앱 개발자 : 안드로이드(Anroid) 또는 iOS 

 

 - 프론트엔드 

프론트엔드는 최근 2021년 기준으로 세계적으로 앵귤러(Angular), 리액트(React), 뷰(Vue) 등의 프레임워크를 사용하는 집단으로 나뉘어집니다. 물론 이외에도 많은 프레임워크가 존재합니다. 

여기서 프레임 워크는 개발할 때 활용되는 개발, 실행, 테스트, 운영 환경 등을 도와주는 소프트웨어입니다. 

출처 : 셔터스톡

앵귤러(Angular) - 구글 개발

리액트(React) - 페이스북 지원

뷰(Vue) - 오픈소스 커뮤니티 

 

 

 

- 백엔드 

서버에서 구동되는 서비스를 개발하고 로직에 맞게 API 혹은 SDK 를 개발하는 역할을 합니다. 

여기서 API(Application Programming Interface) 로 운영체제와 응용프로그램 사이의 통신에 사용되는 메시지 형식이라고 할 수 있습니다. 

SDK(Software Development Kit) 는 개발자가 특정 운영체제의 응용프로그램을 만들 수 있도록 도와주는 소스(Source)와 도구 패키지입니다. 

 

대부분의 백엔드 개발자는 C, 자바, 파이썬 등등등 많은 언어를 사용합니다. Node.js, Spring, Django 등등 많습니다. 

 

- 앱 개발자 

 

앱 개발자는 iOS 혹은 안드로이드 개발을 합니다. 최적의 사용자 인터페이스(UI)와 사용자 경험(UX)을 전달하기 위해 A/B 테스팅(에이비 테스팅) 을 중심으로 개발을 많이 합니다. 애초에 스마트폰이 편의성에 중점이 맞춰져 있기 때문에 당연하다고 생각할 수 있습니다. 

 

여기서 A/B 테스팅이란 시안 중에서 최적안을 선정하기 위한 시험 방법입니다. UI/UX를 최적화 하기 위해 실사용자들을 두 집단으로 나누어 기존 A안과 개선 B안을 랜던으로 보여준 후 선호도가 높게 나온 시안을 사용하는 방식입니다.

 

 

 

 

2) 데이터 엔지니어(Data Engineer)

빅데이터 엔지니어라고도 불리는 이 분야는 야후에서 시작된 오픈소스 하둡(Hadoop)과 함께 시작됐다고 할 수 있습니다. 

 

하둡이란 빅데이터 처리를 위한 자바 기반의 오픈 소스 프레임워크로 단일 고성능 고가 컴퓨터가 아닌 대량의 일반적인 성능의 컴퓨터로 처리를 손쉽게 할 수 있도록 도와주는 서비스입니다.  최근에는 하둡 뿐만 아니라 스파크(Spark), 카프카(Kafka), 엘라스틱서치(Elasticsearch), 하이브(Hive), 주키퍼(Zookeeper) 등등 많은 기술이 사용되고 있습니다. 

 

데이터 엔지니어는 간단히 말해 데이터가 폭증하는 , 빅데이터 시대에 이런 데이터를 잘 정리해서 데이터베이스와 같은 곳에 저장해두는 일을 하는 직군입니다. 

 

 


3. QAE(Quality Assurance Engineer) 

 

QAE는 비즈니스 서비스가 개발된 후 자동으로 테스트하는 서비스를 만들어 내는, 즉 테스트 기법으로 품질(Quality)보증하는(Assurance) 개발자입니다. 자동화된 테스트 환경을 만들어내기 때문에 굉장히 중요한 직군이라고 할 수 있습니다. 

 

대기업이나 국가 수준으로 진행되는 큰 프로젝트에서는 수많은 버그가 발생하게 되고 이는 서비스 품질과 직결되기 때문에 중요한 직군입니다. 

 


4. SRE(Site Reliability Engineer) 

 

서비스를 만들고 테스트 까지 했다면 서버에 코드를 설치하고 관리해야하는데 이를 담당하는 개발자를 SRE .라고 합니다. 

 

SRE은 소프트웨어 개발자들이 만든 코드를 패키지에 저장하고 배포시 자동화해야 할 부분들을 개발합니다. 또 서비스가 잘 운영되고 있는지 모니터하는 역할도 수행합니다. 이를 지속통합 및 지속 배포라는 뜻의 CI/CD(Continuous Integration / Continuous Delivery) 로 부릅니다. 

 

이들은 젠킨스(Jenkins), 트래비스(Travis) CI 또는 깃허브(Github)를 또해 서비스를 개발합니다. 

각 서버의 데이터를 활용하여 예측을 통해 미래의 서버를 계획하고 설치하는 일 또한 수행합니다. 

이제는 너무도 핫해져버린 아마존의 AWS(Amazon Web Service)를 선두로 구글의 GCP(Google Cloud Platform), 마이크로소프트의 애저(Azure), 네이버의 클라우드 플랫폼 등등 데이터센터 서비스를 통해 서버를 빌려 사용하는 트랜드로 많이 변화했습니다. 또 도커(Docker)쿠버네티스(Kubernetes) 와 같은 기술의 약세도 계속되고 있죠.

 

 

 

 

 


 

오늘은 이렇게 큰 분류에서의 개발자를 알아보았습니다. 사실 웹 분야의 치우친 느낌이 큰데, 어떤 서비스를 만드는 직군을 크게 개발자로 통칭하기 때문에 이외에도 자동화 툴을 개발한다든지, 커널을 개발한다든지, CPU를 개발한다든지, 보안 솔루션을 개발한다는지, 많은 분류의 개발자들이 존재한다는 것을 밝히면서 오늘의 포스팅을 마치겠습니다. 감사합니다. 

728x90
반응형