nayeoniee
개발공부 노트
nayeoniee
전체 방문자
오늘
어제
  • 분류 전체보기 (53)
    • Deep Learning (16)
      • 개념 정리 (6)
      • 논문 리뷰 (2)
      • 논문 구현 (0)
      • Object Detection (8)
    • Algorithm (16)
      • 개념 정리 (5)
      • 이코테 (1)
      • baekjoon (5)
      • programmers (4)
      • LeetCode (1)
    • Project (4)
      • Boostcamp AI Tech (4)
    • 자격증 (16)
      • AWS (1)
      • 정보처리기사 필기 (15)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • F1 Score
  • BFS
  • KLUE
  • 1-stage
  • 그래프
  • 회고
  • wandb
  • re
  • 데이터제작
  • boostcamp
  • 운영체제 #데이터베이스 관리시스템 #웹애플리케이션 #오픈소스 #OS #DBMS #WAS
  • dp
  • 현행시스템파악
  • aif-c01
  • 딥러닝
  • selective search
  • LIS
  • ELECTRA
  • FLOPs
  • spatial pyramid pooling
  • 프로그래머스
  • object detection
  • 백준
  • 2-stage
  • 이코테
  • python
  • 알고리즘
  • Anchor box
  • 이진탐색
  • 서로소 집합

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
nayeoniee

개발공부 노트

자격증/정보처리기사 필기

3. XP 기법

2020. 8. 26. 20:39

[ SECTION 3. XP (extreme programming)기법 ] -> 애자일 모형이 추구하는 고객과의 소통을 극도로 끌어올림

 

Ⅰ. XP

⇒ 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화한 방법

  • 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여
  • 릴리즈 기간을 짧게, 소규모 인원 개발 프로젝트에 효과적
  • 릴리즈: 프로그램을 배포하는 단위, 부분적으로 기능이 완료된 제품을 제공
  • 5가지 핵심 가치: 피존용단소- 피드백, 존중, 용기, 단순성, (의사)소통

Ⅱ. XP 개발 프로세스-> 순서, 각 단계마다 하는 일!!

사릴스이승소/ 사용자 스토리-릴리즈 계획-스파이크-이터레이션-승인검사-소규모 릴리즈

(축소판) 릴리즈 계획-이터레이션-승인검사-소규모릴리즈

① 사용자 스토리 (User Story)

  • 고객의 요구사항을 시나리오로 표현
  • 내용은 기능 단위로 구성, test case도 기재

② 릴리즈 계획 수립 (Release Planning)

  • 부분 or 전체 개발 완료 시점에 대한 일정을 수립

③ 스파이크 (Spike)

  • 전체기능과 상관없이 특정기능 하나에 대한 테스트를 하기 위해 작성되는 프로그램
  • 요구사항의 신뢰성을 ↑, 기술문제에 대한 위험↓

④ 이터레이션 (Iteration)

  • 릴리즈를 더 세분화한 것, 1~3주 기간동안 진행
  • 스파이크 완성 이후에 진행
  • 이 기간 동안 새로운 스토리가 작성될 수 있음-> 진행 중 or 다음 이터레이션에 포함됨

⑤ 승인 검사 (Acceptance Test, 인수 테스트)

  • 1개의 iteration안에서 계획된 릴리즈 단위 제품이 완성되면 수행하는 테스트
  • 고객이 직접 수행, 테스트가 완료되면 다음 iteration 수행
  • 테스트 이후 요구사항이 추가되거나 우선순위가 바뀔 수 있음

⑥ 소규모 릴리즈 (Small Release)

  • 소규모 릴리즈-> 고객의 반응을 기능별로 확인 가능-> 고객의 요구사항에 유연하게 대응
  • 릴리즈가 최종 제품이 아닌 경우 다음 릴리즈 단계를 진행함

 

Ⅲ. XP의 주요 실천 방법(practice)

  1. Pair Programming (짝 프로그래밍): 다른 사람과 함께 프로그래밍을 수행-> 책임을 공동으로 나눠 가짐
  2. Test-Driven Development (테스트 주도 개발): 실제 코드를 작성하기 전 테스트 케이스를 먼저 작성-> 자신이 무엇을 해야할지 정확히 파악, 테스트가 지속적으로 진행될 수 있도록 자동화된 테스팅 도구를 사용함
  3. Whole Team (전체 팀): 개발에 참여하는 모든 구성원은 각자 자신의 역할이 있고 그에 대한 책임을 가져야 함
  4. Continuous Integration (지속적, 계속적인 통합): 모듈 단위로 개발된 코드들은 하나의 작업이 마무리될 때마다 통합됨
  5. Design Improvement (디자인 개선)/ Refactoring: 프로그램 기능을 변경하지 않고 단순화, 유연성 강화를 통해 시스템을 재구성
  6. Small Release: 릴리즈 기간을 짧게 반복해 고객의 요구사항 변화에 신속히 대응
  • 자동화된 테스팅 도구 사용을 권장한다. (테스트를 많이 하니까)
  • 테스트 이후 새로운 요구사항이 작성되거나 요구사항의 상대적 우선순위가 변경될 수 있다.
  • 모든 개발자들이 전체 코드에 대한 공동 책임을 가지며, 개발자 누구든지 어떤 코드라도 변경 가능함

'자격증 > 정보처리기사 필기' 카테고리의 다른 글

5. 개발 기술 환경 파악  (0) 2020.08.26
4. 현행 시스템 파악  (0) 2020.08.26
2강. 스크럼 기법  (0) 2020.08.26
1강. 소프트웨어 생명주기  (0) 2020.08.26
정처기 공부 시작~!  (0) 2020.08.26
    '자격증/정보처리기사 필기' 카테고리의 다른 글
    • 5. 개발 기술 환경 파악
    • 4. 현행 시스템 파악
    • 2강. 스크럼 기법
    • 1강. 소프트웨어 생명주기
    nayeoniee
    nayeoniee

    티스토리툴바