eatthefrog
백엔드 개발자들이 실제로 회사에서 하는 일 본문
프론트엔드 개발자
1) 프로덕트 디자이너와 협업
2) 프론트엔드 개발자의 여갈
3) 디자인 시스템 구축
백엔드 개발자
1) API 개발
2) 데이터베이스 관리
3) 서버 & 클라우드 관리

백엔드 개발자데이터를 저장하는 데이터베이스, 데이터를 처리하기 위한 API 서버, 파일들을 저장하는 스토리지
1) API 개발

백엔드라는 영역은 실제로 굉장히 넓다. 보통 작은 스타트업에서는 소수의 백엔드 개발자가 매니지드 서비스 등을 활용해서 백엔드 서버들의 환경을 구축한다. 하지만 점점 서비스의 규모가 커지면 데이터양이 방대해지기 때문에 백에드 개발자의 역할이 전문적으로 나뉘게 된다. 큰 회사일 수록 그 안에서 전문 분야를 나눠서 맡게 된다.
🥑매니지드 서비스는 개발들을 대신해서 서버 관리를 해준다. 일반적으로 서버를 관리한다는 것은 아래의 작업들이 필요하다.
- 환경 설정 : 서버를 실행하면서 필요한 설정들 (서버를 실행시키기 위한 코드, 연관된 다른 서버와 연결 작업)을 세팅한다.
- 안전성 : 서버에게 정보를 요청하는 횟수가 갑자기 느는 등의 갑작스러운 상황에서도 안정적으로 서버가 동작한다.

API 서버는 클라이언트와 통신해서 데이터를 넘겨준다. 예를 들어 당근마켓의 웹, 앱은 전부 API 서버를 통해 상품 데이터들을 받아오고, 로그인, 결제 등을 수행합니다. 이는 결국 API 서버에게 요청(Request)을 하는거죠. 백엔드 개발자는 API서버에서 클라이언트의 요청에 응답할 수 있도록 API를 개발한다.
IT회사에서는 웹, 앱을 통해 계속 새로운 기능들을 추가한다. 그러면 발 맞춰 백엔드 개발자는 해당 기능을 수행하는 API를 개발하곤 한다.(물론 백엔드 API가 필요없는 기능들도 있다.) 보통 API서버는 데이터베이스와 긴밀하게 연결되어 있다. 로그인, 회원가입, 상품리스트 받기, 결제하기 등의 핵심 기능들은 전부 데이터베이스가 필요하다. 결국 백엔드 개발자는 해당 API 를 개발하면서 동시에 데이터베이스도 다루게 될것이다.
2) 데이터베이스 관리 DBA


데이터베이스에는 서비스에 필요한 모든 데이터들이 들어 있다.
예를 들어 당근마켓 서비스는 유저, 상품, 결제 등의 데이터를 바탕으로 동작한다.
이때 백엔드 개발자는 해당 데이터들을 개념적으로 구분해서 넣을 수 있는 테이블을 설게한다. 그리고 테이블 안에는 필드를 통해 데이터를 구분한다.
상품이라는 테이블을 만들 때는 이메일, 닉네임, 성별 등의 정보들을 저장할 수 있는 필드를 설계한다. 이를 데이터 모델링한다고도 한다.
🥑데이터베이스를 설계할때 ER다이어그램을 이용해서 시각화할 수 있다.
AQueryTool
AQueryTool은 웹 기반 ERD 툴 + SQL 자동 생성 프로그램입니다.
aquerytool.com
그런데 만약 나중에 상품의 할인 기능이 들어가게 된다면 어떻게 될까? 그러면 백엔드 개발자는 할인 기능 관련 데이터도 들어갈 수 있도록 테이블에 새로운 필드를 추가할 것이다. 이는 회사에서 서비스가 발전할 수록 백엔드 개발자도 데이터베이스를 계속 수정하고 확장해 나가는 걸 의미한다.
🥑데이터베이스에 쌓이는 많은 데이터들은 API서버를 통해서 이뤄진다. 예를 들어 유저의 회원가입, 상품 찜하기, 결제 등의 모든 데이터는 API 서버를 거쳐야만 데이터베이스에 쌓이게 된다. 이때 API서버에서 데이터베이스와 통신을 더 쉽게 도와주는 ORM이라는 것이 있다. 백에드 개발자는 API서버를 개발할 때 ORM을 많이 이용한다. 이를 통해 더 빠르고 쉽게 데이터베이스를 다룰 수 있다.
https://hanamon.kr/orm%EC%9D%B4%EB%9E%80-nodejs-lib-sequelize-%EC%86%8C%EA%B0%9C/
3) 서버 & 클라우드 관리
웹을 제공하기 위해서는 웹 서버가 필요하다. 데이터를 제공하기 위해선 데이터베이스 서버가 필요하다. 클라이언트와 데이터를 통신하기 위해선 API서버가 필요하다.

이렇게 IT 서비스를 제공하기 위해선 결국 서버들을 관리해야한다. 요새는 서버를 쉽게 구축할 수 있는 클라우드를 대부준 사용한다고 보면 된다. 결국 백엔드 개발자들은 클라우드를 이용해서 서버들을 구축하게 된다.
서버를 구축한다는 말은 컴퓨터에 클라이언트에게 정보를 줄 수 있는 서버 프로그램을 설치하는 것을 의미한다. 예를 들어 아무 것도 없는 컴퓨터에서 서버 프로그램을 설치하고 그 안에 개발된 코드를 실행시키는 거라고 보면된다.
🥑실제로 IT서비스의 규모가 커지면 관리해야 하는 서버가 늘어난다. 수 많은 클라이언트의 요청을 처리하는 API서버를 돕기 위한 캐시서버, 수많은 클라이언트 로그를 효율적으로 처리하기 위한 분산 처리 서버 등 목적에 맞는 서버들이 나오게 되다.
백엔드 개발자는 서버를 구축하는 것 분만 아니라 효율적으로 관리하기 위해 노력해야한다.

예를 들어 클라이언트가 많아질 수록 API서버는 처리해야 하는 요청량이 점점 많아지게 된다. 그러면 서버가 바빠지면서 응답하느 속도가 느려지게 되고 결국은 유저에게 불편함을 주게 된다. 이를 방지하기 위해 백엔드 개발자는 로드밸런싱 방식을 적용해서 API서버 환경을 개선해야한다. (클라우드에서 쉽게 적용할 수 있다.)
결국 백엔드 개발자는 서버를 효율적으로 관리하기 위해 노력해야한다. 최소한의 비용으로 최대한의 효율을 낼 수 있다면 최고다! (클라우드에서 서버를 많이 사용할 수록 그만큼 돈을 더 내니까)
🥑이렇게 서버들을 효율적으로 관리하기 위해 백엔드 개발자들은 아키텍처 공부를 "열심히"한다. 클라이언트 입장에서는 같은 데이터를 내려주는 건 변함이 없다. 하지만 아키텍처에 따라 응답 속도, 백엔드 개발자가 개발하는 속도 그리고 비용 등 많은 부분이 결정된다.
'백엔드 노트' 카테고리의 다른 글
| GraphQL: A query language for your API 공식문서 읽기 (2) | 2025.06.18 |
|---|---|
| Apollo Server로 GraphQL API 만들기 (0) | 2025.06.16 |
| REST API의 한계와 GraphQL (2) | 2025.06.16 |
| API 서버 (1) | 2024.12.16 |
| 서버 스케일링 처리와 트래픽 병목현상 (1) | 2024.12.16 |