mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-11-15 11:17:59

백엔드(프로그래밍)

웹 프레임워크 기술
{{{#!wiki style="margin:0 -10px"
{{{#!folding [ 펼치기 / 접기 ]
{{{#!wiki style="margin:-5px 0px -10px; word-break:keep-all"
$ 유료 포함 • 취소선 단종 및 중단
<colbgcolor=#f6f6f9,#2f3241> 프론트엔드 <colbgcolor=#fcfcfd,#272935> CSS Bootstrap Tailwind CSS Bulma Foundation Skeleton Pico
JSX React SolidJS Astro Preact Gatsby Remix Inferno Qwik
JS Angular Svelte Backbone.js jQuery Astro htmx Ember.js Lit 11ty Marko VanJS Alpine.js
Vue Vue.js VuePress Gridsome Quasar Astro
Python Reflex
백엔드 Java Spring Struts GWT Grails Jooby Play! Framework Scala
Kotlin Ktor
JS Express NestJS koa Hono fastify
.NET ASP.NET$
PHP Laravel Codeigniter Reasonable phalcon Symfony zend CakePHP FuelPHP Yii Slim PHPixe
Python Django Flask FastAPI
Ruby Ruby on Rails Sinatra
Go Gin echo Fiber
풀스택 JSX Next.js Astro SolidStart Remix Qwik City
JS SvelteKit Fresh Astro Marko
Vue Nuxt.js Astro
Java Vaadin$
Python Streamlit Reflex
Rust Rocket Actix Leptos Axum
하이브리드 .NET Blazor
Dart Flutter
Kotlin Kotlin Multiplatform
}}}}}}}}} ||


1. 개요2. 필요한 기술3. 백엔드 = 관리자 페이지?

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 형태의 표준 데이터 포맷으로 잘 보내주기만 하면 된다.

3. 백엔드 = 관리자 페이지?

프로그래밍에서 이야기하는 백엔드의 정의와 달리, 제안 또는 기획 단계에서 백엔드는 관리자 페이지를 이야기하는 경우도 있다. 하지만 관리자 페이지마저도 백엔드, 프론트엔드가 분리될 수 있는 소프트웨어이기 때문에 매우 잘못된 용례다. 사용자에게 노출되지 않는 부분인 만큼 관리자 페이지가 프론트엔드에 소홀할 수는 있지만, 그렇다고 해서 백엔드가 관리자 페이지는 아니다. 해당 경우에는 차라리 백오피스라는 용어가 알맞다.