백엔드 개발자, 과연 몇 개의 프로그램 언어를 사용할까?

저는 SI(System Integration)업체에서 주로 백엔드(Backend) 개발을 하고 있습니다.

최근에는 거의 100% 웹 기반 시스템을 구축합니다. 워낙 다양한 방식으로 구축하기 때문에 어떤 방식이 표준이라는 규정은 없지만, 제가 경험했던 시스템을 기준으로 대략 5가지 정도의 언어를 기본으로 사용하는 것 같습니다.

SQL

SQL(Structured Query Language)은 데이터베이스(DB)에서 데이터를 추출할 때 사용합니다. 쉽게 비유하면, 엑셀에서 필요한 데이터를 추출하는 것과 비슷한 언어라고 할 수 있을 것 같습니다. 대략 이렇게 생긴 언어이지요.

SELECT EMP_NO, EMP_NM, DEPT_CD
FROM TB_EMP

실제로는 다른 테이블 (엑셀로 비유하면 다른 탭)과 조인(Join)을 걸어서 더 복잡하게 사용하지요. 백엔드 개발자의 정의를 어디까지 하느냐에 따라 다르겠지만, SQL에 능통한 개발자라면 어디서든 환영받습니다.

오라클, DB2, MySQL, Postgre SQL, 마리아 DB, sqlite, 지금까지 총 6가지의 데이터 베이스 프로그램을 사용해봤지만, 주로 오라클을 많이 사용했습니다. SQL은 표준 SQL 언어가 있지만, 해당 데이터 베이스 전용 언어를 사용할 경우에 속도 향상이 있습니다. 데이터베이스 프로그램마다 문법이 조금씩 표준 SQL과 오라클 SQL을 알아두면, 대부분 어디서든 사용 가능합니다.

Java

처음 자바언어를 만들 사람들이 자바 커피의 Java에서 이름을 본떠 만든 언어입니다. 사용자 순위에서 C와 더불어 1, 2위를 다툴 정도이지만, 웹 기반의 프로그램에서 C를 사용하는 경우는 거의 없기 때문에, 웹 기반 프로그밍에서는 압도적 1위의 사용률입니다.

Java

자바는 주로 서버 쪽에 개발, 설치되며, DB에서 데이터를 불러와서 화면까지 보내주는 역할을 담당합니다. 즉, DB와 화면 사이의 징검다리 역할을 합니다. 백엔드 개발자를 흔히 서버사이드 (Server Side) 개발자라고도 부르며, 당연히 백엔드 개발자는 자바에 능통해야 합니다.

DB에서 데이터를 가져와 그대로 보내기도 하고 때로는 데이터를 가공해서 보내기도 합니다. 데이터 가공은 데이터를 합하건, 사칙연산을 하거나, 문장을 자르거나 하는 것을 주로 합니다. 데이터 가공은 이후에 나올 자바스크립트에서도 가능합니다.

HTML

하이퍼텍스트 마크업 언어(HyperText Markup Language)는 엄밀한 의미에서 프로그래밍 언어는 아닙니다. 하지만, 프로그램을 잘 모르는 분들에게는 사실상 프로그램 언어나 다른 없을지도 모릅니다.

HTML은 화면의 구조를 결정합니다. 아이콘의 위치, 사진과 글자의 배치, 입력 칸과 표의 위치 등 화면에 나타나는 것에 대한 위치와 구조를 결정합니다. 그리고 HTML의 가장 중요한 하이퍼(Hyper) 링크 기능이 있습니다. 글을 읽다가 아이콘이 손가락으로 바뀌면 클릭해서 다른 곳으로 이동하죠? 그게 바로 이동하는(Hyper) HTML의 중요한 기능이자 탄생 배경입니다. 어디서든 편하게 읽던 도중에 다른 곳으로 Hyper 할 수 있는 기능 말이죠.

예전에는 HTML로 색상이나 애니메이션도 구성했지만, 사용자의 눈높이가 높아지면서 좀 더 화려한 화면에 대한 요구에 대응하기 위해 CSS라는 것이 등장했습니다.

HTML CSS JS

CSS

CSS(Cascading Style Sheets)도 프로그래밍 언어는 아닙니다. 작성한 화면의 스타일을 잡아주는 코드이지요. 예전에는 HTML 안에서 색상이나 크기를 결정했지만, 구조와 색상이 혼재되면서 뭔가 알아보기 힘들게 되는 문제가 생겨서, 지금은 구조(HTML)와 스타일(CSS)을 분리해서 작성하고, 화면에서 합쳐서 보여주는 방식으로 진화했습니다.

Java Script

대표적으로 자바 스크립트라고 표현했지만, jQuery, Ajax 같은 라이브러리까지 포함해서 이른바 스크립트 언어라고 합니다. 주로화면 뒤 보이지 않는 부분에서 동작합니다. 사용자가 입력한 입력값을 받아서 자바 프로그램(서버 프로그램) 쪽으로 전송하거나, 서버에서 보낸 데이터를 가공해서 화면에 전달하는 역할을 합니다.

데이터 가공은 자바(서버)에서도 가능하고 스크립트(화면)에서도 할 수 있습니다. 어디서 어느 만큼 가공할 것인가를 결정하는 것은 설계자와 개발자의 판단에 맡깁니다. 둘 간의 균형을 잘 맞추는 작업이 개발에 있어서 중요한 부분이기도 합니다.

참! 자바와 자바스크립트와는 아무런 관련이 없는 서로 다른 언어입니다.

마치 사자와 바다사자 같은…

Javascript vs. Java

스크립트 언어를 개발한 사람들이 당시 잘 나가던(?) 자바라는 이름을 가져다 쓴 것일 뿐, 둘 사이는 원래부터 아무런 관련이 없답니다.

맺음말

제 글을 처음 보신 분들은 왜 이렇게 어려운 말이 많아?라고 하실 것 같고, 개발자가 되고 싶어 하는 분들에게는 우와… 생각보다 해야 할 일이 많네.. 싶을 수도 있을 것 같습니다. 프로그램 개발에는 이 외에도 생각해야 할 요소가 많습니다. 그렇다고 미리 좌절할 필요는 없습니다. 처음부터 한 번에 모든 것을 한 번에 배울 수는 없습니다. 조금씩 하나씩 배워서 익히는 꾸준함이 더 중요하니까요.