정보처리기사

통합구현 / 웹서비스 활용 / 아키텍처 / 객체지향

청춘고양이 2023. 8. 27. 13:23
반응형

통합구현 : 사용자의 요구사항에 맞춰 송수신 모듈과 중계모듈간의 연계를 구현하는 것을 의미
통합구현의 구성요소

  • 송신시스템과 모듈 : 데이터를 생성 및 변환하여 전송하는 시스템, 송신모듈과 모니터링 기능으로 구성
  • 수신시스템과 모듈 : 수신받은 데이터를 정제 및 변환하는 시스템, 수신모듈과 모니터링 기능으로 구성
  • 중계시스템 : 내외부 시스템간 또는 내부 시스템간의 연계시 사용되는 아키텍처
  • 연게데이터 : 송수신시스템간 송수신되는 데이터
  • 네트워크 : 송신, 수신, 중계시스템을 연결해주는 통신망

연계메커니즘 - 가볍게 알고 가는 걸로.
웹서비스 : 웹이라는 네트워크 환경에 연결된 서로 다른 컴퓨터들이 동적으로 서로 연결되어 소통하고 실행될 수 있도록 하는 소프트웨어 컴포넌트 묶음
웹서비스의 활용

  • XML : 특수한 목적을 갖는 마크업언어를 만드는데 사용되는 다목적 마크업 언어. 웹브라우저간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위하여 개발 
  • SOAP : 컴퓨터 네트워크 상에서 HTTP/HTTPS, SMTP 등을 이용하여 XML을 교환하기 위한 통신 규약. 웹서비스에서 사용되는 메시지의 형식과 처리방법을 지정
  • WSDL : 웹서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어, XML로 작성 UDDI의 기초가 된다.
  • UDDI : 기업이나 단체, 개인이 자신들의  서비스 내용을 인터넷상에 등록할 수 있게 하는 XML 기반의 등록처

소프트웨어 아키텍처 : 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체
소프트웨어 아키텍처 설계의 기본원리

  • 모듈화 : 소프트웨어의 성능 향상, 시스템의 수정 및 재상, 유지관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것
  • 추상화 : 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 것
  • 단계적 분해 : 문제를 상위의 중요 개념으로 부터 하위의 개념으로 구체화시키는 분할 기법
  • 정보은닉 : 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법 

소프트웨어 개발 설계 단계

  • 상위설계(아키텍처설계) : 시스템의 전체적인 구조(구조, DB, 인터페이스)
  • 하위설계(모듈설계) : 시스템의 내부 구조 및 행위(컴포넌트, 자료구조, 알고리즘)

협약에 의한 설계 : 컴포넌트를 설계할때 클래스에 대한 여러 가정을 공유할 수 잇도록 명세한 것
명세에 포함될 조건

  • 선행조건 : 오퍼레이션이 호출되기 전에 참이 되어야 할 조건
  • 결과조건 : 오퍼레이션이 수행된 후 만족되어야 할 조건
  • 불변조건 : 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건

아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제를 의미

  • 레이어패턴 : 시스템을 계층으로 구분하여 구성하는 고전적인 방법의 패턴
  • 클라이언트 서버 패턴 : 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
  • 파이프 필터 패턴 : 데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
  • 모델-뷰-컨트롤러 패턴 : 서브시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
  • 마스터 슬레이브 패턴 : 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려 받는 방식으로 작업을 수행하는 패턴
  • 브로커 패턴 : 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
  • 피어투피어 패턴 : 피어라 불리는 하나의 컴포넌트가 클라이언트가 될 수도, 서버가 될 수도 있는 패턴
  • 이벤트 버스 패턴 : 소스가 특정 채널에 이벤트  메시지를 발행하면, 해당 채널을 구독한 리스너들이 메시지를 받아 이벤트를 처리하는 패턴
  • 블랙보드 패턴 : 모든 컴포넌트들이 공유데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
  • 인터프리터 패턴 : 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴

객체지향 : 소프트웨어의 각 요소들을 객체로 만든 후 객체들을 조립해서 소프트웨어를 개발하는 기법
객체 : 데이터와 이를 처리하기 위한 함수를 묶어놓은 소프트웨어 모듈
클래스 : 공통된 속성과 연산을 갖는 객체의 집합
메시지 : 객체들 간의 상호작용에 사용되는 수단
캡슐화 : 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부 내용을 은닉하는 것
상속 : 상위클래스의 모든 속성과 연산을 하위클래스가 물려받는것
다형성 : 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
연관성 : 두개 이상의 객체들이 상호 참조하는 관계를 의미

  • is member of(연관화) : 2개 이상의 객체가 상호 관련되어 있음을 의미 
  • is instance of(분류화) : 동일한 형의 특성을 갖는 객체들을 모아 구성하는 것
  • is part of(집단화) : 관련있는 객체들을 묶어 하나의 상위 객체를 구성하는 것
  • is a(일반화) : 공통적인 성질들로 추상화한 상위 객체를 구성하는 것
  • is a(특수화/상세화) : 상위 객체를 구체화하여 하위 객체를 구성하는 것

객체지향 분석의 방법론

  • 럼바우 방법(rumbaugh) : 분석 활동을 객체모델, 동적모델, 기능모델로 나누어 수행
  • 부치방법(booch) : 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용함. 클래스와 객체들을 분석 및 식별하고 클래스와 속성의 연산을 정의
  • Coad와 Yourdon 방법 : E-R 다이어그램을 사용하여 객체의 행위를 모델링함

럼바우의 분석기법 : 모든 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법

  • 객체모델링->동적모델링->기능모델링
  • 객체모델링 : 정보모델링이라고도 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시하는 것
  • 동적모델링 : 상태다이어그램을 이용하여 시간의 흐름에 따른 객체들간의 제어 흐름, 상호작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
  • 기능모델링 : 자료흐름도를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링

객체지향의 설계 원칙
객체지향 설계 원칙의 종류

  • 단일책임원칙(SRP) : 객체는 단 하나의 책임만 가져야한다는 원칙
  • 개방 폐쇄 원칙(OCP) : 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야한다는 원칙
  • 리스코프 치환 원칙(LSP) : 자식 클래스는 최소한 부모 클래스의 기능은 수행할 수 있어야 한다는 원칙
  • 인터페이스 분리 원칙(ISP) : 자신이 사용하지 않는 인터페이스와 의존관계를 맺거나 영향을 받지 않아야한다는 원칙
  • 의존 역전 원칙(DIP) : 의존관계 성립시 추상성이 높은 클래스와 의존관게를 맺어야한다는 원칙
반응형