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

정보처리기사 실기 정리

by Youngs_ 2020. 10. 22.

요구사항 확인(Chapter 1)

현행시스템 파악 절차

구성/기능/인터페이스 파악 -> 아키텍쳐 및 소프트웨어 구성 파악 -> 하드웨어 및 네트워크 구성 파악

 

소프트웨어 아키텍처 : 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

 

소프트웨어 아키텍처 4+1 뷰 : (논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰) + 유스케이스 뷰

 

유스케이스 : 사용자 입장에서 바라본 시스템의 기능

 

미들웨어 : 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어 대표적인 미들웨어로는 WAS가 있다

 

웹 어플리케이션 서버 (WAS : Web Application Server) : 서버계층에서 어플리케이션이 동작 할 수 있는 환경을 제공

 

트랜잭션 : 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

 

트랜잭션의 특징 (ACID)

✔ 원자성 (Atomicity)

 일관성 (Consistency)

 독립성 (Isolation)

 지속성 (Durability)

 

용량 산정 기준 구분

OLTP/배치/데이터베이스 서버 : 01, 02 ...

WEB/WAS 서버 : S1, S2 ...

메모리 용량 : M1, M2 ...

디스크, 스토리치 용량 : D1, D2 ...

 


요구사항

 

요구사항 개념 : 시스템이 가져야 하는 서비스 또는 제약 사항

 

요구사항 개발 프로세스 : 도출 -> 분석 -> 명세 -> 확인 (도분명확)

 

요구사항 분석기법 : 요구사항 류, 념 모델링, 요구사항 당, 요구사항 상, 정형 석 (분개할 협분)

 

요구사항 관리 프로세스 : 요구사항 상 -> 요구사항 준선 -> 요구사항 경 관리 -> 요구사항 인 및 검증 (협기변확)

 

요구사항의 확인 : 구사항 검토, 로토 타이핑, 델 검증, 수 테스트 (요프모인)

 

요구사항 확인 프로세스 : 요구사항 록 확인 -> 요구사항 의서 작성여부 확인 -> 기능적 요구사항의 확인 -> 시스템 연계 및 인터페이스 요구사항 확인 (목정비타)

 

요구사항의 기술적 타당성 검토 : 성능 및 용량 산정의 적정성, 시스템간 상호 운용성, IT 시장 성숙도 및 트렌드 부합성, 기술적 위험 분석

 

하향식 비용산정 모델 : 전문가 판단(조직내 두명 이상의 전문가에게 비용산정), 델파이 기법 (전문가의 경험적 지식을 통한 문제해결

 

상향식 비용산정 모델 : LoC, Man Month, COCOMO

 

COCOMO 소프트 웨어 프로젝트 모드(개발 유형)

소프트웨어 개발 유형은 소프트 웨어의 복잡도 혹은 원시 프로그램의 규모에 따라 조직형(Organic Mode), 반분리형(Semi-Detached Mode), 내장형(Embedded Mode)로 분류 할 수 있음

 

조직형 (Organic Mode) : 5만 (50KDSI)라인 이하의 소프트 웨어를 개발 하는 유형

반 분리형(Semi-Detached Mode) : 30만(300KDSI)라인 이하의 소프트 웨어를 개발하는 유형

내장형(Embedded Mode) : 30만 (300KDSI)라인 이하의 소프트 웨어를 개발하는 유형

 

 

분석모델 검증 방법 : 유스케이스 모델 검증, 개념수준의 분석 클래스 검증, 분석클래스 검증

 

분석모델 검증 프로세스 : 검토의견 컬럼 추가 -> 검토의견 작성 -> 검토의견 정제

 

분석모델의 시스템화 타당성 분석 프로세스 : 타당성 검토의견 컬럼 추가 -> 타당성 검토의견 작성 -> 타당성 분석결과 검증 -> 타당성 분석 결과 확인 및 배포/공유

 

요구사항 개발 프로세스 주요 기법

도출
✔ 인터뷰 : 1:1의 관계에서 사용자 및 사용자 측 의사 결정권자와 시스템에 대한 요구사항을 추출
✔ 설문조사 : 설문지 또는 여론조사 등을 이용해 간접적으로 정보를 수집
✔ 브레인스토밍 : 말을 꺼내기 쉬운 분위기로 만들어, 회의 참석자들이 내놓은 아이디어들을 비판 없이 수용 할 수 있도록 하는 회의
✔ 워크숍 : 단기간의 집중적인 노력을 통해 다양하고 전문적인 정보를 획득하고 공유하는 방법

확인

✔ 동료검토 : 2 ~ 3명이 진행하는 리뷰의 형태, 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견하는 형태
 워크스루 : 검토자료를 회의전에 배포해서 사전검토 한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화
인스펙션 : 소프트웨어 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토방법

 

 

 


데이터 입출력 구현 (Chapter 2)

 

논리 데이터 모델링 : 데이터베이스 설계 프로세스의 기초 설계 단계로 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법

 

개체-관계(E-R) 모델 개념 : 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델

 

정규화 : 데이터의 중복을 최소화하여 데이터를 구조화 하는 프로세스

비정규화 : 성능 향상과 개발운영의 단순화를 위해 중복, 통합, 분리등을 수행하는 데이터 모델링의 기법

3정규화 : A->B이고, B->C이면서 A->C 관계가 같이 있는 경우를 이행함수 종속관계라고 한다

각 정규화에 대한 자세한 설명은 책의 1권 2-5 페이지에 상세히 적혀있음

물리 데이터 모델링 : 논리모델을 적용하고자 하는 기술에 맞도록 상세화하는 과정

-> 학생(학번, 교수번호(FK), 이름, 주소), 교수(교수번호, 이름, 전공과목) 의  논리적 모델을 CREATE 명령어를 사용해 테이블 생성

 

물리데이터 모델링 변환 절차 : 개체를 테이블로 변환 -> 속성을 컬럼으로 변환 -> UID를 기본키로 변환 -> 컬럼 유형과 길이 정의 -> 비정규화 수행

 

제한(Restrict) : 참조무결성 원칙을 위배하는 연산을 거절하는 옵션

연쇄(Cascade) : 참조되는 릴레이션에서 해당 튜블을 참조하는 튜플들도 함께 삭제

널 값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL 값을 넣는 옵션

 

인덱스 : 전체데이터의 검색없이 필요한 정보에 대해 신속한 조회가 가능

인덱스 컬럼 선정 : 분포도가 좋은 컬럼은 단독적으로 생성, 가능한 한 수정이 빈번하지 않은 컬럼을 선정

 

레인지 파티셔닝(Range Partitioning) : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법 (ex. 우편번호, 일별, 월별)

해시 파티셔닝(Hash Partitioning) : 해시 함수 값에 의한 파티셔닝 기법

리스트 파티셔닝(List Partitioning) : 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법 (ex. 한국 안에 서울, 경기, 인천 등등...)

컴포지트 파티셔닝(Composite Partitioning) : 범위분할 이후 해시 함수를 적용하여 재분할하는 파티셔닝 기법 (레인지 -> 해시, ==조합 파티셔닝)

파티션의 장점 : 성능 향상, 가용성 향상, 백업가능, 경합 감소

 

프로시저 : SQL을 이용해 생성된 데이터를 조작하는 프로그램

저장된 함수(Stored Function) : 저장 프로시저와 비슷 하나 실행결과를 되돌려받을 수 있는 프로그램

 

 

데이터 저장소 연결 절차 : 드라이버 로딩 -> 데이터베이스 연결 -> 쿼리 전달 -> 결과 수신

 

PL/SQL : 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어(DML)이다

DBMS_OUTPUT : 메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스를 제공하는 패키지

SHOW ERRORS : PL/SQL 오류 발생시 어느곳에 어떤 에러가 있는지 출력해준다.

SET SERVEROUTPUT ON : DBMS_OUTPUT 메시지 버퍼의 메시지가 표준 출력으로 경로 재지정되도록 한다.

 

옵티마이저(Optimizer) : SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 DBMS 내부의 핵심엔진

실행계획(Execution Plan) : 옵티마이저가 생성한 SQL 처리경로

RBO(Rule Based Optimizer) : 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저

CBO(Cost Based Optimizer) : 비용에 따라 질의 실행 계획을 선택하는 옵티마이저

힌트 : 옵티마이저가 항상 최선의 실행 계획을 수립 할 수 없어 명시적인 힌트를 통해 실행계획을 변경한다.

/*+RULE */ -> 규칙기반 접근방식을 사용하도록 지정
/*+ CHOOSE */ -> 옵티마이저 디폴트 값에 따름
/*+ INDEX(table_name) */ -> 지정된 인덱스를 강제적으로 사용하도록 지정
/*+ USE_HASH(table_name) */ -> 지정된 테이블들의 조인이 Hash Join 형식으로 일어나도록 유도
/*+ USE_MERGE(table_name) */ -> 지정된 테이블들의 조인이 Sort Merge 형식으로 일어나도록 유도
/*+ USE_NL(table_name) */ -> 지정된 테이블들의 조인이 Nested Loop 형식으로 일어나도록 유도

 

 

 


인터페이스 구현 (Chapter 5)

 

인터페이스 설계서 : 시스템의 교환되는 데이터, 업무, 송수신 주체등이 정의된 문서

인터페이스 명세 : 각 인터페이스 번호당 인터페이스가 되는 데이터, 데이터 형식, 송수신 시스템의 정보 등을 구체화한 문서

상세 기능 인터페이스 정의서 : 인터페이스 ID, 인터페이스 , 퍼레이션 명, 오퍼레이션 요, 사 조건, 사 조건, 라미터, 환값 (아명오개 전후파반 -> ! 나라의 5마리의 개가 식사 전후개를 가지고 싸운다)

 

정적, 동적 모형을 통한 인터페이스 설계서

* 다이어그램을 활용하여 시스템, 컴포넌트별 인터페이스와 요구조건을 확인 할 수 있다.

* 트랜잭션 확인을 통해 상호 교환되는 트랜잭션을 확인할수있다.

 

인터페이스 설계서의 내부 * 외부 모듈의 기능 확인 : 시스템 인터페이스 정의서, 상세 기능 인터페이스 정의서, 정적 * 동적 모형을 통한 기능 확인

 

EAI (Enterprise Application Integration) : 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션간의 정보를 전달, 연계, 통합이 가능하도록 해주는 솔루션

EAI 구축유형

✔ Point to Point : 가장 기초적인 어플리케이션 통합 방법으로 1:1 단순 통합방법

✔ Hub & Spoke : 단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식, 허브 장애시 전체 장애

✔ Message Bus : 어플리케이션 사이 미들웨어(버스)를 두어 연계하는 미들웨어 통합방식

✔ Hybird : 그룹내는 허브 앤 스포크 방식을 사용하고, 그룹간에는 메시지 버스를 사용하는 방식

 

ESB (Enterprise Service Bus) : 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션들 간을 하나의 시스템으로 관리 운영 할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처, 느슨한 결합 방식 지원

 

컴포넌트 명세서 : 외부와 통신하는 명세를 정의

 

데이터베이스 암호화 알고리즘

✔ 대칭키 암호화 알고리즘 : 암호화키 = 복호화키

✔ 비대칭키 암호화 알고리즘 : 암호화키 != 복호화키

✔ 해시 암호화 알고리즘 : 해시값으로 원래 입력값을 찾아낼수 없는 일방향성의 특성을 가진 알고리즘

 

데이터베이스 암호화 기법

✔ API 방식 : 어플리케이션 레벨에서 암호모듈(API)을 적용하는 어플리케이션 수정 방식

✔ Plug-in 방식 : DB레벨에서 확장성 프로시저 기능을 이용, DBMS에 Plug-In 보듈로 동작하는 방식

✔ Hybrid 방식 : API 방식과 Plug-In 방식을 결합하는 방식

 

인터페이스 구현 검증 도구 : xUnit(다양한 언어 지원), STAF(다양한 환경 지원), FitNesse(웹 기반), Selenium(다양한 브라우저 지원), watir(루비기반)

 


화면 설계 (Chapter 6)

UI 개념 : 사용자와 시스템 사이에서 의사소통 할수 있도록 고안된 물리적, 가상의 매개체

NUI (Natural User Interface) : 키보드나 마우스 없이 신체부위를 이용하는 사용자 인터페이스 (터치, 음성 등등)

OUI ( Organic User Interface) : 현실에 존재하는 모든 사물이 입출력 장치로 변화할 수 있는 사용자 인터페이스

UI유형 : CLI, GUI, NUI, OUI -> (CG NO, 이 영화는 CG를 NO 했다.)

 

UI 설계원칙

관성 : 누구나 쉽게 이해하고 쉽게 사용할 수 있어야함

효성 : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 해야함

습성 : 초보와 숙련자 모두가 쉽게 배우고 사용 할 수있게 제작

연성 : 사용자의 인터렉션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

-> 직유학유 (정답을 도하거나 습시켜서 도함)

 

UI 설계지침

용자 중심 : 사용자가 이해하기 쉽고 편하게 사용할 수 있는 환경을 제공

관성 : 버튼이나 조작 방법을 사용자가 기억하기 빠르고 쉽게 습득할 수 있도록 설계

순성 : 조작 방법은 가장 간단하게 작동되도록 하여 인지적 부담 최소화

과 예측 가능 : 작동시킬 기능만 보고도 결과 예측이 가능 해야함

시성 : 주요 기능을 메인 화면에 노출하여 쉬운 조작이 가능해야 함

준화 : 디자인을 표준화하여 기능 구조의 선행 학습 이후 쉽게 사용 가능해야함

근성 : 사용자의 직무, 연령, 성별 등이 고려된 다양한 계층을 수요 해야함

확성 : 사용자가 개념적으로 쉽게 인지해야함

류 발생 해결 : 사용자가 오류에 대한 상황을 정확하게 인지할 수 있어야 함

사일단결 가표접명오

 

UI 요구사항 구분

기능적 요구사항, 비기능적 요구사항 -> 소프트웨어 요구사항의 기본원칙과 동일

 

UI 구동환경의 정의

✔ 컴퓨터 운영체제 확인

 웹 브라우저 확인

 모니터 해상도 확인 : 모니터 해상도는 1280 * 1024 등 기본을 설정

 프레임세트 확인 : 속도 및 업무 편의성을 고려하여 각 영역별 (Top, Left, Contents 영역) 프레임을 구분해 적용

 

프레임세트 적용

프레임 구분 : 각 프레임의 페이지에서 메뉴, 배너 구성등 일괄 적용

단일 프레임 : 페이지별로 메뉴, 배너 구성, 콘텐츠 변경관리 편리

웹 어플리케이션 경우 : 페이지별 구성 콘텐츠에 구성이 같은 패턴

 

레이아웃 정의

화면구조 정의 : 기본 배치는 크게 상단, 왼쪾, 콘텐츠 영역의 3개 부분으로 설계

상단 메뉴 구성 : 필수적으로 적용하는 사항

좌측 메뉴 구성 : 선택적으로 적용하는 사항

내용구성(Contents Area) 정의 : 필수적으로 적용하는 사항

하단 메뉴 구성 : 선택적으로 적용하는 사항

사용환경에 맞춰 페이지 폭 정의

 

소프트웨어 개발 단계별 UI 지침

목표 정의 -> 프로젝트 계획 -> 요구사항 정의 -> 설계 및 구현 -> 테스트 -> 배포 및 관리

 

UI 개발을 위한 주요 기법

3C 분석 : 고객(Customer), 경장하고 있는 자사와(Company)와 경쟁사(Competitor) 를 비교 분석

SWOT 분석 : Stregth(강점), Weakness(약점), Opportunity(기회), Threat(위협) 요인을 규정하고 이를 토대로 경영 전량을 수립

시나리오 플래닝 : 불확실성이 높은 상황 변화를 사전에 예측하고 다양한 시나리오를 설꼐하는 방법

사용성 테스트(Usability Test) : 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행 한 후 질문에 답하도록 하는 테스트

워크숍(Workshop) : 소집단 정도의 인원으로 특정 문제나 과제에 대한 새로운 지식, 기술, 아이디어, 방법들을 서로 교환하고 검토하는 연구회 및 세미나

 

사용자 요구사항 도출

페르소나 (Persona) 정의 : 잠재적 사용자의 다양한 목적과 관찰된 행동 패턴을 응집시켜 놓은 가상의 사용자

콘셉트 모델 정의 : 여러가지 추상적인 콘셉트들 사이의 관계를 보여주는 다이어그램

사용자 요구사항 정의 : 리서치 페르소나 결과물을 토대로 요구사항을 도출하고, 우선순위를 정함

UI 컨셉션 : 정리된 요구사항을 구체화하는 단계로 화면 디자인 단계 전에 대표 화면 설계를 진행하는 단계

 

UI 화면 설계 구분

와이어 프레임 : 이해 관계자들과의 화면구성을 협의하거나 서비스의 간략한 흐름을 공유하기 위해 화면 단위의 레이아웃을 설계하는 작업

스토리보드 : 서비스를 위한 대부분의 정보가 수록된 문서이며, 디자이너와 개발자가 최종적으로 참고사는 산출문서

프로토타입 : 정적인 화면으로 설꼐된 와이어 프레임 또는 스토리 보드에 동적 효과를 적용하여 실제 구현된 것처럼 시뮬레이션 할 수 있는 모형 

스토리보드 안에 와이어프레임이 있으며, 스토리보드를 이용해 프로토타입을 제작

 

스토리보드 작성 절차

전체 개요 작성 -> 서비스 흐름 작성 -> 스타일 확정 -> 메뉴별 화면 설계도 작성 및 상세 설명 -> 추가 관련 정보 작성

 

UI 설계 원리

실행차를 줄이기 위한 UI 설계원리

✔ 사용 의도 파악

 행위순서 규정

 행위의 순서대로 실행

 

평가차를 줄이기 위한 UI 설계 원리

수행한 키 조작 결과를 사용자가 빠르게 지각하도록 유도

키 조작으로 변화된 시스템 상태를 사용자가 쉽게 인지하도록 유도

사용자가 가진 원래 의도와 시스템 결과 간의 유사 정도를 사용자가 쉽게 파악하도록 유도

 

UI 상세설계 프로세스

UI 요구사항 최종 확인 -> UI 구조 설계 -> 사용자 기반 메뉴 구조 설계 -> 화면 설계 -> 하위 시스템 단위의 내*외부 상세 화면과 폼 설계

 

UI 설계 도구의 유형

화면설계 : 파워목업, 발사믹 목업, 카카오 오븐

프로토타이핑 : UX핀, 액슈어, 네이버 프로토나우

UI 디자인 : 스케치, 어도비 익스피리언드 디자인 CC

프로토타이핑 : 인비전, 픽사에이트, 프레이머

 


어플리케이션 테스트 관리 (Chapter 7)

소프트웨어 테스트 : 소프트웨어의 결함을 찾아내는 활동

 

소프트웨어 테스트 필요성

✔ 오류 견 관점 : 프로그램에 잠재된 오류를 발견

✔ 오류 방 관점 : 프로그램 실행 전에 동료검토, 워크스루, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원

✔ 품질 상 관점

->발예향 (발가락이 예쁘고 향기롭다) 

 

소프트웨어 테스트 원리

함이 존재함을 밟힘 : 결함이 없다는것을 증명할수는 없음

벽한 테스팅은 불가능

기에 테스팅 시작 : 초기 테스트 시행시 결과를 단시간에 알 수 있고 테스팅 기간 단축

✔ 결함 중 : 20%의 모듈에서 80%의 결함이 발견

충제 패러독스 : 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지못함

✔ 테스팅은 황에 의존적

류-부재의 궤변 : 요구 사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없음

결완초집 살정오

 

소프트웨어 테스트 프로세스

테스트 계획 -> 테스트 분석 및 디자인 -> 테스트 케이스 및 시나리오 작성 -> 테스트 수행 -> 테스트 결과 평가 및 리포팅

 

소프트웨어 테스트 산출물

✔ 테스트 계획서

✔ 테스트 케이스 : 설계된 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서

✔ 테스트 시나리오

✔ 테스트 결과서

 

정적 테스트 : 프로그램의 실행 없이 구조를 분석하여 논리성을 검증하는 테스트 (동료 검토, 워크스루, 인스펙션)

동적 테스트 : 프로그램 실행을 요구하는 테스트 (화이트박스 테스트, 블랙박스 테스트)

 

블랙박스 테스트 : 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트

블랙박스 테스트 유형 (설명 7-4p)

✔ 동등 분할 테스트

✔ 경계 값 분석 테스트 : 경계값을 포함하여 테스트

✔ 결정 테이블 리스트 :발생조건을 테이블 형태로 나열

✔ 상태전이 테스트 : 전이되는 경웅의 수를 수행

✔ 유스케이스 테스트 : 흐름을 기반

✔ 분류트리 테스트 : 트리 구조로 분석

✔ 페어와이즈 테스트

 

검증 : 소프트웨어 과정을 테스트

확인 : 소프트웨어 결과를 테스트

 

테스트 목적에 따른 분류

복 테스트 : 고의로 실패를 유도하고 정상적 복귀 여부를 테스트

전 테스트 : 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 보안적인 결함을 미리 점검

도(Stress) 테스트 : 과부하시에도 시스템이 정상적으로 작동하는지 테스트

능 테스트 : 사용자 요구에 시스템이 반응하는 속도를 측정

조 테스트 : 소스코드의 복잡도를 평가

귀 테스트 : 수정한 시스템에서 새로이 유입된 오류가 없는지 확인

행 테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교

-> 회안강성 구회병 (중국의 회안강성에 사는 구회병씨)

 

테스트 종류에 따른 분류

✔ 명세 기반 테스트 : 요구사항 명세서를 기반으로 테스트 케이스를 선정

✔ 구조 기반 테스트 : 내부 논리 흐름에 따라 테스트 케이스를 작성

✔ 경험 기반 테스트 : 테스터의 경험을 토대로 한 기법

-> 명구경 (명나라 구경가기)

 

테스트 케이스 작성 절차

테스트 계획 검토 및 자료 확보 -> 위험평가 및 우선순위 결정 -> 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정 -> 테스트 케이스 정의 -> 테스트 케이스 타당성 확인 및 유지보수

 

테스트 오라클 : 테스트의 결과가 참인지 거짓인지 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

테스트 오라클 종류

✔ 참 오라클 : 모든 입력값에 대하여 기대하는 결과를 생성함으로서 발생된 오류를 모두 검출

✔ 샘플링 오라클 : 특정한 몇개의 입력값에 대해서만 기대하는 결과를 제공해주는 오라클

✔ 휴리스틱 오라클 : 샘플링 오라클을 개선한 오라클, 나머지 값들에 대해서는 추정으로 처리하는 기능이 추가

✔ 일관성 검사 오라클 : 어플리케이션 변경이 있을 때, 수행 전과 후의 결과값이 동일한지 확인하는 오라클

 

테스트 레벨 종류

✔ 단위 테스트 : 모듈, 서브루틴 등을 테스트

✔ 통합 테스트 : 단위 테스트를 통과한 모듈 사이의 상호작용을 검증하는 테스트

✔ 시스템 테스트 : 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행 되는지 검증하는 테스트 (기능/비기능)

✔ 인수 테스트 : 계약상의 요구 사항이 만족되었는지 테스트 (알파/베타)

 

테스트 시나리오 : 여러 테스트 케이스의 집합으로서 테스트를 위한 절차를 명세한 문서

 

통합 테스트 수행 방법의 분류 : 점증적인 방법(상향식 통합, 하향식 통합), 비점증적 방식(빅뱅 방식)으로 나눈다.

빅뱅 테스트 : 모든 모듈을 동시에 통합 후 테스트 수행

하향식 통합 테스트 : 테스트 스텁 필요

상향식 통합 테스트 : 테스트 드라이버 필요, 클러스터

-> 자세한 설명 7-21p

 

테스트 자동화 도구 유형

정적 분석 도구 : 어플리 케이션을 실행하지 않고 분석하는 도구

테스트 실행도구 : 테스트를 위해 작성된 스크립트를 실행하고, 데이터 주도 접근방식키워드 주도 접근방식으로 나뉨

데이터 주도 접근방식
다양한 테스트 데이터를 이용하여 동일한 테스트 케이스를 반복해서 실행할수 있음, 스크립트 언어에 익숙하지 않은 테스터도 쉽게 테스트를 수행

키워드 주도 접근 방식
키워드를 이용하여 테스트 수행 동작을 정의 할 수 있다

 

테스트 하네스 : 테스트를 지원하기 위한 코드와 데이터

테스트 하네스 구성요소

✔ 테스트 드라이버 : 테스트 대상 하위 모듈을 호출하고 파라미터를 전달하고 모듈테스트 수행후의 결과를 도출하는 상향식 테스트에 필요

✔ 테스트 스텁 : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로 하향식 테스트에 필요

✔ 테스트 슈트 : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합

✔ 테스트 케이스 : 입력값, 실행 조건, 기대 결과 등의 집합

✔ 테스트 스크립트 : 자동화된 테스트 실행 절차에 대한 명세

✔ 목 오브젝트 : 사용자의 행위를 조건부로 사전에 입력해두면, 그 상호아에 예정된 행위를 수행하는 객체

 

에러/오류 : 에러는 결함의 원인이 되는것으로 일반적으로 사람에 의해서 생성

결함/결점/버그 : 에러 또는 오류가 원인이 되어 소프트웨어 제품에 포함되어 있는 결함

실패/문제 : 소프트웨어 제품에 포함된 결함이 실행될 때 발생되는 현상

 

테스트 리포팅

테스트 결과 정리 -> 테스트 요약 문서 -> 품질 상태 -> 테스트 결과서 -> 테스트 실행 절차 및 평가

 

결함 관리 프로세스

에러 발견 -> 에러 등록 -> 에러 분석 -> 결함 확정 -> 결함 할당 -> 결함 조치 -> 결함 조치 검토 및 승인

 

결함 추이 분석 유형

결함 분포 분석 : 모듈 또는 컴포넌트의 특정 속성에 해당되는 결함의 수를 측정하여 결함의 분포를 분석

결함 추세 분석 : 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 분석

결함 에이징 분석 : 특정한 결함 상태의 지속 시간을 측정하여 분석

 

테스트 커버리지 : 테스트 범위를 측정하는 품질측정 기준

테스트 커버리지 유형

✔ 기능 기반 커버리지 : 테스트가 수행된 기능의 수를 측정하는 방법

✔ 라인 커버리지 : 수행한 소스코드의 라인 수를 측정 하는 방법

✔ 코드 커버리지 : 구조 코드 자체가 얼마나 테스트 되었는지 측정

 

코드 커버리지 유형 (설명은 7-30p)

✔ 구문 커버리지

✔ 결정 커버리지

✔ 조건 커버리지

✔ 조건/결정 커버리지

✔ 변경 조건/결정 커버리지

✔ 다중 조건 커버리지

 

결함 심각도별 분류

✔ 치명적(Criticla) 결함 : 기능이나 제품의 테스트를 완전히 방해하거나 못하게 하는 결함

✔ 주요(Major) 결함 : 기능이 기대와 많이 다르게 동작하거나 그 기능이 해야하는 것을 못하는 결함

✔ 보통(Normal) 결함 : 제품이나 프로그램이 특정 기준을 충족하지 못하거나 전체에 영향을 주지 않는 일부 기능이 부자연스러운 결함

✔ 경미한 (Minor) 결함 : 사용상의 불편함을 유발하는 결함

✔ 단순(Simple) 결함 : 기능에는 영향이 없지만 수정되어야 하는 결함

 

어플리케이션 성능 측정 지표

✔ 처리량 : 주어진 시간안에 처리할 수 있는 트랜잭션의 수

✔ 응답 시간 : 사용자의 입력이 끝난 후, 어플리케이션의 응답 출력이 사용자에게 개시 될 때까지의 시간

✔ 경과 시간 : 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료 할 때까지 걸리는 시간

✔ 자원 사용률 : 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

-> 처응경자 (처의 응원을 받은 경호 자원봉사자)

 

데이터베이스 관련 성능 저하 원리

데이터베이스 락 : 대량의 데이터 조회, 과도한 업데이트, 인덱스 생성시 발생

불필요한 데이터 베이스 패치 : 실제 필요한 데이터보다 많은 대량의 데이터 요청이 들어올 경우 응답시간 저하

연결 누수 : DB연결과 관련한 JDBC 객체를 사용 후 종료하지 않을 경우 발생

부적절한 커넥션 풀 크기 : 너무 작거나 크게 설정한경우 성능 저하 현상이 발생

확정 관련 : 트랜잭션이 확정 되지 않고 커넥션 풀에 반환 될 때 성능 저하

 

내부 로직으로 인한 성능 저하 원리

✔ 웹 어플리케이션의 인터넷 접속 불량

✔ 특정 파일의 업로드, 다운로드로 인한 성능 저하

✔ 정상적으로 처리되지 않은 오류 처리로 인한 성능 저하

 

나쁘 코드 유형

✔ 오염 : 기능을 수행하지 못하는 많은 컴포넌트들이 존재

✔ 문서 부족 : 현재 코드와 문서가 일치 하지 않고 수정과 변경을 위한 도메인 지식은 크게 증가

✔ 의미 없는 이름

✔ 높은 결합도 : 클래스와 컴포턴트 간에 데이터와 컨트롤 흐름이 네트워크로 복잡하게 연결

✔ 아키텍쳐 침식 : 아키텍처가 더 이상 구별되지 않고 여러 솔루션으로 이루어져 아키텍처상 변형들로 인해 시스템 품질이 떨어짐

 

클린 코드 유형

✔ 의미 있는 이름

✔ 간결하고 명확한 주석

✔ 보기 좋은 배치

✔ 작은 함수 : 함수는 가급적 작게 만듬

✔ 읽기 쉬운 제어 흐름 : If/Else 조건문에서 인수의 순서는 긍정적이고 간단한 내용을 앞쪽에 배치

 


SQL (Chapter 8)

 

프로시저

프로시저의 개념 : SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션

-> 트랜잭션 : 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위

프로시저의 구성

DECLARE (선언부) -> BEGIN/END (시작/종료부) -> CONTROL (제어부) -> SQL (프로시저 SQL) -> EXCEPTION (실행부) -> TRANSACTION

DBCON SET

줄여서 (디비컨 SET)

 

프로시저 선언부 모드

✔ IN : 운영체제에서 프로시저로 값을 전달하는 모드

✔ OUT : 프로시저에서 처리된 결과를 운영체제로 전달하는 모드

✔ INOUT : IN과 OUT의 두가지 기능을 동시에 수행하는 모드

 

사용자 정의함수 구성

DECLARE (선언부) -> BEGIN/END (시작/종료부) -> CONTROL (제어부) -> SQL (프로시저 SQL) -> EXCEPTION (실행부) -> RETURN

DBCON SER

줄여서 (디비컨설)

 

SQL의 유형

SELECT / INSERT / UPDATE / DELETE

줄여서 (세인업대)

 

사용자 정의 함수

SQL을 사용하여 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL

사용자 정의 함수의 선언부에 OR REPLACE는 같은 이름의 프로시저를 덮어쓰는 역할을 한다. OR REPLACE가 존재하지 않는데 같은 이름의 프로시저가 존재하면 에러가 발생한다.

 

제어부(CONTROL) 사용법

 

IF ~ ELSIF(ELSE IF 아님 주의!!) ~ ELSE ~ END IF

IF 조건 THEN
  문장;
ELSIF 조건 THEN
  문장;
ELSE
  문장;
END IF;

 

CASE ~ WHEN ~ SET ~ ELSE ~ END CASE

CASE 변수
 WHEN 값1 THEN
  SET 명령어;
 ELSE
  SET 명령어;
END CASE;

LOOP ~ EXIT WHEN ~ END LOOP

LOOP
 문장;
 EXIT WHEN 탈출조건;
END LOOP;

WHILE LOOP ~ EXIT WHEN ~ END LOOP

WHILE 반복 조건 LOOP
 문장;
 EXIT WHEN 탈출조건;
END LOOP;

FOR IN ~ LOOP ~ END LOOP

FOR 인덱스 IN 시작값 .. 종료값
 LOOP
 문장
END LOOP

 

 


집계 함수 : 여러 행으로부터 하나의 결과값을 반환하는 함수 (ex. COUNT, SUM, AVG...)

그룹 함수 : 중간 합계 분석 데이터를 산출하는 함수 (ex. ROLLUP, CUBE, GROUPING SETS)

윈도 함수 : DB를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가 된 기능 (ex. RANK, DENS_RANK, ROW_NUMBER)

 

집계함수의 종류

집계함수 내용
COUNT 복수 행의 줄수
SUM 복수 행의 컬럼간의 합계
AVG 복수 행의 컬럼간의 평균
MAX 복수 행의 컬럼 값 중 최대값
MIN 복수 행의 컬럼 값 중 최소값
STDDEV 복수행의 컬럼간의 표준편차
VARIAN 복수 행의 컬럼간의 분산

간단예시 : SELECT COUNT(*) FROM STUDENT WHERE 국어>=80


그룹함수

1. ROLLUP 함수

중간집계값을 산출하기 위한 그룹함수

 

간단예시 : SELECT DEPT, JOG, SUM(SALARY) FROM DEPT_SALARY GROUP BY ROLLUP(DEPT, JOB)

 

2. CUBE 함수

결합 가능한 모든 값에 대해 다차원 집계를 생성하는 그룹함수

 

간단예시 : SELECT DEPT, JOB, SUB(SALARY) FROM EMP GROUP BY CUBE(DEPT, NAME)

 

3. GROUPING SETS 함수

집계 대상 컬럼들에 대한 개별 집계를 구할 수 있으며, 순서와 무관한 결ㄴ과를 얻을수 있는 그룹함수

 

간단예시 : SELECT DEPT, NAME, SUM(SALARY) FROM DEPT_SALARY GROUP BY GROUPING SETS(DEPT, NAME)

 

윈도함수

* 개념 : 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해 표준 SQL에 추가된 함수

* 윈도함수를 OLAP(Online Analytical Processing)라고도 한다.

분류 설명
순위함수 * 레코드의 순위를 계산하는 함수
* RANK, DENSE_RANK, ROW_NUMBER
행순서 함수 * 레코드에서 가장 먼저나오는값, 나중에 나오는값, 이전값, 다음값 등을 출력하는 함수
* FIRST_VALUE, LAST_VALUE, LAG, LEAD
그룹 내 비율 함수 * 비율과 관련된 통계를 보여주는 함수
* RATIO_TO_REPORT, PERCENT_RANK

 

(순위함수,행순서 함수, 그룹내 비율 함수)  예제

함수 OVER (ORDER BY 컬럼 DESC) 와 같은 형식이다.

 

순위함수

함수이름 설명
RANK * 특정 항목의 순위를 구하는 함수
* 동일 순위가 존재히 후순위가 넘어감 (1위, 1위, 1위, 4위, 5위..)
DENSE_RANK * 레코드의 순위를 계산
* DENSE는 빽빽한이라는 뜻
* 동일 순위가 존재시 후순위가 넘어가지 않음 (1위, 1위, 1위, 2위, 3위 ...)
ROW_NUMBER * 레코드의 순위를 계산
* 동일순위가 존재해도 무관하게 연속번호를 부여 (1위, 2위, 3위, 4위 ...)

행순서 함수

함수 이름 설명
FIRST_VALUE 파티션별 윈도에서 가장 먼저나오는 값을 찾음
LAST_VALUE 파티션별 윈도에서 가장 나중에 나오는 값을 찾음
LAG 파티션별 윈도에서 이전 행의 값 반환
LEAD 파티션별 윈도에서 이후행의 값 반환

그룹 내 비율 함수

 

함수 이름 설명
RATIO_TO_REPORT * 주어진 그룹에 대해 합을 기준으로 각 행의 상대적 비율을 반환
* 결과값은 0~1의 값을 가짐
PERCENT_RANK * 주어진 그룹에 대해 제일먼저 나오는것을 0으로, 제일 나중에 나오는것을 1로하여 순서별 백분율을 구하는 함수
* 결과값은 0~1의 값을 가짐

JDBC(Java DataBase Connectivity) : Java언어로 다양한 종류의 데이터 베이스에 접속할때 사용하는 표준 API

ODBC(Open DataBase Connectivity) : 개발 언어에 관계없이 데이터베이스에 접근하기 위한 표준 개방형 API

JDBC, ODBC 공통 -> SQL을 사용하여 DBMS에 질의하고 데이터를 조작하는 API를 제공

 

MyBatis : DBMS에 질의하기 위한 SQL 쿼리를 별도의 XML 파일로 분리하고 Mapping을 통해서 SQL을 실행한다.

장점

1. 복잡한 JDBC 코드의 단순화

2. SQL을 거의 그대로 사용가능

3. Spring 기반 프레임워크와 통합기능 제공

4. 우수한 성능

 

MyBatis에서 변수는 #{파라미터 명}으로 처리

 

DCL(Data Control Language) : DBA가 DB를 (데이터 보안, 무결성 유지, 병행제어, 회복)을 위해 제어하는데 사용하는 언어

유형 동작 설명
GRANT 사용권한 부여 관리자가 사용자에게 권한 부여
REVOKE 사용 권한 취소 관리자가 사용자에게 부여했던 권한 취소

간단 예시 : GRANT 권한 ON 테이블 TO 사용자 [WITH 권한 옵션];

* WITH GRANT OPTION은 사용자가 권한을 받고 난 후 다른 사람들과 권한을 나눠가질수 있는 옵션(사용자가 다른사람에게 권한부여가능)

 

간단 예시 : REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE CONSTRAINTS];

* CASCADE CONSTRAINT는 연쇄적인 권한을 해제할때 사용(GRANT에서 사용자가 WITH로 부여한 권한까지 취소)

 


소프트웨어 개발 보안 구축 (Chapter 9)

SW 개발 보안의 3대 요소

✔ 기밀성 : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단

✔ 가용성 : 권한을 가진 사용자가 어플리케이션이 원하는 서비스를 지속 사용할수 있도록 보장하는 특성

✔ 무결성 : 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완정성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성

 

SW 개발 보안 용어

✔ 자산 : 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상

위협 : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위

취약점 : 위협이 발생하기 위한 사전 조건에 따른 상황

위험 : 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

 

개인정보보호 관련 법령

✔ 개인정보 보호법 : 개인정보 처리 과정상의 정보 주체와 개인정보 처리자의 권리, 의무등의 규정

✔ 정보통신망법

✔ 신용정보법

 

Dos 공격 : 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

Dos 공격의 종류

✔ 지역 시스템 공격 : 실제 대상 시스템에 접근하여 서버 하드웨어에 직접 고부하를 줌

원격 네트워크 공격 : 공격자가 목표 시스ㅔㅁ에 접근하지 않고 원격지에서 인터넷등을 이용한 공격

 

DDos : Dos의 또다른 형태로 여러대의 공격자를 분산 배치하여 동시에동작하게 함으로서 특정 사이트를 공격하는 기법

 

자원 고갈 공격 기법

 SYN Flooding : 공격자는 ACK를 발송하지 않고 계속 새로운 연결 요청을 하게 되어 섭는 자원 할당을 하지 않고 자원만 소비하여 자원이 고갈

 UDP Flooding : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답메시지(ICMP)를 생성하여 지속해서 자원을 고갈

 스머프 : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격

PoD(Ping of Death) : 큰 사이즈의 패킷을 의도적으로 목표 시스템으로 발생시켜 시스템이 서비스 할 수 없는 상태로 만드는 공격

 

취약점 공격

 Land Attack : 출발지와 목적지의 IP를 같은 패킷 주소로만들어 공격하는 공격기법

 봉크 / 보잉크 (Bonk / Boink) : 프로토콜의 오류 제어를 이용한 공격기법으로서 시스템의 패킷재전송과 재조립이 과부하를 유발

티어 드롭 : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 Dos 공격

 

정보자산의 주요 용어

자산 : 조직에서 보유한 가치 있는 모든 것

사용자 : 정보처리 기기 및 시스템을 활용해 자산을 사용하는 사람과 기관

소유자 : 자산의 소유 권한 및 관리에 대한 최종 책임자

✔ 관리자 : 자산의 소유자로부터 관리 위임을 받은 자

 

정보자산의 분류 기준

 소프트웨어

 하드웨어

 데이터

 문서

 시설

지원설비

인력

 


시큐어 코딩 가이드

입력데이터 검증 및 표현

보안 기능

시간 및 상태 : 거의 동시에 수행 지원하는 병렬 시스템 또는 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리

에러 처리 : 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함

코드 오류 : 개발자가 범할 수 있는 코딩 오류로 인해 유발

캡슐화 : 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 유출

API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용

입보시 에코캡아

 

SW 개발 보안 적용사례

✔ MS-SDL : 마이크로소프트가 안전한 소프트웨어를 개발하기 위해 자체 수립한 SDL(Secure Development Lifecycle) 방법론을 적용

✔ Seven Touchpoint : 객관적인 위험 분석 및 테스트를 거쳐 안전한 소프트웨어를 만드는 방법을 정의

✔ CLASP : SDLC 초기 단계에 보안 강화를 목적으로 하는 정형화된 프로세스(Comprehensive, Lightweight Application Security Process)

 

입력데이터 검증 및 표현 대응

SQL 삽입 : 사용자의 입력값 등 외부 입력값이 SQL 쿼리에 삽입되어 공격

크로스 사이트 스크립트(XSS) : 검증되지 않은 외부 입력값에 의해 브라우저에서 악의적인 코드가 실행

경로 조작 및 자원 삽입 : 외부 입력된 값의 사전 검증이 없거나 잘못 처리될 경우

운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력값이 적절한 사전 검증을 거치지 않고 사용될 때 공격자가 운영체제 명령어를 조잦

 

코드 오류 보안 약점

널포인터 역참조 : 의도적으로 널 값을 유발해 예외 상황을 확인하고 추후 공격에 활용

부적절한 자원 해제 : 소켓, 힙 메모리 등 자원을 할당 받아 사용 후 미반환시 발생

해제된 자원 사용 : C언어 해제한 메모리를 참조하여 의도치 않은 코드를 실행하는 보안 약점

초기화되지 않은 변수 사용 : C언어 함수 내 지역변수 초기화 하지 않고 사용할 시 발생하는 보안 약점

 

캡슐화 보안 약점의 유형

잘못된 세션에 의한 정보 노출

제거되지 않은 디버그 코드

시스템 정보 노출

 


응용 SW기초 기술 활용 (Chapter 11)

운영체제 : 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어

 

✔ 운영체제의 목적

1. 처리능력 향상

2. 사용가능도 향상

3. 신뢰도 향상

4. 반환시간 단축

 

 

✔ 운영체제의 종류

 

윈도우의 특징

1. GUI 제공

2. 선점형 멀티태스킹 방식 제공

3. Plug & Play (자동감지 기능 제공)

4. OLE (Object LInking and Embedding) 사용

2번 부연설명, 동시에 여러개의 프로그램을 실행하면서 운영체제가 각작업의 CPU 이용 시간을 제어
4번 부연설명,
 OLE : 개체를 현재 작성중인 문서에 자유롭게 연결 또는 삽입하여 편집할수 있게 하는것

유닉스의 특징

특징 설명
대화식 운영체제 기능 제공 프롬프트에 명령을 입력하면 해당기능 제공
다중 작업 기능 제공 여러개의 프로세스가 CPU와같은 공용자원을 나누어 사용하여, 한번에 하나 이상의 작업을 수행하는 기능 제공
다중 사용자 기능 제공 여러대의 단말(키보드, 모니터 등)이 하나의 컴퓨터에 연결되어서 여러 사람이 동시에 시스템을 사용하여 각각의 작업을 수행 할 수 있는 기능 제공
이식성 제공 90% 이상이 C로 구현되어 있어서 다른 하드웨어로 쉽게 이식 가능
계층적 트리 구조파일 시스템 제공 계층적 트리 구조를 가짐으로서 통합적인 파일 관리가 유리

 

명령어

윈도우 기본 명령어

명령어 설명
ATTRIB 파일 속성을 표시하거나 바꿈
CALL 한 일괄 프로그램에서 다른 일괄 프로그램을 호출
CD 현재 디렉토리 이름을 보여주거나 바꿈
ERASE 하나 이상의 파일을 지움

 

리눅스/유닉스 기본 명령어

* 리눅스는 최상위 유저를 CLI환경에서 #으로 표시하며, 일반유저는 $로 표시한다

명령어 설명
uname -a 시스템의 모든 정보를 확인
uname -r 운영체제의 배포버전을 출력
cat 파일의 내용을 화면에 출력
uptime 시스템의 가동시간, 현재 사용자 수, 평균부하량등을 확인
last 부팅부터 현재까지의 모든 사용자의 로그인과 로그아웃에 대한 정보표시
who 현재 접속 사용자 정보를 표시
ps 현재 실행되고 있는 프로세스 목록을 출력
pmap 프로세스 ID를 기준으로 메모리 맵 정보를 출력
chmod 특정 파일 또는 디렉토리의 퍼미션(권한) 수정 명령어
chown 파일이나 디렉토리의 소유자, 소유 그룹 수정 명령어

운영체제의 핵심 기능

기능 설명
메모리관리 메모리에 있는 프로그램은 CPU로 이동하여 처리(MMU가 주소를 매핑하는 역할 수행)
프로세스관리 프로세스 관리 기법에는 '일시중지 및 재실행', '동기화', '통신', '교착상태 처리', '프로세스 생성 상제'가 있다
MMU(Memory Management Unit)
-> CPU가 메모리에 접근하는것을 관리하는 하드웨어 부품으로 가상메모리를 실제 메모리 주소로 변환해주는 장치

 

메모리 관리 기법

기법 설명 세부기법
반입기법 메모리로 적재시기 결정 (When) 요구 반입 기법
호출 반입 기법
배치 기법 메모리 적재 위치 결정 (Where) 최초 적합 (First-fit)
최적 적합 (Best-fit)
최악 적합 (Worst-fit)zz
할당 기법 메모리 적재 방법 결정 (How) 연속 할당 기법
분산 할당 기법
교체 기법 메모리 교체 대상 결정 (Who) FIFO, LRU,LFU 등

 


가상화, 클라우드

 

가상화 : 물리적인 리소스들을 사용자에게 하나로 보이게 하거나 하나의 물리적인 리소스를 여러개로 보이게하는 기술

 

가상화의 종류

종류 설명
플랫폼 가상화 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법
리소스 가상화 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법

 

클라우드 컴퓨팅 유형

클라우드 서비스는 IaaS, Paas, SaaS로 구분된다.

유형 설명
인프라형 서비스
(IaaS; Infrastructure as a Service)
서버, 스토리지 같은 시스템 자원(HW)을 클라우드로 제공하는 서비스
플랫폼형 서비스
(PaaS; Platform as a Service)
인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
소프트웨어형 서비스
(SaaS; Software as a Service)
* 소프트웨어 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
* 주문형 소프트웨어라고도 함
* ex) Gforce Now

그 외 용어 정리
데이터 마이닝 : 대규모로 저장된 데이터 안에서 체계적이고 자동으로 통계적 규칙이나 패턴을 찾아 내는 것
JSON (JavaScript Object Notation) : 비동기 브라우저, 서버 통신(AJAX)를 위해 '속성-값 쌍', '키-값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을수 있는 텍스트를 사용하는 개방형 표준 포맷
세션 : 클라이언트와 서버의 논리적인 연결
OLTP : 하나로 네트워크상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 검색하는 등의 단 위 작업을 처리하는 방식
해당 내용은 수제비 정보처리기사 2020 실기 책 내용을 참고하여 정리한 글입니다.
해당 게시물은 시험 전에 간단하게 읽는 용도로 정리해놓은 글로 자세하게는 정리하지 않았습니다.
자세하게 보고싶다면 수제비 2020 정보처리기사 실기 구매후 공부하는 것을 추천 드립니다.

 

댓글