복대가리의 개발

Backend Developer/로드맵

백엔드 로드맵

복대가리 2023. 12. 27. 15:44
728x90

최근 백엔드에 관심이 생겨서 공부해야되는 로드맵을 정리하였습니다.

 

시간 날때마다 틈틈히 공부하며 정리해보겠습니다. (할 수있겠지..?)

 

참고 : https://roadmap.sh/backend

 

Backend Developer Roadmap: What is Backend Development?

Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap.

roadmap.sh

 

Internet

  • 인터넷은 어떻게 동작하나여?
  • HTTP가 무엇인가요?
  • 브라우저란? & 브라우저는 어떻게 동작하는가?
  • DNS는 무엇인가요? 어떻게 동작하나요?
  • 도메인 이름은 무엇인가요?
  • 호스팅은 무엇인가요?

 

내가 배워야 하는 언어

  • Rust
  • Go
  • C#
  • Python

Relational Databases

  • PostgreSQL
  • MySQL
  • MariaDB
  • MS SQL
  • Oracle

API

  • API란 무엇인가요?
  • API는 Application Programing Interface의 약어로, 두 개의 애플리케이션이 서로 통신할 수 있게 해주는 소프트웨어 중개자입니다.

API의 작동

  • SOAP API
  • RPC API
  • Websocket API
  • REST API

Authentication

  • JWT
  • Basic Auth
  • Token Auth
  • OAuth
  • Cookie Based

Caching 

  • 캐싱(Caching)은 자주 사용하는 데이터나 정보를 일정 기간 동안 로컬 메모리에 저장하는 기술이다. 
  • 따라서 다음에 클라이언트가 동일한 정보를 요청할 때 데이터베이스에서 정보를 검색하는 대신 로컬 메모리에서 정보를 제공합니다. 
  • 캐싱의 가장 큰 장점은 처리 부담을 줄여 성능을 향상시킨다는 것입니다.

CDN

  • CDN(Content Delivery Network) 서비스는 웹사이트의 고가용성 및 성능 향상을 제공하는 것을 목표로 합니다. 
  • 이는 일반적으로 클라이언트 요청에 지리적으로 더 가까운 엔드포인트를 통해 웹사이트 자산과 콘텐츠를 빠르게 전달함으로써 달성됩니다. 
  • 기존 상용 CDN(Amazon CloudFront, Akamai, CloudFlare 및 Fastly)은 이러한 목적으로 사용할 수 있는 서버를 전 세계에 제공합니다. 
  • CDN을 통해 자산과 콘텐츠를 제공하면 웹 사이트 호스팅의 대역폭이 줄어들고 추가 캐싱 계층이 제공되어 잠재적인 중단을 줄이고 웹 사이트 보안도 향상할 수 있습니다.

Client Side

  • 클라이언트 측 캐싱은 향후 재사용을 위해 네트워크 데이터를 로컬 캐시에 저장하는 것입니다. 
  • 애플리케이션은 네트워크 데이터를 가져온 후 해당 리소스를 로컬 캐시에 저장합니다. 
  • 리소스가 캐시되면 브라우저는 해당 리소스에 대한 향후 요청 시 캐시를 사용하여 성능을 향상합니다.

Server Side

  • 서버 측 캐싱은 나중에 재사용할 수 있도록 웹 파일과 데이터를 원본 서버에 임시로 저장합니다.
  • 사용자가 웹페이지를 처음 요청하면 웹사이트는 서버로부터 데이터를 검색하는 일반적인 과정을 거쳐 웹사이트의 웹페이
  • 지를 생성하거나 구성합니다. 
  • 요청이 발생하고 응답이 다시 전송된 후 서버는 웹페이지를 복사하여 캐시로 저장합니다.
  • 다음에 사용자가 웹사이트를 다시 방문하면 이미 저장되었거나 캐시된 웹페이지 사본이 로드되므로 속도가 더 빨라집니다.

Redis

  • Redis는 데이터베이스, 캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈 소스(BSD 라이선스), 메모리 내 데이터 구조 저장소입니다. 
  • Redis는 문자열, 해시, 목록, 집합, 범위 쿼리가 포함된 정렬된 집합, 비트맵, 하이퍼로그 로그, 지리공간 인덱스 및 스트림과 같은 데이터 구조를 제공합니다. 
  • Redis에는 복제, Lua 스크립팅, LRU 제거, 트랜잭션 및 다양한 수준의 온디스크 지속성이 내장되어 있으
  • 며 Redis Sentinel 및 Redis 클러스터를 통한 자동 파티셔닝을 통해 고가용성을 제공합니다.

Memcached 

  • Memcached(mem-cash-dee 또는 mem-cashed로 다양하게 발음)는 범용 분산 메모리 캐싱 시스템입니다. 
  • 외부 데이터 소스(예: 데이터베이스 또는 API)를 읽어야 하는 횟수를 줄이기 위해 RAM에 데이터와 개체를 캐싱하여 동적 데이터베이스 기반 웹 사이트의 속도를 높이는 데 자주 사용됩니다. 
  • Memcached는 개정된 BSD 라이센스에 따라 라이센스가 부여된 무료 오픈 소스 소프트웨어입니다. 
  • Memcached는 Unix 계열 운영 체제(Linux 및 macOS)와 Microsoft Windows에서 실행됩니다. 
  • libevent 라이브러리에 따라 다릅니다.

  • Memcached의 API는 여러 시스템에 분산된 매우 큰 해시 테이블을 제공합니다. 
  • 테이블이 가득 차면 후속 삽입으로 인해 가장 최근에 사용된 것(LRU) 순서로 오래된 데이터가 제거됩니다. 
  • Memcached를 사용하는 애플리케이션은 일반적으로 데이터베이스와 같은 느린 백업 저장소로 대체하기 전에 RAM에 요청과 추가를 계층화합니다.
  • Memcached에는 발생할 수 있는 누락을 추적하는 내부 메커니즘이 없습니다. 그러나 일부 타사 유틸리티는 이 기능을 제공합니다.

Web Security Knowledge

  • Hashing Algorithms
    • MD5 ( 현재 사용 X 권장 )
    • SHA Family
    • scrpyt
    • bcrypt
  • HTTPS
  • OWASP Risks
  • CORS
  • SSL/TLS
  • CSP
  • Server Security

Testing

  • Integration Testing
  • Unit Testing
  • Functional Testing

CI / CD

Scaling Databases

  • Database Indexes

More about Databases

  • ORMs
  • ACID
  • Transactions
  • N+1 Problem
  • Normalization
  • Failure Modes
  • Profiling Performance

Software Design & Architecture & Design and Development Principles

  • GOF Design Patterns
  • Domain Driven Design
  • Test Driven Development
  • CQRS
  • Event Sourcing

Architectural Patterns

  • Monolithic Apps
  • Microservices
  • SOA
  • Serverless
  • Service Mesh
  • Twelve Factor Apps

Message Brokers

  • RabbitMQ
  • Kafka

Containerization vs Virtualization

  • LXC
  • Docker
  • Kubernetes

Search Engines

  • Elasticsearch
  • Solr

Web Servers

  • Nginx
  • Apache
  • Caddy
  • MS IIS

Real-Time Data

  • Server Sent EVents
  • WebSockets
  • Long Polling
  • Short Polling 

GraphQL

  • Apollo
  • Relay Modern

NoSQL Databases

  • Document DBs
    • MonogoDB
  • Time Series
    • InfluxDB
  • Realtime
    • Firebase
  • Column DBs
    • Cassandra
  • Key-Value
    • Redis
  • Graph DBs

Building for Scale

728x90