ye._.veloper

[ 정보처리기사 실기 요약 ] 4. 서버 프로그램 구현 본문

Certification/정보처리기사

[ 정보처리기사 실기 요약 ] 4. 서버 프로그램 구현

ye._.veloper 2023. 3. 8. 13:01

( 1 ) 소프트웨어 아키텍처

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

 

☁ 모듈화 (Modularity)

    · 시스템의 기능들을 모듈 단위로 나누는 것

    · 모듈의 크기를 너무 작게 나누면 개수가 많아져 모듈 간의 통합 비용이 많이 듦

    · 모듈의 크기를 너무 크게 나누면 개수가 적어 통합 비용은 적게 들지만 모듈 하나의 개발 비용이 많이 듦

 

  ☁  추상화 (Abstraction)

    · 전체적이고 포괄적인 개념을 설계한 후 구체화시켜 나가는 것

 

☁ 단계적 분해 (Stepwise Refinement)

    · 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법

    · 하향식 설계 전략

 

  ☁  정보 은닉 (Information Hiding)

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

    · 정보 은닉을 통해 모듈을 독립적으로 수행할 수 있다.

    · 하나의 모듈이 변경되더라도 다른 모듈에 영향을 주지 않으므로 수정, 시험, 유지보수가 용이

 

 

( 2 ) 아키텍처 패턴

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

종 류 내 용
Layer Pattern  · 시스템을 계층으로 구분하여 구성하는 패턴
 · 서로 마주보는 두 개의 계층 사이에서만 상호작용이 이뤄짐
    대표적으로 OSI 참조 모델이 있음
Client-Server Pattern  · 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
 · 사용자가 클라이언트를 통해 서버에 요청하면 클라이언트가 응답을 받아 사용자에게 제공
Pipe-Filter Pattern  · 데이터 스트림 절차를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
 · 데이터 변환, 버퍼링, 동기화 등에 주로 사용
    ex. UNIX의 Shell(쉘)
Model-View-Controller Pattern  · 서브 시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
 · 컨트롤러가 사용자의 요청을 받고 핵심 기능과 데이터를 보관하는 모델을 이용해 뷰에 정보 출력
    ex. 한 개의 모델에 대해 여러 뷰를 필요로 하는 대화형 애플리케이션에 적합
Master-Slave Pattern  · 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
    ex. 장애 허용 시스템, 병렬 컴퓨팅 시스템
Broker Pattern  · 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 요청에 맞는 컴포넌트와
    사용자를 연결해주는 패턴
    ex. 분산 환경 시스템
Peer-To-Peer Pattern  · 피어라 불리는 하나의 컴포넌트가 클라이언트가 될 수도 서버가 될 수도 있는 패턴
    ex. 파일 공유 네트워크
Event-Bus Pattern  · 소스가 특정 채널에 이벤트 메세지를 발행하면 해당 채널을 구독한 리스너들이 메시지를 받아
    이벤트를 처리하는 패턴
    ex. 알림 서비스
Blackboard Pattern  · 모든 컴포넌트들이 공유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
    ex. 음성 인식, 차량 식별, 신호 해석
Interpreter Pattern  · 프로그램 코드의 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴
    ex. 번역기, 컴파일러, 인터프리터

 

( 3 ) 객체지향 (Object-Oriented)

    · 각 요소들을 객체(Object)로 만든 후, 객체들을 조립해서 소프트웨어를 개발하는 기법

   

◽ 구성 요소

객체 (Object)  · 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈
 · 데이터 : 객체가 가지고 있는 정보 (속성, 상태, 분류 등)
 · 함수 : 객체가 수행하는 기능으로 객체가 갖는 데이터를 처리하는 알고리즘
             객체의 상태를 참조하거나 변경하는 수단
클래스 (Class)  · 공통된 속성과 연산을 갖는 객체의 집합
 · 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀
 · 클래스에 속한 각각의 객체를 인스턴스(Instance)라고 함

메시지 (Message)  · 객체들 간의 상호작용에 사용되는 수단, 객체의 동작이나 연산을 일으키는 외부의 요구사항
 · 메시지를 받은 객체는 대응하는 연산을 수행하여 예상된 결과를 반환

 

◽ 특징

캡슐화 (Encapsulation)  · 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부 내용을 은닉하는 것
상속 (Inheritance)  · 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
다형성 (Polymorphism)  · 하나의 메시지에 대해 각각의 객체가 고유한 방법으로 응답할 수 있는 능력
연관성 (Relationship)  · 두 개 이상의 객체들이 상호 참조하는 관계

▫ 연관성(Relationship)의 종류

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

 

 

 

 

 

Ref. 

시나공 정보처리기사실기 책

Comments