Learning
토픽 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. 애자일과 DevOps27개스크럼, 칸반, 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. 마이크로서비스와 API20개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)