정보처리기사에서 자주 등장하는 내용 중 개인적으로 암기가 필요한 내용 위주로 정리했습니다.
애자일 방법론
XP : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
- XP 5가지 가치(용단의피존)
- 용기
- 단순성
- 의사소통
- 피드백
- 존중
- XP 12가지 원리
- 짝 프로그래밍(Pair Programming)
- 공동 코드 소유
- 지속적 통합(CI)
- 계획 세우기
- 작은 릴리즈
- 메타포어 : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 함
- 간단한 디자인
- TDD
- 리팩토링
- 40시간 작업
- 고객 상주
- 코드 표준
스크럼(Scrum) : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 방법론
- 백로그 : 요구사항
- 스프린트 : 짧은 개발 기간 반복적 수행
- 스크럼 미팅 : 매일 15분 정도의 미팅. Todo List 수립
- 스크럼 마스터 : 프로젝트 리더
- 스프린트 회고 : 주기를 되돌아보며 확인 및 기록
- 번 다운 차트
린(LEAN) : 도요타 린 시스템 품질기법을 개발 프로세스에 적용해서 낭비 요소를 제거시킨 방법론
객체 지향 분석 방법론
OOSE : 야콥슨, 유스케이스를 모든 모델의 근간으로 활용하는 방법론
OMT : 럼바우, 객체 / 동적 / 기능 모델링 순으로 분석 진행, (객체 -> 상태 -> 자료 흐름도)
OOD : 부치, 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론
비용산정 모형 분류
하향식 선정방법
- 전문가 판단
- 델파이 기법
상향식 선정방법
- LoC 모형 : 원시 코드 라인 수의 낙관치, 중간치, 비관치 측정
- ManMonth 모형 : 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 비용 산정
- COCOMO 모형 : 보헴, 프로그램 규모에 따라 비용 산정
- 조직형
- 반 분리형
- 임베디드 형
- 푸트남(Putnam) 모형 : 개발주기 단계별로 요구할 인력의 분포를 가정, Rayleigh-Norden 곡선의 노력 분포도 기초
- 기능점수(FP) 모형 : 요구 기능을 증가시키는 인자별로 가중치 부여, 합산 후 총 기능 점수 계산하여 비용 산정
일정관리 모델
- 주 공정법(CPM) : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
- PERT : 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정 관리
- CCPM : 주 공정 연쇄법으로 자원제약사향을 고려하여 일정 작성
소프트웨어 아키텍처 4+1 뷰
고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적 접근 방법
- 유스케이스 뷰 : 다른 뷰를 검증하는 데 사용되는 뷰
- 논리 뷰 : 요구사항이 어떻게 제공되는지 설명하는 뷰
- 프로세스 뷰 : 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰
- 구현 뷰 : 모듈의 구성을 보여주는 뷰
- 배포 뷰 : 물리적인 아키텍처에 어떻게 배치되는가를 보여주는 뷰
소프트웨어 아키텍처 패턴
- 계층화 패턴 : 시스템을 계층으로 구분하여 구성
- 클라이언트-서버 패턴
- 파이프-필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
- 브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용
- MVC 패턴 : MVC 3개의 서브시스템으로 구조화하는 패턴
소프트웨어 아키텍처 비용 평가 모델
- SAAM : 평가가 용이하여 경험이 없는 조직에서도 활용 가능한 모델
- ATAM : 품질 속성을 만족시키는지 판단 및 품질 속성들의 이해 상충관계까지 평가
- CBAM : ATAM + 경제적 의사결정에 대한 요구를 충족하는 모델
- ADR : 구성요소 간 응집도를 평가하는 모델
- ADIR : ATAM + ADR, 특정 부분에 대한 품질 요소에 집중하는 모델
디자인 패턴
생성 : 객체 생성 방식을 구조화, 캡슐화 수행
- 빌더 패턴 : 복잡한 인스턴스를 조립하여 만드는 구조
- 프로토타입 : 일반적인 원형을 만들어놓고 복사해서 사용하는 패턴
- 팩토리 메서드 : 상위 클래스에서 인터페이스를 정의하고, 하위 클래스에서 생성
- 추상 팩토리 : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- 싱글톤 : 객체를 하나만 생성하도록 보장
구조 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다룸
- 브릿지 : 기능 클래스 계층과 구현 클래스 계층 연결, 추상화된 부분과 구현 부분을 독립적으로 확장 가능
- 데코레이터 : 기존 클래스에 필요한 기능을 추가해 나가는 설계 패턴
- 파사드 : 단순한 인터페이스를 제공해 시스템 구조에 대한 파악을 쉽게하는 패턴
- Flyweight : 경량화 목적
- 프록시 : 실체 객체에 대한 접근 이전에 필요한 행동을 취할 수 있게 만듦
- 컴포지트 : 객체 관계를 트리 구조로 구성하여 부분-전체 계층을 표햔하는 패턴
- 어댑터 : 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 인터페이스를 만드는 패턴
행위 : 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴
- 이터레이터 : 컬렉션 구현 방법을 노출시키지 않고 모든 항목에 접근할 수 있는 패턴
- 템플릿 메서드 : 상위 작업의 구조를 바꾸지 않으면서 서브 클래스로 작업 일부분 수행
- 옵저버 : 한 객체의 상태가 바뀌면 의존하는 다른 객체들에게 알려 자동으로 갱신되는 패턴
- 상태 : 객체 상태에 따라 행위 내용 변경
- 비지터 : 특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원
- 커맨드 : 요구사항을 객체로 캡슐화
- 전략 : 행위 객체를 클래스로 캡슐화 해 동적으로 행위를 자유롭게 변환
- 메멘토 : 객체를 이전 상태로 복구 시켜야 하는 경우
- 연쇄 책임 : 한 요청을 2개 이상의 객체에서 처리
UI 설계 원칙
- 직관성 : 누구나 쉽게 이해하고, 사용할 수 있어야 함
- 유효성 : 정확하고 완벽하게 사용자의 목표가 달성될 수 있어야 함
- 학습성 : 모두가 쉽게 배우고 사용할 수 있어야 함
- 유연성 : 요구사항을 최대한 수용하고, 실수를 방지할 수 있도록 제작
UI 설계 지침
- 사용자 중심
- 일관성
- 단순성
- 결과 예측 가능
- 가시성
- 표준화
- 접근성
- 명확성
- 오류 발생 해결
UI 품질 요구사항
- 기능성 : 실제 수행 결과와 품질 요구사항과의 차이 분석, 시스템의 동작을 관찰하기 위한 품질 기준
- 신뢰성 : 작동되는 시간 동안 의도하는 기능을 수행함을 보증하는 품질 기준
- 사용성 : 어떠한 행위를 정확하고 쉽게 인지할 수 있는 품질 기준
- 효율성 : 한정된 자원으로 얼마나 빨리 처리할 수 있는가에 대한 품질 기준
- 유지보수성 : 요구사항을 개선하고 확장하는 데 있어 얼마나 용이한가에 대한 품질 기준
- 이식성 : 다른 플랫폼에서도 많은 추가 작업 없이 얼마나 쉽게 적용이 가능한가에 대한 품질 기준
UML 다이어그램
구성요소
- 사물
- 관계
- 다이어그램
정적 다이어그램
- 클래스 다이어그램 : 클래스 간 관계 표현
- 객체 다이어그램 : 객체 관 관계 표현
- 컴포넌트 다이어그램 : 컴포넌트 간 관계 표현
- 배치 다이어그램 : 물리적 요소들의 위치 표현
- 복합체 구조 다이어그램 : 복합 구조인 경우 그 내부 표현
- 패키지 다이어그램 : 패키지 간 관계 표현
동적 다이어그램
- 유스케이스 다이어그램 : 사용자 관점에서 표현
- 시퀀스 다이어그램 : 시간적 개념 중심으로 메시지 표현
- 커뮤니케이션 다이어그램 : 객체들이 주고 받는 메시지와 상호작용까지 표현
- 상태 다이어그램 : 객체의 상태 표현
- 활동 다이어그램 : 시스템이 수행하는 활동 표현
- 타이밍 다이어그램 : 객체의 상태 변화와 시간 제약 표현
클래스 간 관계
- 연간 관계 : 2개 이상의 사물이 서로 관련되어 있는 관계 (연실화, 실선 화살표)
- 의존 관계 : 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계(의점화, 점선 화살표)
- 일반화 관계 : 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현 (일속빈화, 속이 빈 화살표)
- 실체화 관계 : 서로를 그룹화 할 수 있는 관계 (실속빈점화, 속이 빈 점선 화살표)
- 포함 관계 : 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계 (포속마, 속이 채워진 마름모)
- 집합 관계 : 하나의 사물이 다른 사물에 포함되어 있는 관계 (집속빈마, 속이 빈 마름모)
데이터 모델링
모델 표시요소
- 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업 명세
- 구조 : 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
- 제약 조건 : 실제 데이터의 논리적인 제약 조건
논리적 데이터 모델링
- 관계 데이터 모델 : 2차원 테이블 형태로 구성된 모델
- 계층 데이터 모델 : 트리 형태로 구성된 모델
- 네트워크 데이터 모델 : 그래프 형태로 구성된 모델
데이터베이스
- 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터 집합
- 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터
- 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조
웹 서비스 유형
- SOAP : HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 네트워크 상태에서 교환하는 프로토콜
- Envelope, Header, Body 구성
- WSDL : 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어
- UDDI : WSDL을 등록하고 검색하기 위한 저장소
인터페이스 기능 구현 기술
- XML : XML 프롤로그와 요소로 구성
- AJAX : JS를 이용한 웹 서버-클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술
- XMLHttpRequest : 비동기 통신을 담당하는 자바스크립트 객체
- DOM : XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API
- XSLT : XML문서를 다른 XML 문서로 변환하는 데 사용하는 XML 기반 언어
- REST : 리소스, 메서드, 메시지 3가지 요소 구성
- 클라이언트/서버 구조
- 무 상태성
- 일관된 인터페이스
- 캐시 처리 가능
- 자체 표현 구조
데이터베이스 암호화 기법
- API 방식 : 어플리케이션이 암호화
- Plug-in 방식 : DB가 암호화
- TDE 방식 : DBMS 커널이 자체적으로 암호화
- Hybrid 방식 : API + Plug-in
인터페이스 구현 검증 도구 종류
- xUnit : 단위테스트 프레임워크
- STAF : 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 도구
- FitNesse : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
- NTAF : NHN이 FitNess와 STAF를 통합
- Selenium : 웹 어플리케이션 테스트 프레임워크
- watir : Ruby 기반 웹 어플리케이션 테스트 프레임워크
인터페이스 감시 도구
- 스카우터 : 어플리케이션에 대한 모니터링 및 DB 에이전트를 통해 오픈 소스 DB 모니터링 기능, 인터페이스 감시 기능 제공
- 제니퍼 : 전 SDLC 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어
트랜잭션
DBMS에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
특성
- 원자성
- 일관성
- 고립성
- 영속성
병행 제어
다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 일관성 유지를 위해 상호 작용을 제어하는 기법
미보장 시 문제점
- 갱신 손실
- 현황 파악오류
- 모순성
- 연쇄복귀
병행 제어 기법 종류
- 로킹(Locking)
- 낙관적 검증
- 타임 스탬프 순서
- MVCC
회복 기법
장애로 인해 손상된 DB를 이전 상태로 복구시키는 작업
- 로그 기반 회복기법
- 지연 갱신 회복 기법
- 즉각 갱신 회복 기법
- 체크 포인트 회복
- 그림자 페이징 회복 기법
모듈화
응집도(우논시절통순기)
- 우연적 응집도 : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소만 구성된 응집도
- 논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
- 시간적 응집도 : 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
- 절차적 응집도 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
- 통신적 응집도 : 동일한 입 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
- 순차적 응집도 : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
- 기능적 응집도 : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도
결합도(내공외제스자)
- 내용 결합도 : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
- 공통 결합도 : 전역 변수를 참조하고 갱신하는 식으로 상호 작용하는 경우의 결합도
- 외부 결합도 : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 프로토콜, 인터페이스를 공유할 경우 결합도
- 제어 결합도 : 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 통신하는 경우의 결합도
- 스탬프 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
- 자료 결합도 : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도
테스트 목적에 따른 분류
- 회복 테스트 : 고의로 실패를 유도하고, 정상적 복귀 여부를 테스트
- 안전 테스트 : 보안적인 결함을 미리 점검하는 테스트
- 성능 테스트 : 시스템이 반응하는 속도 등을 측정하는 테스트 기법
- 구조 테스트 : 소스 코드의 복잡도를 평가하는 테스트
- 회귀 테스트 : 오류를 제거하거나 수정한 시스템에서 새로이유입된 오류가 없는지 확인하는 반복 테스트 기법
- 병행 테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트
테스트 실행 도구
- 데이터 주도 접근 방식 : 테스트 데이터를 스프레드시트에 저장, 아무나 쉽게 테스트 수행 가능
- 키워드 주도 접근 방식 : 키워드와 테스트 데이터를 스프레드시트에 저장
성능 분석 도구
성능 테스트 도구
- JMeter : HTTP, FTP, LDAP 등 다양한 프로토콜을 지원하는 테스트 도구
- LoadUI : 웹 서비스를 대상으로 서버 모니터링을 지원하는 부하 테스트 도구
- OpenSTA : HTTP, HTTPS 지원하는 부하 테스트 및 생산품 모니터링 도구
시스템 모니터링 도구
- Scouter : 단일 뷰 통합/실시간 모니터링, 튜닝에 최적화된 인프라 통합 모니터링 도구
- Zabbix : 웹 기반 서버, 서비스, 어플리케이션 모니터링 도구
프로세스 상태 전이
- 디스패치 : 준비 -> 실행, 컨텍스트 스위칭 발생
- 타이머 런 아웃 : 실행 -> 준비, 타임 슬라이스 만료 or 선점 시 타임아웃 발생
- 블록 : 실행 -> 대기, 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 대기
- 웨이크 업 : 대기 -> 준비, 입출력 종료 사실을 wait & signal 등에 의해 알려주고, 준비 상태로 전이
교착상태 발생 조건
- 상호 배제 : 자원을 배타적으로 점유하여 다른 프로세스가 자원을 사용할 수 없는 상태
- 점유/대기 : 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비선점 : 다른 프로세스가 자원을 선점할 수 없음
- 환형 대기 : 점유와 대기가 하나의 원형을 구성한 상태
교착상태 해결 방법
- 예방 : 상호 배제를 제외한 나머지 교착상태 발생 조건을 위배하는 방안
- 회피 : 안전한 상태를 유지할 수 있는 요구만 수락 (은행가 알고리즘)
- 발견 : 상태를 감시 알고리즘을 통해 교착 상태 검사 (자원할당 그래프)
- 복구 : 없어질 때 까지 순차적으로 Kill하여 제거
OSI 7 Layer
1. Physical Layer 단위 : bit
- 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
- 프로토콜 : RS-232C
- 장비 : 허브, 리피터
2. DataLink Layer 단위 : Frame
- 인접 시스템 간 데이터 전송, 전송 오류 제어
- 동기화, 오류제어, 흐름제어, 회선 제어
- 프로토콜 : HDLC, PPP
- 장비 : 브리지, 스위치
3. Network Layer 단위 : Packet
- 단말기 간 데이터 전송을 위한 최적화된 경로 제공
- 프로토콜 : IP, ICMP
- 장비 : 라우터
4. Transport Layer 단위 : Segment
- 송수신 프로세스 간의 연결
- 신뢰성 있는 통신 보장
- 프로토콜 :TCP, UDP
- 장비 : L4 스위치
5. Session Layer 단위 : Data
- 송수신 간의 논리적인 연결
- 연결 접속, 동기 제어
- 프로토콜 : RPC, NetBIOS
- 장비 : 호스트
6. Presentation Layer 단위 : Data
- 데이터 형식 설정, 부호교환, 암 복호화
- 프로토콜 :JPEG, MPEG
- 장비 : 호스트
7. Application Layer 단위 : Data
- 사용자와 네트워크 간 응용서비스 연결, 데이터 생성
- 프로토콜 : HTTP, FTP
- 장비 : 호스트
네트워크 전달 방식
패킷 교환 방식
- 데이터 그램 방식 : 경로를 확립하지 않고 각각의 패킷을 순서에 무관하게 독립적으로 전송
- 가상 회선 방식 : 전송 전 송수신 스테이션 간 논리적인 통신 경로를 미리 설정
- X.25
- 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜
- 고정된 대역폭
- 복잡한 기능으로 오버헤드 발생
- 프레임 릴레이
- ISDN을 사용하기 위한 프로토콜
- 유연한 대역폭
- 가격이 저렴
- ATM
- 비동기 전송모드, 광대역 전송에 쓰이는 스위칭 기법
- AAL : 패킷을 작은 조각인 셀로 전송한 후 다시 조립하여 원래의 데이터로 복원하는 역할 담당
- ATM 계층 : 셀과 셀 전송 역할 담당
- 물리 계층 : 물리적 전송 매체를 처리하는 역할ㄷ ㅏㅁ당
서킷 교환 방식
- 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식
- 전송 보장
- 서킷 확보 작업 수행
DRM 구성요소
- 클리어링 하우스 : 저작권에 대한 사용 권한, 라이센스 발급, 사용량에 따른 관리 등을 수행
- 패키저 : 컨텐츠를 메타데이터와 함께 배포 가능한 단위로 묶는 도구
- DRM 컨트롤러 : 배포된 디지털 콘텐츠의 이용 권한 통제
- 보안 컨테이너 : 원본 컨텐츠를 안전하게 유통하기 위한 전자적 보안장치
- 제공자
- 소비자
- 분배자
패키징 도구 구성 세부 기술
- 암호화
- 공개키 기반구조(PKI)
- 대칭/비대칭 암호화
- 전자서명
- 식별 기술
- DOI : 저작권 보호 및 정확한 위치 추적을 위해 특정 번호를 부여하는 시스템
- URI
- 저작권 표현
- XrML : XML 기반에 권리 조건을 표현한 언어
- MPEG-21
- 암호화 파일 생성
- Pre-packaging : 등록하자 마자 암호화하는 방법
- On-the-fly Packaging : 요청한 시점에 암호화하는 방법
- 정책 관리
- XML
- CMS : 다양한 미디어 포맷에 따라 각종 컨텐츠를 전 공급 과정을 관리하는 기술
- 크랙 방지
- 코드 난독화
- Secure DB : 커널 암호화 방식으로 DB 파일을 직접 암호화
- 인증
- SSO
'Computer Science > etc' 카테고리의 다른 글
[Docker] 서버 가상화 및 도커 기본 사용법 (1) | 2023.01.19 |
---|---|
[빅데이터 분석기사] 실기 요약본 (5) - 작업형 함수 정리(with. R) (0) | 2022.06.24 |
[빅데이터 분석기사] 실기 요약본 (4) - 빅데이터 결과 해석 (0) | 2022.06.24 |
[빅데이터 분석기사] 실기 요약본 (3) - 빅데이터 모델링 (0) | 2022.06.24 |
[빅데이터 분석기사] 실기 요약본 (2) - 빅데이터 탐색 (0) | 2022.06.24 |
댓글