정처기 22년 4월 24일 기출 오답정리_02
2025. 1. 21. 14:28

[1과목:소프트웨어 설계]

*UML 다이어그램

- 순차 다이어그램

: 객체 간 상호 작용을 시간의 흐름에 따라 시각적으로 표현 >> 동적 측면을 모델링

  수직 방향이 시간의 흐름을 나타냄

  회귀 메세지, 제어 블록 등으로 구성

- 클래스 다이어그램

 : 정적 측면을 모델링

 

- MOM(Message-Oriented Middleware) 메시지 지향 미들웨어

: 비동기 메시지 기반 통신. 상이한 애플리케이션 간의 연결을 가능하게 함.

  즉각적인 응답보다는 안정적이고 느린 응답(메시지를 즉각적으로 처리하지 않아도 됨)을 필요로 하는 상황에 적합

  송신자와 수신자 사이에서 메시지 큐를 활용하여 데이터 손실 방지.

 

- 익스트림 프로그래밍(XP) : 애자일 방법론의 하나

 

*유스케이스(Use Case)의 구성 요소 간의 관계

- 연관Association : 유스케이스와 액터 간의 상호작용이 있음

- 포함Include : 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계

- 확장Extend : 하나의 유스케이스가 다른 유스케이스의 기능을 확장할 수 있도록 하는 관계

- 일반화Generalization : 상속 관계와 유사.

  (오답 : 구체화)

 

*유스케이스 다이어그램

- 액터(Actor) : 시스템과 상호작용하는 모든 외부요소(사람,기계,시스템 등) / 내부 구성요소는 포함x

- 유스케이스 : 사용자의 요구사항을 중심으로 목표를 달성하기 위해 수행해야 할 행동 기술

- 시스템 경계(System Boundary) : 유스케이스와 액터가 상호작용하는 시스템의 범위를 정의

 >> 유스케이스 다이어그램 : 외부 액터와 시스템 간의 상호작용을 표현하기 위한 다이어그램

 

- 기능적 요구사항 : 시스템이 실제로 어떻게 동작하는지

- 비기능적 요구사항 : 시스템 구축에 대한 성능, 보안, 품질, 안정 등 실제 수행에 보조적 요구사항

 

- ERD(Entity-Relationship Diagram) : 데이터 베이스 설계에서 데이터 간의 관계를 시각적으로 표현

  >> 구성요소 : 엔터티, 관계, 속성

 

- 미들웨어(Middleware)

 : 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어. 시스템 간의 표준화 된 연결을 도와줌

   여러 컴포넌트를 1대1, 1대다, 다대다 등의 여러 형태로 연결 가능

   사용자가 미들웨어 내부 동작을 일일이 확인 할 필요가 없음(보안문제)

 

*다형성(Polymorphism)

: 하나의 인터페이스나 메서드가 다양한 방식으로 동작

  여러 가지 형태를 가질 수 있다 >> 코드를 변경하지 않고도 새로운 클래스를 추가하거나 기존 코드 재활용

- 오버라이딩(Overriding) : 상속 관계에서 발생. 하위 클래스에서 재정의 >> 메서드의 이름, 매개변수, 반환타임 모두 동일

- 오버로딩(Overloading) : 같은 이름의 메서드를 다른 매개변수를 사용하여 여러번 정의. 같은 클래스 내에서 발생.

 

- 인터페이스(Interface)

: 시스템(소프트웨어, 하드웨어) 간의 연결 및 실행 절차. 데이터 교환이나 명령 실행을 가능케 함

 다양한 시스템들이 효율적으로 동작하고 협력하도록 함 (UI(ATM기계화면), API,하드웨어 인터페이스(usb키보드)

 

*클래스와 객체

- 클래스 : 빵 굽는 틀

- 객체 : 그 틀에서 구워지는 각각의 빵

>> 클래스는 공통 속성을 공유하는 객체들의 집합

 

*GoF(Gang of Four)

: 디자인 패턴을 생성/구조/행동 패턴으로 분류

1) 생성패턴 : 객체 생성

  : 추상팩토리, 빌더, 팩토리메소드, 프로토타입, 싱글톤(singleton)

2) 구조패턴 : 객체와 클래스 간의 구조를 조직

  : 어댑터, 브릿지, 컴포지트(composite), 데코레이터, 퍼사드(facade;단순인터페이스제), 플라이웨이트(flysweight;객체를공유하여 메모리사용량줄임), 프록시(proxy;대리객체를제공하여 접근제)

3) 행동패턴 : 행위의 변경, 수정 등을 위함

  : 역할 사슬(책임연쇄), 커맨드, 인터프리터, 이터레이터(반복자iterator), 미디에이터(중재자), 메멘토, 옵저버, 상태, 전략, 템플릿 메소드, 비지

>> Q. 구조 패턴이 아닌 것은?

 

*UI 구분

- GUI(Graphical User Inerface) : 마우스로 선택하여 작업
- NUI(Natural User Inerface) : 사용자의 말이나 행동으로 기기 조작

- OUI(Organic User Interface) : 사물과 사용자 간의 상호작용을 위함

 

*소프트웨어 아키텍쳐 모델 중 MVC(Model-View-Controller)

: 소프트웨어 디자인 패턴.

어플리케이션을 모델, 뷰, 컨트롤러 세가지 구성 요소로 분리하여 설계

>> UI의 결합도를 낮추고 응집도를 높여 유지보수와 확장성 용이하게 함

- Model : 데이터 및 비즈니스 로직 담당. 하나의 모델은 여러 뷰와 연결 될 수 있음(각각 하나씩x)

- View : UI 보여주는 역할

- Controller : 사용자의 입력(클릭, 요청 등)을 처리하여, 이 모델과 뷰로 전달(전달자 역할)

 

 

** 오늘 오버라이딩과 오버로딩의 차이점 확실히 알았다!

** 저번에도 틀렸던 부분) GUI와 NUI 확실히 구분하기!

 

oxoxooxoxx

xoooxoxoxo

11/20

55점

뻔히 출제되는 기본 개념들은 모두 숙지하도록 기출 반복하기