우리가 개발자라 부르는 사람들

by 박동기

개발자도 평범한 직장인입니다. 집 사는데 영혼까지 끌어 모아 산다는 영끌과 주식 시장을 빚내서 투자한 빚투인 사람도 있습니다. 스티브 잡스처럼 마르지 않았고 다양한 체형을 가진 평범한 아저씨, 아주머니입니다.

개발자 유형을 알아봅니다. 프런트엔드 개발자는 웹과 같이 사용자에게 마주하는 화면을 만듭니다. 가장 단순한 웹 모델은 모든 웹 페이지가 서버에서 생성되고 웹 페이지에 쓰일 HTML, CSS, 자바스크립트가 웹 브라우저로 전송되는 형태입니다. 웹 브라우저는 서버에서 받은 내용을 사용자에게 보여줍니다. 나무로 치면 실제로 보이는 땅 위이 부분이며 꽃을 피우고 열매를 맺고 푸르른 초록을 실제로 보여주는 부분입니다.

나무가 여러 종류가 있듯이 프런트 엔드 개발자도 다양한 업무가 있습니다. 웹, 안드로이드 앱, IOS 앱, PC 프로그램 등입니다.


프런트엔드 개발자 중 모바일 개발자를 살펴보겠습니다. 안드로이드 개발자가 있고 아이폰 iOS 개발자가 있습니다. 우리가 사용하는 스마트폰 앱을 개발하는 개발자입니다. iOS 개발자는 애플에서 제공하는 몇 가지 네이티브 툴과 제공된 라이브러리를 이용해서 개발을 합니다. iOS 애플리케이션은 보통 오브젝트-C 나 스위프트를 써서 만드는데 요즘 더 인기를 끄는 쪽은 스위프트입니다.


안드로이드 모바일 개발자에는 HW 관련되어 리눅스 커널 관련된 일을 하는 시스템 개발자가 있고 OS 중심 부분을 개발하는 프레임웍 개발자도 있습니다. 안드로이드 앱 개발자는 자바를 주로 사용하며 Kotlin 신규 언어를 사용하면 개발 생산선이 더 높아집니다.

Xamarin을 사용해서 아이폰과 안드로이드폰에서 동시에 사용하는 앱을 가져보는 것에 관심을 가져야 합니다. Cross Platform으로서 다양한 컴퓨터 플랫폼에 동작 가능한 소프트웨어로 둘 이상의 플랫폼에서 동작한다고 하여 멀티플랫폼 소프트웨어라고 합니다. Smartphone Cross Platform 은 하나의 소스를 이용한 다양한 모바일 플랫폼에서 동작 가능한 소프트웨어이다. Phonegap HTML5, CSS3, JS를 이용한 하이브리드 앱 기반의 Cross Platform APP 개발하는 것입니다. Titanuum Mobile 은 JS , 자체 SDK를 이요한 Cross Platform API 개발입니다. Xamarin 은 C# 언어를 이용한 다양한 플랫폼 개발이 가능하지만 개별 API를 컨버팅 한 수준으로 개발자의 스트레스는 오히려 증가하는 경우도 있습니다. C#과 공통된 API를 이용한 다양한 플랫폼 개발이 가능합니다. 모바일 개발은 진입 장벽이 낮고 성장 가능성이 높습니다. 모바일 앱을 혼자서도 단기간에 만들어서 출시해 사용자들에게 배포를 할 수 있기에 배워두면 좋은 기술입니다. 활용분야도 안드로이드를 이용한 산업용과 의료용 소프트웨어 등에도 활용분야가 많습니다.

백엔드 개발자는 주로 프로그램 뒤에서 일어나는 일을 개발합니다. 사용자 인터페이스를 만들어내는 코드 작서과 관련 없는 모든 개발을 말합니다. 주로 서버, 서버 개발 언어, DB 등을 주로 사용을 합니다. 백엔드 개발자는 우리가 볼 수 없는 영역으로 서버에서 실행되는 부분을 주로 개발합니다. 나무로 치면 땅 아래에 있는 뿌리와 같은 역할이다. 보이지는 않지만 프로그램 뒤에서 일어나는 일을 담당합니다. 양분을 뿌리에 저장하듯이 데이터 베이스를 저장하기도 하고 물을 흡수해서 데이터를 줄기를 통해 나뭇잎으로 전달하기도 합니다.


풀 스택 개발자는 백엔드와 프런트엔드를 모두 하는 개발자입니다. 시스템의 모든 컴포넌트와 계층을 다룹니다. 서버 하드웨어와 아키텍처뿐 아니라 데브옵스 부분까지 알아야 합니다. 기술 스택 전반에 대해 일반적인 지식을 갖추되 일부 영역에 대해 전문성을 갖고 있습니다.


데브옵스(DEVOPS) 개발자는 안정적 운영을 위해 인프라를 설계합니다. 데브옵스라는 용어는 드부아(Debois)라는 유명한 애자일 기법 전문가가 개발(development)과 운영(Operation)이라는 단어들을 조합해 만든 개념입니다. 데브옵스는 코드를 개발해서 생산하기까지의 각 단계를 관리하는 종합적인 공정을 말합니다. 프런트 엔드 개발자와 백엔드 개발자가 코드를 설계해 서비스가 돌아갈 수 있는 로직을 만듭니다. 서비스에 고객들이 문제없이 접속하고 불편 없이 잘 이용할 수 있도록 운영하는 것이 데브옵스 개발자 역할입니다. 서비스를 안정적으로 운영하기 위한 과정들을 모두 자동화하여 개발자가 더 자유롭게 개발하고 더 빠른 배포를 할 수 있는 환경을 만들어주는 것이 데브옵스 개발자의 역할입니다.


데브옵스는 데브옵스의 목표는 소프트웨어 개발/ 품질보증(QA), IT 운영과 같은 다양한 프로세스 모두를 하나로 통합해서 전반적인 효율성을 향상하는 것입니다. 소스코드 제어하기 위해 새로운 버전 시스템을 적절한 시기에 받습니다. 구축 및 테스트 자동화를 통해서 새로운 버전의 시스템에서 발견된 품질 관련 문제들을 발견해냅니다. 출시 자동화를 통해 다수의 팀에서 수행되는 업무들을 자동화하고 서로 연결합니다. 버전 관리를 활용해서 개발 환경으로 새로운 버전의 시스템을 배포해서 배치 및 모니터링합니다.



keyword
작가의 이전글탈모가 올 정도로 일하지 맙시다.