본문 바로가기
자격증/정보처리기사

내가 공부하려고 정리하는 정보처리기사 실기 정리 (3/6)

by yun5o 2021. 9. 30.

소프트웨어 아키텍처

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

 

소프트웨어 아키텍처 패턴 종류

- 레이어 패턴

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

각 하위 모듈은 추상화 제공, 서로 마주보는 계층끼리 상호작용
- 클라이언트-서버 패턴

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

사용자가 클라이언트에 서비스 요청, 서버가 클라이언트에 서비스 제공, 클라이언트가 사용자에게 전달
파이프-필터 패턴

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

분산 시스템에서 사용, 원격 서비스 실행 통해 상호작용 가능

브로커 패턴

사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
모델-뷰-컨트롤러 패턴(MVC 패턴)

서브시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴

모델: 핵심기능, 데이터 보관 | 뷰 : 사용자에게 정보 표시 | 컨트롤러 : 요청을 입력받아 처리


웹서비스 구성요소

네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술

 

- SOAP : HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜

- WSDL : 웹 서비스의 상세 내용을 기술된 XML 형태로 기술한 언어

- UDDI : WSDL을 기록하고 보관하기 위한 저장소

* REST : HTTP프로토콜로 데이터를 전달하는 프레임 워크, 웹에 최적화 되어있고 데이터 포맷이 JSON이기때문에 브라우저들간의 호환성 좋음


EAI 유형 [포허메하]

point to point : 1대1 단순 통합 방식

hub&spoke : 단일한 접점의 허브 시스템을 통하여 데이터 전송, 중앙 집중 방식

message bus : 앱 사이 미들웨어를 두어 연계하는 미들웨어 통합 방식

hybrid : 그룹 내는 hub&spoke, 그룹 간에는 message bus 방식으로 통합

 

EAI : 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션 간의 정보를 전달, 연계, 통합 가능하게 함

ESB : 기업 간 이기종 서비스 중심 통합 아키텍쳐 , 느슨한 결합 방식


식별자 표기법

- 카멜 표기법 : 첫 단어 시작만 소문자, 다음부턴 대문자 ex)input Function
- 파스칼 표기법 : 모든 단어 첫 글자 대문자 ex)Input Function
- 스네이크 표기법 : 언더바 사용 ex)input_function
- 헝가리안 표기법 : int형은 n, char형은 c, 문자열은 sz ex)nScore -> 정수형


비즈니스 연속성 계획 (BCP)

- BIA : 장애나 재해로 인해 운영상 손실 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석

- RTO : 업무 중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간 (재해복구시점)

- RPO : 업무 중단 시점부터 데이터가 복구되어 다시 정상 가동될 때 데이터의 손실 허용 시점 (재해복구포인트)

- DRP : 재난으로 장시간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획 (재해복구계획)

- DRS : 재해복구계획을 원활히 수행하기 위해서 평상시에 확보해 두는 자원 및 관리체계가 통합된 재해복구센터


DRS 유형

- Mirror Site : 실시간 동시 서비스가 가능한 재해복구 센터
- Hot Site : 주센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방식의 미러링을 통해 데이터의 최신 상태를 유지하고 있는 센터
- Warm Site : 중요성이 높은 자원만 부분적으로 보유하고 있는 재해복구 센터
- Cold Site : 데이터만 원격지에 보관, 재해 시 데이터를 근간으로 필요 자원 조달하는 재해복구 센터


파티션 종류

- 레인지 파티셔닝(Range Partitioning) : 연속적인 숫자나 날짜를 기준으로 하는 기법

- 해시 파티셔닝(Hash Partitioning) : 파티션 키의 해시 함숫값에 의한 기법

- 리스트 파티셔닝(List Partitioning) : 데이터에 대한 명시적 제어가 가능한 기법

- 컴포지트 파티셔닝(Composite Partitioning) : 레인지 파티셔닝 이후 해시 파티셔닝을 적용하는 기법


트랜잭션

인가받지 않은 사용자로부터 데이터를 보장하기 위해 가져야 하는 특성 (작업의 기본 단위)

 

종류

- 원자성 : 하나 실패면 전부 취소

- 일관성 : 항상 일관된 데이터베이스 상태를 보존

- 격리성 : 실행 중 다른 트랜잭션 접근 불가

- 영속성 : 결과는 영속적으로 저장되어야 한다.

 

상태변화

활동 부분완료 완료 실패 철회

 

TCL(트랜잭션 컨트롤 랭귀지)

Commit Rollback checkpoint


옵티마이저

- RBO (규칙기반 옵티마이저) : 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획 선택
- CBO (비용기반 옵티마이저) : 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택 
역할 : 쿼리 변환, 비용 산정, 계획 생성


암호 알고리즘

대칭키 (암호화 키 == 복호화 키)

- DES : 1975년 미국 연방 표준국(NIST)에서 발표

- AES : 2001년 미국 표준 연구소에서 발표, DES 상위호환
- SEED : 1999년 한국인터넷진흥원(KISA)
- ARIA : 2004년 국가정보원과 산학연협회, 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 앞글자를 땀

 

비대칭 키 방식 (공개키 암호 방식)

- 디피-헬만 :  최초 공개키 알고리즘, 이산대수
- RSA : 1977년 3명의 MIT 수학교수, 소인수 분해하는 알고리즘 / 전자서명이 가능한 최조의 알고리즘, 소인수 분해의 난해함에 기반하여 공개키만으로는 암호를 쉽게 짐작할 수 없도록 한다.

 

일방향 암호 방식(해시 암호 방식)

- MD5 : MD4를 개선한 알고리즘
- SHA : 1993년 NSA, 미국 국가 표준으로 지정

- HAS-160 : 국내 표준 서명 알고리즘 160비트 해시 함수, SHA-1을 기반


클린코드 작성원칙 [가단의 중추]

- 독성 : 누구나 코드를 쉽게 읽을 수 있도록 작성, 이해하기 쉬운 용어 사용, 들여쓰기 등

- 순성 : 간단한 작성, 한 번에 한 가지 기능 처리, 클래스/메소드/함수는 최소 단위로 분리

- 존성 최소 : 다른 모듈에 미치는 영향 최소화, 코드 변경  다른 부분에 영향 없도록 작성

- 복성 제거 : 중복된 코드는 삭제하여 공통된 코드로 사용

- 상화 : 상위 클래스/메소드/함수에서 간략하게 애플리케이션 특성을 나타내고, 상세 내용은 하위 클래스/메소드/함수에서 구현

 

* 클린코드(Clean Code) : 누구나 쉽게 이해, 수정, 추가 가능한 단순하면서 명료한 코드

* 나쁜코드(Bad Code) : 프로그램 로직이 복잡하고 이해하기 어려운 코드

* 외계인코드 : 너무 오래돼서 유지보수가 어려운 코드

* 스파게티 코드 : 소스코드가 복잡하게 얽힌 코드


테스트 자동화 도구

- 정적 분석 도구 (pmd, cpp check 등)

- 테스트 실행 도구

- 성능 테스트 도구

- 테스트 통제 도구

애플리케이션 성능 측정

- 처리량

- 응답시간

- 경과시간

- 자원 사용률


프로세스 스케줄링

응답시간 = 대기시간 + 수행시간
응답률 = (대기시간 + 서비스시간) / 서비스시간 -> HRN에서 우선순위로 사용됨

 

선점형 스케줄링 알고리즘

하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU 점유

- 라운드 로빈(RR) : 시분할 시스템 사용(시간 할당 단위로 왔다갔다 함)
- SRT:남은 시간이 가장 짧은 시간이 소요되는 프로세스부터 선점
- 다단계 큐 : 각 큐는 자신만의 독자적인 스케줄링 가짐
- 다단계 피드백 큐 : 마지막 단계는 라운드 로빈 방식 처리

 

비선점형 스케줄링 알고리즘

한 프로세스가 CPU할당 받으면 작업 종료 후 반환까지 다른 프로세스는 점유 할수 없다

- 우선순위
- 기한부
- FCFS(FIFO) : 도착한 순서에 따라 할당
SJF : 프로세스가 도착하는 시점에 따라 가장 작은 서비스 시간을 갖는 프로세스가 종료까지 자원을 점유
HRN : 대기 중인 프로세스 중 현재 응답률이 가장 높은 것을 선택 (응답시간이 클수록 우선순위 높아짐)

댓글