- 개발자와 연관된 직군 정리 [chapter 01 선택 미션]
1. 웹 개발자 : 웹사이트를 만드는 개발자
웹 개발자는 웹사이트를 개발하는 개발자이다. (PC나 스마트폰에서 웹서핑을 하며 방문하는 웹사이트들)
웹 개발자는 웹 퍼블리셔(UI 개발자), 프론트엔드 개발자, 백엔드 개발자, 풀스택 개발자로 나눠진다.
- 웹 퍼블리셔 / UI 개발자
웹 퍼블리셔는 웹사이트에서 보이는 부분을 담당하는 역할이다. (해외에서는 UI 개발자라고도 부름)
마크업 언어인 HTML과 CSS를 주로 사용하며, 웹 사이트의 기능을 프로그래밍하기보다는 웹사이트의 외적 요소를 구현하는 역할을 한다. 웹 디자이너를 비롯한 비전공자들이 많이 도전하는 분야.
- 프론트엔드 개발자
프론트엔드 개발자는 웹 퍼블리셔 역할은 물론, 자바스크립트로 프로그래밍 요소를 개발한다.
사용자에게 보여줄 화면을 만들고, 사용자의 클릭이나 드래그와 같은 동작에 따라 웹사이트의 다양한 기능이 실행되도록 프로그래밍 한다. 이미지 슬라이드나 웹 채팅 창 등의 기능을 만드는 개발자.
프론트엔드 개발을 다른 말로는 클라이언트 개발이라고도 부른다.
- 백엔드 개발자
백엔드 개발자는 웹사이트에서는 보이지 않는, 서버의 데이터를 관리하는 역할. (서버 개발자라고도 부름)
데이터베이스에 저장되는 각종 정보의 입출력, 데이터 분석과 가공, 로그인을 비롯한 보안 요소 등을 다루며, 한국에서는 자바x스프링 조합을 많이 사용. 모바일 앱의 서버를 다루는 개발자도 백엔드 개발자.
- 풀스택 개발자
프론트엔드와 백엔드 관련 지식을 고루 갖추어 양쪽 모두 개발할 줄 아는 개발자.
→ 혼자서 웹 서비스 전체를 개발할 수 있는 사람을 뜻하며, 웹 개발에 대한 폭넓은 역량과 경험이 필요
2. 모바일 개발자 : 손 안의 앱을 만드는 개발자
스마트폰에서 작동하는 애플리케이션을 개발하며, 앱 개발자라고 한다. 크게 안드로이드 개발자(사용언어:코틀린)와 iOS 개발자(사용언어:스위프트)로 나뉜다.
회사에 따라서는 안드로이드와 iOS 앱을 각각 다른 언어로 따로따로 개발하기도 하고, 하나의 소스 코드로 양쪽 모두에서 작동하는 크로스 플랫폼을 사용하기도 함. ex) 플러터x다트, 리액트 네이티브x자바스크립트 등
3. 게임 개발자 : 게임을 만드는 개발자
게임 개발자는 게임의 전체적인 구조를 설계해서 게임이라는 하나의 결과물을 만드는 직군.
게임 진행을 위한 복잡한 알고리즘부터 물리 엔진 구현, 3D 그래픽 렌더링, 수많은 접속자가 몰리는 서버 관리 등 게임의 모든 구성 요소를 다룰 수 있어야 한다. 프로그래밍과 컴퓨터, 수학 등 깊은 지식과 높은 숙련도 요구.
C++을 많이 사용하며, 유니티를 사용하는 게임에서는 C#, 웹 게임에서는 자바스크립트를 활용하기도 한다.
4. 응용 소프트웨어 개발자 : 컴퓨터 프로그램을 만드는 개발자
응용 소프트웨어 개발자는 통상적으로 PC용 프로그램을 개발하는 사람을 말한다.
→ 응용 소프트웨어에는 모바일 애플리케이션도 포함된다.
워드, 포토샵, 압축 프로그램 등이 응용 소프트웨어이며, 프로그램이 작동할 운영체제, 컴퓨터 구조와 소프트웨어 공학에 관한 지식도 갖추어야 한다.
윈도우용 프로그램 개발에는 C++과 C#을 주로 사용하고, 맥용 프로그램 개발에는 스위프트를 사용한다.
5. 임베디드 개발자 : 하드웨어를 제어하는 개발자
임베디드 개발자는 정해진 목적에 맞게 설계된 하드웨어의 작동을 프로그래밍하는 직군이다.
→ 임베디드 시스템 : 기계 또는 기타 제어가 필요한 시스템을 제어하는 컴퓨터 시스템
임베디드 개발자의 업무는 크게 두 가지로 나뉜다.
1. 하드웨어 자체 개발
2. 이를 작동시킬 소프트웨어를 개발
대체로 두 가지 일을 모두 하는 사람을 임베디드 개발자, 소프트웨어만 개발하는 사람을 임베디드 소프트웨어 개발자라고 부른다.
임베디드 개발은 기계를 직접적으로 다루기에, 실행 속도가 빠르고 가벼운 C 언어를 주로 사용하며, 기계를 세부적으로 다룰 경우, C++이나 어셈블리어를 사용한다. IoT 기기의 운영체제로 리눅스를 많이 사용하므로 리눅스 커널도 공부해두는 것이 좋다.
6. 정보 보안 전문가 : 빈틈없는 정보 파수꾼
정보 보안 전문가는 데이터 도난이나 손상을 차단하고 컴퓨터 시스템을 보호하는 직군이다.
정보 보안 전문가는 프로그래밍, 네트워크, 컴퓨터 구조, 운영체제 등 컴퓨터 공학 전반에 걸친 지식들이 필요하며, 세부 분야로 웹, 데이터베이스, 포렌식, 암호학, 악성 코드 분석 등을 추가로 더 공부해야 한다.
- 해커와 크래커
해커는 컴퓨터와 프로그래밍에 대한 전문 지식을 가진 사람을 뜻함.
즉, 이를 범죄에 활용하는, 사람들이 흔히 해커라고 부르는 사람의 정확한 명칭은 크래커이다.
→ 요즘은 보안 업계에 종사하는 해커를 화이트 해커, 크래커는 블랙 해커라는 표현을 더 많이 사용
7. AI 개발자 : 기계를 가르치는 개발자
인공지는 개발은 크게 머신러닝 개발과 딥러닝 개발로 구분할 수 있다.
종업원에게 '맛있는 피자를 만드는 방법'을 알려 주는 것에 비유해보면,
인공지능 : 종업원에게 반죽부터 화덕에 굽기까지의 모든 과정을 친절히 알려주는 것
머신러닝 : 피자의 모양과 크기, 토핑의 양, 익기의 정도를 알려 주고 종업원이 직접 피자를 만드는 것
딥러닝 : 전국 곳곳의 맛집 피자들을 사 주고, 종업원이 직접 먹어 보고 스스로 레시피를 알아내는 것
세부 직종마다 차이는 있지만, 대체로 수학, 통계학, 컴퓨터 공학 등 깊이 있는 지식을 요구.