[4과목]
IPC (Inter-Process Communication)
모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
IPC의 대표적인 메소드 5가지
메소드 | 특징 |
Shared Memory | 공유 가능한 메모리를 구성하여 다수의 프로세스가 통신하는 방식 |
Socket | 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스 간에 통신하는 방식 |
세마포어 ; SemaPhores | 공유 자원에 대한 접근 제어를 통해 통신하는 방식 ㄴ 공유된 자원에 여러 개의 프로세스가 동시에 접근하면 안되며, 한번에 하나의 프로세스만 접근 가능하도록 해야함 |
Pipes & named Pipes | - Pipe라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신 하는 방식 - Pipe는 하나의 프로세스가 이용중이라면 다른 프로세스는 접근할 수 없음 |
메세지 큐 ;Message Queue | 메시지가 발생하면 메모리 공간을 이용하여 메시지를 전달하는 통신 방법 ㄴ FIFO정책으로 데이터가 전송됨 + 메시지 또는 패킷 단위로 동작 |
[10과목]
#include <stdio.h>
void main() {
int a = 10;
switch(++a) {
case 11: printf("B"); case 10: printf("A");
}
}
*** 모든 case문에 break문이 생략되었으므로 , switch문의 인수와 일치하는 'case 11'문장부터 switch문이 종료될 때 까지 모든 문장이 실행된다.
[7과목]
UI
- 넓은 의미
사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체 - 좁은 의미
정보 기기나 소프트웨어의 화면 등에서 사람이 접하게 되는 화면
UI 유형
- CLI (Command Line Interface)
명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스 - GUI (Graphical User Interface)
그래픽 환경을 기반으로 한 마우스나 전자 펜을 이용하는 사용자 인터페이스 - NUI (Natural User Interface)
키보드나 마우스 없이 터치, 음성을 포함한 신체 부위를 이용하는 사용자 인터페이스 - OUI (Organic User Interface)
현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스
UI 품질 요구사항
- 기능성 (Functionality)
- 소프트웨어가 사용자의 요구사항을 정학하게 만족하는 기능을 제공하는지
- 상세 품질 요구사항 : 적절성/적합성, 정밀성/정확성, 상호 운용성, 보안성, 준수성
- 신뢰성 (Reliability)
- 주어진 시간동안 주어진 기능을 오류없이 수행할 수 있는 정도
- 상세 품질 요구사항 : 성숙성, 고장 허용성, 회복성
- 사용성 (Usability)
- 사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지할 수 있는 품질 기준
- 상세 품질 요구사항 : 이해성, 학습성, 운용성, 친밀성
- 효율성 (Efficiency)
- 사용자가 요구하는 기능을 어마나 빠르게 처리할 수 있는지 정도
- 상세 품질 요구사항 : 시간 효율성, 자원 효율성
[1과목]
소프트웨어 아키텍처 4+1 뷰
고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법
소프트웨어 아키텍처 4+1뷰 구성요소
4+1에서 1은 유스케이스 이고 4는 논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰의 해결 영역으로 구성되어있다.
유스케이스 뷰 (Usecase View) |
- 다른 뷰를 검증하는데 사용 - 사용자, 설계자, 개발자, 테스트 관점 |
유스케이스 다이어그램 |
논리 뷰 (Logical View) |
- 시스템 기능적인 요구사항이 어떻게 제공되는지 - 클래스나 컴포넌트의 종류와 관계를 설명하고 설계가 실제로 구현 되는지 설명 -설계자 관점 (순서도나 UML 그리는 시점) |
클래스/시퀀스 다이어그램 |
프로세스 뷰 (Process View) |
- 시스템의 비기능적인 속성으로 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰 - 성능, 확장성, 효율성 관련 - 시스템 통합자의 관점 |
시퀀스/협력 다이어그램 |
구현 뷰 (Implementation View) |
- 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰 - 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의 - 실제 구현할 수 있는지 여부를 확인 - 직접 만드는 개발자의 관점 |
컴포넌트 다이어그램 |
배포 뷰 (Deployment View) |
- 컴포넌트가 물리적 환경에서 배치 연결 작업이 어떻게 실행 되는지를 매핑해서 보여주는 뷰 | 배치(배포) 다이어그램 |
아키텍처 패턴
건축과 비교하면 이해가 쉽다. 예를 들어 오피스텔을 짓는다고 가정할 때, "오피스텔을 지을 때는 이런 재질의 골조가, 복도의 넓이는 이 정도, 층간 높이는 이만큼이 가장 적절하더라" 라는 오피스텔 설계에 대한 가이드라인이 존재한다면 이를 참조해 손쉽게 설계가 가능하다. 이 가이드라인이 바로 소프트웨어 설계에서는 아키텍처 패턴에 해당한다고 할 수 있다.
아키텍쳐 패턴의 유형
- 레이어 패턴(계층화 패턴, Layers Pattern)
- 시스템을 계층구조(Layer)로 쌓아둔 전형적 패턴
- 각각의 상위, 하위 레이어끼리만 상호작용
- 클라이언트-서버 패턴
- 서버(=1, 항시대기): 자원제공 / 클라이언트(=다수): 자원 요청
- 파이프-필터 패턴
- 데이터의 흐름(스트림)의 각 단계를 파이프와 필터로 연결
- 모델-뷰-컨트롤러 패턴(MVC) (일반적인 *대화형 어플리케이션에 적합)
- 모델: 핵심 기능과 데이터 보관 / 컨트롤러: 입력 처리 / 뷰: 처리된 정보 표시(여러 형태의 뷰)
- 대화형 어플리케이션에 적합
- 온라인 쇼핑몰 사이트나 스마트폰 앱과 같이 사용자의 요구가 발생하면 시스템이 이를 처리하고 반응하는 소프트웨어
- 마스터-슬레이브 패턴
- 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
- 브로커 패턴
- 클라이언트의 요청을 중간에서 브로커가 적절한 서버로 연결해주는 형식(서버 여러개=분산환경 시스템)
- 피어 투 피어 패턴(P2P)
- 하나의 컴포넌트가 클라이언트가 될 수도, 서버가 될 수도 있는 패턴
- 이벤트-버스 패턴
- 특정 이벤트를 발행하면 해당 채널(버스)를 구독하고 있는 리스너들이 이벤트를 받아서 처리하는 형식
- 블랙보드 패턴
- 공유데이터를 관리하는 블랙보드에 접근하여 원하는 데이터를 찾는 형식(음성인식, 차량식별, 신호해석 등)
- 공유데이터를 관리하는 블랙보드에 접근하여 원하는 데이터를 찾는 형식(음성인식, 차량식별, 신호해석 등)
'자격증' 카테고리의 다른 글
2024 제2회 기사 실기 출제 예상(1) (0) | 2024.07.18 |
---|---|
[정보처리기사] 애플리케이션 테스트 관리 (1) (2) | 2024.07.15 |
정보처리기사 필기 기출 오답 정리 (1) | 2023.03.11 |