IT 직군의 구인난이 심화되면서, 코딩 교육을 비롯해 개발자에 대한 관심도가 높아지고 있는 상황입니다. 소프트웨어 개발 분야는 어떻게 나누어져 있으며 어떤 업무를 주로 하는지 정리해보도록 하겠습니다.
목차
1. 한 눈에 보는 개발 분야
2. 세부 분야 정리
1) 프론트엔드
2) 백엔드
3) 데이터
4) 임베디드
5) 보안
3. 마치며
한 눈에 보는 개발 분야
개발 분야 정리 표
분야 | 세부 분야 | 설명 |
프론트엔드 | Web, Mobile, PC, Game | 주로 사용자와 소통하는 화면 설계 |
백엔드 | Server | 사용자와 데이터를 주고 받는 서버 설계 |
데이터 | Big Data, Machine Learning, AI | DB에 저장된 데이터를 활용하는 분야 |
임베디드 | OS, Middleware | 하드웨어와 밀접한 개발을 하는 분야 |
보안 | Hacking, Security Solution | 개발 분야 전반의 보안을 담당 |
IT 분야 커리어 맵
참고 영상
세부 분야 정리
프론트엔드
백엔드 API에서 가져온 데이터의 출력, 입력을 통한 비즈니스 로직 구성과 사용자와 대화하는 사용자 인터페이스(UI, UX) 부분을 개발한다. 세부 분야에는 웹(Web), 앱(Android/iOS), PC(Windows/Mac), 게임 등이 있다.
웹(Web)
- HTML: 웹 페이지의 전체적인 틀 구성
- CSS: 웹 페이지의 스타일을 설정
- JS(JavaScript): 웹 페이지의 동적인 처리를 다루는 스크립트
- React, Angular, Vue: 웹 애플리케이션을 개발하기 위해 사용하는 프레임워크
앱(App)
- 네이티브 앱: Android나 iOS의 OS에 특화된 개발 (성능이 뛰어나며, 많은 기능 사용 가능)
- 크로스 플랫폼: 하나의 언어로 여러 플랫폼에서 개발 (빠른 개발 가능)
- 하이브리드 앱: 웹의 기능을 모바일에서 구현해 놓은 형태로, 웹 개발과 동일 (빠른 개발 가능)
PC(Windows/Mac)
- 윈도우 프로그램: Windows 기반 PC에서 사용할 수 있는 프로그램 개발
- 맥 프로그램: Mac PC에서 사용할 수 있는 프로그램 개발
- 크로스 플랫폼: Electron이 대표적(HTML, CSS, JS 기반)으로, Windows와 Mac에서 돌아갈 수 있는 프로그램 개발
게임(Game)
- Unity: C# 기반 엔진으로, 모바일이나 캐주얼 게임 개발 시 많이 사용
- Unreal: C++ 기반 엔진으로, 3D나 그래픽 게임 개발 시 많이 사용
참고 영상
백엔드
사용자로부터 정보를 받아 처리하고 그 결과를 다시 반환해주는 부분으로, 특정 프로그래밍 언어를 기반으로 한 프레임워크를 이용해 주로 개발한다. 최근에는 AWS 등을 활용한 Serverless 개발 또한 이루어지고 있다.
- Java: Spring
- Python: django
- C#: ASP.NET
- Ruby: Rails
- JS: node.js
- php: Laravel
참고 영상
데이터
서버에 축적된 데이터를 수집, 가공, 처리하여 비즈니스에 적용하고, 이를 처리하기 위한 모델을 개발한다. 최근 데이터 처리와 관련하여 인공지능(Artificial Intelligence)가 화두이다.
- 데이터 엔지니어(ETL): 데이터의 수집 및 가공 부분을 담당
- 데이터 사이언티스트: 데이터를 통계 기반으로 분석하며, 인사이트를 도출
- AI 엔지니어 & 연구원: AI를 활용한 모델 개발 및 비즈니스 적용
참고 영상
임베디드
하드웨어 제어 프로그램 및 특수목적의 응용프로그램을 개발한다. 주로 OS나 IoT 기기 등과 밀접한 연관이 있으며, OS 중 리눅스, 프로그래밍 언어중 C언어가 대다수를 차지한다.
참고영상
보안
소프트웨어 개발 전분야와 관련되어 보안을 담당한다. 매우 방대한 지식이 필요하며, 단순히 기술적인 요소 뿐 아니라 사후 대응 등의 분야도 포함한다.
참고 영상
마치며
프론트와 백엔드는 버그와 씨름하고, 데이터 분석의 경우 80%에서 90% 정도가 데이터를 전처리하는 시간이며, 임베디드 프로그래밍과 보안 분야 또한 원초적인 기술들을 다루며 씨름해야 합니다. 이것이 CS가 적성을 많이 타는 학문이라고 여겨지고, 수박 겉핡기식 개발자는 롱런하지 못하는 가장 큰 이유라고 생각합니다. CS를 공부해 본 사람이라면 공감하겠지만, 어떠한 분야를 선택하든 길고 긴 인내의 시간을 견뎌낼 수 있는 능력이 개발자에겐 가장 중요한 덕목이라고 생각됩니다.
댓글