강좌
8개의 강좌 · 목차와 위키는 로그인 없이 열람할 수 있습니다
시스템 설계
시스템 설계(System Design)는 소수의 사용자를 상대하던 프로그램이 수백만 사용자 규모의 서비스로 성장할 때, 소프트웨어를 어떤 구조로 조직하고 어떤 기술 요소를 조합할지를 결정하는 작업입니다. 이 강좌는 시스템 설계의 기본 개념과 성능·확장성·지연 시간·처리량 같은 핵심 지표, 분산 시스템의 일관성(Consistency)과 가용성(Availability) 패턴, 캐싱(Caching)·비동기 처리(Asynchronism)·통신 프로토콜 같은 핵심 구성 요소, 성능을 떨어뜨리는 안티패턴(Antipattern), 모니터링과 안
소프트웨어 설계 및 아키텍처
이 강좌는 잘 읽히는 코드에서 시작해 시스템 전체 구조까지 이어지는 소프트웨어 설계 및 아키텍처(Software Design & Architecture)의 핵심 개념을, Python으로 직접 실행하며 익히는 강좌입니다. 클린 코드(Clean Code) 원칙과 프로그래밍 패러다임(Programming Paradigm)에서 출발해 SOLID 원칙, GoF 디자인 패턴(Design Pattern), 계층형 아키텍처(Layered Architecture)·마이크로서비스(Microservices) 같은 아키텍처 스타일과 패턴을 여섯 개 레슨
소프트웨어 아키텍트
소프트웨어 아키텍트(Software Architect)는 시스템 전체를 조망하며 기술 표준, 도구, 설계 원칙, 플랫폼 같은 높은 수준의 설계 선택을 내리는 역할입니다. 이 강좌는 아키텍처와 아키텍트의 정의와 아키텍처 수준(애플리케이션·솔루션·엔터프라이즈), 아키텍트의 책임, 아키텍처 의사결정과 ADR(Architecture Decision Record), 설계 원칙과 패턴, 아키텍처 스타일과 기술 선택, 문서화·표준·커뮤니케이션까지 여섯 개 레슨으로 구성됩니다. 강좌 순서는 `docs/SW-Developer-Roadmap/soft
Scala
Scala는 2004년 마틴 오더스키(Martin Odersky)가 공개한 JVM(Java Virtual Machine) 기반 언어로, 객체지향과 함수형 프로그래밍(Functional Programming)이라는 두 패러다임을 하나의 언어에 결합한 것이 특징입니다. 정적 타입(Static Type) 언어이면서 문법이 간결해 같은 동작을 Java보다 짧게 표현할 수 있고, 데이터 엔지니어링의 대표 도구인 Spark(스파크)처럼 대규모 분산 처리 생태계에서도 널리 쓰입니다. 이 강좌는 Scala 3.3.8과 JDK 17 기준으로, 실행
Rust
Rust는 메모리 안전성(Memory Safety)을 컴파일 시점에 보장하는 시스템 프로그래밍 언어입니다. 가비지 컬렉터(Garbage Collector; GC) 없이 소유권(Ownership) 규칙으로 메모리를 관리하므로, C·C++ 수준의 성능을 내면서도 대부분의 메모리 오류를 실행 전에 막습니다. 이 강좌는 roadmap.sh의 Rust 로드맵을 따라, 언어가 왜 필요한지부터 시작해 개발 환경 구성, 변수와 제어 흐름, 소유권과 빌림(Borrowing), 구조체(Struct)·열거형(Enum)·트레이트(Trait), 오류 처리
LeetCode
이 강좌는 코딩 인터뷰(Coding Interview) 대비 문제 풀이 플랫폼인 리트코드(LeetCode)의 학습 경로를 Python으로 대표 문제를 직접 풀며 익히는 강좌입니다. 리트코드 로드맵(`docs/SW-Developer-Roadmap/leetcode.md`)이 제시하는 18개 유형 중 면접에서 가장 자주 출제되는 배열·해싱(Array & Hashing), 투 포인터(Two Pointer), 슬라이딩 윈도우(Sliding Window), 스택(Stack), 이진 탐색(Binary Search), 연결 리스트(Linked L
자료구조와 알고리즘
이 강좌는 모든 개발 분야의 밑바탕이 되는 자료구조(Data Structure)와 알고리즘(Algorithm)의 핵심 개념을, Python으로 직접 실행하며 익히는 강좌입니다. 데이터를 저장하고 탐색하는 다섯 가지 기본 자료구조(배열, 연결 리스트, 스택, 큐, 해시 테이블)에서 시작해, 알고리즘의 효율을 따지는 복잡도(Complexity) 분석, 정렬과 검색, 트리와 그래프 탐색, 힙(Heap)·트라이(Trie) 같은 심화 자료구조와 투 포인터(Two Pointer)·슬라이딩 윈도우(Sliding Window)·동적 계획법(Dyn
컴퓨터과학
이 강좌는 프로그래밍 언어나 프레임워크에 매이지 않는 컴퓨터과학(Computer Science)의 기초 개념을, 직접 실행해 보며 익히는 강좌입니다. 컴퓨터과학 로드맵(`docs/SW-Developer-Roadmap/computer-science.md`)이 제시하는 항목 가운데 컴퓨터가 프로그램을 실행하는 원리(폰 노이만 구조, 레지스터, CPU 캐시, 비트 연산), 데이터의 표현(문자 인코딩, 엔디언, 부동소수점), 운영체제(프로세스, 스레드, 스케줄링, 동기화), 네트워크(OSI·TCP/IP 모델, DNS, HTTP, TLS,