이 글은 roadmap.sh의 2021 버전 백엔드 개발자 로드맵을 번역한 글입니다.
해석이 잘못 되거나 어색한 부분이 있다면 지적해주시면 감사하겠습니다.
일부 주제에 삽입되어 있는 링크는 각 주제에 대해서 입문에 해당하는 내용 위주로 임의로 선정했습니다.
🔥 작성자가 추천하는 학습 대상
💧 대체 가능한 옵션
🌪 로드맵 순서에 구애 받지 않는 대상 (언제든지 배워도 되는 대상)
☁️ 작성자가 추천하지 않는 학습 대상
🔥 인터넷은 어떻게 작동하는가?
🔥 HTTP
는 무엇인가?
HTTP란 무엇인가
🔥 브라우저들(크롬, 파이어폭스 등)과 그들의 작동 원리
브라우저는 어떻게 동작하는가?
🔥 DNS
와 작동원리
DNS와 작동원리
🔥 Domain Name
은 무엇인가?
DomainName과 HostName
🔥 hosting
은 무엇인가?
호스팅이란
프론트엔드 개발, 뭐하는 직종이야?
HTML/CSS/JavaScript의 정의와 차이점
HTML
CSS
JavaScript
grep
, awk
, sed
, lsof
, curl
, wget
, tail
, head
, less
, find
, ssh
, kill
POSIX
기초stdin
, stdout
, stderr
, pipes
언어마다의 특이한 점을 파악할 것 (Make sure to learn its quirks)
언어의runtime
에 대한 핵심적인 디테일을 파악할 것
e.g. 동시성, 메모리 모델
JavaScript
Python
Ruby
Java
C#
PHP
VCS가 무엇이며 왜 내가 사용해야 하는지
Git
기초 사용법계정을 만들고 GitHub의 사용법을 배우기
GitHub
GitLab
Bitbucket
PostgreSQL
MySQL
MariaDB
MS SQL
Oracle
SQL vs NoSQL (MySQL vs. MongoDB)
ORMs
ACID
(트랜잭션이 가져야 하는 4가지 속성)트랜잭션
트랜잭션 특징
부분이 윗 항목인 ACID에 대한 내용입니다.N+1 문제
DB 정규화
인덱스
와 작동 방식리플리케이션
샤딩 전략
CAP 이론
REST
JSON APIs
gRPC
SOAP
HATEOAS
Open API 스펙
과 Swagger
OAuth
Token
인증JWT
(Json Web Token)Cookie
기반OpenID
SAML
CDN
Redis
Memcached
MD5
가 무엇이며, 왜 사용하지 않는가?SHA
알고리즘scrypt
/ bcrypt
HTTPS
CORS
SSL
/ TLS
OWASP
보안 정책유닛 테스트(Unit Test), 통합 테스트(Integration Test), 기능 테스트(Funcional Test)란?
통합 테스트
(Integration Testing)유닛 테스트
(Unit Testing, 단위 테스팅)기능 테스트
(Functional Testing)지속적 통합 / 지속적 제공에 대해서 배우기
CI/CD란 무엇인가 (Feat. DevOps 엔지니어)
SOLID
KISS
YAGNI
DRY
GOF
디자인 패턴DDD
(Domain Driven Design, 도메인 주도 설계)TDD
(Test Driven Development, 테스트 주도 설계)🔥 모놀리식 애플리케이션
(Monolithic Apps)
🔥 마이크로서비스
(Microservices)
모놀리식 / 마이크로서비스
알아두면 깜놀! 넷플릭스 백엔드의 진실!?: 모놀리식과 마이크로서비스에 대해서 다룬 유튜브 영상입니다.
🔥 SOA
SOA 패턴이란
🌪 CQRS
와 이벤트 소싱
🔥 서버리스
(Serverless)
서버리스 아키텍쳐란?
Elasticsearch
Solr
Kafka(이벤트 브로커) vs RabbitMQ(메세지 브로커)
RabbitMQ
Kafka
Docker는 무엇인가? 도커의 기초와 이미지 설치하고 사용
Docker
rkt
LXC
Apollo
Relay Modern
Neo4j
실시간 양방향 통신에 대해서 배우기
Nginx
Apache
Caddy
MS IIS
제품의 지속 가능성을 위해 배우고, 관심을 가져야 함
🔥 마이그레이션 전략
단계적 기능 축소
(Graceful Degradation)스로틀링
(Throttling)Backpressure
서킷 브레이커
(Circuit Breaker)차이점을 이해하기
Instrumentation
vs Monitoring
vs Telemetry
🔥 수직적 확장 vs 수평적 확장
🔥 관찰 가능성을 고려한 확장
log를 남기고, 상태를 관측 가능한 아이템을 사용하는 방법 등을 통해
문제 발생 시 디버깅을 돕고 이슈를 해결하도록 함
// Thanks to... 룡, 짱
next();
정말 너무 유용한 포스팅 감사합니다 !!