의견.png

백엔드

위키원
7095sj (토론 | 기여)님의 2020년 7월 29일 (수) 16:03 판
이동: 둘러보기, 검색

백엔드(back end)란 컴퓨터응용 프로그램 또는 컴퓨터와 데이터베이스 사이의 인터페이스(I/F) 부분을 말한다. '뒷단' 또는 '백단'(back端, 빽단)이라고 부른다. 응용 프로그램, DBMS, 운영체제, 웹서버, WAS 등이 있다. 반대말은 프런트엔드(front end) 또는 앞단이다.

개요

백엔드는 일반 사용자 눈에 보이지 않는 서버에서 작용하는 기술을 다루는 직군으로, UI나 GUI로 구성된 화면의 통신 및 요청에 대하여 인터페이스나 데이터베이스 등을 통해 시스템 구성 실체에 접근한다. 후위 처리라고도 부른다. 프론트엔드와 함께 연동되어, 사용자와 접촉하지 않고 기술적인 부분을 처리한다. 프런트엔드가 가능하도록 데이터를 저장하고 서버를 구축하는 일을 맡는다.[1] 백엔드는 서버와 응용 프로그램, 데이터베이스로 구성되어 있으므로, 백엔드 개발자는 이 구성요소들이 잘 작동할 수 있도록 기술의 개발과 유지보수를 진행한다.

차이점

프런트엔드와 백엔드는 프로그램 인터페이스와 서비스의 최초 사용자와 관련된 특성을 나타내는데 사용되는 용어로, 사람 또는 프로그램을 사용자라고 칭한다. 백엔드와 프런트엔드의 차이를 비교해보자면, 용어부터 일반적으로 프런트엔드와 백엔드는 각각 프로세스의 처음과 마지막 단계를 가리킨다. 클라이언트 서버 컴퓨팅 모델과 비교하자면 프런트엔드는 클라이언트에, 백엔드는 서버에 비유할 수 있다.[2]

프런트엔드
  • 사용자로부터 다양한 형태의 입력을 받아 백엔드가 사용할 수 있는 규격을 따라 처리할 책임을 진다.
  • 하나 또는 하나 이상의 사용자와 직접 상호작용을 하는 프로그램이다.
  • 사용자와 직접 인터페이스할 수 있고, 필요한 데이터를 얻거나 요구한 서비스를 수행하기 위해 다른 컴퓨터로 위치한 백엔드 프로그램으로 사용자의 요구를 전달한다.
백엔드
  • 클라이언트와 직접 접촉하지 않고 프런트엔드 프로그램과 연동하여 기술적인 기능을 수행하는 프로그램
  • 백엔드 없이는 UI는 프로세스 형태로만 존재하며, 프런트엔드는 UI를 가지고 동작한다.
  • 대체적으로 요구 자원들과 가깝게 위치하거나 요구 자원들과 충분히 교신할 수 있는 능력을 가지는 등 프런트 엔드 서비스를 뒤에서 전반적으로 지원하는 역할
  • 프런트엔드와 직접 상호작용할 수 있지만, 보통은 그 사이에 또 다른 프로그램이 함께 위치하여 프런트엔드와 백엔드 간의 업무를 조정한다.
  • 프런트엔드가 가능하도록 데이터를 저장하고 서버를 구축하는 역할을 맡는다. 서버, 응용 프로그램, 데이터베이스로 구성되며, 백엔드 개발자는 이 구성요소들이 작동할 수 있도록 기술의 개발과 유지보수를 맡는다.

구성

서버관리자

서버 환경설정과 서버 구성을 관리한다.

데이터베이스 관리자

데이터베이스를 설계하고, 데이터의 관리와 최적화를 맡는다.

백엔드 개발자

백엔드 개발은 사용자 인터페이스를 만들어내는 코드 작성과 관련 없는 전반적인 모든 개발을 일컫는다. 사용자의 육안에 들어오는 프런트엔드가 제대로 잘 작동할 수 있도록 최종 사용자의 눈에 보이지 않는 뒷단에서 백엔드 코드가 작성하는데, 세상에 존재하는 프로그래밍 코드이 대부분은 백엔드에서 작성되는 코드라고 할 수 있다. 백엔드 개발자가 하는 일은 다음과 같다.

  • 비즈니스 이해 관계자와 소통하며 구체적인 요구 사항을 파악하고, 요구사항을 기술적인 내용으로 변환한다.
  • 기술설계를 위한 가장 효율적인 해결책을 고안 및 제시한 후, 개발자의 기술을 사용하여 모듈화가 가능한 코드로 웹 응용 프로그램을 개발한다.
  • 프런트엔드 개발자에 비해 알고리즘을 적용하고 문제를 해결하는 데 더 많은 시간을 사용한다.

전반적으로 프런트엔드, 백엔드의 완전한 분리 구조를 지향하는 업무 스타일의 개발을 지향하며, 주로 백엔드의 데이터베이스와 API서버 개발을 맡는다. 이와 다른 방식의 업무 스타일 직군으로는 웹퍼블리셔와 서버 개발자의 업무 분리 방식이 있다. 이 경우는 주로 서버사이드가 클라이언트를 감싸는 방식이고, 전반적인 비지니스 로직은 개발자가 맡는다. 뷰단은 화면단보다 API 개발이 더 주가 되며, 프런트엔트에서 전달한 데이터를 가지고 데이터베이스 입출력, 포맷, 다양한 비즈니스 프로세스를 프로그래밍 코드로 구현하는 역할을 해야한다. 여기서 백엔드와 프런트엔드의 기술을 모두 다룰 줄 아는 개발자가 풀 스택 개발자이다.[3] 서버 개발에는 기술면에서 프로그래밍, 데이터베이스, 웹 서버, 네트워크, 인프라 등에 대한 지식과 기술이 필요하다. 자신이 쓰는 기술 스택에 맞는 서버 측의 언어를 능숙하게 사용해야만 하며, 응용 프로그램을 제작하기 위해 PHP, Ruby, Python, Java 등의 언어가 사용된다. 프런트엔드 개발자가 HTML, CSS, 자바스크립트에 집중할 때 백엔드 개발자는 PHP 웹 프레임워크, 루비 온 레일스, ASP.NET MVC를 비롯한 서버 측 웹 개발 프레임워크에 집중한다. 또한, 데이터 검색, 저장, 변경 후에도 프론트엔드 코드로 사용자에게 다시 제공하기 위해 MySQL, Oracle, SQL Server 등이 기술이 사용된다.[4]

플랫폼

서버리스

스카이허브

아마존 웹 서비스

관련용어

백엔드 프로세서

후위 처리 장치라고도 부른다.

서비스형 백엔드(Backend as a Service)

바스(BaaS)라고도 부른다.

백엔드 시스템

보통 요구되는 자원들에 가깝게 있거나, 또는 요구되는 자원들과 교신할 수 있는 능력을 가지는 등 프론트엔드 서비스를 간접적으로 지원한다. 백엔드 응용프로그램은 프론트엔드와 직접 상호 작용할 수 있지만, 아마도 보다 일반적인 것은 클라이언트/서버 컴퓨팅 모델과 비교한다면, 프론트엔드는 클라이언트로, 백엔드는 서버로 이해할 수도 있을 것이다. 중간에 또 다른 프로그램이 개입되어 프론트엔드와 백엔드의 활동을 조정한다.[5]

각주

  1. E.B_Mind, 〈Front-End ( 프론트 엔드 ) vs Back-End ( 백엔드 )〉, 《티스토리》, 2019-9-25
  2. 백엔드 네이버 지식백과 - https://terms.naver.com/entry.nhn?docId=3473496&cid=58439&categoryId=58439
  3. 백엔드 나무위키 - https://namu.wiki/w/%EB%B0%B1%EC%97%94%EB%93%9C
  4. ReadIT, 〈백엔드 개발이란 무엇인가〉, 《교보문고북뉴스》, 2019-05-30
  5. 한국정보통신기술협회 정보통신용어사전 - http://word.tta.or.kr/dictionary/dictionaryView.do?subject=%EB%B0%B1%EC%97%94%EB%93%9C%EC%8B%9C%EC%8A%A4%ED%85%9C

참고자료

같이 보기


  의견.png 이 백엔드 문서는 인터넷에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.