11가지 유형의 개발자(당신은 어떤 사람이 될까요?)
게시 됨: 2022-10-05"개발자"라는 단어를 말하면 Kinsta에서 우리는 "소프트웨어"를 생각합니다. "부동산"이 아닙니다. 그러나 컴퓨터와 코드에 초점을 맞추더라도 개발자 유형을 설명할 수 있는 여지가 많습니다.
"JavaScript 개발자" 또는 "Python 개발자"와 같이 사용하는 프로그래밍 언어로 개발자를 분류할 수 있지만, 개발자가 무엇을 만들고 있는지 또는 프로세스에서 그들의 역할을 밝히지는 않습니다. 또한 개발자가 여러 언어를 알고 있는 것이 일반적입니다.
따라서 개발자 유형에 대해 널리 사용되는(좀 더 설명적인) 레이블을 사용하고 그 뒤에 있는 작업과 도구를 살펴보겠습니다.
개발자란?
우리는 소프트웨어가 우리 개발자들의 이야기의 핵심이라는 것을 확인했습니다. 그것은 많은 형태를 취할 수 있습니다.
Microsoft의 SQL Server 데이터베이스 소프트웨어 뒤에 있는 프로그래밍 팀의 구성원은 개발자입니다. 그러한 데이터베이스에 저장된 정보로 작업하기 위해 구조적 쿼리 언어를 사용하는 사람도 개발자가 될 수 있습니다.
한 개발자는 회로 기판에 내장된 컴퓨터 운영 체제를 만듭니다. 다른 하나는 Bash 스크립트를 작성하여 여러 다른 소프트웨어 프로그램 간의 상호 작용을 자동화합니다.
이러한 모든 유형의 개발자는 코드로 무언가를 구축했습니다.
얼마나 많은 유형의 개발자가 있습니까?
개발자 작업 설명의 "공식" 목록은 없습니다. 개발자가 몇 가지 일반적인 용어를 사용하여 수행하는 작업을 살펴보고 광범위한 "웹 개발자" 범주를 세 가지 역할로 나눌 수도 있습니다. (우리는 인정합니다. 우리는 웹사이트를 구축하는 사람들의 마음 속에 부드러운 부분이 있습니다.)
여기에서 총 11가지 유형의 개발자를 검토할 것입니다.
1. 프론트엔드 웹 개발자
프론트엔드 개발자는 웹사이트의 사용자 인터페이스에 중점을 둡니다. 그들은 HTML 및 CSS 기술을 사용하여 사이트의 모양과 느낌을 제어하며 종종 모바일 및 데스크톱 브라우저에서 다양한 화면 크기를 수용합니다.
프론트엔드 개발자는 일반적으로 JavaScript를 사용하여 사용자를 위한 반응형 환경을 만듭니다. 이러한 개발자는 종종 동적 클라이언트 대면 응용 프로그램 생성을 가속화할 수 있는 JavaScript 라이브러리 및 프레임워크에 익숙합니다.
프론트엔드 개발자는 브라우저에서 더 빠른 로드 시간을 위해 이미지, JavaScript 및 마크업을 최적화하고 웹사이트 성능을 향상시키기 위해 노력합니다. 대부분의 프론트엔드 개발자는 검색 엔진 최적화 및 웹사이트 접근성에도 중점을 둡니다.
이 모든 것은 많은 기술을 필요로 하며 프론트엔드 개발자의 급여는 이를 반영할 수 있습니다.
프론트엔드 개발자는 웹 디자이너입니까?
많은 프론트엔드 개발자는 디자이너이기도 하지만 이것이 "프론트엔드" 제목의 요구사항은 아닙니다. 마찬가지로 많은 웹 디자이너는 HTML과 CSS에 정통하고 이를 목업에 사용할 수도 있지만 스스로를 개발자라고 생각하지는 않습니다.
많은 조직에서 디자인은 웹을 넘어 미디어를 포괄하는 브랜딩의 일부입니다.
누가 디자인을 만들든 상관없이 웹 페이지에서 디자인을 구현하고 사용자 경험에 대한 비전을 작동하는 애플리케이션으로 바꾸는 것은 프론트엔드 개발자의 임무입니다.
2. 백엔드 웹 개발자
백엔드 개발자는 일반적으로 웹 서버 소프트웨어, 데이터베이스 및 실행되는 운영 체제에 대한 전문 지식이 필요한 서버 측 애플리케이션을 빌드합니다. 모든 오픈 소스의 예로는 Linux 운영 체제, Nginx 또는 Apache 웹 서버, MariaDB 또는 PostgreSQL 데이터베이스가 있습니다.
백엔드와 프론트엔드 개발 사이의 경계는 HTML을 프론트엔드의 브라우저에 보내는 하나의 서버측 스크립팅 언어인 PHP와 같은 기술에 의해 흐려집니다.
Laravel과 같은 개발 프레임워크뿐만 아니라 WordPress 및 기타 인기 있는 CMS를 지원하는 PHP는 웹에서 가장 일반적인 서버 측 스크립팅 언어입니다. 그러나 백엔드 개발자는 C# 및 Microsoft의 .NET 프레임워크, Python, Java, Ruby on Rails 또는 Node.js와 같은 기술을 사용할 수 있습니다.
백엔드 개발자는 웹 사이트의 클라이언트 대면 측면을 돌보는 팀 구성원과 협력하여 작업할 수 있습니다. 서버 측 개발에는 양측의 긴밀한 결합이 덜 필요하면서 프론트엔드 서비스를 지원하는 API(응용 프로그래밍 인터페이스)의 생성도 포함될 수 있습니다.
이 모든 것이 귀하의 직업처럼 들린다면 일반적인 백엔드 개발자 급여에 관심이 있을 수 있습니다.
3. 풀스택 웹 개발자
전체 스택 개발자가 프론트엔드 및 백엔드 개발자의 작업을 수행한다고 추측했을 수 있습니다. (불행히도 그렇다고 해서 일반적인 풀스택 개발자의 급여가 다른 개발자의 급여의 두 배인 것은 아닙니다.)
여전히 모든 수준의 웹 개발을 마스터하는 것은 보상을 받는 것 같습니다. 2022년 StackOverflow의 개발자 설문 조사에 따르면 응답자에게 자신의 역할을 설명하라는 요청을 받았을 때 "전체 스택 개발자"가 가장 높은 응답(거의 47%)인 것으로 나타났습니다.
WordPress 개발자는 풀스택 개발자입니까?
Kinsta의 관리형 WordPress 호스팅 기능을 사용하면 PHP에 능숙한 사람이라면 누구나 서버 측을 깊이 파고들지 않고도 진지한 개발을 수행할 수 있습니다.
어디에나 설치된 WordPress는 개발자 친화적이며 일부 일반적인 서버 측 작업에 대한 추상화 계층인 자체 PHP 함수/메서드의 대규모 라이브러리를 제공합니다. 예를 들어 WordPress 개발자는 SQL을 작성하지 않고도 관계형 데이터베이스에 레코드를 저장하고 검색할 수 있습니다. 그들은 모든 것을 가능하게 하는 PHP의 핵심 기능을 몰라도 서버의 파일 시스템에 미디어 업로드를 저장할 수 있습니다.
"WordPress 개발자"는 여기에서 자체 범주일 수 있지만 Drupal, Joomla 및 DNN과 같은 CMS 제품과 Laravel, .NET 및 Django와 같은 프레임워크를 사용하는 개발자에게도 동일한 작업을 수행해야 합니다.
많은 WordPress 개발자, 특히 WordPress 테마 및 플러그인을 빌드하는 일부 개발자는 고무적인 전체 스택 절단을 가지고 있습니다. 그래서 “워드프레스 개발자는 풀스택 개발자입니까?”라는 질문에 대한 답입니다. 이다: 의존한다.
4. 모바일 앱 개발자
"응용 프로그램"이라는 용어는 소프트웨어 개발의 많은 부분을 포함합니다. 데스크톱에서 웹에 이르기까지 애플리케이션은 최종 사용자를 위한 작업을 수행하는 도구입니다.
"앱"으로 줄인 경우 — "이를 위한 앱이 있습니다!" — 우리는 스마트폰, 태블릿 및 기타 모바일 장치에서 실행되는 애플리케이션을 먼저 생각하는 경향이 있습니다. 그리고 모바일 앱을 만들려면 전문 유형의 개발자가 필요합니다.
모바일 앱 개발자는 Apple의 iOS 또는 Google의 Android와 같은 장치 운영 체제용 애플리케이션을 빌드하는 데 사용되는 SDK(소프트웨어 개발 키트) 및 관련 도구에 익숙합니다.
Swift는 iOS용 기본 프로그래밍 언어이며 Java 및 Kotlin은 Android용으로 가장 많이 사용됩니다. 또한 Apache Cordova 및 NativeScript와 같은 대규모 앱 구축 도구 에코시스템은 웹 친화적인 JavaScript, HTML 및 CSS를 기반으로 하는 코드를 기본 모바일 소프트웨어로 전환할 수 있습니다.
평균 앱 개발자 급여를 살펴보면 모바일 플랫폼용 빌드가 데스크톱이나 웹에 중점을 둔 빌드보다 약간 더 많이 받는 것으로 나타났습니다.
5. 데스크탑 소프트웨어 개발자
데스크탑 개발자는 개인용 컴퓨터와 워크스테이션에서 실행되는 소프트웨어 응용 프로그램을 만듭니다.
개발자는 일반적으로 특정 운영 체제용 데스크톱 애플리케이션을 구축하므로 이 분야의 활동은 Microsoft의 Windows, Apple의 macOS, Google의 Chrome OS 및 오픈 소스 운영 체제 Linux와 같은 플랫폼의 상대적 시장 점유율을 반영합니다.
Statcounter는 전 세계 웹 사이트 방문에서 수집된 데이터를 사용하여 2022년 8월에 Windows가 데스크톱 운영 체제에서 74%의 시장 점유율을 차지할 것으로 추정했습니다.
개발자는 소스 코드의 신속한 편집, 디버깅 및 컴파일을 위해 통합 개발 환경(IDE) 도구를 사용하여 프로그래밍할 가능성이 높습니다.
데스크톱 응용 프로그램 프로그래밍에 널리 사용되는 언어에는 C#, C++, Swift 및 Java가 있습니다.
데스크탑 소프트웨어는 로컬에서 실행되지만 최신 애플리케이션은 제품 업데이트에서 클라우드 스토리지를 통한 데이터 공유에 이르는 작업에 인터넷 연결을 사용할 수 있습니다.
6. 데이터 과학자(빅 데이터 개발자)
인간은 식료품점에서 계산하고, 웹서핑을 하고, 교통 카메라를 지나치고, 휴대전화를 사용하고, 투표까지 하는 등 일상생활을 하면서 많은 데이터를 생성하는 데 도움을 줍니다. 우리는 날씨, 지진 및 우주의 전자기 신호와 같은 자연 현상의 데이터를 기록하는 시스템을 구축했습니다.
데이터 과학자는 모든 정보에서 패턴을 발견할 수 있는 컴퓨터를 사용하는 수학 마법사입니다.
이 개발자들은 Python 프로그래밍 언어나 R, Scala 또는 Julia와 같은 더 전문화된 언어를 사용하고 있을 가능성이 큽니다.
"빅 데이터"는 일반적으로 관계형 데이터베이스에 포함되므로 데이터 과학자는 프로그래밍 도구 상자에 SQL을 포함할 가능성이 높습니다.
7. 인공지능/머신러닝 개발자
인공 지능(AI) 소프트웨어 개발자는 의사 결정과 같은 인간의 행동을 모방하려고 합니다. 머신 러닝(ML)을 추가하면 시간이 지남에 따라 애플리케이션이 더 똑똑해질 수 있습니다.
AI/ML 애플리케이션은 일반적으로 복잡한 알고리즘을 사용하여 많은 데이터를 처리하므로 해당 분야의 개발자는 데이터 과학자인 경우가 많습니다.
시장 조사 기관인 IDC는 AI 관련 애플리케이션, 하드웨어 및 서비스의 전 세계 수익이 2021년에 3,830억 달러를 초과했으며, 이는 2020년보다 거의 21% 증가한 것으로 나타났습니다.
고객 관계 관리 소프트웨어와 전사적 자원 관리 소프트웨어는 AI 강화 애플리케이션 매출의 약 65%를 차지했습니다.
8. 게임 개발자
컴퓨터 게임 개발자는 광범위한 기술을 나타냅니다.
그들의 소프트웨어는 데스크탑, 모바일 장치, 콘솔 또는 웹 브라우저에서 실행될 수 있습니다. 스토리라인은 군사 또는 스포츠 시뮬레이션, 1인칭 슈팅 게임, 전략 또는 롤 플레잉과 같은 다양한 게임 장르를 수용합니다. 그런 다음 3D 그래픽, 음악 및 음향 효과가 있을 수 있습니다.
인터넷 연결 게임의 세계에서 대규모 멀티플레이어 게임 개발자는 가장 바쁜 전자 상거래 사이트만큼이나 까다로운 백엔드 서버 및 데이터베이스 요구 사항에 직면해 있습니다.
게임 개발자는 일반적으로 3D 렌더링 도구 및 기타 애니메이션 관련 소프트웨어에 대한 전문 지식을 가지고 있습니다.
그리고 최첨단 기술에 초점을 맞춘 SlashData의 Developer Nation의 최근 개발자 설문조사에 따르면 증강 현실(AR) 또는 가상 현실(VR) 애플리케이션의 37% 이상이 AR/VR 게임인 것으로 나타났습니다. 추가로 27.9%의 프로젝트는 가상 세계 구축과 관련되었으며 일부는 게임용이었습니다.
9. 운영 체제 개발자
수천 명의 개발자가 Linux에 기여하거나 Microsoft, Apple 또는 Google에서 고용하는 가장 인기 있는 운영 체제에서 작업하지만 여전히 독점적인 그룹입니다. 결국, SlashData는 설문 조사에 따르면 전 세계 개발자 인구가 2,400만 명이 넘는 것으로 나타났습니다.
냉장고에 운영 체제가 있을 가능성이 높지만 널리 사용되는 컴퓨터 운영 체제는 대규모 개발자 팀이 필요한 작업이며 대부분은 전체 프로젝트의 작은 구성 요소에 대해 작업합니다.
대부분의 운영 체제의 핵심은 CPU, 메모리, 파일 시스템 및 I/O 장치에 대한 액세스를 관리하는 커널입니다. C는 Microsoft Windows, Apple의 macOS 및 Linux 뒤에 있는 커널의 기본 코딩 언어입니다. 또한 어셈블리로 작성된 일부 저수준 코드가 사용됩니다.
그리고 안드로이드 커널은 리눅스 커널에서 발전했습니다.
커널 위에 운영 체제에는 시스템 하우스키핑을 위한 다양한 하드웨어 장치와 응용 프로그램을 관리하는 드라이버가 있습니다. 그리고 시스템의 그래픽 사용자 인터페이스가 있습니다. 개발자는 이러한 구성 요소에 C, C++, Objective C(macOS) 및 Python(Linux)을 사용할 수 있습니다.
10. DevOps 엔지니어
DevOps 엔지니어는 개발 단계에서 공개 릴리스까지 소프트웨어를 빠르고 안정적으로 가져오는 도구와 워크플로를 관리합니다.
"DevOps"는 "development"와 "operations"의 합성어로, 실무자는 코드 관리에서 테스트, 배포, 모니터링, 유지 관리 및 문제 해결에 이르기까지 반복적인 소프트웨어 개발 작업을 자동화합니다.
이 엔지니어들은 DevOps 도구 모음을 사용하여 소프트웨어 릴리스 주기의 속도를 높이고 프로젝트 코드 기반의 다양한 버전을 관리하며 최종 제품이 예상대로 작동하는지 확인합니다.
웹 개발에 사용되는 경우 DevOps 프로세스는 애플리케이션에 필요한 리소스가 사용 가능하고 웹 서버에서 적절하게 구성되었는지 확인할 수도 있습니다.
DevOps에는 고급 기술이 필요하며 DevOps 엔지니어의 급여는 일반적으로 이를 반영합니다.
11. 보안 개발자(SecDevOps)
보안 개발자는 소프트웨어와 컴퓨터 시스템 보안을 테스트하는 도구를 만들고 프로세스를 관리합니다.
소프트웨어 개발에서 보안은 종종 DevOps 프로세스의 구성 요소입니다. 해당 환경에서 보안에 중점을 두는 사람을 SecDevOps 엔지니어라고 부를 수 있습니다.
보안 개발자는 사이버 보안 공격 및 위협으로부터 소프트웨어 및 컴퓨터 시스템을 보호하기 위해 노력합니다. 그들은 Python, Bash 및 Ruby와 같은 스크립팅 언어를 포함한 다양한 도구를 사용하여 반복적인 작업을 자동화합니다.
보안 개발자는 보호하려는 소프트웨어와 시스템에 대한 심층적인 지식이 있어야 합니다.
어떤 유형의 개발자가 되고 싶습니까?
개발자가 되려고 생각 중이라면 다음 단계를 수행하는 데 도움이 되는 정보가 있습니다. PHP를 배우고 JavaScript 튜토리얼을 발견하는 데 가장 적합한 프로그래밍 언어에 대해 읽거나 배울 수 있습니다.
아마도 당신은 Laravel 개발자가 되기 위해 필요한 것이 무엇인지 알고 싶거나 세계에서 가장 인기 있는 CMS인 WordPress를 배우는 데 집중하고 싶을 것입니다.
그러면 언젠가 Kinsta에서 우리와 함께 일하게 될 것입니다.
요약
각 분야에서 수행할 수 있는 다양한 작업을 강조할 수 있을 만큼 역할이 뚜렷한 11가지 유형의 개발자를 살펴봅니다.
여전히 많은 개발자가 둘 이상의 역할을 수행하며 대부분은 여러 프로그래밍 또는 스크립팅 언어에 익숙합니다. 아마도 이것이 우리가 개발자 유형의 "공식" 목록에 결코 동의하지 않는 이유일 것입니다.
한편, 시작하려는 웹 기반 프로젝트가 있는 경우 Kinsta의 애플리케이션 호스팅 및 데이터베이스 호스팅 솔루션을 탐색할 수 있습니다.