1. 개요
Back-end. 웹 프로그래밍의 한 분야. 웹이나 앱에서 사용자의 행동을 처리하고, 정보를 저장, 관리, 전달하며, 서버와 데이터베이스를 관리한다. 반대말은 프론트엔드.사용자 눈 앞(Front)에 보이는 웹사이트나 앱 등의 사용자 인터페이스(UI) 개발을 프론트엔드라고 부르고 눈 앞에 보이지 않으며 웹사이트의 뒷 단(Back)을 개발한다고 백엔드라고 부른다.
백엔드 개발자는 프론트엔드, 백엔드의 완전한 분리 구조를 지향하는 업무 스타일의 개발 방식으로 백엔드의 DB와 API 서버 개발을 맡는다.
백엔드와 다른 방식의 업무 스타일 직군으로는 웹퍼블리셔(UI 개발)와 개발자( 서버 개발자)의 업무 분리 방식이 있다. 이 경우는 주로 서버사이드가 클라이언트를 감싸는 방식이고, 전반적인 비지니스 로직은 개발자가 맡는다. MVC에서 Model, Controller가 백엔드의 소관이다.
2. 필요한 기술
백엔드 개발자는 기존 개발자라 불리는 스펙과 방식이 약간 다르다. 프로그래밍, 데이터베이스, 웹 서버, 네트워크, 인프라 등에 대한 기술이 필요하다.백엔드 개발은 API 개발이 주가 된다. 프론트에서 요구하는 데이터의 포맷이나 데이터베이스 입출력 및 다양한 비즈니스 프로세스를 코드로 구현하고 이를 위한 DB를 설계하고 백엔드 프레임워크를 이용하여 앱을 구현하는 것이 주요 업무다. 여기에 백엔드 프레임워크와 프론트엔드 서버를 이어주는 서블릿, WSGI 등의 미들웨어 기술도 필요하다. API 명세를 설계하고 실제 배포 단계에서 최대한 문제가 발생하지 않도록 체계적으로 구성하는 능력도 필요하다.
핵심은 DB에 담겨진 정보를 프론트엔드에서 활용할 수 있도록 여러 API들을 개발하는 것이 핵심이라고 볼 수 있다. 백엔드와 프론트엔드를 모두 다룰 줄 아는 개발자를 일컬어 풀 스택 개발자라고 한다.
위 서술은 웹개발 위주로만 설명되어 있지만 시스템 프로그래밍에서도 크게 다르지는 않다. 결국 '인터페이스'라는 것은 서로 다른 애플리케이션을 이어주는 가교 역할을 하는 것이므로 본질적으론 동일하다. 차이가 있다면 웹 개발에서는 최종적으로 구현된 API들을 Vue.js나 React 같은 프론트엔드 프레임워크가 사용하는 것이고 시스템 프로그래밍에서는 다른 프로그램이 사용할 뿐이다. 백엔드는 거기에 필요한 데이터를 DB에서 꺼내고 JSON 또는 XML 형태의 표준 데이터 포맷으로 잘 보내주기만 하면 된다.