본문 바로가기
필수 개발지식/개념정리, 유용한팁

백엔드 개발자(Backend Developer)란?

by 코딩하는짱구 2023. 5. 9.
반응형

 개요: 백엔드 공부를 하면서 막상 백엔드 분야에 어떤 기술들이 있는지, 어떤것을 목표로 해야하고 어느 방향성으로 나가야 할지 감이 잡히지 않아서 작성했다.

 

 

 

✅백엔드 개발자가 되기위해 알아야 할 것들


프론트엔드 개발자(Frontend Developer)는 눈에 보이는 개발을 한다면

백엔드 개발자(Backend Developer)는 눈에 보이지 않는 것들을 개발한다.


 

백엔드 개발자(Backend Developer) 되기 위해 알아야 할 것들은 다음과 같다.

 

 

1. API 개발 (REST API)

백엔드 개발자의 시작은 바로 프론트엔드와 연동하기 위한 API 개발이다. 그래서 백엔드 개발자가 되기로 마음을 먹었다면 '원하는 기능의 API를 만들어야지' 라고 생각 하면된다. 그중에서도 REST API를 시작하면 좋은 이유는 오랫동안 API개발의 표준 처럼 사용 되어 왔고 서버개발의 전반적인 흐름을 이해 하는데 도움이 되기 때문이다. 최근에는 GraphQL을 도입하는 회사들도 많아지고 개발 생산성도 좋은 편이지만 아직 까지는 좋은 백엔드 개발자가 되기 위해서는 REST API를 먼저 익히고 학습 하는게 좋다고 생각한다.

 

2. 개발 언어와 웹 프레임워크 (Language & Web Framework)

앞서 얘기한 REST API를 실제로 개발하기 위해 필요한 도구가 바로 개발 언어와 웹 프레임워크이다. 이미 알고 있겠지만 백엔드 개발을 위한 개발 언어와 웹 프레임워크는 NodeJS (JavaScript, TypeScript), Ruby On Rails, Python Django, Spring Boot(Java, Kotlin), golang 등 아주 다양하다. 

 

개발 언어와 웹 프레임워크를 처음 부터 고민하는 분이라면 개인적으로는 NodeJS (TypeScript)를 추천한다.

추천하는 이유는 아래와 같다.

  • ReactJS, NextJS 등 훌륭한 프론트엔드 개발 언어와 같은 언어를 사용한다는점
  • TypeScript 이후 기존 JavaScript 의 단점들을 보완하여 정적 타입 체킹을 통해 자동완성이나 잘못된 변수/함수 사용에 대한 에러 알림 등이 가능해져 개발시 안정적인 코드를 만들 수 있음
  • Serverless 에 가장 편리하고 적합하게 사용 할수 있음

 

3. 서버 기본 지식 (Server)

백엔드 개발자가 되기로 마음을 먹었다면 일단 AWS의 EC2 Instance 와 친해져야 한다. 그리고 EC2 Instance에 올라가는 이미지들이 주로 Linux 기반의 OS라서 Linux 주요 커맨드 들도 잘 알고 있으면 좋다. AWS말고 GCP (Google Cloud Platform) 도 있지만 개인적으로 AWS에 익숙하다보니 앞으로 이야기들은 대부분 AWS 관리형 서비스 (AWS Managed Service) 중심으로 진행 할 예정이다. AWS EC2 Instance를 이해 했다면 지금은 조금 이해하기 어려운 개념 일 수도 있지만 AWS는 AWS Elastic Beanstalk과 같은 관리형 플랫폼 서비스를 이해 하면 좋다. PaaS 라고도 볼 수 있는데 원하는 개발 결과물 코드만 있으면 기본 인프라 구성, 배포, 애플리케이션 버전 제어, 자동 확장 기능까지 전체 시스템을 구축 해준다. 간단하더라도 웹 프레임워크를 통해 API 개발을 성공 했다면 AWS Elastic Beanstalk 환경을 구성해서 배포 까지 해볼 것을 추천한다. 

 

5. 네트워크 기본 지식 (Network)

웹 프레임워크를 통해 API 개발을 서버 또는 위에서 언급한 AWS Elastic Beanstalk 위애 올렸다면 그 뒤로 필요한 지식은 네트워크에 대한 기본 지식이다. 일단 REST API의 기반이 되는 HTTP 부터 원하는 Domain 에 연결하여 서비스 하기 위한 DNS, EC2 에 접속하기 위한 SSH 연결 그리고 지금 자세히 다루지는 않겠지만 서버가 올라가기 위한 기본 네트워크 구성 (VPC, Routing Table, Subnet)등 서버 동작 전체를 잘 이해 하기 위해서는 네트워크에 대한 기본 지식이 필요하다.

 

6. 데이터베이스 (Database)

개인적으로 백엔드 개발자로서 가장 중요한 분야는 바로 데이터베이스라고 생각한다. API 개발이 백엔드 개발 중에서 프론트엔드와 연동하는 가장 앞단에 있다면 데이터베이스의 경우 가장 뒷단에서 개발하고자 하는 서비스를 위해 필요한 데이터를 체계적으로 저장하는 데이터 저장소의 역할을 한다. 데이터베이스의 종류는 MySQL와 같은 관계형 데이터베이스 (Relational Database : RDB) 에서 부터 MongoDB, Redis, ElasticSearch 등 NoSQL 까지 다양한 종류가 있는데 백엔드 개발자를 시작 한다면 개인적으로 MySQL와 같은 관계형 데이터베이스 부터 시작 하는 것을 추천한다.

백엔드 개발자를 시작하시는 분들에게 MySQL와 같은 RDB를 추천 하는 이유는 다음과 같다.

  • 데이터를 정형화하고 모델링하는 연습을 할수 있고
  • 다양한 데이터 베이스가 쓰이는 있지만 여전히 현업에서 가장 우선적으로 고려되는 저장소 있고
  • 데이터를 다룰수 있는 SQL 쿼리의 개념을 잘 이해 할수 있음

데이터베이스에서 중요한 개념 중에 하나는 바로 CRUD이다. CRUD는 대부분의 데이터베이스의 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 가리키는 말이다.

그리고 실제 Create(생성), Read(읽기), Update(갱신), Delete(삭제) 등의 CRUD 개발 작업을 할때 실제 쿼리를 이용하여 개발 하는 경우도 있지만 ORM (Object-relational mapping) 같은 추상화된 프레임워크를 사용 하는 경우가 많다. 결국 API 개발하면서 필요한 데이터베이스를 설계 하고 ORM 을 이용하여 간단하게 데이터베이스와 연동하는 코드를 작성 할수 있다.

 

7. 분산 스토리지 (Distributed Storage)

데이터베이스가 서비스에 필요한 데이터를 저장 한다면 사진, 동영상 등 서비스에 필요한 파일들은 어디에 저장 할까? 서비스에 필요한 서비스들을 저장하는 공간이 바로 분산 스토리지 (Distributed Storage)이다. 분산 스토리지라는 단어가 생소 할수 있는데 클라우드 기반의 파일 저장소 라고 생각하면 된다. 이미 친숙한 AWS S3 (Simple Storage Service) 가 바로 분산 스토리지 중의 하나이다.

예전에는 서버에서 직접 파일들을 관리하는 경우도 있었는데 구글 파일 시스템 (Google File System) 논문을 발표하고 AWS S3 (Simple Storage Service) 가 보편화 되면서 분산 스토리지가 백엔드 개발을 위한 파일 저장소로 자리 잡게 되었다.

 

 

 

 

 

 

 


✅백엔드 개발 공부 순서

1. 프로그래밍언어

Python, Node.js, Java, Ruby, Golang

2. 프레임워크

  • Python: Django, Flask
  • Node.js: Express.js, Nest.js
  • Java: Spring, Spring Boot
  • Ruby: Ruby on Rail
  • Golang: Gin

3. 데이터베이스

관계형데이터베이스(RDBMS), NoSQL 등 

4. 클라우드 서비스

AWS, Googld Cloud 등 

5. 성능 최적화 기술

캐시, 로드 밸런싱, CDN 등

 

 

 

 

 


✅백엔드 개발자의 주요 업무

  • 백엔드 서버 개발 및 유지 보수
  • 효율적인 API 설계
  • 대용량 데이터, 트래픽을 고려한 서버 설계 및 구현
  • 서버 개발, 서버 인프라 관리
  • 운영중인 서버의 유지 보수 및 관리
  • 신규 서비스 개발 기획
  • 웹 프레임 워크 및 내부 관리 툴 개발 
  • 인프라 아키텍쳐 설계
  • 데이터 베이스 설계 및 관리
  • 기술 공유
  • 그 밖의 협업

 

아래 링크에 백엔드 개발자들이 현업에서 어떤 작업을 하는지 상세하게 나와있다.

 

참고문헌: https://brunch.co.kr/@13335218e68a4e8/99

 

[채용공고 톺아보기] #7 백엔드 개발에 필요한 역량은

레디미의 채용공고 분석 콘텐츠 #7 보이지 않는 부분에서 서비스를 작동시켜요, 백엔드 개발자 수학을 좋아하시나요? 딥러닝에 관심이 많으시나요? 협업이 두렵지 않으시나요? 책임감이 강하시

brunch.co.kr

 

 

 

참고문헌: https://www.developerfastlane.com/blog/backend-developer-study-plan

 

백엔드 개발자를 위한 공부 순서와 커리큘럼 | 코딩추월차선

프로그래밍 언어, 프레임워크 활용, 데이터베이스, 클라우드 지식 등 백엔드 개발자를 위한 공부 순서와 커리큘럼에 대해 정리 해보았습니다.

www.developerfastlane.com

 

 

반응형