코린이의 공부일기

3장 통합구현 4장 서버 프로그램 구현 본문

STUDY/정보처리기사

3장 통합구현 4장 서버 프로그램 구현

SOJUNG 2021. 9. 22. 00:56

-      921일 정보처리기사 STUDY

3

 

-통합 구현

 * 사용자의 요구사항에 맞춰 송수신 모듈과 중계 모듈 간의 연계를 구현하는 것을 의미한다.

 * 통합구현은 송수신 시스템과 모듈, 중계 시스템, 연계 데이터, 네트워크로 구성된다.

 

-연계 요구사항 분석

 * 통합 구현을 위해 사용자 요구사항을 분석해 연계 데이터를 식별 및 표준화하여 연계 데이터를 정의한다.

 

-연계 메커니즘

 * 연계 메커니즘은 데이터의 생성 및 전송을 담당하는 송신 시스템과 데이터 수신 및 DB반영을 담당하는 수신 시스템으로 구성된다.

-구성방식

 * 직접 연계 방식 : 중간 매개체 없이 송 수신 시스템이 직접 연계하는 방식

   EX ) DB Link, API/OPEN API, DB Connection

   *간접 연계 방식: 송 수신 시스템 사이에 중간 매개체를 두어 연계하는 방식

     EX ) 연계 솔루션, ESB, 소켓(Socket), 웹 서비스

 

-XML

 * 특수한 목적을 갖는 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어이다.

 * 웹 브라우저 간 HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위해 개발되었다.

 * 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다.

 * 트리 구조로 구성되어 있고 상위 태그는 여러 개의 하위태그를 가질 수 있다.

 

-SOAP

*  SOAP는 컴퓨터 네트워크 상에서 HTTP/HTTPS , SMTP을 이용해 XML을 교환하기 위한 통신 규약이다.

* 웹 서비스에서 사용되는 메시지의 형식과 처리 방법을 지정한다.

 

-WSDL

 * 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어

 * SOAPXML스키마와 결합해 인터넷에서 웹 서비스를 제공하기 위해 사용된다

 

-패킷(Packet)

 *패킷은 전송 혹은 다중화를 목적으로, 데이터를 일정한 크기로 분할한 후 송 수신 측 주소와 제어정보를 부가하여 만든 데이터블록이다.

 

4장 서버 프로그램 구현

 

-UML

UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원할하게 이루어지도록 표준화한 대표적인 객체지향 언어이다.

 

-개발 언어의 선정 기준

적정성, 효율성, 이식성, 친밀성, 범용성

 

-

-소프트웨어 아키텍처

 *소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체이다.

 

-모듈화(Modularity)

*소프트웨어의 성능 향상, 시스템의 수정 및 재사용, 유지관리 등이 용이하도록 시스템의 기능들을 모듈단위로 나누는 것을 의미

 

-추상화(Abstraction)

 *추상화는 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나간 것 (불필요한 부분을 생략하고 필요한 부분을 강조해 모델화 하는 것)

 

-단계적 분해(Stepwise Refinement)

 *문제를 상위의 중요개념으로부터 하위의 개념으로 구체화시키는 분할 기법이다.

-정보 은닉(Information Hiding)

* 정보은닉은 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법이다.

 

-상위설계와 하위설계

  상위 설계 하위 설계
별칭 아키텍처 설계,예비 설계 모듈 설계, 상세 설계
설계 대상 시스템의 전체적 구조 시스템의 내부구조 및 행위
세부 목록 구조, DB, 인터페이스 컴포넌트, 자료구조, 알고리즘

 

 

 

 

-협약(Contract)에 의한 설계

협약에 의한 설계는 컴포넌트를 설계할 때 클래스에 대한 여러 가정을 공유 할 수 있도록 명세한 것이다.

-명세에 포함될 조건

조건 내용
선행조건(Precondition) 오퍼레이션이 호출되기 전에 참이 되어야할 조건
결과조건(Postcondition) 오퍼레이션이 수행된 후 만족되어야 할 조건
불변 조건(Invariant) 오퍼레이션이 실행되는 동안 항상 만족되어야 할 조건

 

아키텍처 패턴

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

 

아키텍처 패턴 종류

1. 레이어 패턴(Layer pattern)

 * 시스템을 계층으로 구분해 구성하는 고전적방법의 패턴

 * 서로 마주보는 두 개의 계층 사이에서만 상호작용이 이루어진다.

2. 클라이언트 서버 패턴 (Client – Server Pattern)

 * 하나 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴이다.

3. 파이프-필터 패턴 (Pipe – Filter Pattern)

 * 데이터 스트림 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴이다.

 * 대표적으로 UNIX의 쉘(Shell)이 있다.

 * 시스템의 처리 결과물을 파이프를 통해 전달받아 처리한 후 그 결과물을 다시 파이프를 통해 다음 시스템으로 넘겨주는 패턴을 반복한다.

4. 모델 -뷰 컨트롤러 패턴( Model -View- Controller Pattern)

 * 서브시스템을 모델 , , 컨트롤러 구조화하는 패턴이다.

 * 한 개의 모델에 대해 여러 개의 뷰를 필요로 하는 대화형 에플리케이션에 적합하다.

 

 

객체지향(Object-Oriented)

*객체지향은 소프트웨어의 각 요소들을 객체(Object)로 만든 후, 객체들을 조립해 소프트웨어를 개발하는 기법이다.

* 소프트웨어 재사용 및 확정이 용이하여 고품질 소프트웨어를 빠르게 개발할 수 있다.

객체지향 구성요소

1.     객체(Object)

객체는 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈이다.

2.     클래스(Class)

클래스는 공통된 속성과 연산을 갖는 객체의 집합이다.

클래스에 속한 각각의 객채를 인스턴스(Instance)라고 한다.

3.     메시지(Message)

메시지는 객체들 간의 상호작용에 사용되는 수단으로, 객체의 동작이나 연산을 일으키는 외부의 요구 사항이다

객체지향의 특징

1.     캡슐화 (Encapsulation)

캡슐화는 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부 내용을 은닉하는 것 이다.

객체들 간의 메시지를 주고받을 때, 상대 객체의 세부 내용은 알 필요가 없으므로 인터페이스가 단순해지고, 객체 간의 결합도가 낮아진다.

2.     상속(Inheritance)

상속은 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것이다.

 

3.     다형성 (Polymorphism)

하나의 메시지에 대해 각각의 객체가 갖고 있는 고유한 방법으로 응답할 수 있는 능력이다 ex)’+’ 연산자의 경우 숫자 클래스에서는 덧셈, 문자 클래스에서는 문자열의 연결 기능으로 사용된다.

4.     연관성(Relationship)

연관성은 두 개 이상의 객체들이 상호 참조하는 관계를 의미한다.

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

 

객체지향 분석(OOA: Object Oriented Analysis)

       사용자의 요구사항과 관련된 객체, 속성, 연산, 관계 등을 정의하여 모델링하는 작업이다.

 

객체지향 분석의 방법론

1.     럼바우 방법

분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행함

2.     Booch(부치) 방법

미시적(Micro)개발 프로세스와 거시적(Macro)개발 프로세스를 모두 사용함

클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의함

3.     Jacobson 방법

유스케이스(Use case)를 강조하여 사용함

4.     Coad Yourdon방법

E-R 다이어그램을 사용해 객체의 행위를 모델링한다.

객체, 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결정의, 연산과 메시지 연결 정의 등의 과정으로 구성한다.

 

럼바우(Rumbaugh)의 분석 기법 (중요)

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

-객체 모델링 기법(OMT, Object-Modeling Technique)

-분석 활동은 객체 모델링 -> 동적 모델링 -> 기능 모델링 순으로 이루어진다.

 

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

 

객체지향 설계 원칙

변경이나 확장에 유연한 시스템을 설계하가 위해 지켜져야할 원칙이다.

SRP, OCR, LSP, ISP, DIP 의 다섯 가지 원칙의 앞 글자를 따 SOLID 원칙이라고 부른다.

 

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

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

 

 

모듈(Module)

모듈은 모듈화를 통해 분리된 시스템의 각 기능으로 서브루틴, 서비시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미한다.

모듈의 독립성은 결합도(Coupling)와 응집도(Cohesion)에 의해 측정된다.

 

결합도(Coupling)

결합도는 모듈 간의 상호 의존하는 정도 OR 두 모듈사이의 연관 관계이다

결합도가 약할수록 품질 높음, 강할수록 품질 낮음 (/ / / / / )

내용결합도 공통결합도 외부결합도 제어결합도 스탬프결합도 자료결합도

                                                                                                

결합도강함(품질낮음)                                           <->                                               결합도약함(품질높음)

 

-내용결합도

 한 모듈이 다른 모듈의 내부기능 및 내부 자료를 직접 참조 혹은 수정할 때의 결합도

-공통(공유)결합도

공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도

-외부 결합도

어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도

-제어 결합도

어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도

-스탬프 결합도

모듈 간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달 될 때의 결합도

-자료 결합도

모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도

 

 

 

 

Comments