개발자나 개발사와 이야기할 때 프론트엔드 언어가 어떻고 백엔드 언어가 어떻고 네이티브 언어가 어떻고 설명을 들어도 이해가 쉽지 않으실 겁니다
사실 개념은 매우 간단한데 언어 종류가 어떻게 구분되어 있는지 구조적인 설명을 한 번이라도 듣지 않으면 머리속에 잘 그려지지 않으실텐데요
제가 이 글 하나로 주요 언어가 어떤 분류에 속하고 어떤 용도로 쓰이는지 핵심만 알려드리도록 하겠습니다
저와 저희 개발자 임직원 분들은 정말 다양한 개발 언어로 개발을 해왔습니다. 적어도 10가지 이상의 언어를 사용했는데요. 외국어를 하나 배우는 것도 어려운데 개발 언어 하나를 제대로 사용하는 데는 개발자라 하더라도 몇 개월 이상이 소요됩니다
이렇게 개발 언어마다 수개월에서 10년 이상까지 직접 사용해본 언어이니 어떤 언어가 어떤 역할인지 당연히 알고 있겠죠?
개발 언어의 용도는 서비스를 개발할 때 아래와 같이 구분됩니다
보이는 웹 화면 개발(프론트엔드)
보이는 앱 화면 개발(네이티브)
뒷단의 로직 개발(백엔드)
데이터베이스 관리(사용자, 주문 등 데이터 저장)
시스템 관리(서버, 개발 환경)
첫 번째인 프론트엔드는 웹으로 화면을 개발할 때 사용하는 언어입니다. 최근에는 리액트나 뷰, 스벨트를 많이 사용한다고 들어보셨을까요? 근데 리액트, 뷰, 스벨트는 언어는 아니고 언어로 화면 개발을 하기 쉽도록 만들어진 '프레임워크'입니다
그럼 어떤 언어로 만들어졌을까요? 가장 많은 개발자가 사용하는 '자바스크립트'로 만들어져 있습니다.
즉 주요 웹 프론트엔드는 자바스크립트라는 언어로 만들어져 있고 자바스크립트 기반의 프레임워크 중 하나로 만들어져 있습니다.
프레임워크를 사용하지 않고 웹을 개발하는 경우도 있는데요. 이 경우에는 HTML, CSS, 자바스크립트 세 가지 언어를 함께 사용합니다.
HTML은 웹 페이지의 내용을 구성하고 CSS는 디자인을 표현하며 자바스크립트는 서버에서 데이터를 가져오는 등 화면 쪽에서 필요한 로직을 구성합니다
프론트엔드 프레임워크 중 과거에는 앵귤러가 가장 많이 사용되었으나 지금은 거의 사라지는 추세이고 리액트가 대세이지만 역시 오래 되고 있어 다음 세대의 프레임워크로 스벨트가 각광받고 있습니다
세계적인 개발자 커뮤니티에서 설문 결과 스벨트가 개발자들이 가장 사용하고 싶어하는 프레임워크라는 투표 결과가 나왔습니다. 저희도 고객사의 장기적인 프로젝트 성장을 위해 최신이면서 개발이 효율적인 프레임워크를 도입해야 겠다고 결단을 내려 스벨트로 모든 프로젝트를 개발하고 있습니다.
프론트엔드 프레임워크를 패키징해 아이폰 안드로이드 앱스토어에 출시할 수 있으며 이를 하이브리드앱이라고 부릅니다. 최근에는 대다수 스타트업의 앱들이 하이브리드앱으로 개발되어지고 있습니다
두 번째인 네이티브는 아이폰과 안드로이드 앱을 만들 때 각 OS에서 제공하는 개발 언어를 사용합니다
아이폰은 과거에는 Objective-C(오브젝티브 씨)를 사용했었고 최근에는 스위프트를 주로 사용합니다
안드로이드는 과거에는 자바를 사용했었고 최근에는 코틀린으로 많이 넘어오는 추세입니다
세 번째 백엔드 언어는 종류가 훨씬 많습니다. 브라우져나 스마트폰에서 동작해야 하는 프론트엔드, 네이티브는 언어가 제한되어 있으나 데이터를 가공해서 보내주는 백엔드는 언어가 제한되어 있지 않아 어떠한 언어로도 개발할 수 있어서 입니다
자바, 파이썬, 루비, PHP 등을 이용할 수 있는데 특히 최근에는 자바스크립트 기반의 Node.js(노드제이에스) 비중이 급격히 높아지고 있습니다.
노드 비중이 올라가는 이유는 프론트엔드에서 필수인 자바스크립트 언어를 백엔드에서도 사용할 수 있기 때문입니다. 자바스크립트 개발자가 프론트엔드와 백엔드 모두 개발할 수 있어 개발 비용이 절감되고 개발이 훨씬 빨리 끝납니다
기존에는 백엔드 개발자, 프론트엔드 개발자 각자가 필요했었다면 이제는 프론트엔드 개발자가 백엔드까지 개발하는 풀스택 개발자가 되기 쉬워진 시대입니다
네번째 데이터베이스 관리를 위해 SQL이라는 언어를 사용합니다. SQL은 스트럭쳐드 쿼리 랭퀴지의 약자로 구조화된 질의 언어라고 번역할 수 있습니다
데이터베이스에 질의한다는 것은 어떤 필터 조건을 걸어 데이터를 가져오거나 수정/삭제하는 것을 뜻합니다
이 때 데이터베이스가 이해할 수 있는 SQL을 사용해야 합니다. 데이터베이스도 Postgresql(포스트그레스큐엘), Mysql(마이에스큐엘), MSSQL(엠에스에스큐엘), Oracle(오라클) 등 선택지가 여러가지이나 사용하는 언어는 유사한 SQL 형태로 되어 있습니다.
마지막으로 시스템관리 언어는 Bash나 ZSH 등이라 불리는 쉘 언어 입니다. 서버에 필요한 소프트웨어를 설치하거나 재부팅하거나 메모리 점유 상태 등을 확인할 때 이용합니다. 서버 접속 때 보는 화면은 마우스로 클릭할 수 있는 GUI(그래픽 사용자 인터페이스) 환경이 아니라 검은 바탕에 텍스트만 보이는 터미널이라 불리는 환경이기 때문에 쉘 언어로 명령어를 직접 타이핑하고 텍스트로 표시된 결과나 오류 메시지를 확인해서 대응하게 됩니다.
서버 뿐만 아니라 개발자가 사용하는 윈도우나 맥북에서도 터미널을 실행하여 개발 서버를 실행하고 소프트웨어나 언어를 설치하게 됩니다.
이상 다양한 개발 언어에 대해 카테고리를 나누어서 핵심적인 부분을 설명드렸습니다
핑거는 최신의 프론트엔드 프레임워크인 스벨트, 백엔드는 노드, 즉 자바스크립트, 데이터베이스는 포스트그레스큐엘을 사용하고 있습니다.
또한 핑거를 통해 개발하고 있는 하이브리드앱과 웹도 모두 위의 개발 기술로 만들고 있습니다
자바스크립트, 노드, 포스트그레스큐엘 모두 가장 대표적인 언어와 데이터베이스이기 때문에 고객사에서 인수인계 하신 후 원활하게 개발을 이어나가실 수 있는 환경입니다
최신의 효율적인 기술로 플랫폼, 앱, 웹 개발 의뢰가 필요하시면 핑거에 접속하셔서 개발 의뢰를 남겨주시거나 직접 무료로 프로토타이핑을 해보실 수 있습니다