소프트웨어 아키텍처
- 모듈화 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 Constructor - 프로토타입 Prototype
원본 객체 복제 - 싱글톤
- 추상 팩토리 Abstract Factory
- 구조패턴 Stuctural Pattern
- 어댑터 Adapter
호환 변환 - 브리지 Bridge
기능 구현을 별도로, 독립 확장 - 컴포지트 Composite
구분 없이 사용 - 데코레이터 Decorator
객체간 결합 확장 - 퍼싸드 Facade
상위에 인터페이스 구성, 서브에 제공하는 Wrapper 필요 - 플라이웨이트 FlyWeight
가능한 공유 - 프록시 Proxy
조합, 대리자
- 어댑터 Adapter
- 행위패턴 Behavioral Pattern
- 책임 연쇄 Chain of Responsibility
요청 처리 넘기기 반복 - 커맨드 Command
요청을 객체 형태로 재사용,취소 - 인터프리터 Interpreter
문법 표현 정의 - 반복자 Iterator
- 중재자 Mediaor
상호작용 Interface 캡슐화 - 메멘토 Memento
해당시점으로 되돌리기, ctrl+z - 옵서버 Observer
pub-sub - 상태 State
- 전략 Strategy
동일 계열 알고리즘 캡슐화 상호교환 - 템플릿 메소드 Template Method
상위 골격, 하위 세부 처리 - 방문자 Visitor
처리 기능 분리, 각 클래스 방문
- 책임 연쇄 Chain of Responsibility
crontab
[분] [시] [일] [월] [요일] [명령어]
| [분] | [시] | [일] | [월] | [요일] | [명령어] |
| 0~59 | 0~23 | 0~31 | 1~12 | 0~6 | /root/file.sh |
* : 매번
/3 : 3배수 마다
1-2 : 1~2동안
'Certificate > 정보처리기사' 카테고리의 다른 글
| [정보처리기사][요약] 6.화면 설계 (0) | 2026.07.08 |
|---|---|
| [정보처리기사][요약] 5.인터페이스 구현 (0) | 2026.07.08 |
| [정보처리기사][요약] 3.통합 구현 (0) | 2026.07.08 |
| [정보처리기사][요약] 2.데이터 입/출력 구현 (0) | 2026.07.07 |
| [정보처리기사][요약] 1.요구사항 확인 (0) | 2026.07.06 |