2023.03.07(Tue)
백엔드 엔지니어링에 대한 평소 가지고 있었던 생각, 공부했던 내용들을 포스팅으로 정리해 보고자 합니다.
1. 백엔드 엔지니어링(Back-end Engineering)이란 무엇인가?
- 웹 개발 분야 중 하나로써 간단히 정의해 보자면, 도메인(Domain)을 위해 서버의 데이터베이스 및 비즈니스 로직, 이들을 제공하기 위한 API를 설계하고 개발, 운영하는 전반적인 기술을 의미합니다. 사람마다 조금씩 다르게 정의할 수도 있지만 대부분 아래와 정의해 주시는 분들을 많이 봤습니다.
(1) 웹 또는 앱에서 사용자가 시각적으로 볼 수 없는 서버 사이드, 데이터베이스를 관리하는 전반적인 기술
(2) 사용자로부터 들어온 요청에 대해 이에 맞는 응답을 반환할 수 있는 비즈니스 로직을 개발하는 것
(3) 도메인에 대한 시스템 컴포넌트, API 설계, 라이브러리 생성, 데이터베이스 관리 기술
(4) 사용자들이 서비스를 이용하며 발생하는 데이터들을 구조화된 틀(DB)에 담고, 사용자의 요청에 따라 적절한 데이터를 반환할 수 있도록 하는 DB Table, ERD(Entity Relationship Diagram)를 설계
(5) 프론트엔드와 백엔드는 상호 간의 통신 수단이 존재하며 이를 API(Application Programming Interface)라고 함. 두 개체 간의 효율적인 통신을 위한 API 설계가 필요
- 이처럼 백엔드 개발자의 업무를 보면 특정 서비스를 개발할 때 시스템을 안정적이고 효율적으로 설계해야 한다는 것을 알 수 있습니다.
2. API (Application Programming Interface)
(1) 두 시스템 간의 서로 통신이 가능한 인터페이스를 의미하며 웹에서의 API는 HTTP(HyperText Transfer Protocol)를 기반으로 유저가 항상 보게 되는 프론트엔드(Client-side) 영역과 유저의 요청을 실시간으로 처리해서 응답을 던져줘야 하는 백엔드(Server-side) 영역 간의 통신 체계로 볼 수 있습니다.
3. ERD (Entity Relationship Diagram)
(1) 직역하면 개체 관계 모델이며 특정 도메인에서 사용할 데이터베이스의 체계를 모델링한 것을 의미합니다.
4. 도메인(Domain)
(1) 백엔드 엔지니어링에서 자주 등장하는 용어이며 일반적으로 영역, 분야라는 뜻을 가지지만 백엔드 개발에서는 현실 세계의 요구사항을 바탕으로 해결되어야 하는 문제의 영역, 핵심 비즈니스 요구 사항을 의미하게 됩니다.
(2) 예시
- 회원 도메인 설계 : 회원은 가입하고 로그인할 수 있다, 회원만의 각자 등급(일반 회원, VIP 회원)을 보유할 수 있다. (...) 등
- 주문과 할인 도메인 설계 : 회원은 상품을 주문할 수 있다, 상품을 주문할 때 회원 등급에 따라 할인 적용이 된다. (...) 등
5. 비즈니스 로직 (Business Logic)
(1) 주어진 문제 및 요구사항을 해결하기 위한 코드 로직입니다.
(2) 예시 : 회원 가입 Form을 통한 가입 처리
- 회원 가입 과정에서 아이디 중복 검사, 비밀번호 재확인 등 사용자가 확인해줘야 할 사항들이 존재하는데 이러한 일련의 과정들이 매끄럽게 진행될 수 있도록 요청에 맞는 코드가 미리 구성되어 있어야 사용자가 가입 서비스를 이용할 수 있게 됩니다. 이처럼 비즈니스 로직은 문제 상황을 해결하기 위한 효율적인 코드로 볼 수 있습니다.
6. 데이터베이스 (Database, DB)
(1) 위의 백엔드의 정의에서 유저가 서비스를 이용하며 발생하는 데이터를 담는 틀이라는 내용이 잠시 언급됩니다.
(2) 말 그대로 데이터베이스는 어떤 구조화된, 정형화된 형식을 가지고 데이터를 관리할 수 있는 체계로 볼 수 있습니다.
(3) 다수의 사용자가 동시에 요청을 보내는 트래픽 부하가 큰 서버, 비즈니스 로직이 방대한 서비스일수록 각 사용자들의 요청에 따라 적절한 데이터를 제공하기 위해 안정적이고 효율적인 데이터베이스 설계가 반드시 필요합니다.
- 개인적으로 공부했던 내용을 정리한 글입니다.
- 내용 중에서 오타 또는 잘못된 내용이 있을 시 지적해 주시기 바랍니다.
'기술 트렌드, 생각 정리 & 회고 > Engineering trends' 카테고리의 다른 글
로드 밸런싱(Load Balancing)의 개념과 특징 (0) | 2023.07.26 |
---|---|
캐싱(Caching) & CORS(교차 출처 리소스 공유, Cross-Origin Resource Sharing) (0) | 2023.07.26 |
마이크로 서비스 아키텍처(Micro Service Architecture, MSA), 모놀리식 아키텍처(Monolithic Architecture) (0) | 2023.02.23 |
댓글