UML과 애자일
목차 24
요구사항을 그림으로 합의하는 표준 언어(UML)와 변화에 빠르게 적응하는 일하는 방식(애자일)을 한 강에 담은 빈출 구간. UML 1~2문항 + 애자일 1문항이 거의 매 회차 출제된다.
핵심 암기 6종: 관계 6종 연집포일의실 · 구조 7종 클객컴배복패프 · 행위 7종 유시통상활타상 · 애자일 4대 프작고변 · XP 5대 의단피용존 · 스크럼 3-3-5
UML 기초
UML이란 ·개념 정의·
[정의] 객체지향 시스템의 산출물을 명세화·시각화·문서화하는 표준 모델링 언어(Unified Modeling Language, 통합 모델링 언어).
[배경] 1990년대 객체지향 방법론이 난립 → Booch·Rumbaugh·Jacobson 3인이 표기법 통합 → 1997년 OMG(Object Management Group)가 표준으로 채택. 현재 UML 2.x.
🔑 암기 정의의 세 단어 = 명세화·시각화·문서화. 표준화 주체 = OMG. ⚠️ 함정 특정 회사의 사유 표준이 아니라 국제 표준. '누가 UML을 표준화했나(OMG)' 변형이 등장. 🎯 빈출 '명세화·시각화·문서화' 세 단어가 보기에 보이면 정답 후보. 간헐.
UML 3대 구성 요소 ·핵심 분류·
[분류] UML은 사물·관계·다이어그램 3대 구성 요소로 이루어진다.
| 구성 요소 | 정의 | 역할 |
|---|---|---|
| 사물(Things) | 모델을 구성하는 기본 요소 | 그림의 등장인물 |
| 관계(Relationship) | 사물 사이의 의미적 연결 | 등장인물 사이의 관계선 |
| 다이어그램(Diagram) | 사물·관계를 모은 시각 표현 | 한 장면 그림 |
[참고] 사물(Things)은 다시 구조·행위·그룹·주해 4종 — 구조 사물(클래스·인터페이스·컴포넌트), 행위 사물(상호작용·상태머신), 그룹 사물(패키지), 주해 사물(노트).
🔑 암기 3대 구성 = 사물·관계·다이어그램. 스테레오타입(<< >>)은 구성 요소가 아니라 표기 확장 메커니즘(아래 별도 카드).
⚠️ 함정 스테레오타입을 4번째 구성 요소로 끼워 넣은 보기가 정답(아닌 것) — 구성 요소는 사물·관계·다이어그램 셋뿐. 사물 4종(구조·행위·그룹·주해) 소거형은 간헐.
🎯 빈출 3대 구성 요소 나열·소거형. 간헐.
UML 관계 6종 — 연집포일의실
관계 6종 한눈에 ·메인 골격·
[분류]
| # | 관계 | 표기 | 의미 |
|---|---|---|---|
| 1 | 연관(Association) | 실선 | 두 사물이 서로 연결됨 |
| 2 | 집합(Aggregation) | 빈 마름모 ◇ | 부분이 전체에 속함(독립 가능) |
| 3 | 포함(Composition) | 채운 마름모 ◆ | 부분이 전체에 강하게 종속(독립 불가) |
| 4 | 일반화(Generalization) | 실선 + 빈 삼각형 △ | 상속(is-a) |
| 5 | 의존(Dependency) | 점선 화살표 | 일시적 사용 |
| 6 | 실체화(Realization) | 점선 + 빈 삼각형 | 인터페이스 구현(이행) |
🔑 암기 연집포일의실 (연관·집합·포함·일반화·의존·실체화). ⚠️ 함정 헷갈리는 두 쌍이 핵심 — 집합 vs 포함(둘 다 마름모), 일반화 vs 실체화(둘 다 삼각형). 🎯 빈출 관계↔표기 짝짓기, 그림→의미 매칭. 거의 매회.
집합 vs 포함 — 마름모 한 쌍 ·빈출 함정·
[비교]
| 구분 | 집합(Aggregation) | 포함(Composition) |
|---|---|---|
| 표기 | 빈 마름모 ◇ | 채운 마름모 ◆ |
| 소속 강도 | 약함 | 강함 |
| 부분 독립성 | 전체 소멸해도 부분 생존 | 전체 소멸 시 부분도 소멸 |
| 예 | 학과–학생 | 사람–심장 |
🔑 암기 빈=약, 채움=강 (속이 비었다=비어도 산다=약한 관계 / 채워졌다=운명 공동체). 💡 보충 '주문(Order)–주문 상세(OrderItem)'는 포함(주문 삭제 시 상세도 소멸), '사용자–즐겨찾기 가게'는 집합. 🎯 빈출 거의 매회 변형. 표기↔의미를 한 쌍으로 묶어두면 그림·텍스트 문제 모두 즉답.
일반화 vs 실체화 — 삼각형 한 쌍 ·빈출 함정·
[비교]
| 구분 | 일반화(Generalization) | 실체화(Realization) |
|---|---|---|
| 표기 | 실선 + 빈 삼각형 | 점선 + 빈 삼각형 |
| 의미 | 상속(is-a) | 인터페이스 구현 |
| 관계 | 부모–자식 클래스 | 인터페이스–구현 클래스 |
| 코드 | extends | implements |
🔑 암기 실선=핏줄, 점선=약속 (실선 △=일반화/상속, 점선 △=실체화/구현). ⚠️ 함정 둘 다 빈 삼각형 → 선이 실선이냐 점선이냐로만 갈린다. 🎯 빈출 표기↔의미 매칭. extends=일반화, implements=실체화.
UML 다이어그램 14종
구조 7 + 행위 7 = 14 ·메인 골격·
[분류]
| 분류 | 개수 | 특징 |
|---|---|---|
| 구조(Structure·정적) | 7 | 시간이 흘러도 안 변함(사진) |
| 행위(Behavioral·동적) | 7 | 시간 흐름·동작 변화(영상) |
🔑 암기 구조 7 + 행위 7 = 14종. 핵심 한 줄 = '클래스만 구조, 나머지 빈출은 행위'. ⚠️ 함정 '구조 8종'·'행위 6종'·'전체 13종' 변형 선지. 7+7=14 등식 고정. 🎯 빈출 분류·개수 묻는 소거형. 거의 매회.
구조 다이어그램 7종 — 클객컴배복패프 ·정적·
[분류]
| 다이어그램 | 영문 | 한 줄 |
|---|---|---|
| 클래스 | Class | 클래스 속성·메서드·관계 (최빈출) |
| 객체 | Object | 특정 시점의 인스턴스 모습 |
| 컴포넌트 | Component | 부품(모듈)·의존성 |
| 배치 | Deployment | 노드(HW)에 컴포넌트 배치 |
| 복합체 구조 | Composite Structure | 클래스 내부의 부품 구조 |
| 패키지 | Package | 관련 요소를 폴더처럼 묶음 |
| 프로파일 | Profile | 특정 도메인에 맞게 확장 |
🔑 암기 클객컴배복패프 (클래스·객체·컴포넌트·배치·복합체·패키지·프로파일). 🎯 빈출 '구조가 아닌 것' 소거형에 행위(시퀀스·활동·상태)를 섞어 출제. 대표 = 클래스.
행위 다이어그램 7종 — 유시통상활타상 ·동적·
[분류]
| 다이어그램 | 영문 | 한 줄 |
|---|---|---|
| 유스케이스 | Use Case | 액터–시스템 기능 (요구분석) |
| 시퀀스 | Sequence | 객체 간 메시지의 시간 순서 |
| 통신 | Communication | 객체 간 메시지 + 관계 |
| 상태 | State | 한 객체의 상태 전이 |
| 활동 | Activity | 업무 흐름(플로우차트 닮음) |
| 타이밍 | Timing | 시간 축에 따른 상태 변화(실시간) |
| 상호작용 개요 | Interaction Overview | 여러 시퀀스를 한 장에 묶음 |
🔑 암기 유시통상활타상 (유스케이스·시퀀스·통신·상태·활동·타이밍·상호작용개요). ⚠️ 함정 유스케이스는 행위(사용자 시나리오=동적 흐름). 구조로 착각하는 함정이 단골. 🎯 빈출 빈출 TOP 5 = 유스케이스·클래스·시퀀스·활동·상태 — 이 중 클래스만 구조, 나머지 4종은 행위.
스테레오타입 ·표기 확장·
[정의] 새 요소를 추가하지 않고 기존 요소에 라벨을 붙여 의미를 확장하는 표기. << >>(꺾쇠 두 개) 안에 키워드를 적는다.
[표]
| 표기 | 의미 |
|---|---|
<<include>> |
반드시 포함하여 실행(필수) |
<<extend>> |
선택적으로 확장 |
<<interface>> |
이 클래스는 인터페이스 |
🔑 암기 표기 = << >>. include=필수 포함, extend=선택 확장.
🎯 빈출 include/extend 의미 구분. 보통.
애자일 — 변화에 적응하는 방식
애자일이란 + 폭포수 비교 ·개념·빈출 비교·
[정의] 요구 변화에 빠르게 대응하도록 짧은 반복 주기와 점진적 개발을 강조하는 소프트웨어 개발 방법론. 2001년 애자일 선언문(Agile Manifesto)에서 출발.
[비교]
| 구분 | 폭포수(Waterfall) | 애자일(Agile) |
|---|---|---|
| 진행 | 단계별 순차(한 방향) | 짧은 반복(스프린트) |
| 요구 변경 | 어려움(재작업 비용 큼) | 환영(변화 적응) |
| 산출물 | 단계마다 완전 문서 | 작동 SW 우선 |
| 고객 참여 | 초기·인수 위주 | 전 과정 지속 |
| 적합 | 요구 명확·안정 | 요구 불확실·변화 잦음 |
⚠️ 함정 '애자일이 무조건 우월'은 거짓. 군사·항공·금융 코어 같은 안정 영역엔 폭포수가 여전히 유효. 🎯 빈출 '폭포수 vs 애자일 비교 중 옳지 않은 것' 거의 매회.
애자일 4대 가치 — 프작고변 ·빈출 1순위·
[비교]
| 낮은 가치 | 높은 가치 |
|---|---|
| 프로세스·도구 | 개인과 상호작용 |
| 포괄적 문서 | 작동하는 소프트웨어 |
| 계약 협상 | 고객과의 협력 |
| 계획 따르기 | 변화에 대응 |
🔑 암기 프작고변 (프로세스<상호작용 · 문서<작동SW · 계약<고객협력 · 계획<변화대응). ⚠️ 함정 왼쪽을 '완전히 무시'가 아니라 '오른쪽을 더 가치 있게' 둔다는 뜻. '문서를 안 만든다'·'후반 요구 변경 거부'·'강한 통제 강조'는 모두 오답. 🎯 빈출 빈칸·소거형으로 최빈출. 12원칙은 통째로 출제되지 않고 핵심 = 변화 환영·짧은 주기·협업·자기조직화.
스크럼 — 3-3-5
스크럼 3-3-5 구조 ·메인 골격·
[정의] 2~4주짜리 스프린트(Sprint) 반복으로 점진적으로 인도하는, 가장 유명한 애자일 프레임워크. 이름은 럭비의 스크럼(팀이 한 덩어리로 전진)에서 왔다.
[분류]
| 구분 | 개수 | 항목 |
|---|---|---|
| 역할(Role) | 3 | PO · SM · 개발팀 |
| 산출물(Artifact) | 3 | 제품 백로그 · 스프린트 백로그 · 증분(Increment) |
| 이벤트(Event) | 5 | 스프린트 계획 · 데일리 스크럼 · 스프린트 · 리뷰 · 회고 |
[이벤트 보충]
| 이벤트 | 시점·핵심 |
|---|---|
| 스프린트 계획 | 스프린트 시작 시 백로그 결정 |
| 데일리 스크럼 | 매일·15분·서서(어제/오늘/장애물 공유) |
| 스프린트 | 2~4주 개발 진행 |
| 스프린트 리뷰 | 끝에 결과물 시연·피드백 |
| 스프린트 회고 | 리뷰 직후 프로세스 개선 |
🔑 암기 3-3-5 (역할 3 · 산출물 3 · 이벤트 5). ⚠️ 함정 데일리 스크럼 = 매일·15분·서서. '주 1회·30분·앉아서'는 오답. 🎯 빈출 3-3-5 분류, 데일리 스크럼 키워드. 거의 매회.
스크럼 3대 역할 — PO·SM·팀 ·빈출 함정·
[비교]
| 역할 | 핵심 책임 |
|---|---|
| 제품 책임자(PO) | 제품 백로그·우선순위 결정 — 무엇(What) |
| 스크럼 마스터(SM) | 프로세스 코칭·장애물 제거·팀 보호 |
| 개발팀(Dev Team) | 실제 개발·자기조직화(5~9명 권장) — 어떻게(How) |
🔑 암기 PO=What, 팀=How, SM=프로세스(코칭·장애물 제거). ⚠️ 함정 SM은 PM이 아니다 — '일정 결정·작업 할당'은 오답. PO는 개발팀에 명령하지 않는다. 🎯 빈출 역할↔책임 짝짓기. 거의 매회. 'SM이 작업을 할당한다'가 매번 함정.
XP·기타 애자일
XP 5대 가치 — 의단피용존 ·빈출·
[정의] eXtreme Programming(익스트림 프로그래밍). 1996년 켄트 벡(Kent Beck)이 제안한, 짧은 반복과 고품질 코드를 강조하는 애자일 방법론.
[분류]
| 가치 | 영문 | 의미 |
|---|---|---|
| 의사소통 | Communication | 팀원·고객 사이 활발한 대화 |
| 단순성 | Simplicity | 지금 필요한 만큼만 단순하게 |
| 피드백 | Feedback | 빠르고 자주 받기 |
| 용기 | Courage | 변경·리팩토링을 두려워하지 않기 |
| 존중 | Respect | 팀원·고객 서로 존중 |
🔑 암기 의단피용존 (의사소통·단순성·피드백·용기·존중). ⚠️ 함정 '효율성·안정성·통제력'은 가짜 가치(소거형 단골). 애자일 4대 프작고변과 헷갈리지 말 것. 🎯 빈출 'XP 5대 가치가 아닌 것' 거의 매년.
XP 12 실천법 — 빈출 5 ·실천법·
[분류]
| 실천법 | 영문 | 핵심 |
|---|---|---|
| 페어 프로그래밍 | Pair Programming | 두 명이 한 화면에서 같이 코딩 |
| 테스트 주도 개발 | TDD | 테스트 먼저, 코드 나중 |
| 리팩토링 | Refactoring | 동작은 그대로, 구조만 개선 |
| 지속적 통합 | CI | 코드 변경을 매일 통합·테스트 |
| 소규모 릴리스 | Small Releases | 짧은 주기로 자주 배포 |
🔑 암기 빈출 5 = 페어·TDD·리팩토링·CI·소규모 릴리스. ⚠️ 함정 TDD는 '테스트 먼저, 코드 나중'. 순서를 뒤집으면 오답. 🎯 빈출 XP 실천법 매칭. 보통.
기타 애자일 방법론 ·간헐·
🌟 간헐 출제 — 키워드만 잡으면 충분.
[분류]
| 방법론 | 핵심 키워드 |
|---|---|
| 칸반(Kanban) | WIP(진행 중 작업) 시각화, To Do/Doing/Done 보드 |
| Lean(린) | 낭비 제거, 가치 흐름 최적화(도요타 생산방식에서 출발) |
| Crystal(크리스탈) | 팀 규모·중요도에 따라 색깔로 분류 |
🔑 암기 칸반=WIP 시각화. 보기에 'WIP'가 보이면 칸반. 🎯 빈출 애자일 패밀리(스크럼·XP·칸반·Lean·Crystal) 소거형. 간헐.
기출 다지기
[기출 1 출제] UML 다이어그램 중 정적(구조) 다이어그램에 해당하지 않는 것은? (소거형)
- ① 클래스 다이어그램(Class Diagram)
- ② 객체 다이어그램(Object Diagram)
- ③ 컴포넌트 다이어그램(Component Diagram)
- ④ 활동 다이어그램(Activity Diagram)
정답 및 해설 보기
정답 ④
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 구조 | 클래스 — 구조의 대표주자 |
| ② | 구조 | 객체 — 특정 시점 인스턴스 |
| ③ | 구조 | 컴포넌트 — 부품·의존성 |
| ④ | 행위 | 활동 — 업무 흐름(동적) |
🔑 '클래스만 구조'를 떠올리면, 보기에 섞인 활동·시퀀스·상태·유스케이스가 곧 정답(=구조 아님).
[기출 2 출제] UML 관계(Relationship)와 표기법이 잘못 짝지어진 것은? (짝짓기 오류)
- ① 연관(Association) — 실선
- ② 집합(Aggregation) — 속이 채워진 마름모(◆)
- ③ 일반화(Generalization) — 실선과 속이 빈 삼각형
- ④ 의존(Dependency) — 점선 화살표
정답 및 해설 보기
정답 ②
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 옳음 | 연관 = 실선 |
| ② | 오답 | 집합은 빈 마름모(◇) — 채운 마름모(◆)는 포함 |
| ③ | 옳음 | 일반화 = 실선 + 빈 삼각형 |
| ④ | 옳음 | 의존 = 점선 화살표 |
🔑 빈=약(집합), 채움=강(포함). 두 마름모를 바꿔치기하는 빈출 함정.
[기출 3 출제] 다음 설명에 해당하는 UML 관계는? (설명 판단형)
전체와 부분의 관계로, 전체 객체가 사라지면 부분 객체도 함께 소멸하는 강한 소속 관계이다. 표기는 속이 채워진 마름모(◆)로 한다.
- ① 집합(Aggregation)
- ② 포함(Composition)
- ③ 의존(Dependency)
- ④ 일반화(Generalization)
정답 및 해설 보기
정답 ②
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 오답 | 집합 — 빈 마름모(◇)·약한 소속 |
| ② | 정답 | 포함 — 채운 마름모(◆)·운명 공동체 |
| ③ | 오답 | 의존 — 점선 화살표·일시적 |
| ④ | 오답 | 일반화 — 빈 삼각형·상속 |
🔑 단서 두 개('전체 소멸 시 부분 소멸' + '채운 마름모')가 모두 포함을 가리킨다.
[기출 4 출제] UML의 행위(Behavioral) 다이어그램에 해당하지 않는 것은? (소거형)
- ① 시퀀스 다이어그램(Sequence Diagram)
- ② 상태 다이어그램(State Diagram)
- ③ 컴포넌트 다이어그램(Component Diagram)
- ④ 활동 다이어그램(Activity Diagram)
정답 및 해설 보기
정답 ③
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 행위 | 시퀀스 — 메시지의 시간 순서 |
| ② | 행위 | 상태 — 상태 전이 |
| ③ | 구조 | 컴포넌트 — 부품·의존성(정적) |
| ④ | 행위 | 활동 — 업무 흐름 |
🔑 구조 클객컴배복패프 중 하나(컴포넌트)가 보기에 섞이면 그게 '행위 아닌 것' 정답.
[기출 5 출제] 다음은 애자일 선언문의 4대 가치 중 일부이다. ( )에 들어갈 단어로 가장 적절한 것은? (빈칸 채우기)
포괄적인 문서보다 ( )하는 소프트웨어를 / 계획을 따르기보다 ( )에 대응하기를
- ① 안정 / 효율
- ② 작동 / 변화
- ③ 동작 / 통제
- ④ 검증 / 일정
정답 및 해설 보기
정답 ②
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 오답 | 일반 SW 품질 용어 |
| ② | 정답 | 작동 SW / 변화 대응 |
| ③ | 오답 | '통제'는 폭포수 키워드 |
| ④ | 오답 | 검증·일정은 V모델·PM 키워드 |
🔑 프작고변 — 문서보다 작동 SW, 계획보다 변화 대응. '문서를 안 쓴다'가 아니라 우선순위가 낮을 뿐.
[기출 6 출제] XP(eXtreme Programming)의 5가지 핵심 가치에 해당하지 않는 것은? (소거형)
- ① 의사소통(Communication)
- ② 단순성(Simplicity)
- ③ 효율성(Efficiency)
- ④ 용기(Courage)
정답 및 해설 보기
정답 ③
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | XP 가치 | 의사소통 |
| ② | XP 가치 | 단순성 |
| ③ | 가치 아님 | 효율성 — 일반 SW 품질 용어 |
| ④ | XP 가치 | 용기 |
🔑 의단피용존 — 의사소통·단순성·피드백·용기·존중. '효율성·안정성·통제력'은 단골 가짜 가치.
[기출 7 출제] 스크럼(Scrum)의 역할(Role)과 핵심 책임이 잘못 짝지어진 것은? (짝짓기 오류)
- ① 제품 책임자(PO) — 제품 백로그 관리 및 우선순위 결정
- ② 스크럼 마스터(SM) — 팀의 일정을 결정하고 작업을 직접 할당
- ③ 개발팀(Dev Team) — 자기조직화 + 5~9명 권장
- ④ 스크럼 마스터(SM) — 프로세스 코칭 및 장애물 제거
정답 및 해설 보기
정답 ②
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 옳음 | PO = 백로그·우선순위 |
| ② | 오답 | 일정 결정·작업 할당은 PM 역할 — SM 아님 |
| ③ | 옳음 | 개발팀 = 자기조직화·5~9명 |
| ④ | 옳음 | SM = 코칭·장애물 제거 |
🔑 PO=What, 팀=How, SM=프로세스. SM은 결정권자가 아닌 코치이고, 작업 할당은 자기조직화된 개발팀의 몫.
한 장 요약
| 주제 | 암기 | 내용 |
|---|---|---|
| UML 정의 | 명세화·시각화·문서화 | OMG 표준 채택(1997), 통합 모델링 언어 |
| 3대 구성 | 사물·관계·다이어그램 | 사물 4종 = 구조·행위·그룹·주해 (스테레오타입은 구성 요소 아닌 확장 메커니즘) |
| 관계 6종 | 연집포일의실 | 연관(실선)·집합(◇)·포함(◆)·일반화(실선△)·의존(점선)·실체화(점선△) |
| 마름모 | 빈=약, 채움=강 | ◇ 집합(부분 독립) / ◆ 포함(운명 공동체) |
| 삼각형 | 실선=핏줄, 점선=약속 | 실선△ 일반화(extends) / 점선△ 실체화(implements) |
| 구조 7 | 클객컴배복패프 | 클래스·객체·컴포넌트·배치·복합체·패키지·프로파일 |
| 행위 7 | 유시통상활타상 | 유스케이스·시퀀스·통신·상태·활동·타이밍·상호작용개요 |
| 다이어그램 | 구조 7 + 행위 7 = 14 | 클래스만 구조, 나머지 빈출은 행위 |
| 애자일 4대 | 프작고변 | 상호작용·작동SW·고객협력·변화대응(무시 아닌 우선순위) |
| 스크럼 | 3-3-5 | 역할 3(PO=What·SM=프로세스·팀=How)·산출물 3·이벤트 5 |
| XP 5대 | 의단피용존 | 의사소통·단순성·피드백·용기·존중 |
🎯 합격 한 끗: 다이어그램은 '클래스만 구조' 한 줄, 표기는 빈 마름모=집합·채운 마름모=포함·실선 삼각형=일반화·점선 삼각형=실체화. 이 두 줄이 UML 점수의 절반을 가른다.
