Certificate/정보처리기사

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

다닿 2026. 7. 8. 19:00

소프트웨어 아키텍처

  • 모듈화 Modularity
    • 결합도 Coupling ↓
    • 응집도 Cohesion 
  • 추상화 Abstraction
    • 과정 추상화 - 전반적 흐름
    • 자료 추상화 - 데이터 구조 표현
    • 제어 추상화 - 이벤트 표현 대체
  • 단계적 분해 Stepwise Refinement
    Niklaus Wirth 하향식 설계, 상세한 내역은 뒤로
  • 정보은닉 Information Hiding
    정보은닉으로 모듈을 독립적으로 수행

 

협약 Contract 에 의한 설계

명세에 포함될 조건

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

 

아키텍처 패턴 Patterns

  • 레이어 패턴 Layers Pattern
    OSI
  • 클라이언트-서버 패턴 Client-Server Pattern
    한 서버, 다수 클라
  • 파이프-필터 패턴 Pipe-Filter Pattern
    필터로 캡슐화 하여 파이프를 통해 전송
    파이프로 전달받아 처리, 파이프로 시스템으로 넘김 반복
    데이터 변환, 버퍼링, 동기화 등
    UNIX의 Shell
  • 모델-뷰-컨트롤러 패턴 Model-View-Controller Pattern
    모델 - 데이터 보관
    뷰 - 사용자에게 표시
    컨트롤러 - 사용자 요청을 모델에게 명령
  • 마스터-슬레이브 패턴 Master-Slaver Pattern
    슬레이브 컴포넌트에서 처리된 결과물을 돌려받는 방식
    장애 허용 시스템, 병렬 컴퓨팅 시스템
  • 브로커 패턴 Broker Pattern
    사용자가 원한는 서비스를 브로커가 맞는 컴포넌트와 연결
    분산 환경 시스템
  • 피어-투-피어 패턴 Peer-To-Peer Pattern
    파일 공유 네트워크
  • 이벤트-버스 패턴 Event-Bus Pattern
    Pubilish-Subscribe
    알림 서비스
  • 블랙보드 패턴 Blackboard Pattern
    모든 컴포넌트들이 공유 데이터 저장소에 접근 가능
    음성인식, 차량 식별, 신호 해석
  • 인터프리터 패턴 Interpreter Pattern
    코드 각 라인을 수행
    번역기, 컴파일러, 인터프리터

객체지향

객체지향의 구성 요소

  • 객체 Object
    • 데이터
    • 함수 - 메소드 Method, 동작 Operation
  • 클래스 Class
    • 인스턴스 Instance
  • 메시지 Message

객체지향의 특징

  • 캡슐화 Encapsulation
  • 상속 Inheritance
  • 다형성 Polymorphism
  • 연관성 Relationship
is member of 연관화 Association
is instance of 분류화 Classfication
is part of 집단화 Aggregation
is a 일반화 Generalization
특수화 Specialization

 

객체지향 분석 OOA Object Oriented Analysis

객체, 속성, 연산, 관계 등을 정의하여 모델링

속성, 클래스와 멤버, 전체와 부분 등으로 나눠 분석

 

객체지향 분석의 방법론

  • Rumbaugh 방법
    객체모델링→동적모델링→기능모델링 나눠서 분석
  • Booch 방법
    미시적 Micro, 거시적 Macro
  • Jacobson 방법
    Use Case
  • Coad와 Yourdon 방법
    E-R 다이어그램, 객체 행위 모델링
    객체 식별, 구조 식별, 주제 정의, 속성 인스튼스 연결. 연산 메시지 연결
  • Wirfs-Brock 방법
    분석과 설계 구분 없음

객체지향 설계 원칙 SOLID

  • 단일 책임 원칙 SRP
  • 개방-폐쇄 원칙 OCP
  • 리스크프 치환 원칙 LSP - 상속
  • 인터페이스 분리 원칙 ISP
  • 의존 역전 원칙 DIP

모듈

결합도 Coupling

  • 내용 결합도 Content Coupling - 니꺼내꺼
  • 공통 결합도 Common Coupling - 전역
  • 외부 결합도 External Coupling - 남의 변수
  • 제어 결합도 Control Coupling - 남의 함수
  • 스탬프 결합도 Stamp Coupling - 전달
  • 자료 결합도 Data Coupling - 보기만

응집도 Cohesion ↑

  • 기능적 응집도 Functional Cohesion
  • 순차적 응집도 Sequential Cohesion - 결과 데이터 반영
  • 교환적 응집도 Communication Cohesion - 동일 입출력
  • 절차적 응집도 Procedural Cohesion - 순차
  • 시간적 응집도 Temporal Cohesion - 유사 시간
  • 논리적 응집도 Logical Cohesion - 유사 기능
  • 우연적 응집도 Coincidental Cohesion

 

팬인/팬아웃 Fan-In/Fan-Out

윗가지, 아랫가지

 

N-S 차트 Nassi-Schneiderman Chart

논리기술에 중점, 도형식 표현, 박스 다이어그램, Chapin Chart

연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조 표현

 

IPC Inter-Process Communication

  • 모듈 간 통신 방식 구현 인터페이스 집합
  • 공유 메모리 Shared Memory
  • 소캣 Sokect
  • 세마포어 Semaphores
  • 파이프와 네임드 파이프 Pipes & named Pipes
  • 메시지 큐잉 Message Queueing

 

공통 모듈 명세 기법의 종류

정확성 Correctness

명확성 Clarity

완전성 Completeness

일관성 Consistency

추적성 Traceability

 

코드의 주요 기능

식별 기능

분류 기능

배열 기능

표준화 기능

간소화 기능

 

코드의 종류

  • 순차 코드 Sequence Code
    1,2,3 ...
  • 블록 코드 Block Code
    1001~1100 총무, 1101~1200 영업
  • 10진 코드 Decimal Code
    1000 공학, 1100 소프트웨어 공학, 1200 소프트웨어 설계
  • 그룹 분류 코드 Group Classification Code
    1-10-001 본사-총무부-인사계
  • 연상 코드 Mnemonic Code
    TV-40, L-15-200
  • 표의 숫자 코드 Significant Digit Code
    120-7-1500
  • 합성 코드 Combined Code
    KE-711

 

디자인 패턴

  • 생성패턴 Creational Pattern
    • 추상 팩토리 Abstract Factory
      Kit
    • 빌더 Builder
    • 팩토리 매소드 Factory Method
      상위 클래스 인터페이스 제공, 실제 생성은 서브 클래스
      가상 생성자 Virtual Constructo
    • 프로토타입 Prototype
      원본 객체 복제
    • 싱글톤
  • 구조패턴 Stuctural Pattern
    • 어댑터 Adapter
      호환 변환
    • 브리지 Bridge
      기능 구현을 별도로, 독립 확장
    • 컴포지트 Composite
      구분 없이 사용
    • 데코레이터 Decorator
      객체간 결합 확장
    • 퍼싸드 Facade
      상위에 인터페이스 구성, 서브에 제공하는 Wrapper 필요
    • 플라이웨이트 FlyWeight
      가능한 공유
    • 프록시 Proxy
      조합, 대리자
  • 행위패턴 Behavioral Pattern
    • 책임 연쇄 Chain of Responsibility
      요청 처리 넘기기 반복
    • 커맨드 Command
      요청을 객체 형태로 재사용,취소
    • 인터프리터 Interpreter
      문법 표현 정의
    • 반복자 Iterator
    • 중재자 Mediaor
      상호작용 Interface 캡슐화
    • 메멘토 Memento
      해당시점으로 되돌리기, ctrl+z
    • 옵서버 Observer
      pub-sub
    • 상태 State
    • 전략 Strategy
      동일 계열 알고리즘 캡슐화 상호교환
    • 템플릿 메소드 Template Method
      상위 골격, 하위 세부 처리
    • 방문자 Visitor
      처리 기능 분리, 각 클래스 방문

 

crontab

[분] [시] [일] [월] [요일] [명령어]

[분] [시] [일] [월] [요일] [명령어]
0~59 0~23 0~31 1~12 0~6 /root/file.sh

* : 매번

/3 : 3배수 마다

1-2 : 1~2동안