애자일 개발(Agile Development)란?
몇 주 정도의 짧은 기간의 반복을 되풀이하며, 그때마다 동작하는 소프트웨어를 만들어 사용자의 의견을 반영하고, 변화하는 요구에 맞춰 계획을 재검토해 가는 개발 방식의 총칭. 대표적인 기법으로 스크럼이나 익스트림 프로그래밍(XP)이 있다.
일본어 명칭: アジャイル開発
애자일 개발(Agile Development)은(는) 소프트웨어 개발과 프로젝트 관리 등 1개 분야의 연습 문제 2개에 나와요.
몇 주 정도의 짧은 기간의 반복을 되풀이하며, 그때마다 동작하는 소프트웨어를 만들어 사용자의 의견을 반영하고, 변화하는 요구에 맞춰 계획을 재검토해 가는 개발 방식의 총칭. 대표적인 기법으로 스크럼이나 익스트림 프로그래밍(XP)이 있다.
일본어 명칭: アジャイル開発
애자일 개발(Agile Development)은(는) 소프트웨어 개발과 프로젝트 관리 등 1개 분야의 연습 문제 2개에 나와요.
애자일 개발의 사고방식은 2001년에 발표된 애자일 소프트웨어 개발 선언에 정리되어 있습니다. 선언은 프로세스나 도구보다 개인과 상호 작용을, 포괄적인 문서보다 동작하는 소프트웨어를, 계약 협상보다 고객과의 협력을, 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다고 말합니다. 오른쪽 항목에도 가치가 있음을 인정하면서 왼쪽 항목을 더 중시한다는 표현으로, 문서나 계획이 필요 없다는 뜻은 아닙니다.
폭포수 모델에서는 처음에 요구사항을 확정하고 전체를 한 번의 흐름으로 만들므로, 사용자가 동작하는 것을 볼 수 있는 것은 개발이 끝날 무렵이 됩니다. 애자일 개발에서는 우선순위가 높은 기능부터 조금씩 만들어 짧은 간격으로 동작하는 것을 보여 주므로, 요구의 오해나 변화를 일찍 알아챌 수 있습니다. 그 대신 최종적인 범위나 비용을 처음에 굳히기 어려워, 계약의 형태나 사용자가 개발에 계속 관여하는 체제가 필요해집니다. 어느 쪽이 좋은지는 요구의 확실성이나 변경에 드는 비용에 따라 정해집니다.
칩이나 기판은 다시 만드는 데 큰 비용과 시간이 들므로, 하드웨어 자체의 개발에서는 사양을 일찍 굳히는 계획형 진행 방식이 중심입니다. 한편 펌웨어나 드라이버, EDA 스크립트, 검증 환경 등의 소프트웨어에서는 지속적 통합과 자동 테스트를 조합한 애자일 개발이 자주 쓰입니다. 실기가 아직 없는 단계에서는 시뮬레이터나 FPGA 시제품 위에서 소프트웨어를 먼저 동작시키고, 하드웨어 일정과 소프트웨어의 반복을 조합하여 진행합니다.
정답: C. 리팩터링
리팩터링은 중복된 코드를 합치고, 긴 함수를 나누고, 이름을 알기 쉽게 하는 등으로 기능을 바꾸지 않고 코드의 구조를 개선하는 작업입니다. 동작이 바뀌지 않았음을 확인하기 위해 자동화된 테스트를 준비하고, 조금씩 변경하면서 테스트를 실행합니다. 페어 프로그래밍은 두 사람이 한 대의 컴퓨터로 함께 프로그램을 작성하는 XP의 실천 방법입니다. 리버스 엔지니어링은 기존 프로그램을 분석하여 사양이나 설계를 밝혀내는 것입니다.
쓰지 않는 것은 아닙니다. 애자일 소프트웨어 개발 선언은 포괄적인 문서보다 동작하는 소프트웨어를 중시한다고 하지만, 문서의 가치도 인정하고 있습니다. 유지보수나 안전성 설명에 필요한 문서는 필요한 만큼, 소프트웨어와 함께 갱신하면서 만듭니다.
스크럼은 애자일 개발의 대표적인 프레임워크 중 하나입니다. 애자일 개발은 짧은 반복으로 가치를 전달하는 사고방식의 총칭으로, 스크럼 외에 테스트 주도 개발이나 페어 프로그래밍 등의 실천 방법을 가진 익스트림 프로그래밍(XP) 등이 있습니다.
반복하며 사용자의 의견을 반영하는 것은 애자일 개발 등의 반복형, 시제품으로 요구를 확인하는 것은 프로토타이핑 모델의 특징입니다.
소프트웨어 개발의 폭포수 모델의 특징으로 적절한 것은?폭포수 모델(Waterfall Model) 경계값 분석(Boundary Value Analysis) 동치 분할(Equivalence Partitioning) 분기 커버리지(Branch Coverage) 블랙박스 테스트(Black-box Testing) 스크럼(Scrum) 임계 경로법(CPM) 테스트 주도 개발(TDD) 화이트박스 테스트(White-box Testing) 획득가치관리(EVM)