본문 바로가기
CERT/정보처리기사

[정보처리기사] 소프트웨어 설계부 오답 개념 정리 -1

by DahnDellDev 2025. 7. 24.

📌 UML 다이어그램: 순차 다이어그램과 행위 다이어그램

  • 순차 다이어그램(Sequence Diagram)
    : 시스템 내 객체들 간 메시지 교환 과정을 시간 순서에 따라 표현하는 다이어그램입니다. 동적 행위를 순차적으로 표현하는 데에 사용됩니다.
  • 행위 다이어그램(Behavior Diagram)
    : 시스템의 동적인 행위(사용자의 인터랙션, 상태 변화 등)를 표현합니다.
    순차 다이어그램은 이러한 행위 다이어그램의 일종으로, 보다 정밀한 순서 표현을 담당합니다.

📡 MOM (Message-Oriented Middleware)

  • 정의: 비동기 메시지를 기반으로 서로 다른 시스템 간의 데이터 통신을 지원하는 미들웨어입니다.
  • 특징:
    • 느리지만 안정적인 처리에 적합
    • 즉각적인 응답이 필요하지 않은 작업에 유리
    • 데이터 동기화 처리에 자주 사용
  • 예: Kafka, RabbitMQ, ActiveMQ 등

🌀 익스트림 프로그래밍 (XP: eXtreme Programming)

  • 정의: 애자일(Agile) 개발 방법론 중 하나로, 소규모 팀의 반복적·점진적인 개발을 지향합니다.
  • 핵심 가치:
    • 지속적인 피드백
    • 소통 강화
    • 변화 수용
    • 단순함의 추구
    • 용기 있는 개선

🧩 유스케이스(Use Case)의 관계 유형

유스케이스 다이어그램에서는 다음과 같은 관계가 정의됩니다:

관계 유형 설명

연관 관계 (Association) 액터와 유스케이스 간 상호작용을 표현
포함 관계 (Include) 특정 유스케이스 수행 시, 다른 유스케이스를 반드시 호출해야 할 경우
확장 관계 (Extend) 조건부로 다른 유스케이스를 확장하여 실행할 경우
일반화 (Generalization) 유사한 액터 또는 유스케이스 간의 상속/추상화 관계 표현 (이해도를 높이기 위함)

※ 액터란 시스템과 직접 상호작용하는 모든 주체를 의미하며, 사용자뿐만 아니라 외부 시스템도 포함될 수 있습니다.


🎯 기능적 vs 비기능적 요구사항

구분 설명 예시

기능적 요구사항 시스템이 무엇을 해야 하는지에 대한 요구사항 로그인 기능, 게시글 등록, 검색 기능
비기능적 요구사항 시스템의 성능, 품질, 안정성 등 부가적인 제약조건 보안, 응답 시간, 확장성, 유지보수성

※ 기능적 요구사항이 무엇을에 초점을 둔다면, 비기능적 요구사항은 어떻게 잘 수행할 것인가에 초점을 둡니다.


🧱 객체지향 핵심: 캡슐화 (Encapsulation)

  • 정의: 관련된 데이터(속성)와 이를 처리하는 연산(메서드)을 하나의 객체로 묶는 행위입니다.
  • 효과:
    • 데이터 보호 (정보 은닉)
    • 모듈화
    • 유지보수 용이성 증가

🖥 인터페이스 유형 비교

인터페이스 유형 정의 예시

CLI (Command Line Interface) 텍스트 명령어 기반의 인터페이스 터미널, 명령 프롬프트
GUI (Graphical User Interface) 그래픽 요소로 조작하는 방식 윈도우, 마우스 클릭 환경
NUI (Natural User Interface) 제스처, 터치, 동작 등 자연스러운 조작 방식 터치스크린, 모션센서
VUI (Voice User Interface) 음성으로 기기를 제어 Siri, Google Assistant
OUI (Object User Interface) 사물과의 상호작용 기반 인터페이스 스마트 냉장고, IoT 리모컨 등

🧭 소프트웨어 모델링의 영향력

  • 하나의 모델링 작업은 다른 작업에도 직간접적인 영향을 미칩니다.
  • 예: 도메인 모델의 변경 → 유스케이스 흐름 수정 필요 → 시나리오 및 UI 재설계 등

 

 

 

📚 작성자: 김한민 (DahnDell)
🛠 기술 블로그: [블로그 주소]
📌 GitHub: https://github.com/DaHnDell