본문 바로가기
인공지능 사람지능

백엔드 로드맵

by adelait 2021. 4. 30.

백엔드에 필요한 영역

1. Tools - Language & Framework
하나의 언어와 프레임워크에 집중한다.
하나의 언어와 프레임워크에 집중하며 그 언어와 프레임워크의 특성과 컨셉을 이해하는데 중점을 둔다.


백엔드 개발 언어와 프레임워크
Language Framework
Python Django
Ruby Ruby on Rails
Node(JavaScript) Express
PHP Laravel
C#, Java, GO ..

백엔드를 개발할 수 있는 언어와 프레임워크는 굉장히 다양한데, 복잡한 컨셉과 서버측 시스템을 설계하는 것 등에 대해 이해하고 공부해야 합니다. 사실 하나의 언어와 프레임워크를 마스터 한다는 것도 굉장히 어렵고 시간이 많이 드므로 이것 저것 건드리지 말고 하나만 집중할 것. 물론 몇개 건드려보고 맞는 언어와 프레임워크를 찾는 것도 좋은 방법일 것 같습니다. 우리나라에서는 JAVA와 Node.js를 많이 사용하고 있는 것 같고 최근 장고 엔지니어를 구하는 공고도 종종 본 것 같습니다.


2. 데이터베이스와 API 설계(Design)
백엔드를 개발한다는 것은 클라우드 또는 서버 컴퓨터에 저장되어 있는 것들을 네트워크로 접근해 가져오고, 웹의 실행을 위해 가져온 데이터를 클라이언트에 제공하는 응용프로그램 입니다. 그리고 그 안의 상태들을 관리하는 일을 백엔드에서 처리해주어야 합니다. 그리고 관리할 상태들과 각종 정보들을 데이터베이스에 저장하고 API같은 형태로 클라이언트에서 접근할 수 있는 방법을 제공해줍니다.



https://velog.io/@rlcjf0014/Database-SQL-vs-NoSQL


따라서 데이터베이스와 API를 설계하는 방법, 구현하는 방법 등에 대해 공부해봅시다.


DB 유형 : SQL(MySQL, MaridDB), NoSQL(MongoDB, 참고)
참고로 NoSQL은 RDBMS 즉 관계형 데이터베이스가 아닌 것을 말함

API 유형 : RESTful API, GraphQL, gRPC ..

어떤 서비스에 어떤 데이터베이스 & API와 어떤 데이터베이스 & API의 설계가 좋은지 알아야 합니다.


3. Network & Security - 인증(Auth), 암호화(Encryption)




서버에서 API로 클라이언트에 정보를 제공할 때 외부에 공개되면 안되는 것들에 대해 보호를 해야하고,
또 데이터베이스에서도 유출되면 안되는 것들에 대해 관리를 해야겠죠.
이것을 위해서는 인증과 암호화에 대해 알아야 합니다. 프레임워크에서 제공해주는 것들로만은 충분하지 않을 경우 어떤 인증과 암호화 방법을 구현해야 할지 고민할 수 있어야 한다고 합니다.


4. Infra



여기는 잘 몰라서 키워드만 적겠습니다. 서버를 만들 수 있는 것과 끊김 없이 대량의 데이터와 사용자에게 원활한 서비스를 제공할 수 있는 서버를 만드는 것의 차이는 '인프라'에 있습니다. 주니어 개발자들에게는 보통 시키지 않는 영역이라고 해요.

클라우드 서비스(AWS, Google Cloud, MS Azure, Severless)
: 로컬 컴퓨터에서 서비스를 하는 것이 아닌 클라우드에 내 서버를 올려 서비스할 수 있는 기술

Docker(Container)
: 컨테이너 기반의 오픈소스 가상화 플랫폼. OS를 가상화한 Virtual Machine의 진화버전. 서버 실행 환경을 추상화 하고 동일한 인터페이스를 제공해 프로그램의 배포와 관리를 쉽게 도와줌. 도커 이미지를 일반컴퓨터와 클라우드 어디에서든 실행할 수 있다.

CI/CD(Continous Integration/Continuous Delivery) 파이프라인
: 지속적 통합, 지속적 제공이라는 뜻으로 개발 단계를 자동화하여 앱을 짧은 주기로 고객에게 배포하는 방법.(참고) 대표적인 플랫폼으로 Kubernetes(Orchestration)가 있다.

Message Queues
: 메시지 기반의 미들웨어로 메시지를 이용하여 여러 어플리케이션, 시스템, 서비스들을 연결해주는 솔루션

Distributed Systems(분산 시스템)
: 다양한 기계들을 이어지게 만들어 각각의 application을 같은 상호작용을 제공한다. 미들웨어 덕분에 하나의 시스템으로 구성된다.

Distributed Cache(분산 캐시)

Load Balancing

Reliability & Scaleability

'인공지능 사람지능' 카테고리의 다른 글

공대 류태영 찜뽕  (0) 2021.05.04
주식증서 발행 박제  (0) 2021.05.04
일자리수요로봤을때 웹 백엔드 강세  (0) 2021.04.29
개발개발  (0) 2021.04.29
it 직무  (0) 2021.04.29