무엇인가요?
백엔드는 사용자에게 직접 보이지 않는, 서버나 데이터베이스 등 시스템의 내부입니다.
사용자가 요청한 데이터를 처리하거나, 저장하고, 비즈니스 로직을 수행하는 역할을 합니다.
어떻게 만들어지나요?
Java, Python, Node.js, Ruby 등 다양한 언어를 사용해서 서버, 데이터베이스, API 등을 구축합니다.
사용자가 프론트엔드에서 어떤 행동을 하면, 백엔드가 그 요청을 받아 처리하고 결과를 돌려줍니다.
비유를 통해 알아봅시다.
앱(Application) 생태계에서 백엔드는 마치 레스토랑의 주방과 같습니다.
백엔드는 사용자 요청을 처리하여 필요한 데이터를 만들어냅니다.
예시 속 레스토랑을 표현하기 위해 사용된 용어는, CS(Computer Science) ****에서 아래와 같이 사용됩니다:
”사용자가 프론트엔드에서 어떤 행동을 하면, 프론트엔드에서도 그 요청을 받아 처리하고 결과를 돌려줄 수 있는 것 아닌가..?”→
“어 벡엔드 필요없나?”
만일 여러분들이 위와 같은 생각을 하셨다면, 아예 틀린 말은 아닙니다. 사실 프론트엔드에서도 받아온 데이터를 처리하고 직접 DB, API 서버와 소통하며 직접 벡엔드 구현하지 않고 어플을 만들 수 있습니다.
(실제로 초기 어플들은 이런 방식으로 많이 구현되었답니다. 하하..옛날얘기)
그렇다면 우리는 왜 백앤드 프론트앤드를 구분지어 개발하고 관리하는 것일까요?
아주 슬픈 예시를 통해 그 필요성에 대해 짐작해봅시다.
이 슬픈 예시 속, 지금부터 당신은 모바일 프론트앤드 개발자입니다.
근무 중인 회사는 자산관리 서비스 회사라고 가정해보죠.
당신의 회사는 새로운 “본인 자산 확인 기능”을 개발하려 합니다.
아직 백앤드의 필요성을 못 느낀 당신은 고객의 자산정보를 불러오기 위한 개발로 직을 다음과 같이 구상합니다.
계획은 이러합니다, 은행들이 제공하는 “본인 자산 데이터를 요청 API”를 프런트엔드로부터 직접 은행이 제공한 API 통신을 통해 고객의 자산 정보를 가져온다(1), 가져온 데이터를 가공해 유저에게 보여준다(2).
오히려 백앤드가 없으니 처리 과정이 간소화되고 로직이 깔끔해진 것 같습니다.