본문 바로가기
비개발자의 개발 지식 스터디/개발자가 실제로 하는 일

백엔드 개발자

by 열정주니어 2023. 7. 17.
반응형

백엔드 개발자

  • 백엔드 개발자는 IT 서비스에 필수적인 데이터들과 관련된 모든 프로그램을 관리하는 직군
    • 데이터를 저장하는 데이터베이스, 데이터를 처리하기 위한 API 서버, 파일들을 저장하는 스토리지 등

  • 백엔드라는 영역은 실제로 굉장히 넓음
    • 작은 스타트업에서는 소수의 백엔드 개발자가 매니지드 서비스을 활용해서 백엔드 서버들의 환경을 구축함
    • 서비스의 규모가 커지면 방대한 양의 데이터와 데이터 요청을 다루기 위해서 많은 백엔드 개발자들이 필요해지며, 백엔드 개발자의 역할이 전문적으로 나뉘게 됨
  • 백엔드 개발자는 다양한 역할을 하며 큰 회사일수록 그 안에서 전문 분야를 나눠서 맡음
    • API를 개발하는 API 개발자
    • 데이터베이스를 전문으로 맡는 DBA(데이터베이스 관리자)
    • 클라우드를 전문적으로 맡는 클라우드 엔지니어 등

 

API 개발

  • API 서버는 클라이언트에게 요청을 받아 데이터베이스에서 적절한 데이터를 넘겨주는 역할

  • 백엔드 개발자는 API 서버에서 클라이언트의 요청에 응답할 수 있도록 API를 개발함
    • 로그인, 회원가입, 상품 리스트 받기, 결제하기 등 IT 제품에서 사용하는 많은 기능들은  API 서버에서 나옴
  • 서비스 규모가 커질 수록 API서버를 여럿 두어서 역할 별로 나누기도 함
    • 예를 들면 로그인, 회원가입 등 유저를 담당하는 API 서버와 결제를 담당하는 API 서버로 나눔
    • 이렇게 API 서버를 유형별로 잘개 쪼개서 관리하는 방식으로 마이크로 서비스라는 개념이 존재

 

데이터베이스 관리

  • 데이터베이스에는 서비스에 필요한 모든 데이터들이 들어 있음
    • 당근마켓을 예로 들면 당근마켓 서비스는 유저, 상품, 결제 등의 데이터를 바탕으로 동작하게 됨
    • 이때 백엔드 개발자는 해당 데이터들을 개념적으로 구분해서 넣을 수 있는 테이블(공간)을 설계하게 하고 테이블 안에는 필드를 통해 데이터를 구분하게 됨

  • 상품이라는 테이블을 만들 때는 이메일, 닉네임, 성별 등의 정보들을 저장할 수 있는 필드를 설계하며 이를 데이터 모델링 한다고도 함
    • 데이터베이스를 설계할 때 ER 다이어그램 을 이용해서 시각화를 할 수 있음
  • 만약 나중에 상품의 할인 기능이 들어가게 된다면 백엔드 개발자는 할인 기능 관련 데이터도 들어갈 수 있도록 테이블에 새로운 필드를 추가해야 함
    • 서비스가 발전할수록 동시에 백엔드 개발자도 데이터베이스를 계속 수정하고 확장해 나가는 걸 의미
  • 데이터베이스에 쌓이는 많은 데이터들은 API 서버를 통해서 이뤄짐
    • 유저의 회원가입, 상품 찜하기, 결제 등의 모든 데이터는 API 서버를 거쳐 데이터베이스에 쌓이게 됨
    • 이 때 API 서버에서 데이터베이스와 통신을 더 빠르고 쉽게 도와주는 ORM 이라는 것이 존재

 

서버 & 클라우드 관리

  • 웹을 제공하기 위해서는 웹 서버가 필요하고, 데이터를 제공하기 위해선 데이터베이스 서버가 필요하며 클라이언트와 데이터 통신을 하기 위해선 API 서버 가 필요함
    • 이렇게 IT 서비스를 제공하기 위해선 결국 서버들을 관리해야 함
    • 요새는 서버를 쉽게 구축할 수 있는 클라우드를 대부분 사용

  • 백엔드 개발자들은 클라우드를 이용해서 서버들을 구축함
    • 서버를 구축한다는 것은 컴퓨터에 클라이언트에게 정보를 줄 수 있는 서버 프로그램을 설치하는 것을 의미
    • 아무 것도 없는 컴퓨터에서 서버 프로그램을 설치하고 그 안에 개발된 코드를 실행시키는 것
  • IT 서비스의 규모가 커지면 관리해야 하는 서버들이 늘어남
    • 수많은 클라이언트의 요청을 처리하는 API 서버를 돕기 위한 캐시 서버, 수많은 클라이언트 로그를 효율적으로 처리하기 위한 분산 처리 서버 등 목적에 맞는 서버들이 나오게 됨
    • 백엔드 개발자는 서버를 구축하는 것 뿐만 아니라 효율적으로 관리하기 위해 노력함

  • 클라이언트가 많아질 수록 API 서버는 처리해야 하는 요청량이 점점 많아지게 되고 서버가 바빠지면서 응답하는 속도가 느려지게 되어 결국 유저에게 불편함을 주게 됨
    • 이를 방지하기 위해 백엔드 개발자는 로드밸런싱 방식을 적용해서 API 서버 환경을 개선할 수 있음(클라우드에서 쉽게 적용 가능)
  • 백엔드 개발자는 서버를 효율적으로 관리하기 위해 노력함
    • 최소한의 비용으로 최대한의 효율을 내기 위함
    • 서버들을 효율적으로 잘 관리하기 위해서 백엔드 개발자들은 아키텍처 공부가 필요
    • 클라이언트 입장에서는 같은 데이터를 내려주는 건 변함이 없지만 아키텍처에 따라 응답 속도, 백엔드 개발자가 개발하는 속도 그리고 비용 등 많은 부분이 결정됨

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형