UML과 4+1 뷰 모델 - 정처기 실기 대비 주관식 문제 포함

정처기SW설계
읽는데 약 12분 정도 소요
처음 쓰여진 날: 2025-07-05
마지막으로 고쳐진 날: 2025-07-09
이 글을 보러온 횟수: 104

요약

정처기 실기 단골 문제인 UML(Unified Modeling Language)의 기본 개념부터 다양한 다이어그램 종류, 그리고 소프트웨어 아키텍처 4+1 뷰 모델을 알아봅니다. 정처기 대비를 위한 외우는 방법과 주관식 문제가 포함되어 있습니다.

💡 정처기 실기 대비를 위한 주관식 문제는 내용 중간마다 Wrap up 형식으로 추가되었습니다. 또한 포스팅 마지막에 정처기 실전 문제와 함께 중간 문제를 다시 한 번 풀어볼 수 있습니다.

UML 다이어그램 요약표

구분다이어그램키워드
구조 다이어그램
(정적 모델)
클래스시스템의 정적 구조, 클래스, 속성, 관계
객체특정 시점의 인스턴스, 실제 예시
컴포넌트물리적 컴포넌트, 의존성
배치컴포넌트 종속성 , 물리적 요소 위치
복합체 구조클래스 내부 구조, 협력 관계
패키지관련된 요소들의 그룹화
구분다이어그램키워드
행위 다이어그램
(동적 모델)
유스케이스사용자 관점, 시스템 기능, 상호작용
시퀀스시간 흐름 , 메시지 흐름
커뮤니케이션객체 간의 관계와 메시지 교환 에 집중
상태하나의 객체가 겪는 상태 변화
활동작업의 흐름, 처리 로직, 처리 흐름
타이밍시간 제약 에 따른 객체 상태 변화

🤔 UML이란 무엇일까요?

소프트웨어를 개발하는 과정은 마치 멋진 건물을 짓는 것과 같아요. 🏗️ 고객의 요구사항을 듣고(도출), 그게 정말 가능한지 분석하고(분석), 설계도를 그리고(명세화), 설계도대로 잘 지어졌는지 확인(검증)하는 단계를 거치죠.

이 과정에서 요구사항을 분석하고 설계도를 그리는 단계에서 사용하는 핵심 도구가 바로 UML(Unified Modeling Language) 입니다.

UML은 이름 그대로 '통합 모델링 언어'예요. 복잡한 시스템을 이해하기 쉬운 그림(다이어그램)으로 표현하는 표준화 약속이죠. 📜 코드를 작성하기 전에 시스템의 구조와 동작을 시각적으로 설계하고, 개발자들끼리 "우리 이렇게 만들자!"라고 명확하게 소통할 수 있게 도와주는 청사진 📐 역할을 합니다.

🎨 UML 다이어그램의 종류

UML에는 여러 종류의 다이어그램이 있어요. 크게 구조 다이어그램(Structure Diagram)행위 다이어그램(Behavior Diagram) 으로 나뉩니다.

1. 구조 다이어그램 (정적 모델) 🏛️

시스템의 뼈대, 즉 정적인 구조를 보여줍니다.

  • 클래스 다이어그램: 시스템을 구성하는 클래스와 그들 간의 관계(상속, 연관 등)를 보여주는 가장 대표적인 다이어그램입니다.
    클래스 다이어그램 예시 보기
  • 객체 다이어그램: 특정 시점의 객체와 그 관계를 보여줍니다. 클래스 다이어그램의 실제 예시(인스턴스)라고 할 수 있죠.
    객체 다이어그램 예시 보기
  • 컴포넌트 다이어그램: 시스템을 구성하는 물리적인 컴포넌트(모듈, 파일)와 그 의존성을 보여줍니다.
    컴포넌트 다이어그램 예시 보기
  • 배치 다이어그램: 컴포넌트 사이의 종속성을 표현하고 소프트웨어가 어떤 하드웨어(서버, 장비)에 어떻게 배치되는지 보여줍니다.
    배치 다이어그램 예시 보기
  • 복합체 구조 다이어그램: 클래스의 내부 구조와 그 클래스가 다른 클래스들과 어떻게 협력하는지를 보여줍니다. 클래스 다이어그램이 "무엇이 있는가?"를 보여준다면, 복합체 구조 다이어그램은 "그것들이 어떻게 함께 작동하는가?"를 보여줍니다.
    복합체 구조 다이어그램 예시 보기
  • 패키지 다이어그램: 관련된 요소들을 그룹화한 패키지들의 관계를 보여줍니다.(폴더와 비슷하게 생겼습니다.)
    패키지 다이어그램 예시 보기

2. 행위 다이어그램 (동적 모델) 💃

시스템이 실제로 어떻게 동작하는지, 시간의 흐름에 따른 변화를 보여줍니다.

  • 유스케이스 다이어그램: 사용자의 관점에서 시스템이 제공하는 기능과 상호작용을 보여줍니다.

    유스케이스 다이어그램 예시 보기
  • 시퀀스 다이어그램: 객체들이 메시지를 주고받으며 상호작용하는 순서를 시간의 흐름 에 따라 보여줍니다.

    시퀀스 다이어그램 예시 보기
  • 커뮤니케이션 다이어그램: 시퀀스 다이어그램과 유사하지만, 시간 순서보다는 객체들 간의 관계와 메시지 교환에 중점을 둡니다. 객체들이 어떻게 연결되어 있고 어떤 메시지를 주고받는지를 보여줍니다.

    커뮤니케이션 다이어그램 예시 보기
  • 상태 다이어그램: 하나의 객체가 특정 이벤트에 따라 상태가 어떻게 변하는지를 보여줍니다.

    상태 다이어그램 예시 보기
  • 활동 다이어그램: 작업의 흐름이나 프로세스를 순서도로 표현합니다.

    활동 다이어그램 예시 보기
  • 타이밍 다이어그램: 시간의 흐름에 따른 객체의 상태 변화와 상호작용을 타임라인으로 표현합니다. 실시간 시스템이나 임베디드 시스템에서 시간 제약사항을 모델링할 때 유용합니다.

    타이밍 다이어그램 예시 보기

🧠 UML 다이어그램 외우는 방법

두음법칙을 적용하면 이미지를 남기는데 도움이 될 수 있습니다.

아래 이미지는 닥터 스트레인지(베네딕트 컴배 비치)가 젤다의 전설의 시커 스톤을 들고 있는 이미지입니다.

UML 다이어그램 외우는 방법
UML 다이어그램 외우는 방법 - 컴배비치 + 시커 스톤

구조 다이어그램(정적 모델)의 경우 "클객 컴배 복패" 인데요 닥터 스트레인지의 주인공 베네딕트 '컴배'비치를 떠올리세요. 행위 다이어그램(동적 모델)의 경우 "유 시커 상활타" 입니다. 젤다의 전설에 나오는 '시커'스톤을 떠올리세요.

암기 순서 📝

  1. UML 다이어그램 종류는 베네딕트 컴배비치가 시커스톤을 손에 올리고 있는 모습
  2. 구조 다이어그램(정적 모델) = 컴배비치 -> 클객컴배복패
  3. 행위 다이어그램(동적 모델) = 시커스톤 -> 유시커상활타
  4. 클객컴배복패 = 클래스, 객체, 컴포넌트, 배치, 복합체, 패키지
  5. 유시커상활타 = 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 타이밍
문제구조 다이어그램 종류를 모두 쓰시오.
답변
정답정답 보기
문제행위 다이어그램 종류를 모두 쓰시오.
답변
정답정답 보기

🔭 소프트웨어 아키텍처 4+1 뷰 모델

"이렇게 많은 다이어그램을 언제 다 쓰지?" 라는 생각이 드시나요? 🤔 맞아요. 그래서 등장한 것이 바로 4+1 뷰 모델입니다. 복잡한 시스템을 5가지 다른 관점(View)으로 나누어 체계적으로 바라보는 방법론이죠. 각 뷰는 특정 이해관계자(개발자, 설계자, 사용자 등)에게 필요한 정보만 보여줍니다.

1. 유스케이스 뷰 (Use Case View) 🧑‍💻 (+1)

  • 관점: 모든 이해관계자
  • 설명: 시스템의 핵심 기능(사용자에 의해 인식되는 기능)을 정의하고 다른 뷰들을 이끌어가는 시나리오입니다. "사용자가 시스템으로 무엇을 할 수 있는가?"에 답합니다.
  • 관련 UML 다이어그램: 유스케이스 다이어그램, 활동 다이어그램, 시퀀스 다이어그램

2. 논리 뷰 (Logical View) 🧩

  • 관점: 설계자, 개발자
  • 설명: 시스템의 기능적 요구사항과 정적인 구조를 보여줍니다. "시스템이 기능적으로 어떻게 구성되는가?"에 답합니다.
  • 관련 UML 다이어그램: 클래스 다이어그램, 객체 다이어그램

3. 프로세스 뷰 (Process View) ⚙️

  • 관점: 시스템 통합자
  • 설명: 시스템의 동적인 동작, 프로세스 간의 통신 및 동시성을 다룹니다.(시스템의 비기능적 요구사항) "시스템이 어떻게 살아 움직이는가?"에 답합니다.
  • 관련 UML 다이어그램: 시퀀스 다이어그램, 통신 다이어그램, 활동 다이어그램

4. 구현 뷰 (Implementation View) 👨‍🔧

  • 관점: 프로그래머
  • 설명: 실제 개발 환경의 관점에서 소프트웨어 모듈, 컴포넌트 구조를 보여줍니다. "소프트웨어는 어떻게 구현되고 관리되는가?"에 답합니다.
  • 관련 UML 다이어그램: 컴포넌트 다이어그램, 패키지 다이어그램

5. 배포 뷰 (Deployment View) 🖥️

  • 관점: 시스템 엔지니어
  • 설명: 소프트웨어가 어떤 하드웨어(물리적인 아키텍처)에 어떻게 배포되는지를 보여줍니다. "시스템은 어떤 물리적 환경에 놓이는가?"에 답합니다.
  • 관련 UML 다이어그램: 배포 다이어그램

이렇게 4+1 뷰 모델을 활용하면 복잡한 시스템의 아키텍처를 다양한 관점에서 명확하게 이해하고, 모든 이해관계자가 효과적으로 소통하며 성공적인 프로젝트를 이끌어갈 수 있습니다! ✨

문제4+1 뷰 모델을 모두 쓰시오.
답변
정답정답 보기

📝 정처기 실기 대비 실전 문제

문제컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현하는 다이어그램
답변
정답정답 보기
문제유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한 다이어그램
답변
정답정답 보기
문제소프트웨어 아키텍처 4+1 뷰 중 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해주는 설계자 및 개발자 관점 뷰는?
답변
정답정답 보기
문제소프트웨어 아키텍처 4+1 뷰 중 시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리등을 표현한 개발자, 시스템 통합자 관점 뷰는?
답변
정답정답 보기
문제소프트웨어 아키텍처 4+1 뷰 중 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰로 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보를 정의하는 뷰는?
답변
정답정답 보기
문제시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램
답변
정답정답 보기
문제객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램으로 객체 간의 동적 상호 작용을 시간적 개념을 중심으로 모델링하는 다이어그램
답변
정답정답 보기

🔁 복습 문제

문제구조 다이어그램 종류를 모두 쓰시오.
답변
정답정답 보기
문제행위 다이어그램 종류를 모두 쓰시오.
답변
정답정답 보기
문제4+1 뷰 모델을 모두 쓰시오.
답변
정답정답 보기

다음 읽으면 좋은 포스팅