토픽 1 / 214
토픽 관계도
소프트웨어공학 - 토픽 관계도
💡
이 관계도는 전체 토픽의 구조와 연결 관계를 보여줍니다. 학습 전에 전체 흐름을 파악하세요.
토픽 마인드맵
mindmap
root((소프트웨어공학<br/>199개 토픽))
Part 1. 소프트웨어공학 개요
소프트웨어공학 (Software Engineering)
소프트웨어 위기 (Software Crisis)
Lehman의 소프트웨어 변화 법칙 (Lehman's Laws of Software Evolution)
소프트웨어 3R (Reverse Engineering / Re-Engineering / Reuse)
ALM (Application Lifecycle Management)
Part 2. SDLC와 방법론
전통적 모델
SDLC (Software Development Life Cycle)
폭포수 모델 (Waterfall Model)
V-Model (V자 모델)
프로토타이핑 모델 (Prototyping Model)
나선형 모델 (Spiral Model)
반복적/점진적 개발 (Iterative/Incremental Development)
RAD (Rapid Application Development)
방법론 관리
개발방법론 테일러링 (Methodology Tailoring)
AI-Native SDLC (AI 네이티브 소프트웨어 개발 수명주기)
로우코드/시민개발
로우코드/노코드 (Low-Code/No-Code)
시민 개발자 (Citizen Developer)
규모/비용 산정
기능점수 (Function Point)
COCOMO (Constructive Cost Model)
Part 3. 애자일과 DevOps
애자일 방법론
애자일 (Agile)
애자일 선언문 (Agile Manifesto)
스크럼 (Scrum)
스크럼 역할 (Scrum Roles)
스크럼 이벤트 (Scrum Events)
스크럼 산출물 (Scrum Artifacts)
칸반 (Kanban)
XP (Extreme Programming)
린 소프트웨어 개발 (Lean Software Development)
가치 흐름 매핑 (VSM, Value Stream Mapping)
확장 애자일 프레임워크 (Scaled Agile)
DevOps/SRE
DevOps
IaC (Infrastructure as Code)
SRE (Site Reliability Engineering)
CI (Continuous Integration, 지속적 통합)
CD (Continuous Delivery/Deployment)
배포 전략 (Deployment Strategy)
무중단 배포 전략 (Zero-Downtime Deployment)
피처 플래그 (Feature Flag/Toggle)
DataOps
내부 개발자 플랫폼 (IDP)
Trunk-Based Development
DORA Metrics (DevOps Research and Assessment)
Chaos Engineering
협업 개발 기법
Mob Programming (몹 프로그래밍)
페어 프로그래밍 (Pair Programming)
기술 스파이크 (Technical Spike)
Part 4. 요구공학
요구공학 (Requirements Engineering)
요구사항 도출 (Requirements Elicitation)
요구사항 명세서 (SRS: Software Requirements Specification)
유스케이스 (Use Case)
사용자 스토리 (User Story)
비기능 요구사항 (Non-Functional Requirements)
요구사항 추적 매트릭스 (RTM, Requirements Traceability Matrix)
요구사항 변경 관리 (Requirements Change Management)
Part 5. 소프트웨어 설계와 아키텍처
아키텍처
소프트웨어 아키텍처 (Software Architecture)
이벤트 기반 아키텍처 (EDA, Event-Driven Architecture)
계층형 아키텍처 (Layered Architecture)
Clean Architecture
아키텍처 평가 방법론 (Architecture Evaluation)
UML
UML (Unified Modeling Language)
클래스 다이어그램 (Class Diagram)
시퀀스 다이어그램 (Sequence Diagram)
활동 다이어그램 (Activity Diagram)
상태 다이어그램 (State Diagram)
설계 원칙/패턴
디자인 패턴 (Design Pattern)
GoF 디자인 패턴 심화 (Gang of Four Design Patterns)
SOLID 원칙
MVC / MVP / MVVM
DI (Dependency Injection) / IoC (Inversion of Control)
응집도와 결합도 (Cohesion & Coupling)
도메인 설계
Event Storming
Part 6. 소프트웨어 테스트
테스트 기본
소프트웨어 테스트 (Software Testing)
테스트 수준 (Test Levels)
블랙박스 테스트 (Black-box Testing)
경계값 분석 / 동등 분할 (BVA / EP)
화이트박스 테스트 (White-box Testing)
테스트 피라미드 (Test Pyramid)
E2E 테스트 (End-to-End Testing)
테스트 커버리지 (Test Coverage)
테스트 자동화/주도 개발
테스트 자동화 (Test Automation)
TDD (Test-Driven Development)
BDD (Behavior-Driven Development)
SIL/HIL 테스팅 (Software-in-the-Loop / Hardware-in-the-Loop Testing)
고급 테스트/검증
정형 기법 (Formal Methods)
소프트웨어 테스트 심화
AI 코드 품질 검증 (AI Code Verification)
Property-Based Testing
Contract Testing
Mutation Testing (돌연변이 테스트)
Part 7. 소프트웨어 품질과 프로세스
품질 모델/표준
소프트웨어 품질 (Software Quality)
ISO 25010 (SQuaRE)
CMMI (Capability Maturity Model Integration)
소프트웨어 메트릭 (Software Metrics)
QC 7도구 (품질관리 7가지 도구)
Benchmark Test / PoC / Pilot Test
신뢰성/안전성
소프트웨어 신뢰성 성장 모델 (Software Reliability Growth Model)
FTS (Fault-Tolerant System, 결함 허용 시스템)
SW 안전성 분석 (FTA/FMEA/HAZOP)
소프트웨어 기능안전 (IEC 61508)
코드 품질 관리
코드 리뷰 (Code Review)
코드 리뷰 베스트 프랙티스 (Code Review Best Practices)
기술 부채 (Technical Debt)
Code Smell (코드 스멜)
리팩토링 (Refactoring)
리팩토링 기법 (Refactoring Techniques)
Static Code Analysis (정적 코드 분석)
SAST/DAST (정적/동적 애플리케이션 보안 테스트)
SonarQube
평가/설계
소프트웨어 영향평가 (Software Impact Analysis)
UX 설계 / 사용성 평가 (UX Design / Usability Evaluation)
그린 소프트웨어 엔지니어링 (Green Software Engineering)
Part 8. 형상관리와 버전관리
형상관리 (Configuration Management)
형상 통제 위원회 (CCB, Configuration Control Board)
Git
Git 브랜치 전략 (Git Branch Strategy)
Monorepo vs Polyrepo
Part 9. 마이크로서비스와 API
MSA 핵심
마이크로서비스 아키텍처 (MSA)
API Gateway
서킷 브레이커 (Circuit Breaker)
12-Factor App
조합성 (Composability)
DDD
DDD (Domain-Driven Design)
DDD 전략적/전술적 설계
Bounded Context / Context Map
API 설계
API 설계 (API Design)
API Versioning (API 버전 관리)
OpenAPI (Swagger)
REST API
GraphQL
AsyncAPI
BFF (Backend For Frontend)
서비스 분해/마이그레이션
서비스 분해 패턴
Strangler Fig 패턴
서비스 간 통신
인프라 패턴
사이드카 패턴 (Sidecar Pattern)
Ambassador Pattern (앰배서더 패턴)
Part 10. 소프트웨어 표준과 법제도
국제 표준
ISO 12207
ISO 15504 (SPICE)
ISO 9001
IEEE 830 (SRS 표준)
IEEE 1471 (ISO 42010)
국내 법제도
소프트웨어진흥법
SW사업 대가산정 가이드
전자정부 표준프레임워크
전자정부법
인증
GS인증 (Good Software)
SP인증 (Software Process)
오픈소스
오픈소스 라이선스 (Open Source License)
Inner Source (이너소스)
Part 11. 프로그래밍 패러다임
프로그래밍 패러다임 (Programming Paradigm)
객체지향 프로그래밍 (Object-Oriented Programming)
AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)
함수형 프로그래밍 (Functional Programming)
리액티브 프로그래밍 (Reactive Programming)
타입 시스템 (Type System)
DSL (Domain-Specific Language)
Rust / 메모리 안전 언어 (Memory-Safe Language)
SDx (Software Defined Everything)
Part 12. 시스템 아키텍처와 패턴
아키텍처 기본
시스템 아키텍처 (System Architecture)
품질 속성 (Quality Attributes)
4+1 뷰 모델 (4+1 View Model)
C4 Model
ATAM (Architecture Tradeoff Analysis Method)
아키텍트 역할 (TA/AA/DA/BA)
Conway's Law (콘웨이 법칙)
아키텍처 패턴
아키텍처 패턴
헥사고날 아키텍처 (Hexagonal Architecture)
어니언 아키텍처 (Onion Architecture)
3-Tier / N-Tier 아키텍처
모놀리식 아키텍처 (Monolithic Architecture)
모듈러 모놀리스 (Modular Monolith)
통신/메시징 패턴
Pub/Sub 패턴
CQRS / Event Sourcing (명령-조회 책임 분리 / 이벤트 소싱)
메시지 큐 (Message Queue)
Apache Kafka
RabbitMQ
비동기 처리 패턴
멱등성 (Idempotency)
플랫폼/미들웨어
Platform Engineering (플랫폼 엔지니어링)
미들웨어 (Middleware)
Part 13. 배포/운영 패턴과 회복탄력성
분산 시스템
분산 시스템 기본 원리
서비스 디스커버리 (Service Discovery)
설정 관리 (Configuration Management)
배포 전략
블루-그린 배포
카나리 배포
롤링 배포
회복탄력성 패턴
재시도 패턴 (Retry Pattern)
벌크헤드 패턴 (Bulkhead Pattern)
회복탄력성 (Resilience)
Graceful Degradation (우아한 성능 저하)
Rate Limiting / Throttling (속도 제한)
Backpressure (백프레셔)
Cache Stampede 방지 (캐시 스탬피드)
신뢰성/자율
디지털 면역 체계 (Digital Immune System)
자가 치유 시스템 (Self-Healing System)
CRDT (Conflict-free Replicated Data Type)
아키텍처/HA
Cell-Based Architecture
Active-Active / Active-Passive
분산 트랜잭션
Outbox Pattern (아웃박스 패턴)
Transactional Outbox (트랜잭셔널 아웃박스)주요 카테고리별 토픽 수
| Part | 토픽 수 | 주요 기술 |
|---|---|---|
| Part 1. 소프트웨어공학 개요 | 5개 | 소프트웨어공학, 소프트웨어 위기, Lehman 법칙, 3R, ALM |
| Part 2. SDLC와 방법론 | 13개 | 폭포수, V-Model, 나선형, RAD, 테일러링, AI-Native SDLC, 기능점수, COCOMO |
| Part 3. 애자일과 DevOps | 27개 | 스크럼, 칸반, XP, 린, DevOps, CI/CD, SRE, IaC, DORA Metrics, Chaos Engineering |
| Part 4. 요구공학 | 8개 | 요구사항 도출, SRS, 유스케이스, 사용자 스토리, RTM |
| Part 5. 소프트웨어 설계와 아키텍처 | 17개 | 아키텍처, UML, 디자인 패턴, GoF, SOLID, MVC/MVP/MVVM, Clean Architecture |
| Part 6. 소프트웨어 테스트 | 18개 | 테스트 수준, TDD, BDD, 정형 기법, Property-Based, Contract, Mutation Testing |
| Part 7. 소프트웨어 품질과 프로세스 | 22개 | ISO 25010, CMMI, 코드 리뷰, 리팩토링, SAST/DAST, SonarQube, 기능안전 |
| Part 8. 형상관리와 버전관리 | 5개 | 형상관리, CCB, Git, 브랜치 전략, Monorepo |
| Part 9. 마이크로서비스와 API | 20개 | MSA, API Gateway, DDD, REST, GraphQL, AsyncAPI, 서비스 분해 |
| Part 10. 소프트웨어 표준과 법제도 | 13개 | ISO 12207, ISO 15504, IEEE 830, GS인증, SP인증, 오픈소스 라이선스 |
| Part 11. 프로그래밍 패러다임 | 9개 | OOP, AOP, FP, 리액티브, 타입 시스템, DSL, Rust, SDx |
| Part 12. 시스템 아키텍처와 패턴 | 22개 | 시스템 아키텍처, C4 Model, ATAM, 헥사고날, CQRS, Kafka, RabbitMQ |
| Part 13. 배포/운영 패턴과 회복탄력성 | 20개 | 분산 시스템, 블루-그린/카나리/롤링 배포, 회복탄력성, CRDT, Outbox |
총 199개 토픽 (13개 Part)