본문 바로가기

IT/정보처리기사

[시나공 토막강의] 01-03강 정리

1강. 소프트웨어 생명주기

 

1. 폭포수 모형(Waterfall Model)

 - 위에서 아래로 폭포가 흐르듯, 이전 단계로 돌아갈 수 없음

 - 고전적 모형, 오래되고 폭 넓게 사용, 성공 사례 많음, 단계가 끝나면 명확한 산출물 만들어짐

 - 변화 수용 불가

 

2. 프로토타입 모형(Prototype Model, 원형 모형)

 - 견본품(프로토타입)을 만들고 최종 결과물 예측

 

3. 나선형 모형(Spiral Model, 점진적 모형)

 - 나선을 돌듯 점진적으로 완벽한, 보헴이 제안, 변화 수용성 높음, 유지보수 필요X

 - '계획 수립 -> 위험 분석 -> 개발 및 검증 -> 평가' 의 단계를 반복

 - 폭포수 모형 + 프로토타입 의 장점을 융합하고 '위험 분석' 단계를 추가한 것

 

4. 애자일 모형(Agile Model)

 - 요구사항 변화에 유연하게 대응, 일정 주기 반복 개발, 고객&소통 중심

- 과정, 도구, 문서, 계약, 계획 < 개인, 상호작용, SW, 고객협업, 변화 반응

 - 기능 중심 개발(FDD : Feature Driven Development)

 - 스크럼(Scrum)

 - XP(eXtreme Programming)

 - Lean

 - 칸반(Kanban)

 

5. 소프트웨어 공학

 - 소프트웨어의 위기 극복을 위한 방안, 품질과 생산성 향상이 목적

 

 

2강. 스크럼(Scrum)

 

 1. 스크럼 팀 내 역할

  - 제품 책임자(PO : Product Owner) : 우선순위를 결정하는 사람

  - 스크럼 마스터(SM : Scrum Master) : 스크럼 팀의 가이드 역할

  - 개발 팀(DT : Development Team) : 실제로 개발하는 사람들(PO, SM 제외)

 

 2. 주요 개념

  - 백로그(Backlog) : 제품 책임자가 작성하는 요구사항(스토리들로 구성)

  - 스프린트 계획 회의 : 스크럼 마스터가 주관, 개발 팀 참여, 개발자별로 목표 지정

  - 스프린트(진행) : 2~4주 내 수행할 과정

  - 일일 스크럼 회의 : 15분 동안 진행상황 공유

  - 스프린트 검토 회의 : 제품 책임자가 주관, 요구사항 부합성 테스팅 후 백로그 최신화

  - 소멸 차트(Burn-down Chart) : 남은 작업 시간을 표시, 0으로 수렴함

  - 스프린트 회고 : 규칙 준수 여부와 개선할 점 확인 및 기록

 

 

3강. XP(eXtreme Programming) 기법

 - 고객의 참여를 극대화, 개발 과정 반복, 릴리즈 기간 짧게 반복, 변화 수용성 큼

 - 릴리즈(부분적으로 기능이 완료된 제품)

 

 1. XP의 5가지 핵심 가치 : 의사소통, 피드백, 존중, 용기, 단순성

 

 2. 과정 : 릴리즈 계획 수립(Release Planning) -> 이터레이션(Iteration, 주기) -> 승인 검사(Acceptance Test, 인수 테스트) -> 소규모 릴리즈(Small Release, 출시)

 - 사용자 스토리를 요구사항으로 정리해서 릴리즈 계획 수립, 주기(개발) 반복, 승인 검사 후 출시

 

 3.  XP의 주요 실천 방법

  - Pair Programming(짝 프로그래밍) : 함께 프로그래밍 수행, 공동 책임

  - Collective Ownership(공동 코드 소유) : 개발 코드에 대한 권한과 책임 공동 소유

  - Test-Driven Development(테스트 주도 개발) : 개발 전 테스트 케이스 작성을 통해 할 일 정확히 파악, 자동화 도구(프레임워크) 사용

  - Whole Team(전체 팀) : 개발에 참여하는 모든 구성원(고객 포함)은 각자의 역할이 있고, 책임져야 함

  - Continuous Integration(계속적인 통합) : 하나의 작업 마무리 될 때마다 지속적으로 통합

  - Refactoring(리팩토링) : 기능의 변경없이 시스템 재구성

  - Small Release(소규모 릴리즈) : 릴리즈 기간의 짧은 반복을 통해 요구 변화에 신속 대응