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