
정답제시된 다섯 가지 실천 방법을 모두 포함하는 애자일 방법론인 익스트림 프로그래밍(XP)입니다.
핵심 개념
익스트림 프로그래밍(XP)의 12가지 실천 방법
익스트림 프로그래밍(XP)은 켄트 벡이 제안한 대표적인 애자일 개발 방법론으로, 짧은 주기의 반복 개발과 고객과의 긴밀한 소통을 통해 변화하는 요구사항에 빠르게 대응하는 것을 목표로 합니다. 의사소통·단순성·피드백·용기·존중의 5가지 가치를 바탕으로 12개 안팎의 구체적인 실천 방법(practice)을 제시하는데, 보기에 나온 리팩토링, 사용자 스토리, 소규모 릴리즈, 짝 프로그래밍, 테스트 우선 개발(TDD)은 모두 XP의 대표적인 실천 방법입니다. 특히 '짝 프로그래밍'과 '테스트 우선 개발'은 다른 방법론에서는 거의 언급되지 않는 XP 고유의 키워드이므로, 이 두 단어만 보여도 XP를 떠올리면 됩니다.
선지별 해설
①COCOMO는 개발 방법론이 아니라 LOC를 기반으로 프로젝트의 노력(man-month)과 기간, 비용을 추정하는 비용 산정 모형이므로 제시된 실천 방법들과 무관합니다.
②리팩토링, 사용자 스토리, 소규모 릴리즈, 짝 프로그래밍, 테스트 우선 개발은 모두 XP가 규정한 실천 방법에 해당하므로 제시된 특징을 가지는 방법론은 XP입니다.
③통합 프로세스(UP)는 도입·정련·구축·전이의 4단계와 반복적·점진적 개발, UML 기반 산출물, 유스케이스 주도를 특징으로 하는 방법론이며 짝 프로그래밍 같은 실천 방법을 규정하지 않습니다.
④폭포수 모델은 분석·설계·구현·시험을 순차적으로 진행하고 이전 단계로의 되돌아감을 원칙적으로 허용하지 않는 고전적 모델이므로, 반복과 변화 수용을 전제로 하는 위 실천 방법들과 정반대입니다.

정답모델·뷰·컨트롤러로 관심사를 분리하는 MVC 패턴입니다.
핵심 개념
MVC(Model-View-Controller) 아키텍처 패턴
MVC는 시스템을 데이터와 업무 로직을 담당하는 모델(Model), 사용자에게 정보를 보여 주는 뷰(View), 사용자 입력을 받아 모델과 뷰를 연결하는 컨트롤러(Controller)로 분리하는 아키텍처 패턴입니다. 데이터와 표현을 분리하기 때문에 하나의 모델을 막대그래프·원그래프 등 여러 뷰로 동시에 보여 줄 수 있고, 모델이 바뀌면 등록된 모든 뷰가 갱신되는 구조를 자연스럽게 만들 수 있습니다. 또한 데이터베이스 연동 부분(모델)과 웹 화면 제공 부분(뷰)을 분리하는 웹 애플리케이션 구조의 기본형이기도 하여, 대화형 데스크탑 응용과 웹 응용 양쪽에서 널리 쓰입니다.
선지별 해설
①데이터 관리=모델, 화면 관리=뷰, 인터랙션 제어=컨트롤러로 정확히 대응하며, 하나의 모델에 여러 뷰를 붙이는 것과 웹의 DB 연동부·화면부 분리가 모두 MVC의 전형적인 적용 사례입니다.
②리포지토리 패턴은 중앙의 공유 데이터 저장소를 여러 독립 서브시스템이 함께 사용하는 구조로, 컴파일러나 정보 시스템처럼 대용량 데이터를 공유할 때 쓰이며 화면과 제어의 분리를 다루지 않습니다.
③트랜잭션 처리 패턴은 입력된 트랜잭션을 해석해 해당 처리 모듈로 분배하는 구조로 예약·금융 시스템에 적합하며, 하나의 데이터를 여러 형태로 표현하는 요구와는 관련이 없습니다.
④파이프 필터는 데이터가 필터를 거치며 순차적으로 변환되는 구조로 컴파일러나 신호 처리에 적합하며, 대화형 사용자 인터페이스를 다루기에는 부적합합니다.