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

[정보처리기사] 2022년 2회차 (1)소프트웨어 설계

by HJ0216 2023. 7. 6.

정보처리기사

UML 다이어그램

구조적(정적) 다이어그램

  • 객체: 객체 정보
  • 클래스: 클래스의 속성, 함수, 변수 타입으로 구성
  • 패키지: 클래스 다이어그램의 집합
  • 컴포넌트: 컴포넌트끼리의 구조 관계를 표현
  • 배치(Deployment): SW, HW 등을 포함한 시스템의 물리적 구조를 나타냄

행위적(동적) 다이어그램

  • 유스케이스: 사용자 관점에서 바라본 시스템을 표현
    • 관계 종류: 연관, 확장(선택), 포함(필수), 일반화
  • 활동: 시스템 전체의 흐름
  • 상태: 하나의 객체에서 발생하는 활동 변화
  • 순차: 시간의 흐름에 따른 객체 사이의 상호 작용
  • 커뮤니케이션
  • 인터렉션 오버뷰
  • 타이밍

 

미들웨어

: 클라이언트와 서버 간의 통신을 담당하는 소프트웨어

  • DataBase: 데이터베이스와 연결하기 위한 미들웨어(ODBC, JDBC 등)
  • Remote Procedure Call: 원격 프로시저를 로컬 프로시저처럼 호출(원격 데스크톱 등)
  • Message Oriented Middleware: 비동기형 메시지를 전달, 즉각적인 응답보다는 쌓아두고 시간이 있을 때 처리하는 방식
  • Transaction Processing Monitor: 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션을 처리 및 감시, 빠른 응답속도를 유지해야 할 경우 주로 사용
  • Object Request Broker: 객체지향 미들웨어
  • Web Application Server: 동적인 콘텐츠를 처리하기 위한 미들웨어로, 웹 환경을 구현하기 위해 사용

 

요구사항 분석

  • 기능적 분석: 기능 관련
  • 비기능적 분석: 기능의 성능, 보안, 품질 관련

 

애자일 방법론

: 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행

  • eXtreme Programming: 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
    • 핵심 가치: 의사소통, 피드백, 존중, 용기, 단순성
  • Scrum: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 개발 방법론
  • LEAN: 낭비 요소를 제거하여 품질을 향상

구조적 방법론

: 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론

  • 종류: Data Flow Diagram, Data Dictionary

정보공학 방법론

: 계획, 분석, 설계, 구축에 정형화된 기법들을 통합 및 적용하는 자료 중심의 방법론

  • Entity-Relationship-Diagram: DB 설계의 표현으로 사용하는 모델링 언어

객체지향 방법론

: 현실 세계의 개체(Entity)를 속성(Attribute)과 메소드(Method)가 결합된 형태의 객체(Object)로 표현

  • UML 표기법: 사물, 관계, 다이어그램(사물과 사물 간의 관계를 용도에 맞게 표현)으로 구성

 

애자일 SW 개발선언

  1. 개인과 상호작용에 더 가치를 둔다.
  2. 실행되는 SW에 더 가치를 둔다.
  3. 고객과 협업에 더 가치를 둔다.
  4. 변화에 반응하는 것에 더 가치를 둔다.

UI

  • 설계 지침: 유연성, 학습성, 유효성, 직관성
  • User Experience: 경험기반 디자인 → UI 생성
  • UI 종류
    • Graphical User Interface: 그래픽 환경을 기반으로 한 마우스를 이용하는 사용자 인터페이스
    • Command Line Interface: 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
    • Natural User Interface: 사용자의 움직임을 인식하여 서로 주고받는 정보를 제공하는 사용자 인터페이스
    • Organic User Interface: 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스

EAI ( Enterprise Application Integration )

: 기업에서 운영하는 서로 다른 플랫폼, App간의 정보 전달, 연계, 통합을 위한 솔루션

EAI_유형

객체지향

  • 클래스: 공통 속성을 공유하는 객체들의 집합
  • 캡슐화: 서로 관련성이 많은 데이터들과 연산들을 묶음

 

객체지향 분석의 방법론

  1. Rumbaugh: 가장 일반적으로 사용되는 방법으로 분석 활동을 객체(▶ 객체 다이어그램 활용)/동적(▶ 상태 다이어그램)/기능(▶ DFD) 모델로 나누어 수행하는 방법
  2. Booch: 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용
  3. Jacobson: Use Case를 강조하여 사용
  4. Coad와 Yourdon: E-R다이어그램을 사용
  5. Wirfs-Brock: 분석과 설계간의 구분이 없음

 

모듈과 컴포넌트

  • 모듈: 비슷하거나 연관성 있는 것들로 이루어진 메소드나 클래스의 집합
  • 컴포넌트: 기능의 최소 단위
  • Client-Server 시스템으로 예를 들자면 하나의 서버가 10개의 클라이언트에게 정보를 제공할 때, 모듈은 서버와 클라이언트 2개를 가지지만 컴포넌트는 11개

 

GoF(Gang of Four) 디자인 패턴

생성 패턴(Creational Patterns) 5 : 객체 생성에 대한 패턴

종류 설명
Abstract Factory 구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공
Builder 생성 절차는 동일하지만 결과는 다르게 만듦
Factory Method 객체를 생성할 때 필요한 인터페이스 생성
Propotype 원본 객체를 복사하여 새 객체를 생성
SingleTon 오직 하나의 객체만들 생성

구조 패턴(Structural Patterns) 5 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴

종류 설명
Adapter 클래스의 재사용성을 높이기 위해 클래스간의 기능을 변환 제공하여 호환성을 확보
Bridge 기능 클래스 계층과 구현 클래스 계층을 분리
Composite 복잡한 객체구조를 표현하여 객체집합 속에 또 다른 객체집합을 갖음
Decorator 새로운 기능이 추가될 때마다 새로운 객체를 만들고, 이전 객체의 기능은 새로운 객체내에서도 그대로 유지, 보장
Facade(퍼싸드) 서브시스템이 복잡할 경우 간단한 인터페이스를 통해 서브시스템의 주요기능을 사용할 수 있도록 함
Fly weight 인스턴스를 가능한 한 공유시켜 불필요한 생성을 하지않도록 함
Proxy 객체접근을 제어

행위 패턴(Behavioral Patterns) 11 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

 

아키텍쳐 패턴의 유형

  1. Layers(계층화) Pattern: 시스템을 계층구조(Layer)로 쌓아둔 전형적 패턴
    • 특정 레이어만 유지보수하여 시스템 개선 가능
  2. Client-Server 패턴:
    • 서버(=1, 항시대기): 자원 제공
    • 클라이언트(=다수): 자원 요청
    • 각자의 기능이 독립적으로 동작
  3. 파이프-필터 패턴: 데이터의 흐름(스트림)의 각 단계를 파이프와 필터로 연결
    • 파이프: 각 단계명
    • 필터: 각 파이프를 통해 넘어온 데이터를 처리하고 캡슐화
    • 재사용성, 확장성이 좋아 다양한 파이프라인 생성 가능
  4. 모델-뷰-컨트롤러 패턴(MVC)
  5. 마스터-슬레이브 패턴:
    • 마스터 컴포넌트가 지시한 일을 여러 슬레이브 컴포넌트가 병렬처리하여 결과를 취합
    • 몇 개의 슬레이브가 고장나도 업무 처리에는 문제가 없음
  6. 피어 투 피어 패턴(P2P): 서버와 클라이언트가 서로 역할을 바꿀 수 있는 형태(torrent)로 두 가지 일을 병렬로 수행하는 멀티스레딩(자원요청/제원제공)이 특징
  7. 이벤트-버스 패턴: 특정 이벤트를 발행하면 해당 채널(버스)를 구독하고 있는 리스너들이 이벤트를 받아서 처리하는 형식
  8. 블랙보드 패턴: 공유데이터를 관리하는 블랙보드에 접근하여 원하는 데이터를 찾는 형식

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

[정보처리기사] 미들웨어(Middleware) 솔루션 종류

1. 미들웨어의 개념 및 종류 - 미들웨어에서 미들(Middle)과 소프트웨어(Software)의 합성어로, 운영체제와 해당 운영체제에서 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서비스 이외에

devinus.tistory.com

 

[정보처리기사 실기] EAI의 개념과 종류, ESB의 형태

ㆍ 시스템 인터페이스를 위해 내부, 외부 모듈을 연계하는 방법은 대표적으로 EAI와 ESB 두 가지 방식이 있다. (1) EAI ( Enterprise Application Integration ) - 개념 : 기업에서 운영하는 서로 다른 플랫폼, App

leesteady.tistory.com

 

[정보처리기사] 실기 개념정리 2 - 디자인패턴

안녕하세요 스카이디브입니다. 정보처리기사 실기 시험대비 개념정리 두번째 글입니다. 며칠 전 2021년 정기기사시험 3회 접수가 있었는데요 모두들 성공하셨나요? 저는 항상 접수부터가 고난이

skyjava93.tistory.com