숙지 400문제

숙지 400문제

  1. 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜로, 고정된 대역폭을 가지며 패킷을 사용해 대용량의 데이터를 분리하여 송신, 결합하여 복원하는 특징을 갖는 프로토콜은 무엇인가?

정답 : X.25

  1. 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 언어로서, 인터넷 웹페이지를 만드는 HTML을 획기적으로 개선하여, 홈페이지 구축기능, 검색 기능 등이 향상되었고 웹 페이지의 추가와 작성을 용이하게 만든 언어는 무엇인가?

정답 : XML(eXtensible Markup Language)

  1. 다음 특징을 지닌 저작권 표현 언어는 무엇인가?

– 콘텐츠 및 서비스의 신뢰를 확보하기 위한 디지털 저작권 관리(DRM) 생성 언어

– 디지털 콘텐츠 / 웹 서비스 권리 조건을 표현한 XML기반의 마크업 언어

– 모든 자원과 관련된 권리 및 조건들을 보안적으로 규정하고 관리하는 일반적인 방법을 제공함

– 리스프(LISP) 기반의 DRM 언어인 디지털 저작권 언어(DPRL)을 개발한 제네록스사와 마이크로소프트사가 이를 개정하여 발표한 언어

정답 : XrML(eXtensible right Markup Language)

  1. 웹 페이지에 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 방법으로, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보 유출 등의 공격을 유발할 수 있는 취약점 공격 기법은 무엇인가?

정답 : XSS공격(Cross Site Scripting, 크로스 사이트 스크립팅)

  1. 자바(jUnit), C++(cppUnit), .Net(nUnit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크로, 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트할 수 있게 해주는 도구는 무엇인가?

정답 : xUNit

  1. 다음은 성적 테이블이다. IN 키워드를 이용하여 ‘컴퓨터 구조’와 ‘알고리즘’ 과목에 대한 학번 별 평균 학점을 구하는 쿼리를 작성하시오.

<성적> 테이블

학번과목학점
20012001200220032003컴퓨터 구조운영체제알고리즘컴퓨터 구조알고리즘4.54.04.53.52.5

<결과>

학번평균
2001200220034.54.53.0

정답

SELECT 학번, AVG(학점) as 평균

FROM 성적

WHERE 과목 IN (‘컴퓨터 구조’, ‘알고리즘’)

GROUP BY 학번;

  1. 다음은 성적 테이블이다. ‘컴퓨터 구조’ 과목을 수강한 사람의 학번과 학점을 학점 순(오름차순)으로 정렬하는 쿼리를 작성하시오.

<성적> 테이블

학번과목학점
20012001200220032003컴퓨터 구조운영체제알고리즘컴퓨터 구조알고리즘4.54.04.53.52.5

정답

SELECT 학번, 학점

FROM 성적

WHERE 과목 = ‘컴퓨터 구조’

ORDER BY 학점 ASC;

  1. 다음 프로그램의 실행 결과를 쓰시오. (Python)

string=”Hello World”

m=string[0:3] + string[-3:]

print(m)

정답 : Helrld

#”Hello World” 문자열을 string 변수에 저장한다

>>>string=”Hello World”

“””

string[0:3] 에서 “Hel”

string[-3:]에서 “rld” 를 가져와서

‘+’ 연산자에서 두 문자열을 합친 결과를 m에 저장

“””

>>>m=string[0:3] + string[-3:]

#결과 출력

>>>print(m)

해설

string[3:] : 3번째 부터 끝까지 부분 문자열을 반환한다.

string[0:3] : 처음부터 3번째까지 반환한다.

string[:] : 처음부터 끝까지 전부 반환 한다.

string[-3:] : 문자열의 끝에서 역방향 3번째까지 반환한다.

  1. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

int a = 3, b = 4;

int ret = 0;

ret = a>b? a: b;

switch(ret){

case0: printf(“A”);

case4: printf(“B”);

case3: printf(“C”);

case7: printf(“D”);

default: printf(“E”);

}

}

정답 : BCDE

해설

– 삼항 연산자 문법

: 조건 ? 참일 때 값 : 거짓일 때 값;

  1. 다음이 설명하는 용어를 쓰시오.

(1) 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델

(2) 가상 물리시스템으로 인간의 개입 없이 대규모 센서/엑추에이터를 갖는 물리적인 요소들과 통신기술, 응용/시스템 소프트웨어 기술을 활용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합 시스템

정답 : (1) 디지털 트윈(digital twin) (2) CPS(Cyber-Physical System)

  1. 다음은 C언어 코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

int i=1;

for( ; i<10; ){

switch(i%2){

case0 : printf(“짝수: %d\n”, i); break;

default : printf(“홀수: %d\n”, i);

}

i+=3;

}

}

정답

홀수: 1

짝수: 4

홀수: 7

해설

for문은 for(초기값; 조건; 증감) 이렇게 구성되어야 하는데, 초기값과 증감값은 생략할 수 있습니다. 대신에 초기값은 int i=1; 부분이 그 역할을 하고, i+=3;이라는 문장이 증감의 역할을 합니다.

코드 자체가 어려운 것은 아닌데, for문에 세미콜론(;)으로만 구분되어 있고, 빈칸으로 되어 있는게 어색할 수 있을 것 같아 이런 코드도 있다는 의미로 출제해보았습니다.

추가로 아래 코드와 기능이 동일합니다.

#include<stdio.h>

voidmain(){

int i=1;

for(i=1; i<10; i+=3){

switch(i%2){

case0 : printf(“짝수: %d\n”, i); break;

default : printf(“홀수: %d\n”, i);

}

}

}

  1. 다음은 성적 테이블이다. 과목만 출력하는 쿼리를 작성하시오.(단, 과목이 중복되지 않도록 한다.)

<성적> 테이블

학번과목학점
20012001200220032003컴퓨터 구조운영체제알고리즘컴퓨터 구조알고리즘4.54.04.53.52.5

정답

SELECT DISTINCT 과목

FROM 성적;

  1. 다음은 C언어 소스코드이다. 다음 조건에 맞도록 밑줄친 부분의 코드를 작성하시오.

짝수이면서 10보다 큰 수가 입력되면 Here가 출력되도록 작성하시오.

#include<stdio.h>

voidmain(){

int a;

scanf(“%d”, &a);

if(____________){

printf(“Here”);

}

}

정답 : a % 2 == 0 &&a >10

  1. 다음 파이썬 프로그램 실행 결과를 쓰시오

print(2**3)

( ① ) # 1

print(3**2)

( ② ) # 2

정답 : ① 8 ② 9

해설

# 23승을 출력한다

>>>print(2**3)

( ① )

#32승을 출력한다

>>>print(3**2)

( ② )

* 약술형 문제

  1. 동등 분할 테스트(Equivalence Partitioning Test) 개념 설명

답안 : 동등 분할 테스트는 입력 데이터의 영역을 유사한 도메인별로 유효 값/무효 값을 그룹핑하여 대표 값을 테스트 케이스로 도출하여 테스트하는 기법이다.

  1. 테스트 오라클(Test Oracle) 개념 설명

답안 : 테스트를 수행한 결과가 참인지 거짓인지를 판단하기 위해서 미리 정의된 참 값을 대입하여 비교하는 기법이다.

* 테스트 오라클은 테스트 수행 결과를 검증하는 기법

  1. 개념 설명
  2. 파티셔닝(Partitioning)

답안 : 대용량의 데이터베이스를 파티션(Partition)이라는 보다 작은 단위로 분할함으로써 관리 용이성, 성능 향상, 가용성 등을 용이하게 하는 기술

  1. 테일러링(Tailering)

답안 : 테일러링은 프로젝트의 특성과 필요에 따라 소프트웨어 개발 프로세스, 기법, 산출물 등을 비즈니스적으로 또는 기술적인 요구에 맞도록 최적화하는 과정 및 방법론이다.

  1. 개념 설명
  2. CSRF(Cross-Site Request Forgery)

답안 : CSRF는 공격자가 웹 서버의 취약점을 이용하여 악성 스크립트 구문을 삽입하고, 정상적인 사용자로 하여금 자신의 의지와는 무관하게 게시판 설정 변경, 회원 정보 변경 등 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격이다.

참고

XSS는 사용자가 악의적인 스크립트를 실행 했을 때 피해를 입는것이고,
CSRF는 인가자(정상적인사용자)의 권한으로 실행하여 서퍼에 피해를 입히는 것

  1. 시맨틱 웹(Semantic Web)

답안 : 인터넷과 같은 분산환경에서 리소스에 대한 정보와 자원 사이의 관계-의미 정보를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고, 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 지능형 웹이다.

  1. 온톨로지(Ontology)

답안 : 실세계에 존재하는 모든 개념들과 개념들의 속성, 그리고 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서 (개정 전 기출)

  1. 살충제 패러독스(Pesticide Paradox)

답안 : 살충제 패러독스는 동일한 테스트 케이스로 반복적인 테스트를 수행하면 더 이상 결함을 발견할 수 없다는 테스트의 원리이다.

  1. 티어드롭(Teardrop)

답안 : 티어드롭(Teardrop)은 IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 타겟 시스템이 단편화된 패킷의 재조합 과정에서 문제를 발생하도록 만드는 Dos 공격이다.

  1. 개념 설명
  2. 프로시저(Procedure)

답안 : 프로시저는 일련의 SQL 쿼리의 집합으로 마치 하나의 함수처럼 쿼리의 집합을 실행하여 데이터를 조작하는 프로그램이다.

  1. 트리거(Trigger)

답안 : 트리거는 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생 시 DBMS에서 자동적으로 실행되도록 구현된 프로그램이다.

  1. 트랜잭션(Transaction)

답안 : 데이터베이스 관리 시스템 또는 유사한 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이자 한꺼번에 모두 수행되어야 할 일련의 연산이다.

  1. 병행 제어(Concurrency Control)

답안 : 병행제어란 동시에 여러개의 트랜잭션을 수행할 때, 데이터베이스의 일관성 유지를 위해서 트랜잭션 간의 상호 작용을 제어하는 기법이다.

  1. 로킹(Locking) 기법

정답 : 로킹기법이란 하나의 트랜잭션이 데이터를 액세스하는 동안, 다른 트랜잭션이 그 데이터 항목을 액세스할 수 없도록 하는 제어하는 기법이다.

해설- 로킹은 대표적인 동시성제어기법 / 로킹은 고립성을 보장하기 위한 기법

  1. 정규화(Normalization)

답안 : 관계형 데이터베이스의 설계에서 중복 최소화될 수 있도록 데이터를 구조화하여, 각 릴레이션에서 이상현상이 생기지 않도록 하는 데이터 모델링 기법이다.

  1. 기업의 내부 환경과 외부 환경을 분석하여 강점, 약점, 기회, 위협 요인을 규정하고 이를 토대로 경영 전략을 수립하는 방법은 무엇인가?

정답 : SWOT 분석(Strength, Weakness, Opportunity, Threat)

  1. 전송 계층에 위치하면서 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜은 무엇인가?

정답 : TCP(Transmission Control Protocol)

  1. 가장 객관적으로 하드웨어 성능을 나타내는 지표로 사용되는 것으로, 특정 서버에 대해서 자체 기준으로 테스트를 수행하러 나온 결과 중 1분간 최대 처리건수를 나타낸 수치는 무엇인가?

정답 : tpmC(transaction processing performance Council)

  1. SQL 명령어 중, DELETE, DROP 과 TRUNCATE의 차이를 서술하시오

정답

DELETE, DROP, TRUNCATE 모두 데이터를 삭제하는 기능을 갖는다는 점에서는 공통점을 갖고 있지만, DELETE는 데이터조작어(DML)이고, DROP과 TRUNCATE는 데이터정의어(DDL)이다. DML문은 트랜잭션 로그를 기록하지만 DDL문은 로그를 기록하지 않는다. 따라서 DELETE는 TRUNCATE에 비해 속도가 느리다. 마지막으로 DDL문인 DROP과 TRUNCATE는 테이블 내 데이터를 삭제한다는 공통점을 갖지만 DROP은 테이블 자체도 삭제하는 반면, TRUNCATE는 테이블 구조는 남기고, 테이블 내 데이터만 삭제한다는 차이점이 있다.

해설

‘TRUNCATE는 테이블 구조는 남기고, 테이블 내 데이터만 삭제한다’

>> 기능은 비슷한데 DELETE 는 WHERE절에 해당하는 행 한줄씩 제거할 수 있고, DML이어서 rollback키워드를 통해 데이터 복구가 가능
>> 반면, TRUNCATE는 테이블 전체를 DROP한 후 테이블 구조만 CREATE. auto_commit이 실행되어 데이터 복구가 불가능

  1. 웹서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리를 일컫는 말로, 알려진 송-수신 시스템의 통합 구현에서는 서비스의 공개 및 검색 과정이 필요 없어 구축하지 않는 웹서비스 방식은 무엇인가?

정답 : UDDI(Universal Description, Discovery and Integration)

  1. 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제공하는 전송 계층의 통신 프로토콜은 무엇인가?

정답 : UDP(User Datagram Protocol)

  1. 넓은 의미에서 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체이며, 좁은 의미로는 정보 기기나 소프트웨어의 화면 등에서 사람이 접하게 되는 화면을 뜻하는 용어는 무엇인가?

정답 : UI(User Interface)

  1. <보기>는 UI 설계 도구를 분류 없이 나열한 것이다. 도구별로 분류하시오.

<보기>

ㄱ. UX 핀(UXPin) / ㄴ. 발사믹 목업(Balsamiq Mockups) / ㄷ. 인비전(Invision) / ㄹ. 픽사에이트(Pixate)

ㅁ. 파워 목업(Power Mockup) / ㅂ. 카카오 오븐(Oven) / ㅅ. 네이버 프로토나우(ProtoNOW) /ㅇ. 스케치(Sketch)

ㅈ.프레이머(Framer) / ㅊ. 액슈어(AXURE) /  ㅋ. 어도비 익스피리언스 디자인 CC

정답

화면설계 도구: ㄴ, ㅁ, ㅂ

프로토타이핑 도구: ㄱ, ㅅ, ㅊ

UI 디자인 도구: ㅇ, ㅋ

UI 디자인 산출물로 작업하는 프로토타이핑 도구: ㄷ, ㄹ, ㅈ

  1. UI표준에 따라 사용자 인터페이스 설계, 개발 시 지켜야할 세부 사항을 규정하는 가이드라인을 (  )(이)라고 한다. ‘목표 정의, 프로젝트 계획, 요구사항 정의, 설계 및 구현, 테스트, 배포 및 관리’ 요소로 구성되어 있다.정답 : UI지침
  1. CRUD 방식을 기반으로 데이터의 입력과 출력을 처리하는 화면 흐름을 포함하여 오퍼레이션 방식에 대한 표준 절차를 표시하고 개발하는 것으로, 표준 프레임워크로 개발하고, 유스케이스를 이용해서 패턴별 표준 개발 방법 총 7가지 영역을 정의한 UI 모델은 무엇인가?

정답 : UI패턴모델(UI Pattern Model)

  1. 객체지향 소프트웨어 개발과정에서 산출물을 명세화, 시각화, 문서화할 시 사용되는 모델링 기술과 방법론을 통합해 만든 표준화된 범용 모델링 언어를 무엇이라고 하는가?

정답 : UML(Unified Modeling Language)

  1. 인터넷에 있는 자원을 나타내는 유일한 주소이며, 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다니는 식별 기술은 무엇인가?

정답 : URI(Uniform Resource Identifier, 통합 자원 식별자)

  1. 제품과 시스템, 서비스 등을 사용자가 직/간접적으로 이용하면서 느끼고 생각하는 지각과 반응, 행동 등의 총체적 경험을 무엇이라고 하는가?

정답 : UX(User eXperience, 사용자 경험)

  1. 논리적으로 분할된 스위치 네트워크나 가상 기능을 가진 LAN 스위치 또는 ATM 스위치를 사용해서 물리적인 배선에 구애받지 않고 브로드캐스트 패킷이 전달되는 범위를 임의로 나누는 네트워크 기술은 무엇인가?

정답 : VLAN(Virtual Local Area Network, 가상랜)

  1. 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체를 이르는 용어는?

정답 : VO(Value Object)

  1. 소프트웨어 생명주기 각 단계별로 개발자 관점에서의 공정 과정상 검증과 사용자 관점에서의 최종 산출물에 대한 확인을 지원하기 위한 테스트 모델은 무엇인가?

정답 : V모델

  1. 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이(異)기종 시스템과의 애플리케이션 연동을 지원하여 사용자 요청 스레드를 처리하고, 데이터베이스에 접속하여 SQL 쿼리문에 대한 결과 값을 반환하는 역할을 수행하는 서버는 무엇인가?

정답 : WAS(웹 애플리케이션 서버; Web Application Server)

  1. 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로, 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅이 가능한 특징을 갖는 검증 도구는 무엇인가?

정답 : watir

  1. while문을 사용하여 다음 식을 완성하시오. (자바, 파이썬, C언어 중 택1 하여 표기)

배열에 있는 100개의 숫자를 모두 더하는 식을 작성하시오

(배열의 이름은 a, 합한 값은 sum, 배열의 값을 가리키는 인덱스는 i라는 변수를 사용하고, 정수 sum과 정수 i에 초기값을 0으로 가정)

정답

#c, 자바

while ( i < 100 ) {

sum = sum + a [ i ];

i++

}

#파이썬

while i < 100:

sum = sum + a[ i ]

i = i + 1

  1. 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스 정보에 대한 상세 정보를 기술한 파일로 XML 형식으로 구현하며, 인터페이스와 구현을 분리하여 재사용성을 높인 웹 서비스 방식은 무엇인가?

정답 : WSDL(Web Services Description Language)

  1. 웹과 같은 분산 하이퍼 미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메소드로 주고받는 웹 아키텍처를 뜻하는 용어는 무엇인가?

정답 : REST(Representational State Transfer, 웹 표현상태 변경)

  1. 관리자가 사용자 수제비에게 ‘학생’ 테이블에 대해 UPDATE할 수 있는 권한을 회수하고 수제비가 다른 사용자에게 부여한 권한 역시 회수하고자 한다. 다음 구문에 적절한 키워드를 쓰시오. (오라클 기준)

( ① ) UPDATE ON 학생 FROM 수제비 ( ② );

정답 : ① REVOKE ② CASCADE CONSTRAINTS

해설

[ DROP TABLE ]
Oracle: CASCADE CONSTRAINTS
MySQL, PostgreSQL: CASCADE
SQL Server: 해당 옵션 없음, 순차적으로 삭제해야함

  1. 자율 시스템(AS) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 통신규약으로, 최대 홉 수(Hop count)를 15개로 제한한 라우팅 프로토콜은 무엇인가?

정답 : RIP(Routing Information Protocol)

  1. 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하며, 주문형 소프트웨어라고도 하는 클라우트 컴퓨팅 기술 유형을 무엇이라고 하는가?

정답 : SaaS(소프트웨어형 서비스, Software as a Service)

  1. 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 데이터베이스 보안 강화 기술은 무엇인가?

정답 : Secure DB

  1. 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해, 1999년 2월 한국인터넷 진흥원과 국내 암호전문가들이 순수 국내 기술로 개발한 대칭키 128비트 블록의 암호 알고리즘은 무엇인가? 정답 : SEED
  1. 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크로, 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공하는 검증 도구는 무엇인가?

정답 : Selenium

  1. 소프트웨어 보안의 모범사례를 소프트웨어 개발 라이프사이클에 통합한 것으로 ‘코드 검토(code review), 아키텍처 위험 분석(architectural risk analysis), 침투 테스트(penetration testing), 위험 기반 보안 테스트(risk–based security test), 악용사례(abuse cases), 보안 요구(security requirement), 보안 운영(security operation)’의 7가지 보안 강화 활동을 정의한 소프트웨어 개발 보안 방법론은 무엇인가?

정답 : Seven Touchpoints

  1. 사용자의 요청을 처리하는 기능을 제공하기 위한 로직을 구현하고 DAO 클래스를 통해서 DB연동을 처리하는 기능을 수행하는 클래스는 무엇인가?

정답 : 서비스(Service)

  1. 소프트웨어 개발 보안테스트 유형 중, SW를 실행하지 않고 소스코드 수준으로 보안 약점을 분석하는 방법으로서 SW 개발 단계에서 주로 사용하는 방법은 ( ① )이고, SW 실행 환경에서 소스코드를 보지 않고 보안 약점을 분석 방법으로서 SW 시험 단계에서 주로 사용하는 방법은 ( ② ) 이다.

정답 : ① 정적분석-화이트박스기법 ② 동적분석-블랙박스기법

** 논란이 많은 문제로 명확하게 수정하였습니다.

  1. 소스코드 확인 여부로 화이트박스/블랙박스로 구분하고
  2. 실행 여부로 정적 분석/ 동적 분석으로 구분합니다.

** 1의 경우 실행하지 않고 소스코드수준을 분석하므로 ‘정적분석-화이트박스기법’을 사용

** 2의 경우 실행환경에서 분석하는데 코드를 보지 않으므로 ‘동적분석-블랙박스기법’을 사용

답을 외우기보다는 핵심개념을 잡으시면 될 것 같습니다.

  1. 소프트웨어 개발 보안 생명주기를 순서대로 서술하시오.

정답 : 요구사항 명세 ⇒ 설계 ⇒ 구현 ⇒ 테스트 ⇒ 유지보수

  1. 웹 애플리케이션에서 입력데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람, 조작할 수 있는 취약점 공격기법을 무엇이라고 하는가?

정답 : SQL삽입 공격(SQL Injection)

  1. HTTP, HTTPS, SMTP 등을 사용하여 메시지를 네트워크 상태에서 교환하는 프로토콜로 HTTP프로토콜 상에 Envelope, Header, Body 등이 추가된 XML문서를 이용하며 기본적인 송수신은 HTTP로 수행되는 웹 서비스 방식은 무엇인가?

정답 : SOAP(Simple Object Access Protocol)

  1. 다음 제시문에 알맞게 SQL문을 작성하시오.

#1) [student] 테이블에 학번 ‘20201231’, 성명 수제비’, 학년 ‘1학년인 학생을 삽입하시오

INSERTINTO ( ① )(학번, 성명, 학년) ( ② )(20201231, ‘수제비’, ‘1학년’);

#2) [student] 테이블에서 학번이 ‘20201231’인 학생의 학년을 2학년으로, 수강과목을 국어로 수정하시오.

UPDATE student ( ③ ) ( ④ ) WHERE ( ⑤ );

#3) [student] 테이블에서 수제비를 삭제하시오.

( ⑥ ) student WHERE 성명=‘수제비’;

#4) [student] 테이블에서 성명이 수제비인 학생의 모든 정보를 가져오시오.

SELECT ( ⑦ ) FROM student ( ⑧ ) 성명 = ‘수제비’;

정답

1) ① student  ② VALUES

2) ③ SET ④ 학년 = ‘2학년’, 수강과목 = ‘국어’ ⑤ 학번 = ‘20201231’

3) ⑥ DELETE FROM

4) ⑦ * ⑧ WHERE

  1. IP계층(OSI 7계층 중 3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜로, 현재 전세계에서 사용되는 인터넷 상거래시 요구되는 개인 정보와 크레디트 카드 정보의 보안 유지에 가장 많이 사용되고 있는 프로토콜은 무엇인가?

정답 : IPSec(Internet Protocol Security)

  1. 응용계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안 프로토콜은 무엇인가?

정답 : SSL/TLS(Secure Socket Layer / Transport Layer Security) OR SSL

해설

– SSL의 발전된 프로토콜 : TLS

  1. ‘모든 인증을 하나의 시스템에서’라는 목적하에 개발되었으며 한 번의 로그인을 통해 여러 다른 사이트들을 자동적으로 접속하여 이용하는 방법을 무엇이라고 하는가?

정답 : SSO(Single Sign On)

  1. 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크로 각 테스트 대상 분산 환경에 데몬(daemon)을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하여 자동화하는 검증 도구는 무엇인가?

정답 : STAF(Software Testing Automation Framework)

  1. 자바 데이터베이스 응용 프로그램에서 쿼리 실행시 “쿼리 분석 → 컴파일 → 실행” 과정을 매번 진행하는 구문을 무엇인가?

정답 : statement

  1. 다소 제한이 있던 CVS를 대체하기 위해 콜랩넷에서 개발한 버전관리 도구로, 클라이언트/서버 방식으로 하나의 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 도구는 무엇인가?

정답 : SVN(Subversion)

  1. OSI 4계층, 전송계층에서 네트워크 단위들을 연결하는 통신 장비로, FTP, HTTP 등을 구분하여 스위칭하는 로드 밸런싱 기능을 수행하며, 4계층 정보인 TCP/UDP 포트번호를 분석하여 포워딩을 결정하고 QoS와 GLB / SLB 기능을 제공하는 스위치는 무엇인가?

정답 : L4스위치

  1. 사용자 정보를 유지하기 위한 질의 및 디렉터리 서비스의 등록, 수정, 삭제 및 검색을 위한 목적으로 미국 미시간 대학에서 개발한 인터넷 프로토콜은 무엇인가?

정답 : LDAP(Lightweight Directory Access Protocol)

  1. 특정 조건이 만족될 때까지 반복해서 문장을 실행하는 문장을 LOOP문이라고 한다. 탈출 조건을 입력하는 키워드는 무엇인가?

정답 : EXIT WHEN

  1. CPU가 메모리에 접근하는 것을 관리하는 컴퓨터 하드웨어 부품으로 가상 메모리 주소를 실제 메모리 주소로 변환하는 장치는 무엇인가?

정답 : MMU(Memory Management Unit)

  1. 디지털 멀티미디어 콘텐츠의 생성, 거래, 전달, 관리, 소비하는 과정에 있어서 광범위한 네트워크 및 터미널을 통하는 여러 계층의 멀티미디어 자원을 투명하고, 상호 호환할 수 있도록 사용하기 위한 멀티미디어 프레임워크 표준 규격을 뜻하는 개념은?

정답 : MPEG-21(Moving Picture Experts Group 21, 엠페그 21)

  1. 마이크로소프트에서는 안전한 소프트웨어 개발을 위해 자체 수립한 방법론을 적용하여 적용 이후 이전 버전보다 50% 이상의 취약점 감소를 확인했다. 이 방법론은 무엇인가?

정답 : MS-SDL(Microsoft Secure Development Lifecycle)

  1. 임계 영역(프로그램상에서 동시에 실행될 경우 문제를 일으킬 수 있는 부분)을 가진 스레드들의 실행 시간이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술로, 시간 및 상태 보안 약점 중 하나인 ‘경쟁 조건’에 대한 대응 방안으로 고려되는 기술은 무엇인가?

정답 : mutex

  1. DBMS에 질의하기 위한 SQL 쿼리를 별도의 XML파일로 분리하고 Mapping을 통해서 SQL을 실행하며, 복잡한 JDBC 코드를 단순화 할 수 있고, SQL을 거의 그대로 사용하며, Spring 기반 프레임워크와의 통합 기능을 제공하는 SQL Mapping 기반 오픈소스 Access Framework는 무엇인가?

정답 : MyBatis

  1. 데이터의 구조를 네트워크상의 망(net)상 형태로 논리적으로 표현한 데이터 모델로, 트리 구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점을 갖는 DBMS는 무엇인가?

정답 : NDBMS(Network DataBase Management System)

  1. 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치로 Data Link 계층에서 사용되는 네트워크 장비는 무엇인가?

정답 : NIC(Network Interface Card)

  1. 초당 처리되는 연산능력을 가리키는 말로 컴퓨터의 성능을 수치로 나타낼 때 사용하는 단위는?

정답 : OPS(Operations Per Second)

  1. <보기>는 OSI 7계층을 순서 없이 나열한 것이다. 낮은 계층부터 높은 계층 순으로 순서대로 나열하시오.

<보기>

Data Link / Presentation / Session / Transport /  Network / Application / Physical

정답 : 1 ⇒ 7: 

Physical → Data Link → Network → Transport → Session  → Presentation → Application

  1. 링크 상태 알고리즘을 채용하여 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선한 프로토콜로, 발생한 변경정보에 대해 RIP보다 빠르게 업데이트 하며, 자세한 제어가 가능하고, 관리 정보의 트래픽을 줄일 수 있어 토폴로지에 대한 정보가 전체 라우터에 동일하게 유지되는 라우팅 프로토콜은 무엇인가?

정답 : OSPF(Open Shortest Path First, 최단 경로 우선 프로토콜)

  1. 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스로,  개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 클라우드 컴퓨팅 유형은 무엇인가?

정답 : PaaS(플랫폼형 서비스, Platform as a Service)

  1. 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작언어로, Oracle 기반의 모든 프로시저 작성에 사용되며 표준 SQL의 확장 기능이 우수한 언어 무엇인가?

정답 : PL/SQL(Procedural Language for SQL)

  1. 자바 데이터베이스 응용 프로그램 실행 시, “쿼리 분석 → 컴파일 → 실행” 과정을 최초 한 번만 수행 후 캐시에 담아 재사용하는 구문은 무엇인가?

정답 : preparedStatement

  1. 온라인 업무 처리 형태의 하나로 터미널에서 받은 메시지를 따라 호스트가 처리를 하고 그 결과를 다시 터미널에 되돌려 주는 방법을 무엇이라고 하는가?

정답 : OLTP(OnLine Transaction Processing, 온라인 거래 처리)

  1. 한계점의 측정을 목적으로 낮은 수준의 부하부터 높은 수준의 부하까지 예상 트래픽을 꾸준히 증가시키며 진행하는 부하 테스트는 무엇인가?

정답 : Ramp-up load

  1. 다수의 인원이 동시에 소스 파일에 접근하여 수정이 가능한 CVS와는 달리 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 버전을 관리하는 도구는 무엇인가?

정답 : RCS(Revision Control System)

  1. 관계형 모델을 기반으로 하는 가장 보편화된 DBMS로, 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관 관계를 정리하는 특성을 갖고 있으며, 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이한 DBMS는 무엇인가?

정답 : RDBMS(Relational DataBase Management System)

  1. 관리자가 사용자 수제비에게 ‘학생’ 테이블에 대해 INSERT, UPDATE를 할 수 있는 권한과 그 권한을 필요시 다른 사람에게 부여할 수 있는 권한을 부여하고자 한다. (  ) 안에 적절한 키워드를 쓰시오

( ① ) INSERT, UPDATE ON 학생 TO 수제비 ( ② );

정답 : ① GRANT ② WITH GRANT OPTION

  1. SQL문에서 테이블의 행을 그룹으로 묶을 때 그룹을 묶는 기준을 설정하는 절로, 기준 컬럼의 값이 동일한 행끼리 하나의 그룹으로 묶어 사용하는 절을 ( ① )(이)라고 한다.  ( ① )(으)로 만들어진 그룹에는 ( ② )(을)를 통해 제한을 걸 수 있는데, 이때는 그룹 함수만 사용이 가능한 특징이 있다.

정답 : ① GROUP BY ② HAVING 

  1. UI 유형 중 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스를 ( ① )(이)라고 하며, 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스를 ( ② )(이)라고 한다.

정답① GUI(Graphical User Interface, 그래픽 반응 기반 인터페이스)② CLI(Command Line Interface, 정적 텍스트 기반 인터페이스)

  1. DBMS 중 하나로, 데이터에 대한 접근 속도가 빠르지만, 종속적인 데이터 계층 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기 힘든 DBMS는 무엇인가?

정답 : HDBMS(Hierarchical DataBase Management)

  1. 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스로, 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어를 탑재하여 실행하며 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가지는 클라우드 컴퓨팅 기술 유형은 무엇인가?

정답 : IaaS(인프라형 서비스, Infrastructure as a Service)

  1. 다음은 점수에 따라서 수우미양가를 알려주는 예제이다. 괄호 안에 알맞은 키워드를 넣어 완성하시오.

(자바, score 변수에는 점수가 입력되어 있다고 가정)

if (score >=90) {

System.out.print(“수”);

}

( ① ) (score >= 80) {

System.out.print(“우”);

}

( ② ) (score >= 70) {

System.out.print(“미”);

}

( ③ ) (score >= 60) {

System.out.print(“양”);

}

( ④ ) {

System.out.print(“가”);

}

정답 : ① else if ② else if ③ else if ④ else

  1. RIP의 문제점 개선을 위해 시스코에서 개발한 통신규약으로 RIP보다 대규모로 복잡한 통신망에서의 운용을 상정한 규격으로 되어 있으며, 거리 벡터 라우팅 알고리즘을 채용하여 목적 통신망까지의 경로는 지연, 회선의 대역폭, 신뢰성 및 부하를 고려해서 결정하는 라우팅 프로토콜은 무엇인가?

정답 : IGRP(Interior Gateway Routing Protocol, 내부 경로 제어 통신 규약)

  1. 인터넷 표준 암호 키 교환 프로토콜로, 상세한 사항이 RFC 2409에 규정되어 있으며 IPSec을 암호화하는데 사용되는 프로토콜은 무엇인가?

정답 : IKE(Internet Key Exchange)

  1. 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템은 무엇인가?

정답 : IPS(Intrusion Prevention System, 침입 차단 시스템)

  1. IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜은 무엇인가?

정답 : IPSec(IP Security Protocol))

  1. 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 32bit 주소체계를 갖는 네트워크 계층의 프로토콜은 무엇인가?

정답 : IPv4(Internet Protocol version 4)

  1. 디지털 통신망을 이용하여 음성, 문자, 영상 등의 통신을 종합적으로 할 수 있도록 하는 통신 서비스는 무엇인가?

정답 : ISDN(Integrated Service Digital Network)

  1. 자바 가상머신(JVM)과 컴파일러, 디버거, 그리고 자바 애플릿 및 응용프로그램 개발을 위한 도구들이 포함된 핵심 플랫폼을 무엇이라고 하는가?

정답 : JDK(Java Development Kit)

  1. JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공하고, 표준화된 태그 셋을 사용하여 코드의 유지보수를 용이하게 하는 라이브러리는 무엇인가?

정답 : JSTL(Java server pages Standard Tag Library)

  1. 시스템 메모리를 관리하면서 자바 바이트 코드와 컴퓨터의 운영 시스템 간에 번역기 역할을 수행하여 자바 기반 애플리케이션을 위해 이식 가능한 실행 환경을 제공하여, 어떤 운영체제에서든 자바를 이용하여 작업할 수 있게 도와주는 소프트웨어는 무엇인가?

정답 : JVM(Java Virtual Machine, 자바 가상 머신)

  1. 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 이전 버전에서 가지고 있던 주소고갈, 보안성, 이동성 지원 등의 문제점을 해결 하기 위해서 개발된 128bit 주소체계를 갖는 차세대 인터넷 프로토콜은 무엇인가?

정답 : IPv6(Internet Protocol version 6)

  1. 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스를 ( ① )(이)라고 하고, 데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스를 ( ② )(이)라고 한다.

정답 : ① JDBC(Java DataBase Connectivity ② ODBC(Open DataBase Connectivity)

  1. OSI 2 계층 장비로, 느린 전송 속도의 브리지, 허브의 단점을 개선하기 위해서, 출발지에서 들어온 프레임(Frame)을 목적지 MAC 주소 기반으로 빠르게 전송시키는 데이터 링크 계층의 통신 장치로, ‘Store and Forwarding’, ‘Cut Through’, ‘Fragment Free’ 의 3 가지 방식 중 하나를 사용하는 네트워크 장비는 무엇인가?

정답 : L2스위치

  1. OSI 네트워크계층에서 네트워크 단위들을 연결하는 통신 장비로, IP 레이에서의 스위칭을 수행하여 외부로 전송하며 라우터와의 경계가 모호한 네트워크 장비는 무엇인가?

정답 : L3스위치

  1. 게임 클라이언트나 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 사용자에게 제공하는 시스템은 무엇인가?

정답 : CDN(Contents Delivery Network)

  1. ‘개념 관점, 역할기반 관점, 활동평가 관점, 활동구현 관점, 취약성 관점’등의 활동중심, 역할 기반의 프로세스로 구성된 집합체로서 이미 운영중인 시스템에 적용하기 적당한 소프트웨어 개발 보안 방법론은 무엇인가?

정답 : CLASP(Comprehensive, Lightweight Application Security Process)

  1. 복수 서버, 복수 클라이언트 구조로 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있는 소프트웨어 버전 관리 도구는 무엇인가?

정답 : Clear Case

  1. 다양한 미디어 포맷에 따라 각종 콘텐츠를 작성, 수집, 관리, 배급하는 콘텐츠 생산에서 활용, 폐기까지 전 공급 과정을 관리하는 기술을 무엇이라고 하는가?

정답 : CMS(콘텐츠 관리 시스템, Contents Management System)

  1. 배치 스케줄러 실행을 위해 작업이 실행되는 시간 및 주기 등을 설정할 때 사용하는 표현식을 ( ① )(이)라고 한다. ( ① ) 는/은 왼쪽부터 순서대로 7개의 필드를 갖는데 각각의 의미는 ‘( ② )/분/시간/( ③ )/월/( ④ )/연도’이다.

정답 : ① 크론 표현식(Cron) ② 초(seconds) ③ 일(day) ④ 요일(week)

  1. 대부분의 소프트웨어가 가지는 기본 데이터처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 이르는 용어는 무엇인가?

정답 : CRUD(방식)

  1. 문서 전체의 일관성을 유지할 수 있고, 각 코드마다 스타일을 지정해야 했던 부담을 덜기 위해 웹 문서의 전반적인 스타일을 미리 저장해 둔 스타일시트는 무엇인가?

정답 : CSS(Cascading Style Sheets)

  1. 클라이언트-서버 구조로 구성되며 지역적으로 떨어진 상황에서도 다수의 인원이 동시에 범용적인 운영체제로 접근하여 작업이 가능한 도구로 GNU 일반 공중 사용 허가서 하에 배포되는 소프트웨어 버전관리 도구는 무엇인가?

정답 : CVS(Concurrent Versions System)

  1. 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 개체로 세부내용 노출 없이 데이터를 조작하는 객체를 이르는 용어는?

정답 : DAO(Data Access Object, 데이터 접근 객체)

  1. 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP주소로 해석해주는 TCP/IP 네트워크 서비스를 무엇이라고 하는가?

정답 : DNS(Domain Name System)

  1. 디지털 저작물에 특정한 번호를 부여하는 일종의 바코드 시스템으로 디지털 저작물의 저작권 보호 및 정확한 위치 추적을 제공하는 식별기술은 무엇인가?

정답 : DOI(Digital Object Identifier)

  1. 콘텐츠의 불법복제 방지를 위한 디지털 저작권 관리 기술을 ( ① )(이)라고 한다. ( ① )의 구성요소로는 콘텐츠를 제공하는 ‘콘텐츠 제공자(contents provider)’와 쇼핑몰 등을 통해 암호화된 콘텐츠를 제공하는 ‘콘텐츠 분배자(contents distributor)’, 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능을 뜻하는 ( ② )와 원본을 안전하게 유통하기 위한 전자적 보안장치인 ‘보안 컨테니어(security container)’, 배포된 콘텐츠의 이용 권한을 통제하는 ( ③ ), 그리고 키 관리 및 라이선스 발급을 관리하는 ( ④ )로 이루어져 있다.

정답 : DTO(Data Transfer Object, 데이터 전송 객체)

  1. 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장ㆍ회수 외에 다른 기능이 없는 객체를 뜻하는 말은 무엇인가?

정답 : DTO(Data Transfer Object, 데이터 전송 객체)

  1. 기업 내에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합하여 필요한 정보를 중앙 집중적으로 통합 ,관리, 사용할 수 있는 환경을 구현하는 것으로 e-비즈니스를 위한 기본 인프라를 무엇이라고 하는가?

정답 : EAI(Enterprise Application Integration)

  1. 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간을 하나의 시스템으로 관리 운영할 수 있도록 서비스 중심의 통합을 지향하는 아키텍처 또는 기술로 버스를 중심으로 각각 프로토콜이 호환이 가능하도록 애플리케이션 간의 통합을 느슨한 결합(Loosely Coupled) 방식으로 지원하는 방식을 무엇이라고 하는가?

정답 : ESB(Enterprise Service Bus)

  1. 암호화 알고리즘을 활용한 캡슐화 기반 페이로드 기밀성을 제공하는 프로토콜로 DARPA가 후원하는 연구 프로젝트의 일환으로 1992년부터 해군 연구소에서 개발되었으며 1993년 12월 IETF SIPP 실무 그룹에 의해 공개적으로 공개된 프로토콜은 무엇인가? 정답 : ESP(Encapsulation Security Payload)
  1. 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로, 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트 할 수 있는 장점이 있는 검증 도구는 무엇인가?정답 : Fitnesse
  1. for문을 사용하여 다음 식을 완성하시오. (자바, 파이썬, C언어 중 택1 하여 표기)

배열에 있는 100개의 숫자를 모두 더하는 식을 작성하시오(배열의 이름은 a, 합한 값은 sum, 배열의 값을 가리키는 인덱스는 i라는 변수를 사용하고, sum 의 초깃값은 0이라고 가정)

정답

/*C, JAVA*/

for ( int i=0; i<100; i++ ) {

sum = sum + a[i];

}

# 파이썬 1

for i in range(0, 100):

sum = sum + a[i]

# 파이썬 2

for i in range(100):

sum = sum + a[i]

  1. TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 대용량 파일을 네트워크를 통해 주고 받을 때 사용하는 프로토콜은 무엇인가?

정답 : FTP(File Transfer Protocol)

  1. 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템으로 로컬 저장소에서는 commit을 통해, 원격 저장소에서는 push를 통해 작업이 반영되는 형상 관리 도구는 무엇인가?

정답 : Git

  1.  윈도우 함수중 FIRST_VALUE, LAST_VALUE, LAG, LEAD 함수는 무엇인가?

정답 : 행순서 함수

  1. 파티션별 윈도우에서 가장 먼저 나오는 값을 찾는 함수로, 집계 함수의 MIN과 동일한 결과를 출력하는 행순서 함수는 ( ① )이다. 그리고 파티션별 윈도우에서 이전 로우의 값을 반환하는 함수는 ( ② )이다.

정답 : ① FIRST_VALUE ② LAG

  1. OSI 1 계층 장비로, 여러 대의 컴퓨터를 연결하여 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비는 무엇인가?

정답 : 허브(Hub)

  1. EAI 구축 유형 중, ‘단일한 접점의 허브 시스템을 통하여 데이터를 전송하는 중앙 집중식 방식’을 취함으로써 허브 장애 시 전체 장애가 발생할 우려가 있는 유형은 무엇인가?

정답 : 허브 앤 스포크(Hub &Spoke)

  1. 현행 시스템 파악 절차에 대해 순서대로 서술하시오

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

정답 : 구성, 기능, 인터페이스 파악 >아키텍처 및 소프트웨어 구성 파악 >하드웨어 및 네트워크 구성 파악

  1. 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동을 ( ① )(이)라고 한다. ( ① )은/는 ‘식별→ 통제→( ② ) → 기록’의 절차로 이루어진다.

정답 : ① 형상관리 ② 감사

  1. 사용자 화면이 있는 경우, 각각의 화면 단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 수행하는 테스트로서 사용자 시나리오에 기반한 테스트를 할 수 있는 공통 모듈 테스트는?

정답 : 화면 기반 테스트

  1. 화이트박스 테스트의 유형 중 하나로 소프트웨어의 논리적 복잡도 측정 후 수행경로의 집합을 정의하는 테스트를 ( ① ) (이)라고 하고, 프로그램의 루프 구조에 국한해서 실시하는 테스트를 ( ② )(이)라고 한다. 정답 : ① 제어구조 테스트 ② 루프 테스트
  1. 소프트웨어 결과를 테스트하는 것으로 만들어진 제품이 제대로 동작하는지 확인하고 최종 사용자 요구 또는 소프트웨어 요구가 적합한지를 판단하고 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정을 이르는 용어는? 정답 : 확인(Validation)
  1. 테스트 목적에 따른 분류 중 하나로 ‘오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복적 테스트 기법은 무엇인가?

정답 : 회귀 테스트(Regression Test)

  1. 테스트 목적에 따른 분류 중 하나로, ‘시스템에 고의로 실패를 유도하여 시스템의 정상적 복귀 여부를 테스트하는 기법’은 무엇인가?

정답 : 회복 테스트(Recovery)

  1. UI 개발을 위한 주요 기법 중, ‘고객, 경쟁하고 있는 자사, 경쟁사를 비교 분석하여 자사를 어떻게 차별화해서 경쟁에서 이길 것인가를 분석하는 기법’을 무엇이라고 하는가?

정답 : 3C분석(Customer, Company, Competitor)

  1. 웹에서 서버를 찾지 못할 때 발생하는 오류 메시지는 ( ① )이고, 서버가 요청을 거부할 경우 발생하는 오류 메시지는 ( ② )이며, 내부 서버 에러 또는 설정이나 퍼미션 문제로 발생하는 에러메시지는 ( ③ )이며, 게이트웨이가 연결된 서버로부터 잘못된 응답을 받는 경우의 오류 메시지는 ( ④ )이다.

정답 : ① 404(Not Found) ② 403(Forbidden) ③ 500(Internal Server Error) ④ 502(Bad Gateway)

  1. 메시지 Checksum을 활용한 데이터 인증과 비연결형 무결성을 보장해주는 프로토콜은 무엇인가? 정답 : AH(Authentication Header)
  1. 자바스크립트를 사용하는 비동기 통신기술로, 클라이언트와 서버 간에 XML 데이터를 주고 받는 기술은 무엇인가?

정답 : AJAX(Asynchronous Javascript and XML)

  1. 프로그래머를 위한 운영체제나 프로그램의 인터페이스 사양으로서 응용 프로그램이나 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현되는 인터페이스 또는 프로그램을 작성하기 위한 일련의 서브프로그램, 프로토콜 등을 정의하여 상호 작 용을 하기 위한 인터페이스 사양을 뜻하는 개념은 무엇인가?

정답 : API(Application Programming Interface)

  1. 안정적인 시스템 운영을 위해 부하량, 접속자 파악 및 장애진단 등을 목적으로 하는 성능 모니터링 도구를 무엇이라고 하는가?

정답 : APM(Application Performance Monitoring)

  1. 광대역 서비스의 다양한 특성을 수용하기 위한 광대역 종합정보통신망(B-ISDN)의 실현을 목적으로 제안되었으며 회선교환 방식과 패킷교환 방식의 장점을 통합시킨 연결지향적 속성을 지닌 패킷교환 프로토콜은 무엇인가?

정답 : ATM(Asychronous Transfer Mode, 비동기 전송 모드)

  1. 인터넷의 자동 시스템(AS; Autonomous System) 중 라우팅 및 도달 가능성 정보를 교환하도록 설계된, 표준화된 외부 게이트웨이 프로토콜의 하나로, 대형 사업자(ISP) 간의 상호 라우팅에 사용되며, 경로 벡터 라우팅 프로토콜(path-vector routing protocol)로 분류되는 프로토콜은 무엇인가?

정답 : BGP(Border Gateway Protocol, 경계 경로 프로토콜)

  1. 최초로 분산저장식 방식을 사용한 도구로서, 개발 시에는 상용 소프트웨어로 제공되다가 2016년 오픈 소스로 전환된 도구로 2020년 현재 더이상 개발되고 있지 않은 소프트웨어 버전 관리도구는 무엇인가?

정답 : 비트키퍼(Bitkeeper)

  1. 파일에 이름을 부여하고 저장이나 검색을 위하여 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는 데이터베이스 전 단계의 데이터 관리 방식을 ( ① )(이)라고 한다. ISAM 방법과 VSAM 방법이 사용되는데, 대형 운영 체제에서 사용되는 파일 관리 시스템은 ( ② ) 이고, 자료 내용은 주 저장부, 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 파일 관리 시스템은 ( ③ ) 이다.

정답 : ① 파일 시스템(file system) ② VSAM(Virtual Storage Access Method) ③ ISAM(Indexed Sequential Access Method)

  1. 라이브러리에서 전역변수, 함수 등을 모아둔 파일을 ‘모듈(module)’이라고 하고, 모듈을 디렉터리 형식으로 구조화한 라이브러리를 (      )(이)라고 한다.

정답 : 패키지(package)

  1. 컴퓨터 네트워크와 통신의 방식 중 하나로 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 방식으로 통신 방식으로 ‘X.25’, ‘프레임 릴레이’ 및 ‘ATM’과 같은 다양한 기술을 사용하는 네트워크 전달 방식은 무엇인가?

정답 : 패킷 스위칭

  1. 사용자 요구사항 도출을 위하여 ‘잠재적 사용자의 다양한 목적과 관찰된 행동 패턴을 응집시켜 놓은 가상의 사용자’를 무엇이라고 하는가?

정답 : 페르소나(Persona)

  1. 블랙박스 테스트 유형 중, 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 방법으로 Test data 값들 간에 최소한 한 번씩을 조합하는 방식은 무엇인가?

정답 : 페어와이즈 테스트(Pairwising Test)

  1. EAI 구축 유형 중 ‘1:1 단순 통합을 통해 구현하는 가장 기초적인 애플리케이션 통합 방법’은 무엇인가?

정답 : 포인트 투 포인트(Point-to-point)

  1. 다음은 무엇에 대한 설명인가?

– ITU-T에 의해 표준으로 작성된 ISDN을 사용하기 위한 프로토콜

– 사용자의 요청에 따라 유연한 대역폭을 할당

– 망의 성능 향상을 위해 에러 제어 기능과 흐름 제어 기능을 단순화

– 1~2계층만 담당함

– 전용선을 사용하는 것보다 가격이 저렴하고, 기술적으로는 X.25에 비해 우위

정답 : 프레임 릴레이(Frame relay)

  1. 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 클래스들을 제공하는 틀을 이르는 용어는 무엇인가?

정답 : 프레임워크(Framework)

  1. <보기>를 보고 빈 칸에 알맞은 용어를 쓰시오.

<보기>

모듈화 / 재사용성 / 확장성 / 제어의 역행

프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 클래스들을 제공하는 틀을 말한다. 프레임워크는 ‘모듈화, 재사용성, 확장성, 제어의역행’의 특징을 가지고 있는데,  인터페이스를 통해 애플리케이션에서 반복적으로 사용하는 일반적 컴포넌트를 정의하여 ( ① )을/를 높였으며, 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장할 수 있는 ( ② )을/를 가지고 있다. 또한 구현을 인터페이스 뒤에 감추는 ( ③ )을/를 통해 설계/구현 변경에 따르는 영향을 최소화할 수 있게 하였고, 외부의 이벤트에 대해 애플리케이션이 어떤 메서드를 수행해야할지 처리흐름을 제어하기도 하는데 이를 ( ④ )(이)라고 한다.

정답 : ① 재사용성 ② 확장성 ③ 모듈화 ④ 제어의 역행

  1. 운영체가 관리하는 실행단위로 프로세서에 의해 처리되는 PCB(프로그램 제어 블록)를 가진 시스템 프로그램을 뜻하는 용어는?

정답 : 프로세스(Process)

  1. 준비 상태(Ready List)에 있는 여러 프로세스 중 실행될 프로세스를 선정(Scheduling)하여 CPU를 할당하는 것으로 문맥교환이 발생하고 프로세스는 준비 상태에서 실행 상태로 전이하는 프로세스 상태전이는 무엇인가?

정답 : 디스패치(Dispatch)

  1. CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB에 저장되고, CPU 반납후 다시 준비 상태로 전이되는데 이러한 프로세스 상태전이는 무엇인가?

정답 : 타이머 런 아웃(timer run out)

  1. SQL을 이용해 생성된 데이터를 조작하며, 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행되는 프로그램은 무엇인가?

정답 : 프로시저(Procedure)

  1. 서로 다른 시스템에 있는 두 개체 간의 데이터 교환을 원활히 하기 위한 일련의 통신규약을 이르는 말로 대표적으로 HTTP, FTP 등이 있다. 이것은 무엇인가?

정답 : 프로토콜(Protocol)

  1. 사용자가 요구한 주요 기능을 프로토 타입으로 구현하여, 사용자의 피드백을 통해 개선, 보완하여 완성 소프트웨어를 만들어 나가는 기법을 무엇이라고 하는가?

정답 : 프로토타이핑(Prototyping)

  1. 소프트웨어 개발에서 정식 절차에 따라 완전한 소프트웨어를 만들기 전에 사용자의 요구를 받아 일단 모형을 만들고 이 모형을 통해 사용자와 의사소통하는 도구로 활용하는데, 이 도구는 무엇인가?

정답 : 프로토타입(Prototype)

  1. EAI 구축 유형 중, 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합방식을 갖는 유형은 무엇인가?

정답 : 하이브리드(Hybrid)

  1. 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 테스트를 진행하며, 메인 제어 모듈에 통합되는 하위 모듈과 최하위 모듈은 ‘깊이-우선’ 또는 ‘너비-우선’방식으로 통합되는 통합 방법은 무엇인가?

정답 : 하향식 통합(Top Down)

  1. 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특징을 가진 알고리즘으로 SHA-256/384/512, HAS-160 등이 있는 알고리즘은 무엇인가?

정답 : 해시 암호화 알고리즘

  1. 파티션을 위한 범위가 없는 데이터에 적합한 기법으로 균등한 데이터 분할이 가능하고 질의 성능의 향상이 가능한 특징을 가지며, 파티션 키의 해시 함수 값에 의한 파티셔닝 기법은?

정답 : 해시 파티셔닝(Hash Partitioning)

  1. 클라이언트-서버 구조에서 서버에서 그 서버가 제공하는 서비스를 요청하고, 또는 서비스 요청을 위해 필요 인자를 서버가 원하는 방식에 맞게 제공하며, 서버로부터 반환되는 응답에 사용자에게 적절한 방식으로 표현하는 기능을 가진 프로그램이나 시스템을 무엇이라고 하는가?

정답 : 클라이언트(Client)

  1. 객체지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀로, 객체를 정의하기 위한 상태와 메서드로 구성되는 요소는 무엇인가?

정답 : 클래스(Class)

  1. 모든 서브 타입으로 상속(Inheritance)되는 공통 속성을 ( ① )(이)라고 하고,  모델링 개체(Entity)의 전체 집합에서 일부만 모아 놓은 부분 속성을 이르는 말을 ( ② )(이)라고 한다.

정답 : ① 슈퍼 타입(Super Type) ② 서브 타입(sub type)

  1. 서명자를 확인하고 서명자가 당해 전자문서에 서명했다는 사실을 나타내기 위해 특정 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보는 무엇인가?

정답 : 전자서명(Digital Signature)

  1. 잘 작성되어 가독성이 높고, 단순하며, 의존성을 줄이고, 중복을 최소화하여 깔끔하게 잘 정리된 코드를 무엇이라고 하는가?

정답 : 클린 코드(clean code)

  1. 프로젝트에서 책임과 연관되어 있으며 서로 독립적 성격을 갖지만 함께 편성되고 관리되는 테스트 활동의 그룹을 이르는 용어는 무엇인가?

정답 : 테스트 레벨(Test Level)

  1. 테스트 산출물의 종류를 서술하시오.

정답 : 테스트 계획서 / 테스트 케이스 / 테스트 시나리오 / 테스트 결과서

  1. 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서는 무엇인가?

정답 : 테스트 시나리오(Test Scenario)

  1. 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법은 무엇인가?

정답 : 테스트 오라클(Test Oracle)

  1. 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현함으로써, 테스트 시간 단축과 인력 투입 비용을 최소화하고, 쉽고 효율적인 테스트를 수행할 수 있는 방법을 ( ① )(이)라고 한다. ( ① )의 유형으로는 애플리케이션을 실행하지 않고 분석하는 ‘정적 분석 도구’, 테스트를 위해 작성된 스크립트를 실행하는 ‘ 테스트 실행 도구’, 애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률에 대해 가상의 사용자를 생성하고 테스트를 수행하는 ( ② ), 그리고 테스트 관리 도구, 형상 관리 도구, 결함 추적/관리 도구 등으로 이루어진 ‘테스트 통제 도구’가 있다.

정답 : ① 테스트 자동화 도구 ② 성능 테스트 도구(Performance Test Tools)

  1. 테스트 조건에서 테스트 계획의 수립, 사용자 요구사항에 대한 테스트 명세의 작성, 투입조직 및 참여 인력의 역할과 책임의 정의, 테스트 일정의 확정, 테스트 환경의 구축 등이 완료된 후, 정의하는 조건을 ( ① ) 이라고 한다. 반면 ( ② )은 업무 기능의 중요도에 따라 조건 설정의 변경이 가능하다.

정답 : ① 시작 조건 ② 종료 조건

  1. 주어진 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하여 테스트의 정확성과 신뢰성을 향상시키는 역할을 수행하는 테스트 품질 측정 기준은 무엇인가?

정답 : 테스트 커버리지(Test Coverage)

  1. 애플리케이션 컴포넌트 및 모듈을 테스트는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성하는 요소를 무엇이라고 하는가?

정답 : 테스트 하네스(Test Harness)

  1. 논리 및 물리 모델링 과정에서 작성하는 설계 산출물로 테이블을 구성하는 컬럼들의 특성, 인덱스, 업무 규칙 등을 문서화한 것을 의미하는 용어는?

정답 : 테이블 정의서

  1. 단위테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하고, 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법으로 하향식 통합 테스트, 상향식 통합 테스트, 그리고 빅뱅 테스트로 분류된다. 이 테스트는 무엇인가? 정답 : 통합 테스트(Integration Test)
  1. 데이터베이스에서 프로시저에 있는 SQL 실행 계획을 분석, 수정을 통해 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수정하는 작업을 뜻하는 용어는 무엇인가?

정답 : 쿼리 성능 개선(=튜닝)

  1. 쿼리 성능 개선 절차를 순서대로 서술하시오.

[ SQL문 재구성 / 실행계획 유지관리 / 문제있는 SQL 식별 /인덱스 재구성 / 옵티마이저 통계 확인 ]

정답 : 문제있는 SQL 식별 → 옵티마이저 통계 확인 → SQL문 재구성  → 인덱스 재구성  →  실행계획 유지관리

  1. 릴레이션을 구성하는 각각의 행(row)으로서 데이터베이스내의 주어진 목록과 관계있는 속성값의 모음이며 관련 테이블에서 행한 수치 이상으로 혼합된 자료 요소를 ( ① )(이)라고 하고, ( ① )의 수를 ( ② ) (이)라고 한다.

정답 : ① 튜플(tuple) ② 카디널리티(Cardinality)

  1. 인가받지 않은 사용자로부터 데이터베이스를 보장하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위를 이르는 말은?

정답 : 트랜잭션(Transaction)

  1. 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생시 DBMS에서 자동적으로 실행되도록 구현된 프로그램을 무엇이라고 하는가?

정답 : 트리거(Trigger)

  1. 제품 소프트웨어 개발단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용등을 기록한 문서이자, 사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서는 무엇인가?

정답 : 제품 소프트웨어 매뉴얼

  1. 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼로 개발된 컴포넌트 사용 시에 알아야 할 내용을 기술하며 패키지의 기능, 패키지의 인터페이스, 포함하고 있는 메서드나 오퍼레이션과 메서드의 파라미터 등의 설명이 포함되어 있는 문서는 무엇인가?

정답 : 제품 소프트웨어 사용자 매뉴얼

  1. 창작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한은 무엇인가?

정답 : 저작권(Copyright)

  1. 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 코드 커버리지 유형은 무엇인가?

정답 : 조건 커버리지

  1. 조건문은 조건에 따라 결과를 추출하는 형태의 명령어로, ( ① )과 ( ② )이 있다. 조건문의 종류를 쓰고, 둘 중 하나를 선택하여 간략히 서술하시오.

정답 : ① if ② switch

① if문 : 참/거짓 여부에 따라 실행 경로를 달리하는 조건문으로 조건 판별 결과가 true일 때 특정 문장(블록)을 추가로 실행하는 명령문으로 if문 단독으로 쓰는 단순 if문, 경로를 하나 추가한 if~else if문, 다수의 분기가 존재하는 중첩 if문으로 구분된다.

② switch문 : 특정 조건에 대해 여러가지 판별을 수행하여 각각 다른 문장을 수행하는 조건문으로 if문과 달리 범위에 대한 판별 등이 불가능하고 동등 비교만 가능한 특징이 있다. 조건에 해당하는 case로 이동하고, case가 종료 되었을 때 break문이 있으면 switch문을 빠져나오고, break문이 없으면 break를 만날 때까지 다른 case문을 실행하거나 default문에서 종료된다.

  1. 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경으로 저장하고 재구성할 수 있는 포맷으로 변환하는 과정을 무엇이라고 하는가?

정답 : 직렬화(Serialization)

  1. 총합, 평균 등의 데이터 분석을 위해서는 복수 행 기준의 데이터를 모아서 처리할 필요가 있는데, 이러한 유형의 함수를 ( ① )함수라고 한다. ( ① )함수에는 여러 행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 ( ② ) 함수와 소그룹 간의 소계(소그룹의 합계) 및 중계(중그룹) 등의 중간 합계 데이터를 산출하는 ( ③ ), 그리고 데이터베이스를 사용한 온라인 분석 처리(OLAP) 용도로 사용하기 위해서 표준 SQL에 추가된 기능으로서의 ( ④ )함수가 있다.

정답 : ① 데이터 분석 ② 집계(Aggregate) ③ 그룹(Group) ④ 윈도우(Window) 

  1. 물리 데이터 저장소 구성을 위해 DBMS를 생성한 후, 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 제약조건으로 외래키에 제한, 연쇄, 널값 설정 등을 통해 구현하는 제약조건을 무엇이라고 하는가?

정답 : 참조 무결성 제약 조건

  1. 애플리케이션 성능 측정 지표로서, 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수를 뜻하는 개념은 무엇인가?

정답 : 처리량(Throughput)

  1. 기업이 시간 경과에 따라 지불해야 하는 컴퓨팅 비용을 통합적 관점에서 파악하여 직접 비용뿐만 아니라 이와 관련된 숨겨진 비용(간접비용)까지 포함하여 파악하는 비용을 뜻하는 용어는 무엇인가?

정답 : 총 소유 비용(TCO; Total Cost of Ownership)

  1. SW 개발 보안 용어 중 ‘위협이 발생하기 위한 사전 조건에 따른 상황’을 이르는 말로 ‘평문 전송, 입력값 미검증, 비밀번호의 공유’등의 사례가 있다. 무엇에 대한 설명인가?

정답 : 취약점(Vulnerability)

  1. 특정한 기능을 수행하기 위해 독립적으로 개발되어 보급되는, 잘 정의된 인터페이스를 가지며 다른 부품과 조립되어 응용시스템을 구축하기 위해 사용되는 소프트웨어 프로그램을 이르는 말은?

정답 : 컴포넌트(Component)

  1. 객체 지향 프로그래밍의 특성 중 하나로 세부사항은 배제하고 중요한 부분을 중심으로 간략화 하는 기법은 무엇인가?

정답 : 추상성/추상화(abstraction)

  1. 인증을 받은 컴포넌트를 등록하는 곳으로 이곳은 컴포넌트의 최신 버전을 유지하며 컴포넌트의 버전별 상태도 유지하고 관리함으로써 사용자가 컴포넌트 이용을 용이하도록 한다. ‘이곳’은 무엇인가?

정답 : 컴포넌트 저장소(Repository; 레파지토리)

  1. 범위 분할 이후 해시 함수를 적용하여 재분할함으로써 큰 파티션에 대한 I/O(In/Out) 요청을 여러 파티션으로 분산할 수 있는 파티셔닝 기법은?

정답 : 컴포지트 파티셔닝(Composite Partitioning)

  1. 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술로, 소스코드 자체를 알아보기 힘들게 바꾸거나 컴파일 후에 생성된 바이너리를 분석하기 힘들게 변조하는 유형으로 크게 구분되는 저작권 크랙방지 기술을 무엇이라고 하는가?

정답 : 코드 난독화(Code Obfuscation)

  1. 소프트웨어 테스트 충분성 지표 중 하나로, 소스코드의 구문, 조건, 결정 등의 구조 코드 자체가 얼마나 테스트되었는지를 측정하는 방법은 무엇인가?

정답 : 코드 커버리지(Code Coverage)

  1. 배치 스케줄러 중 하나로 ‘스프링 프레임워크에 플러그인되어 수행하는 작업(job)과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈소스 기반 스케줄러를 무엇이라고 하는가?  정답 : 쿼츠 스케줄러(Quartz Scheduler)
  1. 인터넷을 통해 가상화된 컴퓨터 시스템 리소스(IT 리소스)를 제공하고 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하며, 구성 가능한 컴퓨팅 자원(네트워크, 데이터베이스, 서버, 스토리지, 애플리케이션, 서비스 등) 에 대해 어디서나 접근할 수 있는 기술은 무엇인가?

정답 : 클라우드 컴퓨팅(Cloude Computing)

  1. 클라우드 컴퓨팅의 유형은 크게 ( ① ) , ( ② ), 그리고 하이브리드 클라우드로 분류할 수 있다. 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드를 ( ① )라고 하고, 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드를 ( ② )라고 한다.

정답 : ① 사설 클라우드(Private Cloud) ② 공용 클라우드(Public Cloud)

  1. <보기>에 나열된 응집도를 응집도가 낮은 순서부터 높은 순서로 차례대로 서술하시오

<보기> Functional / Communication / Procedural /  Coincidental  / Temporal / Logical / Sequential

정답 Coincidental(Cohesion)(우연적) → Logical(논리적) → Temporal(시간적) → Procedural(절차적) → Communication(통신적) → Sequential(순차적) → Functional(기능적)

  1. 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상으로 ‘삽입, 삭제, 갱신’의 유형이 있는 이것은 무엇인가?

정답 : 이상 현상(Anomaly)

  1. 데이터베이스 정규화 수행 중 이상 현상이 발생했다. 다음 사례는 이상현상 중 무슨 유형인가?
학번이름교수번호지도교수
202001홍길동1김교수
202002김영희2이교수

‘이 교수’라는 교수가 퇴사할 경우, ‘김영희’ 학생의 정보가 같이 제거되는 현상

정답 : 삭제 이상

  1. 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조를 무엇이라고 하는가?  정답 : 인덱스(Index)
  1. 객체지향 프로그래밍(OOP)에서 해당 클래스의 구조로 컴퓨터 저장 공간에 할당된 실체를 무엇이라고 하는가? 정답 : 인스턴스(Instance)
  1. inter(상호)와 action(동작, 작동)의 합성어로 ‘상호+동작’을 위한 디자인으로, 입출력 장치를 매개로 디지털 시스템과 사람이 주고 받는 일련의 의사소통 과정을 무엇이라고 하는가? 정답 : 인터랙션(Interaction)
  1. 자료구조(Data Structure)에 대해 서술하시오.

정답 : 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간 구조로, 형태에 따라 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 분류할 수 있다.

– 단순구조: int, double, float, char…
– 선형구조: 배열, 스택, 큐, 링크드리스트(연결리스트)
– 비선형구조: 트리, 그래프
– 파일구조: XX파일, …

  1. 애플리케이션 성능 측정 지표 중, 애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량을 나타내는 개념은 무엇인가?

정답 : 자원 사용률(Resource Usage)

  1. 프로그램 언어중에서 그 실행 순서(절차)를 지정하게 되는 언어로서, 명령형 언어라고도 불리며 C, BASIC, FORTRAN, ALGOL 등이 있다. 이러한 언어들을 무엇이라고 하는가? 정답 : 절차적 프로그래밍 언어
  1. 관계형 데이터베이스 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스를 무엇이라고 하는가? 정답 : 정규화(Normalization) 
  1. 데이터베이스 정규화 단계 중, 제2 정규형(2NF)의 정규화 조건을 서술하시오.  정답 : 부분 함수 종속 제거(또는 완전 함수적 종속 관계)
  1. 프로그램 실행을 위해 연산을 표현하는 기호를 무엇이라고 하는가? 정답 : 연산자(operator)
  1. MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 응용프로그램으로서, 마이크로소프트사가 개발한 운영체제는 무엇인가?  정답 : 윈도우즈(Windows)
  1. 블랙박스 테스트 유형 중, 시스템이 실제 사용되는 유스케이스로 모델링 되어 있을 때, 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법은 무엇인가?  정답 : 유스케이스 테스트(Usecase Test)
  1. 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘은 무엇인가?  정답 : 일방향 암호화 알고리즘
  1. 소스 코드 품질분석 도구 유형 중, 작성된 소스 코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부, 잔존 결함 발견 여부 등을 확인하는 코드 분석 도구를 ( ① )(이)라고 하고, pmd, cppcheck, SonarQube, checkstyle  등이 있다. 정답 : 정적 분석 도구
  1. 요구사항 정의에 사용되는 초기 시나리오를 말하며, 높은 수준, 낙관적이면서도 발생 상황에서의 이상적인 시스템 동작에 초점을 맞추는 시나리오는 무엇인가?

정답 : 정황 시나리오(Contextual Scenario)

  1. 정형기술검토(FTR)는 ( ① ), ( ② ), ( ③ ), 라운드로빈(RoundRobin), 그리고 소프트웨어에 관한 다른 소단체의 기술적 평가를 포함하는 검토의 부류이다. 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화하는 기법을 ( ① )(이)라고 하고, 2~3명이 진행하는 리뷰의 형태로 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행하는 검토기법을 ( ② )(이)라고 하며, 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토기법을 ( ③ )이라고 한다.

정답 : ① 워크스루(Walk Through) ② 동료 검토(Peer Review) ③ 인스펙션(Inspection)

  1. 비동기 브라우저 / 서버 통신(AJAX)을 위해 “속성-값 쌍’, ‘키-값 쌍’으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷을 무엇이라고 하는가? 정답 : 제이슨(JSON; JavaScript Object Notion)
  1. 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트 등)을 포함하고 있는 운영체제는 무엇인가?  정답 : 안드로이드(Android)
  1. 테스트 목적에 따른 분류로 ‘불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법’을 이르는 용어는?

정답 : 안전 테스트(Security Test)

  1. 어떤 문제에 대한 답을 찾는 해법으로 자연어, 순서도, 의사 코드, 프로그래밍 언어를 이용하는 방법으로 표현하는 개념은 무엇인가?

정답 : 알고리즘(Algorithm)

  1. 다양한 패키지 애플리케이션 및 기업에서 자체적으로 개발한 애플리케이션을 연결하는 EAI의 핵심 장치를 무엇이라고 하는가?  정답 : 어댑터(Adaptor)
  1. 사물의 구조나 상태, 동작 등을 모델로 표현하는 경우, 그 모델의 구성요소이자,  데이터의 집합을 의미하고 물리적 설계 단계에서의 테이블을 뜻하는 용어는 무엇인가?

 정답 : 엔티티(entity)

  1. 응용 소프트웨어와 연계 대상 모듈 간의 데이터 연계 시 요구사항을 고려한 연계방법과 주기를 설계하기 위한 메커니즘을 ( ① )(이)라고 한다. ( ① )은/는 직접적인 방법과 간접적인 방법으로 구분할 수 있는데, 직접적인 방법 중 수신 시스템에서 DB링크를 생성하고 송신 시스템에서 해당 DB링크를 직접 참조하는 방식을 ( ② )(이)라고 하고, 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB커넥션 풀(DB Connection Pool)을 생성하고 연계 프로그램에서 해당 DB 커넥션 풀 명을 이용하는 기술을 ( ③ )(이)라고 한다.

정답 : ① 연계 메커니즘 ② DB 링크(DB Link) ③ DB 연결(DB Connection)  

  1. 사용자가 상황에 맞게 기존 자료형을 조합해서 만드는 자료형을 (  ① ) 자료형이라고 한다. ( ① ) 자료형은 열거체(Enumeration), 구조체(Structure), 공용체(Union)로 구분되는데, 모든 멤버 변수가 하나의 메모리 공간을 공유하는 ( ① )자료형을 ( ② )라고 하고, 서로 연관된 정수형 상수들의 집합을 ( ③ )라고 하며, 자바, 파이썬에서는 제공하지 않지만 C언어에서 사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 ( ① ) 자료형을 ( ④ )라고 한다.

정답 : ① 사용자 정의 ② 공용체 ③ 열거체 ④ 구조체 

  1. 테이블을 생성시 일부 단어들 중 시스템에서 사전 예약이 되어 있어서 사용할 수 없는 단어를 무엇이라고 하는가?

정답 : 예약어(reserved word) 또는 키워드(keyword)

  1. 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없는 소프트웨어 테스트의 원리는 무엇인가?  정답 : 오류-부재의 궤변
  1. 소스 코드를 공개해 소프트웨어 혹은 하드웨어 제작자의 권리를 지키면서 원시 소스 코드를 누구나 열람ㆍ 사용할 수 있도록 한 소프트웨어를 무엇이라고 하는가?

정답 : 오픈소스(Open Source)

  1. SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 데이터베이스관리자(DBMS)내부의 핵심엔진을 ( ① )(이)라고 하고, ( ① )이/가 생성한 SQL 처리경로를 ( ② )(이)라고 한다. 정답 : ① 옵티마이저(Optimizer) ② 실행계획(Execution Plan)
  1. 이해관계자들과의 화면 구성을 협의하거나 서비스의 간략한 흐름을 공유하기 위해 화면 단위의 레이아웃을 설계하는 작업을 무엇이라고 하는가?

정답 : 와이어 프레임(Wireframe)

  1. 하나 이상의 테이블을 연결하여 사용하는 관계형 데이터베이스에서 하나의 테이블 속성 또는 속성 집합이 다른 테이블의 기본키가 되는 것을 의미하며, 데이터베이스에 존재하는 테이블의 관계에서 참조 무결성을 보장하기 위해 사용되며, 중복되는 값을 가질 수 있으며 비어있는 값(Null 값) 또한 가질 수 있는 키는 무엇인가?

정답 : 외래키(FK; Foregn Key)

  1. 요구사항 개발 프로세스는 ‘도출(Elicitation) → 분석(Analysis) → 명세(Specification)→확인(Validation)’의 순으로 이루어진다. <보기>의 세부 활동들을 각각의 단계에 알맞게 서술하시오.

<보기>

. 요구사항 소스 추출. 시스템 정의서. 검토. 요구사항 분류. 요구사항 협상. 인수테스트. 소프트웨어 요구사항 명세서. 개념 모델링. 시스템 요구사항 명세서. 프로토타이핑. 요구사항 도출 기법 활용. 기술 구조 설계 및 요구사항 할당. 모델 검증

정답

– 도출 : ㄱ, ㅋ ( 요구사항 소스 추출, 요구사항 도출 기법 활용 )

– 분석 : ㄹ, ㅁ, ㅇ, ㅌ ( 요구사항 분류, 요구사항 협상, 개념 모델링, 기술 구조 설계 및 요구사항 할당 )

– 명세 : ㄴ, ㅅ, ㅈ ( 시스템 정의서, 소프트웨어 요구사항 명세서, 시스템 요구사항 명세서 )

– 확인 : ㄷ, ㅂ, ㅊ, ㅍ ( 검토, 인수테스트, 프로토타이핑, 모델검증 )

  1. 기능적 요구사항에 대해 서술하고, 세부 특성을 아는대로 쓰시오.

정답 : 시스템이 제공하는 기능, 서비스에 대한 요구사항으로 주요 특성으로는 ‘기능성, 완전성, 일관성’이 있다.

  1. 다양한 경로를 통해 수집된 직접적인 요구사항을 검토하여, 페르소나(persona)의 목적을 기준으로 데이터 요구, 기능 요구, 제품 품질, 제약 요인 기반으로 만든 요구사항 표를 무엇이라고 하는가? 정답 : 요구사항 매트릭스(Requirement Matrix)
  1. 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램을 뜻하는 용어는? 정답 : 운영체제(OS; Operating System)
  1. 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술로써 서비스 지향 아키텍처 개념을 실현하는 대표적인 기술을 (    )(이)라고 한다.

정답 : 웹 서비스 방식

  1. SW 개발 보안 용어 중 하나로 ‘위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성’을

( ① ) (이)라고 하며, ‘조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위’로 ‘해킹, 삭제, 자산의 불법적인 유출, 위/변조, 파손’ 등을 포함하는 개념을 ( ② ) (이)라고 한다. 정답 : ① 위험(Risk) ② 위협(Threat)  

  1. 시스템이 액터에게 제공해야 하는 기능으로 시스템 요구사항이자, 사용자 입장에서 바라본 시스템의 기능을 무엇이라고 하는가?

정답 : 유스케이스(Usecase)

  1. 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식으로 네트워크를 독점하기 때문에 전송이 보장되고, 서킷을 확보하기 위한 작업 후, 실데이터를 전송하고 전성 후 서킷을 닫는 프로세스로 운영되어 서킷 확보 작업이 일어나는 동안 다른 기기들은 해당 경로를 이용하기 힘든 네트워크 전달방식은 무엇인가?

정답 : 서킷 스위칭

  1. 다음 표는 프로시저 선언부에 대한 설명이다. 올바른 키워드(예약어)를 쓰시오.
( ) [OR REPLACE] PROCEDURE 프로시저_파라미터_[MORE( )] 데이터_타입( )변수 선언
)DBMS내에 객체(트리거, 함수, 프로시저)를 생성
[OR REPLACE]기존 프로시저 존재 시에 현재 컴파일 하는 내용으로 덮어씀
[MORE]변수의 입출력을 구분하고 [ IN / OUT / ( ) ]로 구분됨
)PL/SQL의 블록을 시작
CHAR고정길이 문자열 타입 / 지정 길이보다 짧은 데이터 입력 시, 나머지 공간 공백 처리
( )가변길이 문자열 타입 / 지정 길이보다 짧은 데이터 입력될 시 나머지 공간 채우지 않음
NUMBER숫자(정수, 실수) 저장하는 데에 데이터 타입

정답 : ① CREATE  ② INOUT ③ IS[AS] ④ VARCHAR

  1. <보기>는 프로그래밍 언어를 구분없이 나열한 것이다. 선언형 언어를 선택하시오.

C+ / PHP / Haskell / SQL / ALGOL / JAVA / Python / LISP / C / Javascript / Prolog / Delphi / C#

정답 : Haskell / SQL / LISP / Prolog

해설

객체지향 언어: C+ / JAVA / C#

절차적 언어: ALGOL / C

스크립트 언어: PHP / Python / Javascript

  1. 테스트 목적에 따른 분류 중 하나로 ‘사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법은 무엇인가?

정답 : 성능 테스트(Performance Test)

  1. 클라이언트와 서버의 논리적인 연결을 뜻하는 말로 통신에서는 사용자와 컴퓨터, 또는 두 대의 컴퓨터간의 활성화된 접속을 의미하며, 프로그램 사용과 관련해서는 한 응용프로그램의 기동을 시작해서 종료할 때까지의 시간을 가리키는 용어를 ( ① )(이)라고 한다.

정답 : 세션(Session)

  1. TCP 신뢰성 기반의 연결을 이용한 공격 방법으로, 통신 내용을 엿보거나 세션을 가로채어 정상적인 인증 과정을 무시하고, 불법으로 시스템에 접근할 수 있는 공격은 무엇인가?

정답 : 세션 하이재킹(Session Hijacking)

  1. 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조를 뜻하는 용어는?

정답 : 소프트웨어 아키텍처(Software Architecture)

  1. 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준은 무엇인가?

정답 : 소프트웨어 아키텍처 프레임워크(Software Architecture Framwork)

  1. 일방향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열을 무엇이라고 하는가?

정답 : 솔트(salt)

  1. 윈도우 함수 중, 레코드의 순위를 계산하는 함수를 ‘순위 함수’라고 한다. 순위 함수에는 RANK, DENSE_RANK, ROW_NUMBER의 3유형이 있는데, 동일 순위의 레코드 존재 시에도 후 순위를 넘어가지 않아 ‘2위가 3개인 레코드가 3개 있는 경우, <1위, 2위, 2위, 2위, 3위, 4위, … >와 같이 계산하는 함수는 무엇인가?

정답 : DENSE_RANK

  1. 컴퓨터 내부를 관리하는 커널(Kernel)과 사용자 간을 연결하는 명령어(command)창은 무엇인가?  정답 : 쉘(Shell)
  1. 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법은 무엇인가?  정답 : 스니핑(Sniffing)
  1. 프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름이며, 실행 제어만 분리하여 여러 개로 사용될 수 있는 실행 단위는 무엇인가? 정답 : 스레드(Thread)
  1. 2계층 장비로서, 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소 기반으로 빠르게 전달하는 네트워크 장비는 무엇인가? 정답 : 스위치(Switch)
  1. 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 기능 및 인터페이스 감시 기능을 제공하는 인터페이스 도구는 무엇인가?

정답 : 스카우터(SCOUTER)

  1. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하고 유니코드 문자열을 지원하여 다양한 언어의 문자 처리가 가능하고, 들여쓰기를 사용하여 블록을 구분하는 문법을 채용한 스크립트 언어는 무엇인가?

정답 : 파이썬(Python)

  1. 정책, 프로세스, 콘텐츠 구성, 와이어 프레임(UI, UX), 기능 정의, 데이터베이스 연동 등 서비스 구축을 위한 모든 정보가 담겨 있는 설계 산출물을 (         )(이)라고 한다. 정답 : 스토리보드(Storyboard)
  1. UI 개발을 위한 주요 비법 중 하나로 ‘ 불확실성이 높은 상황 변화를 사전에 예측하고 다양한 시나리오를 설계하는 방법으로 불확실성을 제거해나가려는 경영 전략의 한 방법’을 무엇이라고 하는가? 정답 : 시나리오 플래닝(Scenario Planning)
  1. 개발하는 소프트웨어가 복잡해짐으로 인해 보안상 취약점이 발생할 수 있는 부분을 보완하여 프로그래밍하는 것으로 안전한 소프트웨어를 개발하기 위해 지켜야 할 코딩 규칙과 소스 코드 취약 목록이 포함된 코딩을 무엇이라고 하는가? 정답 : 시큐어 코딩(Secure Coding)
  1. 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하여 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 디자인 패턴은 무엇인가?

정답 : 싱글톤 패턴(Singleton Pattern)

  1. 고객의 요구사항을 정리해 놓은 시나리오를 4개의 분리된 구조로 구성된 아키텍처 개념으로 제시하여, 이들 4개 구조가 충돌되지 않는지, 시스템의 요구사항을 충족시키는지를 증명하기 위하여 유스케이스를 체크 방법으로 사용하는 소프트웨어적인 접근 방법은 무엇인가? 정답 : 소프트웨어 아키텍처 4+1뷰
  1. 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어로 운영체제와 소프트웨어 애플리케이션 사이에 위치하는 프로그램은 무엇인가? 정답 : 미들웨어(Middleware)
  1. 누출이나 훼손되었을 떄 정보의 소유자에게 부정적 영향이 발생하고, 시스템의 계속적 운영이 불가능해지며 상당한 양의 자원을 다시 생성해야하는 상황을 유발하는 정보로서, 미국 정부의 정의(NTISSP2)에 따르면 어떤 정보의 누출, 변형, 파괴에 의해서 국가 안보나 지방 정부에 위해가 되는 상황이 발생하는 경우를 뜻한다. 이러한 정보는 무엇인가?  정답 : 민감 정보(sensitive information)
  1. 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법은?

정답 : 반 정규화(De-Normalization)

  1. 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, 내/외부 네트워크 상호간 영향을 차단하기 위한 보안 시스템을 무엇이라고 하는가?

정답 : 방화벽(Firewall)

  1. 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법을 이르는 말은 무엇인가?

정답 : 배치 프로그램(batch program)

  1. 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점의 기준을 무엇이라고 하는가? 정답 : 베이스라인(Baseline)
  1. 프로그래밍에서 계속 변하는 값이면서, 그 값을 저장하는 공간을 뜻하는 용어로 수많은 데이터를 컴퓨터에서 사용하기 위하여 선언 및 초기화를 통해 사용하는 값을 ( ① )(이)라고 한다. 그리고 메서드 수행에 필요한 값을 입력/저장하기 위한 입력 ( ① )를/을 ( ② )(이)라고 한다. 정답 : ① 변수(variable) ② 파라미터(parameter)
  1. 테스트 목적에 따른 분류 중 하나로 ‘변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법을 이르는 용어는 무엇인가?

정답 : 병행 테스트(parallel Test)

  1. 배치 프로그램은 이벤트 배치, 온디맨드 배치, 정기 배치로 분류할 수 있는데, 정해진 시점에 정기적으로 실행되는 배치 유형을 ( ① )라고 하고, 사전에 정의해 둔 조건 충족시 자동으로 실행되는 배치 유형은 ( ② )라고 한다. 그리고 앞의 두 유형과는 달리 사용자의 명시적 요구가 있을 때마다 실행되는 배치 프로그램은 ( ③ )라고 한다.

정답 : ① 정기 배치 ② 이벤트 배치 ③ 온디맨드 배치

  1. 다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망을 무엇이라고 하는가?

정답 : 백본망(backbone network)

  1. 조건/결정 커버리지를 향상시켜 ‘각 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식에 독립적으로 영향을 주도록 한’ 코드 커버리지는 무엇인가?

정답 : 변경 조건/결정 커버리지

  1. 해킹 등 외부 공격으로 시스템의 보안정책을 침해하는 보안사고의 실제 원인이 되는 시스템상의 보안허점으로 운영 단계에서의 보안 리스크를 ( ① )(이)라고 한다. 그리고 ( ① )의 근본적인 원인이 되는 소프트웨어의 결함, 실수 버그 등의 오류이며 개발 단계의 보안 리스크를 ( ② )(이)라고 한다.

정답 : ① 보안 취약점(Vulnerability) ② 보안 약점(Weakness)

  1. 컴퓨터 네트워크의 보안 취약점을 찾아내어 그 문제를 해결하고 이를 악의적으로 이용하는 것을 방지하는 행위에서 유래한 말로, 1950년대 말 미국 매사추세츠공과대학(MIT) 동아리 모임에서 ‘작업과정 그 자체에서 느껴지는 순수한 즐거움’이라는 뜻으로 사용되었으나, 오늘날에는 의미가 변질되어 컴퓨터 네트워크의 취약한 보안망에 불법적으로 접근하거나 정보 시스템에 유해한 영향을 끼치는 행위를 뜻하는 용어는 무엇인가?정답 : 해킹(hacking)
  1. 집단적 창의적 발상 기법으로 집단에 소속된 인원들이 자발적으로 자연스럽게 제시된 아이디어 목록을 통해서 특정한 문제에 대한 해법을 찾고자 하는 회의 기법은 무엇인가? 정답 : 브레인스토밍(BrainStorming)
  1. 보기 중 비대칭 키 암호화 알고리즘인 것을 모두 고르시오

<보기> SEED /  SHA-256 / RSA / ARIA-128 / HAS-160  정답 : RSA

  1. 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제를 수행한 후, 질문에 답하도록 하는 테스트이며, 현 제품에 대한 사용자의 요구사항과 행동을 관찰할 수 있는 유일한 진단방법은 무엇인가? 정답 : 사용성 테스트(Usability Test)
  1. 소프트웨어 테스트의 원리 중, 살충제 패러독스(pesticide paradox)에 대해 서술하시오. 정답 : ‘동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못한다’라는 이론으로 테스트 케이스의 정기적 리뷰와 개선 및 다른 시각에서의 접근을 강조한 원리이다.
  1. 다음 인터페이스 정의서 주요 항목에 적절한 용어를 서술하시오.
주요 항목설명
인터페이스 ID인터페이스를 구분하기 위한 식별자
일반적으로 인터페이스 식별성을 강화하기 위해 업무 분류코드와 연속번호를 같이 활용
( )해당 인터페이스를 나타내는 고유 명칭
오퍼레이션 명해당 인터페이스의 세부 동작 명칭
오퍼레이션 개요해당 인터페이스의 세부 동작 프로세스에 대한 세부 설명
( )해당 인터페이스의 세부 동작이 정상적으로 작동하기 위해 사전에 완료되어야 하는 조건 기술
( )해당 인터페이스의 세보 동작이 정상적으로 작동된 이후에 발생되는 조건 기술
파라미터인터페이스 구성 항목 값
( )인터페이스 전송 후 반환되는 값

정답 : ① 인터페이스 명 ② 사전 조건 ③ 사후 조건 ④ 반환 값

  1. 객체지향프로그래밍(OOP)의 특성 중 하나로, 슈퍼 클래스의 멤버(변수 또는 메서드)를 서브 클래스에서 물려받아 선언없이 사용하는 성질을 ( ① )(이)라고 하며 자바에서 서브 클래스가 슈퍼 클래스를 ( 1 )하기 위해 사용하는 키워드(예약어)는 ( ② ) 이다. 정답 : ① 상속(Inheritance) ② extends
  1. 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트를 수행하는 통합 방법은 무엇인가?

정답 : 상향식 통합

  1. 개념 모델링 이후 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델로 데이터베이스 설계 프로세스의 기초 설계 단계로 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법은 무엇인가? 정답 : 논리 데이터 모델링
  1. 각 모듈 간의 통합 시, 특정 서비스를 변경하더라도 연결된 다른 서비스에는 영향을 주지 않는 유연한 구조를 이르는 용어는 무엇인가?

정답 : 느슨한 결합(Loosely Coupled)

  1. 데이터 저장소 연결 절차를 순서대로 나열하시오. < 데이터베이스 연결 / 결과 수신 / 쿼리 전달 / 드라이버 로딩>

정답 : 드라이버 로딩 ⇒ 데이터베이스 연결 ⇒ 쿼리 전달 ⇒ 결과 수신

  1. 데이터베이스 관리자(DBA)가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어를 ( ① )  (이)라고 한다. ( ① )이 유형으로 사용 권한을 부여하는 ( ② )(와)과 사용 권한을 취소 하는 ( ③ )(이)가 있다. 정답 : ① 데이터 제어어(DCL; Data Control Language) ② GRANT ③ REVOKE
  1. 프로그램의 구성요소인 클래스의 기능(동작)으로 작업의 최소단위이며 반드시 호출되어야만 기능을 사용할 수 있는 요소는 무엇인가? 정답 : 메서드(method)
  1. 블랙 박스 테스트 유형 중, 입력 데이터의 영역을 유사한 도메인별로 유효 값/무효 값을 그룹핑하여 대표값 테스트 케이스를 도출하여 테스트하는 기법은 무엇인가?

정답 : 동등 분할 테스트(Equivalence Partitioning Test)

  1. LAN과 LAN을 연결하거나 LAN과 WAN을 연결하기 위한 장비로, 3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비를 무엇이라고 하는가? 정답 : 라우터(Router)
  1. 효율적인 프로그램 개발을 위해 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되며, 프로그래밍 언어에 따라 일반적으로 도움말, 설치 파일, 샘플 코드 등을 제공하기도 하는 프로그램의 집합체는 무엇인가? 정답 : 라이브러리
  1. 프로그램에서 프로그램이 끝없이 동작하는 것으로, 반복문에 종료 조건이 없거나, 종료 조건과 만날 수 없을 때 생기는 현상을 ( ① )(이)라고 한다. 이러한 ( ① )(을)를 방지하기 위해 사용하는 명령어를 ( ② )(이)라고 하는데, 자신이 속해 있는 반복문을 중지하도록 하는 명령어는 ( ③ )(을)를 사용하고, 해당 반복 사이클 내에 남아 있는 나머지 명령어들을 건너 뛰고 다음 단계의 반복을 수행하는 명령어는 ( ④ )(을)를 사용한다. 정답 : ① 무한 루프 ② 루프 제어 명령어 ③ break ④ continue
  1. 유닉스를 기반으로 개발되어 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템을 갖는 오픈 소스 기반의 운영체제로 데비안, 레드헷, Fedora, Ubuntu, Cent OS 등의 다양한 유형이 있는 운영체제는 무엇인가?

정답 : 리눅스(LINUX)

  1. 특정 파티션에 저장될 데이터에 대한 명시적인 제어가 가능하며, 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용한 파티셔닝 기법은? 정답 : 리스트 파티셔닝(List Partitioning)
  1. 서버는 클라이언트에서 요청한 소프트웨어의 실행코드를 스트림 형태로 제공하고, 클라이언트는 서버로부터 스트리밍되는 소프트웨어 코드를 클라이언트 PC의 자원을 이용하여 실행하는 방법으로 소프트웨어의 실행을 클라이언트에서 책임지는 기술을 이르는 용어는? 정답 : 리치 클라이언트(Rich Client)
  1. OSI 물리 계층의 장비로, 디지털 신호를 증폭시켜 주는 역할을 하여 신호가 약해지지 않고 컴퓨터로 수신되도록 하는 재생중계장치는 무엇인가?

정답 : 리피터(Repeater)

  1. 데이터 타입의 개념과 유형(3가지 이상) 서술하시오.

정답 – 개념: 프로그래밍 언어에서 실수치, 정수 자료형과 같은 여러 종류의 데이터를 식별하는 형태로, 메모리 공간을 효율적으로 사용하고 2진수 데이터를 다양한 형태로 사용하기 위해 사용한다.  – 유형: 불린형(boolean), 문자형(char), 정수형(byte, short, int, long), 부동 소수점(float, double), 문자열형(string), 배열형(array), 등등 …

  1. 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 특정 구조를, 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어들을 ( ① )라고 하고, 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 등 사용자가 데이터베이스를 조작할 수 있게 도움을 주는 언어를 데이터 조작어라고 한다. 데이터 조작어에는 ( ② )가 있다.  정답 : ① 데이터 정의어(DDL) ② 조회(SELECT), 입력(INSERT), 수정(UPDATE), 삭제(DELETE)
  1. EAI 구축 유형 중, 애플리케이션 사이에 미들웨어를 두어 연계하는 미들웨어 통합 방식을 사용하여 뛰어난 확장성과 대용량 데이터를 처리 가능한 유형은 무엇인가?

정답 : 메시지 버스(Message Bus)

  1. 모듈을 이용하여 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법으로 모듈 간 결합도는 최소화하고, 응집도를 최대화를 목적으로 하는 기법은 무엇인가? 정답 : 모듈화(Modulation)
  1. SW 개발 보안의 3요소로 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성은 무엇인가? 정답 : 무결성(Integrity)
  1. 비밀번호나 데이터 암호 표준(DES)키를 풀기 위해 소모적인 방법으로 프로그램에 의해 사용되는 시행착오식의 침입방법으로, 프로그램을 사용하여 모든 가능한 문자의 조합을 시행하고 틀리면 다른 문자를 적용해 보는 반복에 의해 시도되는 침입방법이며, 네트워크 보안을 점검하기 위한 용도로도 사용되는 공격기법은 무엇인가?

정답 : 무차별 공격(brute force attack(cracing), 무차별대입공격)

  1. 물리 데이터모델링 변환 절차를 순서대로 나열하시오

개체를 테이블로 변환 → (  속성을 컬럼으로 변환→  UID를 기본키로 변환 →  관계를 외래키로 변환 → 컬럼 유형과 길이 정의 ) →  반 정규화 수행

  1. 테스트 완료 후 발견된 결함의 관리 측정 지표의 속성값들을 분석하고, 향후 애플리케이션의 어떤 모듈 또는 컴포넌트에서 결함이 발생할지를 추정하는 작업을 ( ① )(이)라고 한다.  ( ① )의 유형 중, 각 애플리케이션 모듈 또는 특정 속성에 해당하는 결함의 수를 측정하여 결함의 분포를 분석하는 유형을 ( ② )(이)라고 하고, 테스트 진행 시간의 흐름에 따른 결함의 수를 측정하여 결함 추세를 분석하는 방법을 ( ③ )(이)라고 하며, 등록된 결함에 대해 특정한 결함 상태의 지속 시간을 측정하여 분석하는 유형을 ( ④ )(이)라고 한다. <보기>를 참고하여 알맞은 답을 쓰시오.  [보기] [ 결함 추세 분석 // 결함 추이 분석 // 결함 분포 분석 // 결함 에이징 분석 ]

정답 : ① 결함 추이 분석 ② 결함 분포 분석 ③ 결함 추세 분석 ④ 결함 에이징 분석

  1. 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성으로 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도를 이르는 말은?

정답 : 결합도(Coupling)

  1. 다음 결합도 유형을 높은 것부터 낮은 순으로 서술하시오.

<Data Coupling / Common Coupling / Control Coupling / Stamp Coupling / External Coupling / Content Coupling>

정답 : Content >Common >External >Control >Stamp >Data

내용 >공통 >외부 >제어 >스탬프 >자료

  1. 등가분할 후 경계 값 부분에서 오류 발생 확률이 높기에 경계값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법은 무엇인가?

정답 : 경계 값 분석 테스트(Boundary Value Analysis Test)

  1. 애플리케이션 성능 지표 중, ‘애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간’은 무엇인가?

정답 : 경과 시간(Turnaround Time)

  1. 메모리가 공유되는 하나의 객체에 두 개 이상의 스레드가 동시에 값을 변경하려고 할 때 발생하는 성능 저하의 문제점을 ( ① )(이)라고 한다. ( ① )은 시큐어 코딩 가이드 중, ( ② ) 보안 약점 유형으로 동기화 구문(synchronized, mutex)를 사용하거나, 한 번에 하나의 프로세스만 접근 가능하도록 하는 대응 방안이 고려된다.

정답 : ① 경쟁 조건(Race Condition) ② 시간 및 상태

  1. 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트 기법으로 ‘탐색, 오류추정, 체크리스트, 특성 테스트’ 등의 유형을 갖는 테스트의 종류는 무엇인가? 정답 : 경험 기반 테스트
  1. 서버와 네트워크, 프로그램 등의 정보시스템이 시스템의 장애에 대응하여 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질은 무엇인가?

정답 : 고가용성(HA; High Availability)

  1. 공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호기술을 무엇이라고 하는가?

정답 : 공개키 기반 구조(PKI, Public Key Infrastructure)

  1. 모든 멤버 변수가 하나의 메모리 공간을 공유하며 C, C++에서 union으로 선언하여 사용하는 사용자 정의 자료형은 무엇인가? 정답 : 공용체(Union)
  1. 자체적으로 컴파일이 가능하고, 다른 프로그램에서 재사용이 가능한 특징을 가지며, 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드를 일컫는 말은?

정답 : 공통 모듈(Common Module)

  1. 공통 모듈(또는 서버 프로그램)의 구현 절차를 순서대로 나열하시오

< Service / SQL / DTO/VO / View / Controller / DAO >

정답 : DTO/VO >SQL >DAO >Service >Controller >View(필요시 구현)

  1. 공통 모듈 테스트 중 ‘응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식’은 무엇인가? 정답 : 화이트 박스 테스트(White Box Test)
  1. 공통 모듈 테스트 중 ‘기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 ( ① )과 ( ② )를 구현하여 테스트를 수행한다. ( ① ) 은 하위 모듈은 있지만 상위 모듈은 없는 경우 사용하는 기법이며, ( ② )는 상위 모듈은 있지만 하위 모듈이 없는 경우 사용하는 기법이다.

정답 : ① 테스트 드라이버(Test Driver) ② 테스트 스텁(Test Stub)

  1. ‘프로그램 내의 모든 명령문을 적어도 한 번 수행하는 커버리지리로 조건문 결과 관계 없이 구문 실행 개수로 계산’하는 코드 커버리지는 무엇인가?

정답 : 구문 커버리지

  1. 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저를 ( ① )(이)라고 하고 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택하는 옵티마이저를 ( ② )(이)라고 한다.

정답 : ① 규칙 기반 옵티마이저(RBO; Rule-Based Optimizer) ② 비용 기반 옵티마이저(CBO; Cost-Based Optimizer)

  1. 데이터베이스를 사용한 온라인 분석 처리(OLAP)용도로 사용하기 위해서 표준 SQL에 추가된 함수를 ( ① )이라고 한다. ( ①)은 크게 레코드의 순위를 계산하는 ‘순위 함수’와 레코드에서 가장 먼저 나오거나 가장 뒤에 나오는 값, 이전/이후의 값들을 출력하는 ‘행 순서 함수’ 그리고 백분율을 보여주거나 행의 순서별 백분율 등 비율과 관련된 통계를 보여주는 ( ② ) 함수가 존재한다.

정답 : ① 윈도우 함수 ② 그룹 내 비율 함수

  1. SW보안의 3요소로 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성은 무엇인가?  정답 : 기밀성(Confidentiality)
  1. 다른 개발자가 로직(Logic)을 이해하기 어렵게 작성된 코드로서, 처리 로직의 제어가 정제되지 않고 서로 얽혀 있는 스파게티 코드, 변수나 메서드에 대한 이름 정의를 알 수 없는 코드, 동일한 처리 로직이 중복되게 작성된 코드를 무엇이라고 하는가?

정답 : 나쁜 코드(bad code)

  1. 테이블 전체 행을 하나 이상의 컬럼을 기준으로 하여 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수를 ( ①)(이)라고 한다. ( ① )함수에는 ‘ROLLUP’, ‘CUBE’, ‘GROUPING SETS’의 유형이 있는데, 소계(소그룹의 합계) 등 중간 집계 값을 산출하기 위한 그룹 함수는 ( ② )이고, 결합 가능한 모든 값에 대해 다차원 집계를 생성하는 함수로 연산이 많아 시스템에 부담을 주는 그룹 함수는 ( ③ ) 이다. 컬럼 순서가 바뀌면 집계 결과가 달라지는 ( ②), ( ③ ) 함수와는 달리 컬럼 간 순서와 무관한 결과를 얻을 수 있는 그룹 함수는 ( ④ )이다.

정답 : ① 그룹 함수 ② ROLLUP ③ CUBE ④ GROUPING SETS

  1. 보기는 트리거 구성 요소를 나열한 것이다. 구성 순서대로 서술하시오.

[보기] DECLARE / SQL / EXCEPTION / EVENT / BEGIN ~ END / CONTROL

정답 : DECLARE -> EVENT -> BEGIN~END -> CONTROL -> SQL -> EXCEPTION

해설

– DECLARE(선언부): 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의함

– EVENT(이벤트부): 트리거가 실행되는 조건을 명시함

– BEGIN~END: 트리거의 시작과 종료를 의미함

– CONTROL(제어부): 조건문 또는 반복문이 삽입되어 순차적으로 처리됨

– SQL: DML(데이터 조작어) 문이 삽입되어 데이터 관리를 위한 조회, 추가, 수정, 삭제 작업을 수행함

– EXCEPTION(예외부): BEGIN~END 안의 구문 실행 중 예외가 발생 시, 처리 방법을 정의함

  1. 다음은 무엇에 대한 설명인가?

– 웹 애플리케이션에서 입력 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람, 조작할 수 있는 취약점 공격기법 – 해당 공격으로 인한 시큐어 코딩 구현 시에는 매개변수를 받는 PreparedStatement 객체를 상수 문제열로 생성하고 파라미터 부분을 setString 등의 메서드로 설정한다. 정답 : SQL 삽입(SQL Injection)

  1. 다음 괄호에 알맞은 용어를 쓰시오.

– 해킹 등 외부 공격으로 시스템의 보안정책을 침해하는 보안사고의 실제 원인이 되는 시스템상의 보안허점으로 운영 단계에서의 보안 리스크를 (   ①   )라고 한다. 그리고 (    ①    )의 근본적인 원인이 되는 소프트웨어의 결함, 실수 버그 등의 오류이며 개발 단계의 보안 리스크를 (    ②    )라고 한다.

정답 : ① 보안 취약점(Vulnerability) ② 보안 약점(Weakness)

  1. 프로그래밍에서 저장하고자 하는 어떤 값이 있을 때, 그 값을 주기억 장치에 저장하기 위한 공간을 ‘변수(variable)’라고 한다. 변수를 설정할 때 적용되는 규칙을 서술하시오. (단, 프로그래밍 언어는 C, JAVA, Python 언어로 가정함)

정답

<필수규칙>
1. 첫 자리에 숫자를 사용할 수 없음
2. 변수 이름의 중간에는 공백을 사용할 수 없음
3. 이미 사용하고 있는 예약어(키워드)는 변수로 사용할 수 없음
4. 특수문자는 밑줄( _ ) 사용이 가능함
5. 영어는 대문자와 소문자를 구별하여 사용함
————————————————
<권장 규칙>
1. 가급적 의미가 있는 단어를 조합하여 사용할 것
2. 클래스명 첫 글자는 대문자, 메서드나 변수의 첫 글자는 소문자로 시작권장
3. 두 개 이상의 단어를 조합할 경우, 두 번째 단어부터 첫 글자는 대문자로 표기
캐멀 표기법(camel-case)   ex) setString

  1. 개체-관계 모형(E-R Diagram)에 대해 서술하고, 개체, 관계, 속성 표시 기호를 쓰시오.

정답 : 개체: □    관계:  ◇   속성: ○ 해설 – 개체 관계 모형(Entity-Relation Diagram)

: 업무 분석 결과로 도출된 실체(엔티티)와 엔티티 간의 연결을 통해 관리자, 개발자, 사용자 모두 데이터의 흐름과 연관성을 쉽게 확인할 수 있도록 도식화한 다이어그램

  1. 디지털 멀티미디어 콘텐츠의 생성, 거래, 전달, 관리, 소비하는 과정에 있어서광범위한 네트워크 및 터미널을 통하는 여러 계층의 멀티미디어 자원을 투명하고, 상호 호환할 수 있도록 사용하기 위한 멀티미디어 프레임워크 표준 규격을 뜻하는개념은 무엇인가?

정답 : MPEG21(Moving Picture Experts Group 21, 엠페그21) 해설 <MPEG 관련 정리>

① MPEG1 : 1991년 ISO(국제표준화기구)11172로 규격화한 영상압축기술로, CD-ROM과 같은 디지털 저장매체에 VHS 테이프 수준의 동영상과 음향을 최대 1.5Mbps로 압축·저장할 수 있다. 이 규격으로 상품화된 것이 비디오 CD와 CD-I/FMV이다.

② MPEG2 : 1994년 ISO 13818로 규격화한 영상압축기술이다. 디지털 TV, 대화형 TV, DVD 등은 높은 화질과 음질을 필요로 하는 분야로 높은 전송속도 처리가 필요한데, 영상 및 음향을 압축하기 위해 MPEG1을 개선한 것이다. 현재 DVD 등의 컴퓨터 멀티미디어 서비스, 직접위성방송·유선방송·고화질 TV 등의 방송서비스, 영화나 광고편집 등에서 널리 쓰인다.

③ MPEG3 : MPEG2를 완성한 후 후속작업으로 고화질 TV 품질에 해당하는 고선명도의 화질을 얻기 위해 개발한 기술이다. 그러나 이후에 MPEG2에 흡수·통합되어 규격으로는 존재하지 않는다.

④ MPEG4 : 멀티미디어 통신을 전제로 만들고 있는 영상압축기술로 1998년 완성되었다. 낮은 전송률로 동화상을 보내고자 개발된 데이터 압축과 복원기술에 대한 새로운 표준을 말한다. 매초 64Kbps, 192Kbps의 저속 전송으로 동화상을 구현할 수 있다. 인터넷 유선망과 이동통신망 등 무선망에서 멀티미디어 통신·화상회의 시스템·컴퓨터·방송·영화·교육·오락·원격감시 등의 분야에 널리 쓰인다.

⑤MPEG7 : 동영상 데이터 검색과 전자상거래 등에 적합하도록 개발된 차세대 동영상 압축 재생기술이다. 원하는 그림이나 영화의 한 장면 또는 특정 음악의 일부 등을 검색할 용도로 1996년부터 표준화작업이 시작되었다. 색상이나 물체의 모양에 관한 정보를 입력하는 것만으로 웹에서 필요로 하는 멀티미디어 자료를 찾을 수 있는 기술이다.

⑥MPEG21 : MPEG1과 MPEG2, MPEG4 등 MPEG 관련 기술을 통합하여 디지털 콘텐츠의 제작 및 유통, 보안 등의 모든 과정을 관리할 수 있게 하는 기술이다. 콘텐츠 제작자와 유통업자, 최종 사용자가 편리하게 국제적 호환성을 가지고 콘텐츠를 식별하고 관리하며 보호할 수 있도록 하는 멀티미디어 프레임워크 핵심기술의 표준화를 목표로 한다.

  1. 주제 영역과 핵심 데이터 집합 간의 관계를 정의하는 모델로 전체 모델에서 중요한 골격이 되는 엔티티와 관계(Relationship) 위주의 모델을 뜻하는 용어는?

정답 : 개념 모델

  1. 컴퓨터상에 가상으로 컴퓨터를 구동시키는 것으로 물리적인 하드웨어를 가상화하여, 하나의 물리적 하드웨어 상에서 여러 컴퓨터가 구동되는 것처럼 에뮬레이션 하는 것을 칭하는 용어는? 정답 : 가상 머신(Virtual Machine)
  1. 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술로 대부분의 서버는 용량의 20% 정도만을 사용하는데, (      )을/를 통해 서버의 가동률을 60~70% 이상으로 올릴 수 있다.

정답 : 가상화(Virtualization)

  1. 가상화 기술요소로서 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술을 ( ① )(이)라고 하며, 여러 대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술을 ( ② )(이)라고 한다. 그리고 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크(virtual network)를 지원하는 기술을 ( ③ )(이)라고 한다.

정답 : ① 컴퓨터 가상화 ② 분산처리기술(distributed computing) ③ 네트워크 가상화

  1. SW 개발 보안의 3요소로 권한을 가진 사용자가 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성은 무엇인가? 정답 : 가용성(Availability)
  1. 테스트 목적에 따른 분류 중 하나로 ‘시스템에 과다 정보량을 부과하여과부화 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법’은 무엇인가?

정답 : 강도 테스트(Stress Test)

  1. 프로그램 개발을 위한 개발 도구에는 구현 도구, 테스트 도구, 형상관리 도구, 빌드 도구가 있다. 형상 관리 도구에는 어떤 것이 있는가? 정답 : CVS / SVN / Git
  1. 프로그램 개발을 위해서는 구현될 시스템 요구사항에 대한 명확한 이해가 필요하며, 개발 도구와 서버의 선정 및 개발에 사용되는 도구들의 사용 편의성과 성능 그리고 라이선스 등을 고려해야 한다. 개발도구 중 각각의 구성요소와 모듈에 대한 의존성 관리를 지원하며, 작성한 코드의 작성 및 배포를 수행하는 도구를 ( ①  )이라고 한다. 그리고 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구를 (  ② )라고 하며, 코드의 기능 검증과 전체 품질을 높이기 위하여 테스트 계획, 수행 및 분석 작업을 지원하는 도구를 (  ③ )이라고 한다. 또한 개발자들이 작성한 코드나 리소스 등의 산출물들은 소프트웨어 생명주기에 따라 수정, 개선 등의 버전 관리가 이루어지는데 이를 지원하는 도구를 ( ④  )라고 한다.  정답 : ① 빌드 도구 ② 구현 도구 ③ 테스트 도구 ④ 형상 관리 도구
  1. 개인 정보 관련 법령을 세 가지 쓰시오.

정답 : 개인정보보호법 / 정보통신망법 (정보통신 이용촉진 및 정보보호 등에 관한 법률) / 신용정보법(신용정보의 이용 및 보호에 관한 법률) / 위치정보법(위치정보의 보호 및 이용 등에 관한 법률) / 개인정보의 안전성 확보조치 기준

  1. 데이터베이스 개념 모델링 단계에서 도출한 개체의 타입과 관련 속성, 식별자 등의 정보를 개괄적으로 명세화한 정의서는 무엇인가? 정답 : 개체 정의서
  1. 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델로 요구사항으로부터 얻어낸 정보들을 개체-속성-관계로 기술한 모델은 무엇인가? 정답 : 개체 관계(E-R)모델
  1. 프로그램을 짤 때 동일한 목적이나 기능을 하는 변수와 함수들을 각각 하나로 묶어서 객체로 만들고 그 객체들끼리 상호 통신하면서 프로그램 전체가 돌아가도록 코드를 구성하는 프로그래밍 방식은 무엇인가?  정답 : 객체지향 프로그래밍(OPP; Object Oriented Programming)
  1. 소프트웨어 과정을 테스트하는 것으로, 올바른 제품을 생산하고 있는지 여부를 검증하며, 이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단하며 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정을 이르는 말은? 정답 : 검증(Verfication)
  1. 프로그램 내의 전체 결정문이 적어도 한 번은 참과 거짓의 결과를 수행하는 코드 커버리지 유형은 무엇인가? 정답 : 결정 커버리지
  1. 결함 우선순위는 발생한 결함이 얼마나 빠르게 처리되어야 하는지를 결정하는 척도를 말한다. 결함 우선순위를 ‘즉시 수정되어야 하는 순서부터 우선순위가 낮은 순서’로 서술하시오. 정답 : 결정적(Critical) >>높음(High) >>보통(Medium) >>낮음(Low)
  1. 다음은 괄호(    )안에 들어갈 알맞은 용어를 쓰시오.

(  ①  )은 배치 작업, 복잡한 트랜잭션을 수행하는 PL/SQL문을 DB에 저장하는 기능을 제공하는 프로그램이다. 정답 : 저장된 프로시저(Stored Procedure)

  1. 다음은 사용자가 상황에 맞게 기존 자료형들을 조합해서 만드는 자료형인 사용자 정의 자료형에 대한 설명이다. 괄호 (   ) 안에 들어갈 가장 적합한 용어를 쓰시오.

* (  ①  ) : – 사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 자료형이다. – 멤버 변수를 사용하는 자료형이다.

* (  ②  ) : – 서로 연관된 정수형 상수들의 집합으로 정수형 상수에 이름을 붙여서 코드를 이해하기 쉽게 해주는 사용자 정의 자료형이다.

– 연속적인 값이 들어가는 자료형이다. 특정 값을 넣어 주지 않으면 1씩 늘어나기 때문에 상수 배열이라고 부르기도 한다.

* (  ③  ) : – 모든 멤버 변수가 하나의 메모리 공간을 공유하는 사용자 정의 자료형이다. – ①과 ②와 거의 유사하나 조금 더 범주가 크다고 볼 수 있다.

정답 : ① 구조체(Structure) ② 열거체(Enumeration) ③ 공용체(Union)

  1. 다음은 연계 요구사항 분석기법에 대한 설명이다. 괄호 (   ) 안에 들어갈 가장 적합한 용어를 쓰시오.

– (  ①  )은/는 시스템 운영 환경, 성능, 보안, 데이터 발생 주기 등의 기준에 대한 점검을 통한 분석기법이다.

– (  ②  )은/는 소속된 인원들이 자발적으로 자연스럽게 제시된 아이디어 목록을 통해분석하는 기법이다. 정답 : ① 체크리스트 ② 브레인스토밍

  1. 다음은 클린 코드 작성 원칙과 소스 코드 최적화 기법에 대한 설명이다. 괄호 (  ) 안에 들어갈 용어를 쓰시오.

[클린 코드 작성 원칙]

– (  ①  ) : 한 번에 한 가지 처리만 수행, 클래스/메소드/함수를 최소 단위로 분리

[소스 코드 최적화 기법]

– 클래스는 하나의 역할, 책임만 수행할 수 있도록 (   ②   )를 높이고, 크기를 작게 작성한다. – 클래스의 자료 구조, 메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 (   ③   )을 최소화해야 한다. 정답 : ① 단위성 ② 응집도 ③ 의존성

[클린 코드 작성 원칙]

– (가독성) : 이해하기 쉬운 용어를 사용, 코드 작성 시 들여쓰기 기능을 사용

– (단위성) : 한 번에 한 가지 처리만 수행, 클래스/메소드/함수를 최소 단위로 분리

– (의존성) : 영향도를 최소화, 코드의 변경이 다른 부분에 영향이 없게 작성

– (중복성) : 중복된 코드를 제거, 공통된 코드를 사용

– (추상화) : 클래스/메소드/함수에 대해 동일한 수준의 추상화 구현, 상세 내용은 하위 클래스/메소드/함수에서 구현

[소스 코드 최적화 기법]

– 변수나 클래스, 메서드 명을 의도가 분명한 이름(사용용도, 작업명)으로 사용한다.

– 클래스는 행위의 주체로 명사나 명사구로 표현하고 함수 이름은 클래스가 행하는 행위로 동사 또는 동사구로 사용한다.

– 클래스는 하나의 역할, 책임만 수행할 수 있도록 (  응집도 )를 높이고, 크기를 작게 작성한다.

– 클래스의 자료 구조, 메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 ( 의존성 )을 최소화해야 한다.

  1. 다음은 UI 품질 요구사항에 대한 설명이다. 괄호 (  ) 안에 들어갈 용어를 쓰시오.

– UI 품질 요구사항 중 사용성(Usablity)은 사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지 가능함을 의미한다. 이 품질 요구사항의 사용성에는 다음과 같은 3가지 특성이 있다.

– ( ① ) : 소프트웨어의 논리적인 개념과 적용 가능성(응용 가능성)을 분간하는 데 필요한 사용자의 노력 정도에 따른 소프트웨어 특성

– ( ② ) : 소프트웨어 애플리케이션 익히는데 필요한 사용자의 노력 정도에 따른 특성

– 운용성 : 소프트웨어의 활용과 운용 통제에 필요한 사용자의 노력 정도에 따른 특성

정답 : ① 이해성(Understandablility) ② 학습성(Learnability)

해설 * 사용성의 부 특성 : 이해성, 학습성, 운용성

* UI 품질 요구사항 : 기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성

  1. 다음은 요구사항 분석 기법 중 개념 모델링에 대한 설명이다. 괄호 (  ) 안에 들어갈 용어를 쓰시오.

– 개념 모델은 문제 도메인의 (  ①  )들과 개별 관계 및 종속성을 반영한다.

– 시나리오로 나타내기 위해 (  ②  )을 주로 사용한다.

– 대부분의 모델링 표기법은 (  ③  )을 사용한다.

정답 : ① 엔티티(Entity) ② 유스케이스 다이어그램 ③ UML

  1. 다음은 IPv4에 대한 설명이다. 괄호 (  ) 안에 들어갈 가장 정확한 용어를 쓰시오.

– IPv4는 인터넷에서 사용되는 패킷 교환 네트워크상에서 데이터를 교환하기 위한 (  ①  )bit 주소체계를 갖는 네트워크 계층의 프로토콜이다.

– IPv4는 헤더 크기는 (  ②  )적이고, 전송 방식에는 멀티캐스트, 유니캐스트, (   ③   )방식이 있다. 답 ①32 ②가변적 ③브로드캐스트

  1. 다음은 웹 접근성(Web Accessibility) – WCAG(Web Content Accessibility Guidelines) 2.0의 원칙에 대한 설명이다. 괄호 (  ) 안에 들어갈 가장 정확한 용어를 쓰시오.

– (  ①  )의 용이성 : 대체 텍스트(Text Alternatives), 실시간 미디어 대체 수단, 융통성, 식별성의 세부 지침이 있다.

– (  ②  )의 용이성 : 키보드 접근성, 충분한 시간 제공 및 시간 조절기능, 발작 예방, 탐색 가능성의 세부 지침이 있다.

– (  ③  ) : 가독성, 예측 가능성, 입력 지원의 세부 지침이 있다.

– 견고성 : 호환성의 세부 지침이 있다 – 보조기술을 포함한 현재 및 미래의 사용자 응용 프로그램과의 호환성을 극대화해야 한다는 원칙

정답 : ① 인식 ② 운용 ③ 이해성

* 웹 접근성 : 인식의 용이성, 운용의 용이성, 이해성, 견고성

  1. 다음은 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도인 결합도의 유형이다. 괄호 (   )안에 들어갈 가장 올바른 용어를 쓰시오.

– (  ①  ) 결합도  : 한 모듈이 다른 모듈 내부에 있는 변수나 기능을 직접 참조하거나 사용하는 경우의 결합도이다.

– (  ②  ) 결합도 : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달될 때의 결합도이다.

– (  ③  ) 결합도 : 단순 처리할 대상인 값만 전달되는 것이 아니라 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해서 어떻게 처리를 해야 한다는 (  ③  ) 요소까지 전달하는 결합도이다. 정답 : ① 내용 ② 스탬프 ③ 제어

  1. 효율적인 정보 시스템 개발을 위한 코드 라이브러리, 애플리케이션 인터페이스(Application Interface), 설정 정보 등의 집합으로서 재사용이 가능하도록 소프트웨어 구성에 필요한 기본 뼈대를 제공하는 프레임워크(Framework)의 특징에 대한 설명이다. 괄호 (   )안에 들어갈 가장 올바른 용어를 쓰시오.

– 모듈화(modularity) : 프레임워크는 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다.

– 재사용성(reusability) : 프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여 준다. 또한 재사용성은 소프트웨어의 품질을 향상시킬 뿐만 아니라 개발자의 생산성도 높여 준다.

– (  ①  )  : 프레임워크는 다형성(polymorphism)을 통해 애플리케이션이 프레임워크의 인터페이스를 넓게 사용할 수 있게 한다. 또한 애플리케이션 서비스와 특성을 변경하고 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 한다.

– (  ②  )  : 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성(Polymorphism)을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 반대로 흐르게 한다.

정답 : ① 확장성(Extensibility) ② 제어의 역흐름(Inversion of control)

해설

* 소프트웨어 프레임워크의 특징

– 모듈화, 재사용성, 확장성, 제어의 역흐름

  1. 다음은 UI 시나리오 문서 작성의 요건이다. 괄호 (  ) 안에 들어갈 가장 정확한 용어를 쓰시오.

* (     ①     )

– UI 시나리오는 누락이 없어야 하고, 최대한 빠짐없이 가능한 한 상세하게 기술한다.

– 시스템 기능보다 사용자의 태스크에 초점을 맞춰 기술한다.

* (     ②     )

– 문서를 쉽게 읽을 수 있어야 하고(문서 템플릿과 타이포그래피), 표준화된 템플릿을 작성하여 적용한다.

– 버전의 넘버링은 v1.0, v2.0 등과 같이 일관성 있게 하고, 시각적인 효과를 위한 하이라이팅은 일관성 있게 활용한다.

정답 : ① 완전성(Complete) ② 가독성(Readable)

* UI 시나리오 문서 작성의 요건

– 완전성, 일관성, 이해성, 가독성, 추적 용이성, 수정 용이성

* 일관성(Consistent)

– 서비스에 대한 목표, 시스템 및 사용자의 요구사항이 일관성이 있어야 하고, 모든 문서의 UI 스타일(Flow 또는 Layout)을 일관적으로 구성한다.

* 이해성(Understandable)

– 처음 접하는 사람도 이해하기 쉽도록 구성하고 설명해야 하고, 이해하지 못하는 추상적인 표현이나 이해하기 어려운 용어는 사용하지 않아야 한다.

* 수정 용이성(Modifiable)

– 쉽게 변경이 가능해야 하고, 수정 또는 개선 사항을 시나리오에 반영함에 있어 쉽게 적용할 수 있어야 한다.

– 동일한 수정 사항을 위해 여러 문서를 편집하지 않도록 한다.

* 추적 용이성(Traceable)

– 쉽게 추적이 가능해야 하고, 변경 사항들이 언제, 어디서, 어떤 부분들이, 왜 발생하였는지 추적이 쉬워야 한다.

  1. 아래는 UML 다이어그램의 관계를 표현한 그림이다. 가장 올바른 관계의 유형을 쓰시오.

정답 : 일반화 관계

해설

* 일반화 관계

– 상위 개념과 하위 개념의 관계를 나타냄

– 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)이라고 함

– 객체지향 개념에서는 상속관계라고 말함

– 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 UML에서는 일반화 관계로 모델링함

* 참고

– 객체지향 기법에서 클래스들 사이에 ‘부분-전체’ 관계 또는 ‘부분’의 관계는 집단화 관계

  1. 다음이 설명하는 용어를 쓰시오.

* 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한

현상 * 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상

정답 : 이상 현상(Anomaly)

  1. 다음은 학생 테이블이다. ‘이’씨 성을 가진 사람의 학번을 출력하는 쿼리를 작성하시오.

<학생>

학번이름
200120022003200420052006안창호김정호김유신허준이성계이순신

<결과>

학번
20052006

정답 : SELECT 학번 FROM 학생 WHERE 이름 LIKE ‘이%’;

  1. 다음 빈칸에 들어갈 알맞은 용어를 쓰시오

( ① )는 재해복구시간목표이다. 재해로 인하여 서비스가 중단되었을 때 서비스를 복구하는데 걸리는 최대 허용시간이다.

( ② )는 재해복구시점목표이다. 재해로 인하여 서비스가 중단되었을 때 유실을 감내할 수 있는 데이터 손실 허용시점이다.

정답 : ① RTO(Recovery Time Objective) ② RPO(Recovery Point Objective)

  1. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.

a = {‘일본’, ‘중국’, ‘한국’}

a.add(‘베트남’)

a.add(‘중국’)

a.remove(‘일본’)

a.update({‘홍콩’, ‘한국’, ‘태국’})

print(a)

정답

{‘중국’, ‘한국’, ‘베트남’, ‘홍콩’, ‘태국’}

※ 참고로 집합형이기 때문에 순서는 상관없습니다.

  1. 서술형 문제

– 1. 구축된 시스템이 이해관계자가 기대한 요구사항에 부합하는지 확인하기 위한 기법으로 인스펙션(Inspection)이 자주 활용된다. 인스펙션의 개념에 대해 서술하시오.

답:소프트웨어 요구, 설계, 원시 코드 등을 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법이다. (정적 테스트 기법)

– 2. 웹 서비스 방식의 유형 중 WSDL(Web Service Description Language)의 개념에 대해 서술하시오. 답:웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보를 XML 형식으로 기술한 언어 또는 파일이다.

– 3. 사용자 인터페이스(UI)에서 활용되는 프로토타입(Prototype)의 개념에 대해 서술하시오. 답 : 컴퓨터 시스템이나 소프트웨어의 설계 또는 성능, 구현 가능성, 운용 가능성을 평가하거나 요구사항을 좀 더 잘 이해하고 결정하기 위하여 전체적인 기능을 간략한 형태로 실제로 구현한 시제품이다.

  1. 서술형 문제

– 1. DRM(Digital rights management)에 대하여 서술하시오.

정답 : 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술, 크랙 방지 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술이다.

– 2. 웹 서비스 방식의 유형 중 UDDI(Universal Description, Discovery and Integration)의 개념에 대하여 서술하시오. 정답 : 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이자 표준이다.

– 3. 테스트 드라이버(Driver)에 대하여 서술하시오. 정답 : 상향식 통합 테스트에서 데이터의 입력과 출력을 확인하기 위해서 하위 모듈을 호출하는 상위의 더미 모듈이다.

  1. 서술형 문제

– 1. SAN (Storage Area Network)에 대해서 서술하시오. 정답 : 서버와 스토리지를 광케이블 및 광 채널 스위치를 통해 근거리 네트워크 환경을 구성하여 빠른 속도로 데이터를 처리할 수 있는 특수 목적용 고속 네트워크이다. 서버와 스토리지를 저장 장치 전용 네트워크로 상호 구성하여 고가용성, 고성능, 융통성, 확장성을 보장하고 데이터를 블록 단위로 관리하는 기술

– 2. IPSEC에 대해서 서술하시오. 정답: IP패킷을 암호화하고 인증하는 안전한 IP 통신을 위한 OSI 3계층 보안 프로토콜 IP계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단 간(End Point) 구간에 보안 서비스를 제공하는 IP 계층의 보안 프로토콜

– 3. 트랜잭션의 격리성(isolation)에 대해서 서술하시오. 정답 : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근하지 못하도록 보장하는 트랜잭션의 특징이다.

  1. 서술형 문제

– 1. 빅데이터(Big Data)의 개념에 대하여 서술하시오.

:빅데이터는 시스템, 서비스, 조직(회사) 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타 바이트(PB) 크기의 데이터이다.(정형, 비정형, 반정형 데이터 포함)

– 2. 인공지능(AI; Artificial Intelligence)의 개념에 대하여 서술하시오.

:인공지능이란 인간의 지적능력을 인공적으로 구현하여 컴퓨터가 인간의 지능적인 행동과 사고를 모방할 수 있도록 하는 소프트웨어이다.

– 3. AJAX의 개념에 대하여 서술하시오.

:자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술이다.

– 4. 스머프(Smurf) 공격기법에 대하여 서술하시오.

:출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 마비시키는 공격기법이다.

– 5. JDBC(Java Database Connectivity) 개념을 간략히 서술하시오.

:자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스이다.

– 6. 형상관리의 개념에 대하여 서술하시오.

:소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

– 7. 비트락커(BitLocker)의 개념에 대하여 서술하시오.

:마이크로소프트 윈도즈 운영 체제에 포함되어 볼륨 전체의 암호화를 제공함으로써 중요자료를 보호하도록 설계되어진 완전한 디스크 암호화 기능이다.

61.다음 괄호안에 알맞은 용어를 쓰시오.

(단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student 테이블

학번이름학과학년
20191001강은미컴퓨터학과2
20192002김정미정보통신학과2
20183003홍길동정보보호학과3
20174004장길산인공지능학과4

student 테이블에 학생을 추가한다.

insert ( ① ) student values (20201001, ‘박신입’, ‘컴퓨터학과’, 1);

정답 : into

62.다음 괄호안에 조건을 만족하는 값을 쓰시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student테이블

학번이름학과학년
20191001강은미컴퓨터학과2
20192002김정미정보통신학과2
20183003홍길동정보보호학과3
20174004장길산인공지능학과4

student 테이블에서 홍길동 학생을 삭제한다.

deletefrom student where 학번 = ‘( ① )’

정답 : 20183003

63.다음 테이블의 차수와 카디널리티 갯수를 구하시오. (단, 학번, 학년은 숫자형, 이름과 학과는 문자형이다)

student테이블

학번이름학과학년
20191001강은미컴퓨터학과2
20192002김정미정보통신학과2
20183003홍길동정보보호학과3

– 차수 : (  ①  )

– 카디널리티 : (  ②  )

정답 : ① 4 ② 3

– 차수(degree) : 하나의 릴레이션에 속성(열)의 전체 개수를 릴레이션의 차수라고 한다.

– 카디널리티(cardinality) : 하나의 릴레이션에서 투플(행)의 전체 개수를 릴레이션의 카디널리티라고 한다.

  1. 다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.

a = 5

for i in range(1, a+1):

if a % i == 0:

print(i)

정답

1

5

– 5의 약수를 구하는 코드

– 파이썬에서 print()는 자동으로 개행 ( 개행을 하기 싫은 경우 print(i, end=”) => 작은 따옴표 2개 )- range(1, a+1) 이면 1부터 a+1 미만>> 1 ≤ i <(a+1)

  1. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

intnum(int a, int b){

if( a > b ) {

return a;

}

else {

return b;

}

}

voidmain(){

printf(“%d\n”, num(10, 20) + num(30, 20));

}

정답 : 50

  1. 다음은 C++ 소스코드이다. 출력 결과를 쓰시오.

#include<iostream>

voidmain(){

int arr[2][2];

int count = 0;

for(int i=0; i<2; i++){

for(int j=0; j<2; j++){

arr[i][j] = ++count;

}

}

for(int i=0; i<2; i++){

for(int j=0; j<2; j++){

std::cout << arr[j][i] << ” “;

}

}

}

정답 : 1 3 2 4

해설

i   j   count
0 0   1
0 1   2
1 0   3
1 1   4

arr[j][i]

1 3 2 4

  1. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

int i, j;

int temp;

int a[5] = {5, 4, 3, 2, 1};

for(i=1; i<2; i++){

j=i-1;

while((a[j] > a[j+1]) && (j>=0)){

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

j–;

}

}

for(i=0; i<5; i++){

printf(“%d, “,a[i]);

}

}

정답 : 4, 5, 3, 2, 1,

해설

– 삽입 정렬을 1회전 한 후의 결과

  1. 다음은 테스트 유형에 대한 설명이다. 괄호 (  ) 안에 들어갈 테스트를 쓰시오.

– (   ①    )  : 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자의 입장에서 확인하는 테스트로 알파, 베타 테스트가 있다.

– (   ②    ) : 시스템에 과다 정보량을 부과하여 과부하 시에도 시스템이 정상적으로 작동되는지를 검증하는 테스트 기법이다.

– (   ③    ) : 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법이다.

정답 : ① 인수테스트 ② 강도(Stress)테스트 ③ 회귀(Regression)테스트

* 테스트 종류

– 성능(Performance) Test : 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이는지를 측정하는 테스트

– 부하(Load) Test

: 임계치의 한계에 도달할 때까지 시스템에 부하를  꾸준히 증가시키면서 진행하는 테스트 발생시키는 부하는 실제 시스템에 적용될 예상 트래픽

– 스트레스(Stress) Test : 시스템이 과부하상태에서 어떻게 작동하는지를 검사하는 테스트

  1. 다음 설명은 인터페이스 구현 검증 도구에 대한 설명이다. 괄호 (  ) 안에 들어갈 구현 검증 도구를 쓰시오

– (  ①  ) : 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크로 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있음

– (  ②  ) : 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크로 모든 언어 기반의 웹 애플리케이션 테스트와 브라우저 호환성 테스팅 가능

정답 : ① FitNesse ② watir

* 인터페이스 구현 검증 도구

– xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크

– STAF

: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

– FitNesse

: ​웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

– NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

– Selenium

: ​다양한 브라우저 및 개발 언어를 지원​하는 웹 애플리케이션 테스트 프레임워크

– watir

: Ruby를 사용하는 애플리케이션 테스트 프레임워크

* 참고 >재사용

– 함수 재사용 : Function 단위 소스코드 재사용

– 객체 재사용 : Class 단위 소스코드 재사용

– 컴포넌트 재사용 : 컴포넌터의 인터페이스를 통해 통신

– 라이브러리 : 공통으로 사용될 수 있는 특정한 기능을 모듈화한 기법

  1. 다음은 프로세스 스케줄링 알고리즘에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 용어를 쓰시오.

– (   ①   ) :  FCFS(FIFO)와 라운드 로빈 스케줄링 기법을 혼합한 것으로, 새로운 프로세스는 높은 우선순위를 가지고 프로세스의 실행시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용하는 프로세스 스케줄링 알고리즘이다.

– (   ②   ) : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원을 점유하는 방식으로 준비 큐 작업 중 가장 짧은 작업부터 수행하고, 평균 대기시간이 최소가 되는 프로세스 스케줄링 알고리즘이다.

정답 : ① 다단계 피드백 큐(Multi Level Feedback Queue) ② SJF(Sortest Job First)

– 선점 스케줄링 : 시분할 시스템에서 타임 슬라이스가 소진되었거나, 인터럽트나 시스템 호출 종료 시에 더 높은 우선 순위 프로세스가 발생 되었음을 알았을 때, 현 실행 프로세스로부터 강제로 CPU를 회수하는 것을 말한다.

-RR : 시분할시스템에서 사용됨,할당되는 시간이 클 경우 FCFS와 비슷해짐

-SJF기법을 선점형으로 바꾼 스케줄링

-선점우선순위 : 비선점 우선순위를 선점형으로 바꾼 것

-다단계 큐:프로세스의 우선순위에 따라 시스템 프로세스, 대화형 프로세스, 일괄처리 프로세스등으로 나누어 준비상태 큐를 상위 중위 하위단계로 배치

-다단계 피드백 큐 : 다단계 큐의 단점 보안, 큐마다 타임아웃을 설정하여 타임아웃 초과시 우선순위가 낮은 다음 단계 큐로 이동

– 비선점 스케줄링 :  프로세스가 자원을 할당 받았을 경우, 자원을 스스로 반납할 때까지 계속 그 자원을 사용하도록 허용하는 정책이다. 적용할 때는 현재 프로세스를 사용하는 프로세스가 생성되거나 현재 프로세스 작업을 종료할 때 입출력하기 위해 스스로 프로세스를 반납할 때까지 우선 순위가 높은 프로세스의 비선점 정책을 적용하면 프로세스의 종료 시간을 비교적 정확하게 예측할 수 있다.

  • 우선순위 알고리즘: 각프로세스에게 우선 순위를 부여하여 순위가 높은 순서대로 처리하는 방법
  • 기한부(Deadline) 스케줄링: 작업들이 명시된 시간이나 기한 내에 완료되도록 계획. 사전에 정확한 자원 및 수행 시간을 예측하기 어려움.
  • FCFS(First-Come-First-Served) : CPU 스케줄링알고리즘중에 제일 간단한 알고리즘으로 CPU를 요구하는 순으로 할당하는 방법이며 FIFO방식인 큐(Queue)로써 구현된다.
  • SJF(Shortest Job First) : 각각의 작업이 다음 CPU버스트(Burst) 시간을 중심으로 CPU가 사용 가능할 때 버스트(Burst) 시간이 가장 작은 작업에 할당하는 기법이다.
  1. 다음은 애플리케이션 테스트에 대한 설명이다. 괄호(   ) 안에 들어갈 가장 올바른 테스트 유형을 쓰시오.

– 김PM은 온라인 예약시스템 개발 PM을 맡고 있다. 사용자 요구사항에 따라 시스템에 고의로 실패를 유도하고, 온라인 예약시스템의 정상적 복귀 여부를 확인하는 테스트를 수행해야 한다. 김PM이 수행해야 하는 테스트는  (   ①   )이다.

– 이대리는 내부 인트라넷 급여시스템 개발자이다. 일정에 맞춰 커버리지 테스트를 수행해야 한다. 이대리는 전체 조건식뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행하는 커버리지 테스트를 수행해야 한다. 이 코드 커버리지 유형은 (   ②   )이다.

정답 : ① 회복 테스트  ② 조건/결정 커버리지

* 소프트웨어 테스트 유형

– 회귀 테스트 : 오류를 제거하거나 수정 후 새롭게 유입된 오류가 있는지 테스트

– 회복 테스트 : 고의로 실패 유도 후 정상 복귀 여부 확인하는 테스트

– 안전 테스트 : 소스 내의 보안적인 결함을 확인

– 강도 테스트 : 과부하시 정상적인 동작을 하는지 확인하는 테스트

– 성능 테스트 : 응답시간, 특정시간, 처리량 등 시스템 반응 속도 테스트

– 구조 테스트 : 시스템 내부의 경로나 소스코드 복잡도 테스트

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

* 테스트 커버리지

– 유형 : 구문, 결정, 조건, 조건-결정, 변경조건-결정, 다중 조건

– 결정 커버리지 : 프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

– 조건 커버리지 : 전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

– 조건-결정 커버리지 : 결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

  1. 다음 지문은 OSI 7 계층 중 어느 계층인지 한글 또는 영어로 쓰시오.

– (   ①   )계층은 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층이다. – (  ①   )계층은 라우팅, 패킷 포워딩등을 수행한다.

– 주요 프로토콜로는 IP, ARP, BGP등이 있다. 전송단위는 패킷(Packet)이다.

정답 : 네트워크 또는 Network

  1. 다음이 설명하는 용어를 쓰시오.

– 컴퓨터에 데이터를 삽입, 삭제, 수정하게 해주는 논리적인 공간구조를 의미한다.
– 자료의 형태에 따라 단순 구조, 선형 구조, 비선형 구조, 파일 구조로 분류할 수 있다. 정답 : 자료구조

  1. 연계 방식 중 현재 페이지에서 다른 부분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성으로 <a href=”url”> Link 대상 </a>와 같은 방식으로 사용하는 기술은 무엇인지 쓰시오. 정답 : 하이퍼링크
  1. 다음은 애플리케이션 테스트에 대한 설명이다. 올바르게 설명한 항목의 번호를 쓰시오.

① 화이트박스 테스트가 끝난 후 더 나은 품질을 기대하기 위해서는 블랙박스 테스트를 실시해서 결함을 많이 검출해야 한다.

② 리그레션 테스트는 자동화에 적합한 테스트 타입이다.

③ 디버깅은 테스트의 일종이 아니다.

④ 타 시스템과 연동되는 테스트는 테스트 수행 단계에서 단위테스트 단계에 속한다.

정답 : ②, ③

해설

– 화이트박스 테스트와 블랙박스 테스트의 수행 순서와 결함 검출률은 아무런 상관이 없다. 독립적으로 수행하면 된다.

– 리그레션 테스트(회귀 테스트)는 반복적 성향이 강해서 자동화 테스트에 적합하다.

– 디버깅(Debugging)은 개발 활동이다.

– 타 시스템과 연동 테스트는 통합 테스트 단계에서 수행한다.

* 애플리케이션 테스트

– 시스템 테스트, 인수테스트, 통합테스트, 단위테스트

– 시스템 테스트 : 개발된 애플리케이션을 서버에 설치한 이후에 서버에서 잘 동작하고 DB연결도 잘되도록 하는 것

– 통합 테스트 : 모듈 결합 후 인터페이스 테스트, 전체 기능 동작 테스트

  1. 다음은 보안 공격 기법에 대한 설명이다. 괄호(    )안에 들어갈 공격 기법을 쓰시오.

– (  ①  ) : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 타켓 시스템을 마비시키는 공격기법이다.

– (  ②  ) : 요청 헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시켜 자원을 소진시키는 공격기법이다.

– (  ③  ) : 공격자가 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격기법이다.

정답 : ① 스머프(Smurf) ② RUDY(Slow HTTP POST DoS) ③ 티어드롭(Tear Drop)

* Smurfing

– ICMP Echo Request 메시지(Ping 요청)의 IP를 희생자 IP로 스푸핑한 후 이를 증폭 네트워크에 직접 브로드캐스트하여 외부 ICMP Echo Reply(Ping 응답)를 발생시켜 희생자에게 대량의 트래픽을 발생시키는 Dos 공격

* Land Attack

– 패킷을 전송할 때 송수신 IP주소를 모두 공격 대상 IP주소로 하여 공격 대상에게 전송하는 것

* Smishing (SMS phishing, 스미싱)

– SMS + Phishing의 합성어

* Qshing

– QR코드 + Phising 합성어

* 서비스 공격 유형

– Dos(서비스 거부) : 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수 공격자 or 시스템에서 대량의 데이터를 한 곳에 집중적으로 전송함

– DDoS(분산 서비스 거부) : 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대한 분산 서비스 공격을 수행함

– Ping of Death(죽음의 핑) : Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격

– SYN Flooding : TCP는 신뢰성 있는 전송을 위해 3-way-handshake를 거친 후 데이터를 전송하는데 SYN은 공격자가 가상의 클라이언트로 위장 3WH을 의도적으로 중단, 서버가 대기상태에 놓여 정상 서비스를 못하게 하는 공걱 방법

– Land : 패킷을 전송할 대 송수신 IP주소를 모두 공격 대상 IP주소로 하여 공격 대상에게 전송하는 것, 공격 대상은 송신IP주소가 자신이기 때문에 자신에게 무한히 응답하게 되는 공격

  1. 다음 괄호(    )안에 들어갈 가장 알맞은 용어를 쓰시오.

(  ①  )은 특정 서버에 대해서 자체 기준으로 테스트를 수행하여 나온 결과중 1분간 최대 처리건수를 나타낸 수치를 말한다. 가장 객관적으로 하드웨어 성능을 나타내는 지표로 사용된다. 정답 : tpmC ( Transaction ProcessingPerfomance Council )

  1. 다음은 애플리케이션 성능 개선 방안에 대한 설명이다. 괄호(    )안에 들어갈 용어를 쓰시오.
  2. 소스 코드 최적화 기법 적용

– 인터페이스를 통해 (  ①  )된 자료 구조를 구현하여 의존성을 최소화한다.

  1. System.out.println( ) 사용 제외

– 파일, 콘솔에 로그를 남기면 애플리케이션 대기 시간이 발생된다.

– 이에 대응하여 (  ②  )를 사용함으로써 성능을 개선한다.

정답 : ① 추상화 ② Log4j 로거

  1. 다음 괄호(    )안에 들어갈 가장 알맞은 용어를 쓰시오.

(  ①  )은 자바(Java)에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스이다.

(  ②  )은 데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스이다.

정답 : ① JDBC ( Java Database Connectivity ) ② ODBC ( Open Database Connectivity )

  1. 다음은 애플리케이션 배포 도구를 활용한 배포 프로세스와 패키징 도구에 대한 설명이다. 괄호(    )안에 들어갈 용어를 쓰시오.

– 배포 프로세스 : 빌드 내용 식별 → (    ①    ) → DRM 흐름을 확인하여 패키징 수행 → 패키징 도구 설치 → 배포 작업 → 정상 배포 확인

– 패키징 도구 : 저작권 보호를 위해 크랙 방지를 제공하는 패키징 도구 구성요소 중 역공학 방지를 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술을 (    ②    )라고 한다.

정답 : ① 패키징 도구 식별(선정)  ② 코드 난독화(Code Obfuscation)

  1. 다음은 네트워크의 전송 기술에 대한 설명이다. 해당하는 용어를 쓰시오.
    * 하나의 송신자가 같은 서브 네트워크 상의 모든 수신자에게 데이터를 전송하는 기술이다.

정답 : 브로드 캐스트

해설

* 유니캐스트(Unicast)

– MAC 기반으로 상대측 IP를 목적지로 하는 일대일 통신방식

* 브로드캐스트(Broadcast)

– 자신의 호소트가 속해 있는 네트워크 전체를 대상으로 패킷을 전송하는 일대다 통신방식

– 데이터를 수신할 필요가 없는 호스트들에게도 데이터가 전송되기 때문에 불필요한 인터럽트가 발생되며, 자신이 속한 네트워크에만 한정되고 라우터를 경유하지 못하는 단점이 있다.

* 멀티캐스트(Multicast)

– 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식

– 자신이 데이터를 받기를 원하는 특정 호스트들에게만 보내느 것이 가능하지만 스위치나 라우터가 이 기능을 지원해줘야함

  1. 다음은 자바 소스코드이다. 출력값을 쓰시오.

public class Exec{

public static void main(String []args){

int x = 3;

System.out.println(++x);

System.out.println(x++);

}

}

정답

4

4

  1. 다음 괄호에 알맞은 용어를 쓰시오.

(   ①   )은 2010년 6월에 발견된 웜 바이러스이다. 지멘스의 SCADA 시스템만을 감염시켜 장비를 제어하고 감시하는 특수한 코드를 내부에 담고 있다. (   ①   )은 장비를 프로그램하는 데 사용되는 PLC를 감염시켜 장비의 동작을 변경한다.

정답 : 스턱스넷(Stuxnet)

* 스턱스넷(Stuxnet)

– 핵 시설을 겨냥한 바이러스

– 공격자는 폐쇄망인 핵시설 주변에 고의로 악성코드가 담긴 USB를 유포함

– 폐쇄망 핵시설 주변에서 USB를 주운 엔지니어가 의심없이 PC에 USB를 꽂으면서 스턱스넷이 핵시설 시스템을 공격하면서 전세계적인 이슈가 되었음

* 참고

– SCADA 시스템 : 산업 제어 시스템, 원거리에 있는 설비들을 집중 감시하거나 제어하기 위한 시스템

  1.  1970년 IBM에 근무하던 코드에 의해 처음 제안되었고, 관계형 데이터베이스를 구성하는 개체나 관계를 모두 릴레이션이라는 표로 표현한다. 장점으로는 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다. 단점으로는 성능이 떨어진다. 이것은 무엇인가? 정답: 관계형 데이터베이스

-구조 : 튜플 : 릴레이션을 구성하는 가각의 행,속성의 모임, 파일구조에서 레코드와 같은 이미, 튜플의 수를 카디널리티 또는 기수, 대응수라함)

-속성 : 가장 작은 논리적 단위, 데이터필드에 해당, 개체의 특성 기술, 디그리 또는 차수라 한다.

  1. 다음 괄호에 알맞은 용어를 쓰시오

(   ①   )은 정보를 수집한 후, 저장만 하고 분석에 활용하고 있지 않는 다량의 데이터이다. (   ①   )는 처리되지 않은 채 미래에 사용할 가능성이 있다는 이유로 삭제되지 않고 방치되어 있어, 저장 공간만 차지하고 보안 위험을 초래할 수 있다.

정답 : 다크 데이터

* 참고

– 스몰데이터 : 개인의 취향, 필요, 건강상태, 생활양식 등 사소한 행동에서 나오는 정보들 ( 셜록홈즈 )

– 빅데이터 : 3VC(Volume, Velocity, Variey, Complexity)

– 스마트데이터 : 3A(Agile, Actionable, Accurate)

  1. 다음 괄호에 알맞은 용어를 쓰시오

– (   ①   )은 잃어버린 스마트폰을 주운 사람이 해당 스마트폰을 켜서 이동통신망 혹은 와이파이에 접속하면 이용자(원 소유자)가 원격으로 기기를 사용 불능 상태로 만들 수 있는 기술이다.

– 워너크라이 랜섬웨어가 세계 곳곳으로 막 퍼져나가던 때에 멀웨어테크라는 영국 보안전문가가 워너크라이 내에서 발견한 도메인을 정식으로 등록하면서 랜섬웨어 확산이 멈추는 효과가 발생했기에 (   ①   ) 라고 불리기 시작했다.

정답 : 킬 스위치(Kill switch)

  1. 다음 괄호에 알맞은 용어를 쓰시오.

(       )은/는 특수 목적을 가진 조직이 하나의 표적에 대해 다양한 IT 기술을 이용해서 지속적으로 정보를 수집하고 취약점을 파악하여 침투, 검색, 수집, 유출하는 공격기법이다. 정답 : APT(Advanced Persistent Threat) 해설 – 침투, 검색, 수집, 유출의 포인트

  1. 다음은 결함 우선순위와 결함 조치 상태에 대한 설명이다. 괄호(  ) 안에 들어갈 용어를 쓰시오.
결함 우선 순위(     ) : 24시간 안에 즉시 수정해야 하고이슈가 발생하면 일반적으로 전체 기능이 동작하지 않고어떤 테스트도 더 이상 진행할 수 없을 때 부여하는 우선순위
결함 조치 상태(     ) : 오류가 보고되었지만 아직 분석되지 않은 상태

정답 : ① 결정적(Critical) ② 열린(Open) 해설

* 결함 우선 순위

– 결정적(Critical), 높음(High), 보통(Medium), 낮음(Low)

* 결함 조치 상태(=오류 목록 상태)

– 열린(Open): 오류가 보고되었지만 아직 분석되지 않은 상태

– 할당된(Assigned): 수정을 위해 오류를 개발자에게 할당한 상태

– 연기된(Deferred): 낮은 우선순위로 오류 수정을 연기한 상태

– 종료된(Closed): 재테스트 시 오류가 발견되지 않은 상태

– 수정된(Fixed): 개발자가 오류를 수정한 상태

– 분류된(Classified): 보고된 오류를 관련자들이 확인했을 때 오류가 아니라고 확인된 상태

  1. 다음은 C언어 소스코드이다. 출력 결과를 쓰시오.

#include<stdio.h>

voidmain(){

int ret = 4;

switch(++ret){

case5: ret+=2;

case3: ret++; break;

case4: ret++;

default: ret*=2;

}

printf(“%d\n”, ret);

}

정답 : 10

  1. 보안의 3요소 중서비스가 계속 유지가 되어 인가된 대상에게 정보를 제공하는것으로 시스템이 장애 없이 정상적으로 운영되는 능력을 무엇이라고 하는지 쓰시오.

정답 : 가용성

* 기밀성

– 시스템 내의 정보와 자원은 오직 인가된 사용자에게만 접근이 허용

* 무결성

– 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음

* 가용성

– 인가받은 사용자는 언제라도 사용할 수 있음

  1. 다음 SQL문의 실행결과를 쓰시오.

SELECTsum(점수)

FROM 성적 a, 학생 b

WHERE a.학번 = b.학번 AND b.학년 = ‘1’;

학생 테이블

학번이름학년
20170001강은미4
20180002김정미3
20190003홍길동2
20200004장길산1
20200005김철희1

성적 테이블

학번과목점수
20190003영어90
20200004영어80
20200005영어90

정답 : 170

  1. 다음이 설명하는 용어를 쓰시오.

* 기업이 재해/재난으로부터 타격을 입은 뒤 업무를 어떻게 복구하는지에 대한 계획을 말한다. * 전산의 단순복구 뿐 아니라 고객 비즈니스의 지속성을 보장한다.

* 재해 복구를 포함하는 더 넓은 개념으로 쓰인다.

정답 : BCP(Business Continuity Planning)

해설- BCP를 통해서 재해예방, 대응 및 복구, 운영 및 유지관리, 모의훈련을 함

* DRS – 재해/재난 시 서비스 연속성 보장을 위해 메인 센터와 분리되어 동일 역할을 하는 재해 복구 시스템

* RTO(Recovery Time Objective)

– 재해 복구 목표 시간 / 중요한 서비스일수록 짧아야 함

  1. 다음이 설명하는 용어를 쓰시오.

온라인 상에서 불법 활동을 조장하기 위해 만들어진 컴퓨터 프로그램이다. 공격용 툴킷이라고 불리며 보통 취약점을 이용하도록 미리 프로그램 된 악성코드 등으로 구성돼 원하는 형태로 공격을 감행하거나 공격을 자동화 할 수 있다. 인터넷에서 곧바로 사용할 수 있으며 키로거를 은밀히 설치 시켜 불법적으로 정보를 수집해 가기도 한다.

정답 : 크라임웨어(Crimeware)

  1. UI 화면 설계를 위해서 정책이나 프로세스 및 콘텐츠의 구성, 와이어 프레임(UI, UX), 기능에 대한 정의, 데이터베이스의 연동 등 구축하는 서비스를 위한 대부분 정보가 수록된 문서로서, 디자이너와 개발자가 최종적으로 참고하는 산출 문서가 무엇인지 쓰시오. 정답 : 스토리보드
  1. 다음은 자바 소스코드이다. 출력되는 결과를 쓰시오.
publicstaticvoid main(String[] args){
int a =10;
int b =20;
System.out.println(++a);
System.out.println(b–);
}

정답

11

20

해설

* JAVA 전위연산자/후위연산자

– ++a : 전위연산 >++계산하고 a출력

– b– : 후위연산 >b출력하고 –계산

  1. 다음은 릴리즈 노트 작성 프로세스이다. 올바르게 나열하시오.

① 릴리즈 정보 확인 ② 릴리즈 노트 개요 작성

③ 모듈 식별           ④ 정식 릴리즈 노트 작성

⑤ 영향도 체크       ⑥ 추가 개선 항목 식별

정답 : ③ → ① → ② → ⑤ → ④ → ⑥ 

* 릴리즈

– 개발이 완성된 소프트웨어를 출시, 배포하는 것

* 릴리즈 노트

– 배포 후 개발자는 사용자에게 해당 릴리즈의 정보를 알리기 위해 작성함

– 테스트를 거친 기능 및 서비스, 개선된 사항 등을 기록

– 조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서

– 개발팀에서 직접 작성, 현재 시제로 작성

* 릴리즈 노트 고려사항

– 중대한 오류가 발생하여 긴급하게 수정하는 경우 릴리즈 버전을 출시하고 버그 번호를 포함한 모든 수정된 내용을 담아 릴리즈 노트를 작성

– SW 기능 업그레이드를 완료한 경우 릴리즈 버전을 출시하고 릴리즈 노트를 작성

– 사용자로부터 접수된 요구사항에 의해 추가나 수정된 경우 자체 기능 향상과는 다른 별도의 릴리즈 버전으로 출시하고 릴리즈 노트 작성

  1. 다음과 같은 특징을 갖는 데이터베이스 종류는 무엇인지 쓰시오.
  • 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스이다.
  • 데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다.

정답 : 계층형 데이터베이스 관리시스템(HDBMS; Hierarchical Database Management System)

* 데이터베이스 종류

– 계층형 데이터베이스 관리시스템 (HDBMS; Hierarchical ~)

: 접근 속도는 빠른데 유연성은 떨어짐
– 망형 데이터베이스 관리시스템 (NDBMS; network~)

: 논리적으로 표현. 설계가 복잡함
-관계형 데이터베이스 관리시스템 (RDBMS; Relational~)

: 가장 보편화. 테이블과 상관관계 표현. 유연성 좋다(유지보수 용이)

  1. 다음은 요구사항 개발 프로세스이다. 올바르게 나열하시오.

① 요구사항 분석(Analysis) ② 요구사항 확인(Validation) ③ 요구사항 명세(Specification) ④ 요구사항 도출(Elicitation)

정답 : 도출 >분석 >명세 >확인

* 요구사항 개발 프로세스

– 도출(요구사항 수집 단계)

: 이해 관계자 간의 의사소통 중요(인터뷰, 브레인스토밍)

– 분석(요구사항 분석 단계)

: 도출된 요구사항의 타당성 조사, 내용 정리

>>요구사항 분류 : 특정한 기준으로 분류(기능, 비기능 우선순위)

>>개념 모델링

: 분류된 요구사항을 단순화하여 개념적으로 표현, 객체간의 관계와 종석성 분석, 다양한 관점으로 표현, UML 사용

>>요구사항 할당 : 요구사항을 만족시키기 위한 요소들을 할당

>>요구사항 협상 : 충돌되는 요구사항 해결

>>정형 분석 : 구문과 의미를 갖는 언어 이용, 수학적 기호

– 명세(요구사항 문서화 단계) : 승인을 위해 문서화 진행, 빠짐없이 명확하고 이해하기 쉽게 기록

– 확인 : 요구사항 검증 단계) : 명세서 검증, 형상관리 수행

>>요구사항 검토 : 문서화된 요구사항을 훑어보면서 확인, 가장 일반적

>>프로토타이핑

: 초기 도출된 요구사항을 토대로 프로토타입을 만든 후 대상 시스템의 개발이 진행되는 동안 도출되는 요구사항을 반영하면서 지속적으로 프로토타입을 재작성하는 과정

>>모델 검증 : 요구사항 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증하는 것

>>인수 테스트 : 사용자가 실제로 사용할 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인하는 과정

  1. 다음은 요구사항 확인 기법에 대한 설명이다. 알맞은 용어를 쓰시오.
  • 새로운 요구사항을 도출하기 위한 수단 및 소프트웨어 요구사항에 대해 소프트웨어 엔지니어가 해석한 것을 확인하기 위한 수단으로 사용
    • 요구사항이 잘못된 경우 유용한 피드백 제공, 사용자 인터페이스의 동적인 행위가 문서나 그래픽 모델보다 이해 용이
  • 사용자가 요구한 주요 기능을 간단하게구현하여, 사용자의 피드백을 통해 개선, 보완하여 완성 소프트웨어를 만들어가는 기법

정답 : 프로토타이핑

* 프로토타입 VS 프로토타이핑

– 프로토타입 : 시제품 ( 시스템을 만들 때 간단한 기능 한 두개만 넣은 것 / 게임의 데모 버전 )

– 프로토타이핑 : 프로토타입을 만드는 방법 ( ~하는 방법, ~하는 과정 )

  1. 다음에서 설명하는 EAI 구축 유형을 쓰시오.
  • 그룹 내는 허브 앤 스포크 방식을 사용하고, 그룹 간에는 메시지 버스 방식을 사용하는 통합 방식이다.
  • 그룹 내 환경에 맞는 구성 및 작업이 가능하다.

정답 : 하이브리드(Hybrid)

* EAI ( Enterprise Application Integration )

* 시스템 인터페이스를 위한 내부, 외부 모듈 연계 방법

– 특징 : 표준통합기술 / 데이터 병목현상 최소화(그룹 내 환경에 맞는 작업 가능)

– Point – to Point : 가장 기본적, 변경 재사용 어려움

– Hub &Spoke : 허브 시스템, 확장, 유지보수 용이

– Message Bus(ESB) : 미들웨어를 두고 처리, 뛰어난 확장성

– Hybrid : Hub &Spoke + ESB, 병목 현상 최소화

> ESB ( Enterprise Service Bus )

  1. 다음은 연계 방식 중 간접 연계 방식의 기술에 대한 설명이다. 알맞은 기술을 쓰시오.- 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션- 송수신 시스템에 설치되는 어댑터를 사용

정답 : 연계 솔루션(EAI)

* EAI; Enterprise Application Integration

– 애플리케이션 통합

– 표준 : 벤더별 전송기술 상이

– 유지비용이 높다(시스템별로 개발)

– 단단한 결합

– 집중형으로 구현됨

– 기업 내 필요한 여러 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션

참고

EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로기업 내 APP 통합 연계미들웨어(BUS)를 이용하여서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을 BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

* SOA(서비스 지향 아키텍처) : 느슨하게 결합된 서비스 기반 애플리케이션을 구현하기 위한 아키텍처 모델

* ESB

– 개발자가 서비스를 개발하고 적절한 API를 통해 서비스 간에 통신을 하는데 도움이 되는 인프라 스트럭처 소프트웨어

– SOA가 실현되는 플랫폼으로 사용될 수 있지만 ESB는 서비스가 흐르는 매체일 뿐이고 SOA의 구현과 서비스 구성 및 배치를 위한 기능을 제공

  1. 다음 아래의 상항식 통합 테스트(Bottom Up Integration Test)의 절차를 순서대로 나열하시오.

① 각 통합된 클러스터 단위 테스트

② 각 클러스터들은 프로그램의 위쪽으로 결합되며, 드라이버는 실제 모듈 또는 컴포넌트로 대체

③ 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 클러스터(Cluster)로 결합

④ 드라이버라는 제어 프로그램의 작성

정답 : ③ > ④ > ① > ② 

  1. 다음이 설명하는 용어를 쓰시오.
  • 제품 소프트웨어 개발단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용 등을 기록한 문서이다.
    • 사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서를 의미한다.
    • 설치 매뉴얼과 사용자 매뉴얼이 있다.

정답 : 제품 소프트웨어 매뉴얼

  1. 다음은 데이터베이스 기본 연산이다. 빈칸에 들어갈 DML로 알맞은 것을 쓰시오.
CRUD 연산SQL DML
읽기(READ)( )
생성(CREATE)( )

정답 : ① SELECT ② INSERT

* 데이터베이스 기본 연산

CRUD 연산 / SQLCREATE / INSERTREAD / SELECTUPDATE / UPDATEDELETE / DELETE

  1. 다음이 설명하는 테스트 레벨의 종류는 무엇인가?

– 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계
– 인터페이스 테스트, 자료구조 테스트, 실행 경로 테스트, 오류 처리 테스트가 존재

정답 : 단위테스트

* 테스트 레벨 : 한 번에 총체적으로 조직화하고 관리하는 테스트 활동의 묶음

– 단위 테스트, 통합테스트, 시스템 테스트, 인수 테스트

* 단위 테스트(Unit Test)

– 코딩 직후 SW 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 진행

– 사용자 요구사항을 기반으로 한 기능성 테스트 최우선

– 주로 구조기반(화이트박스 테스트) 시행

* 통합 테스트

– 시스템이나 시스템 구성 요소 또는 소프트웨어 프로그램의 데이터 및 기능의 인터페이스(흐름)가 정상적으로 작동하는지에 중점을 둠

– 단위 테스트를 통과한 개발 소프트웨어/하드웨어 컴포넌트 간 인터페이스 및 연동 기능 등을 구조적으로 접근하여 테스트

>> 빅뱅 통합 테스트 : 모든 모듈을 한꺼번에 통합하고 결합 격리가 어려움

>> 상향식 통합 : 가장 하부의 모듈부터 통합해가면서 상부로 올라감, 드라이브가 필요

>> 하향식 통합 : 가장 상부의 모듈부터 통합해가면서 하부로 내려감, 스텁 필요

>> 백본 통합 : 소프트웨어 리스크가 높은 것을 우선적으로 통합하고 접근, 드라이버, 스텁은 필요에 따라 만들어서 사용

* 시스템 테스트

– 실제 환경과 가능한 유사한 환경에서 진행

– 기능적 요구사항(명세기반 기법), 비기능적 요구사항(구조기반 기법)

– 개발 조직과는 독립된 테스트 조직에서 수행되어야 하며 사전 요구사항이 명확해야 한다

– 단위, 통합 테스트가 가능한 완벽히 완료되어 가능상에 문제가 없는 상태여야 한다

  1. 다음이 설명하는 용어를 쓰시오.
  • 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다.
  • 정보은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.
  • 유형으로는 우연적, 논리적, 시간적, …, 기능적 (    )이/가 있다.

정답 : 응집도

* 모듈화의 목표

– 모듈내 응집도 최대화

– 모듈간 결합도 최소화

* 응집도 순서 (낮음 >높음)

– 우연 >논리 >시간 >절차 >통신 >순차 >기능적

* 결합도 : 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계
* 응집도 : 모듈 내부의 처리 요소들 간의 기능적 연관도 독립적인 기능으로 정의

  1. OSI 7계층의 4계층에 해당하는 전송 계층의 전송단위를 지칭하는 용어는 무엇인가?

정답 : 세그먼트

* OSI 7계층 전송단위

– 1계층 물리계층 : 비트

– 2계층 데이터링크계층 : 프레임

– 3계층 네트워크계층 : 패킷

– 4계층 전송계층 : 세그먼트

– 5계층 이후 : 데이터

  1. 다음이 설명하는 시큐어 코딩 가이드의 보안 약점에 대해서 쓰시오.

– 프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정을 통해 발생한다.

– 사용자, 프로그램 입력 데이터에 대한 유효성 검증 체계를 수립하고 실패 시 처리 설계 및 구현을 통해 대응한다.

정답 : 입력 데이터 검증 및 표현

시큐어 코딩 가이드

  1. 다음이 설명하는 라우팅 프로토콜은 무엇인가?
  • 최초의 라우팅 프로토콜
    • 거리 벡터 알고리즘 활용
    • 30초 주기로 전체 라우팅 정보 갱신
    • 변화 업데이트 시 많은 시간 소요
    • 라우팅 루프 발생 가능

정답 : RIP

  1. 다음이 설명하는 네트워크 장비는 무엇인가?
  • 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치
    • LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할 정답 : 게이트웨이
  1. 다음이 설명하는 패키징 도구 암호화 기술은 무엇인가?
  • 공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호기술
  • 공개키 알고리즘을 통한 암호화 및 전자서명을 제공하기 위한 복합적인 보안 시스템 환경
  • 암호화와 복호화키로 구성된 공개키를 이용해 송수신 데이터를 암호화하고 디지털 인증서를 통해 사용자를 인증하는 시스템

정답 : 공개키 기반 구조(PKI)

해설

* PKI ( Public Key Infrastructure )

  1. 다음은 테스트 케이스의 작성 순서이다. 작성 절차를 순서대로 나열하시오.

정답 : 가 >다 >나 >라 >바 >마

해설

– 자!(료확보)

– 우(선순위)리

– 요(구사항정의) 방법(결정)으로

– 테스트 케이스(정의)

– 타당성(확인)을

– 확인해보자!

  1. 다음은 흐름 설계 수행 절차이다. 괄호 () 안에 들어갈 용어를 쓰시오.

가. UI 설계안의 적정성 확인

나. 화면에 표현되어야 할 기능 및 비기능적 요구사항 검토

다. 화면의 입력 요소 및 유스케이스를 통한 UI 요구사항 확인

라. ( ① ) 설계

– UI 요구사항을 바탕으로 ( ② )별 시나리오 구상 → UI 요구사항으로 ( ② ) 세분화 → UI ( ① ) 설계

마. 기능 및 양식 확인

– Input Box, Combo Box, ( ③ ), Check Box에 대한 확인, 규칙 정의

정답 : 유스케이스, 액터, Radio Box

해설

– UI 흐름 설계

: 업무의 흐름이나 업무 수행과 관련된 일련의 클릭에 의해 화면의 위치와 흐름을 흐름도 형식으로 표현하는 활동

  1. 다음 아래의 요구사항을 기능적 요구사항과 비기능적 요구사항으로 구분해서 쓰시오.

가. 특정 함수의 호출시간은 5초를 넘지 말아야 한다.

나. 각 부서별 담당자가 홈페이지 게시물을 작성할 수 있도록 관리자 페이지가 제공되어야 한다.

다. 콘텐츠관리자가 예약정보를 입력하고 예약 현황을 파악할 수 있도록 다양한 통계와 관리 메뉴를 제공해야 한다.

라. 특정 게시물에서 해당 예약 접수 화면으로 이동할 수 있는 링크나 삽입 기능을 제공해야 한다.

마. 시스템 자원(CPU, 메모리 등)의 평균사용률은 최대 70%를 초과하지 않도록 구현해야 한다.

바. 회원 예약은 마이페이지에서 예약 진행사항 및 이용내역을 확인할 수 있어야 한다.

정답

– 기능적 요구사항 : 나, 다, 라, 바

– 비기능적 요구사항 : 가, 마

해설

– 기능적 요구사항 : 원하는 기능 자체에 대한 서술 (로그인, 회원조회)

– 비기능적 요구사항 : 기능에 대한 품질, 제약사항 서술(최대100명, 1시간 이내)

  1. 아래의 요구사항에 따라 작성된 유스케이스 다이어그램에서 괄호 ( ) 안에 들어갈 용어를 쓰시오.

– 관리자는 “시스템 구동”을 할 수 있다.

– 관리자는 “시스템 종료”를 할 수 있다.

– “시스템 구동” 및 “시스템 종료”를 수행하려면 “사용자 인증”을 수행해야 한다.

[유스케이스 다이어그램]

정답 : ① 시스템 구동 ② 시스템 종료 ③ <<include>>

해설

– 관리자가 “시스템 구동”, “시스템 종료” 기능을 사용하려면 우선 “사용자 인증”기능을 수행해야 한다.

– 이와 같이 두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 분리하여 새로운 유스케이스로 만든 경우, 원래의 유스케이스와 새롭게 분리된 유스케이스와의 관계를 포함(include)관계라고 하고, <<include>>로 표시한다.

* UML 스테레오 타입의 개념

– UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 매커니즘

– 형태는 기존의 UML의 요소를 그대로 사용하나 내부 의미는 다른 목적으로 사용하도록 확장

– ‘<< >>’ 길러멧 기호를 사용하여 표현

* <<boundary>>

– 시스템과 외부와의 경계에 걸쳐있는 클래스, 시스템 주변 환경과 시스템 내부 간의 커뮤니케이션을 담당

* <<enumeration>>

– 열거형 타입 클래스

* <<include>>

– 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계, 반드시 실행

* <<extend>>

– 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고 그렇지 않을 수도 있는 확장관계

  1. 다음 중 괄호 ( ) 안에 공통적으로 들어갈 라우팅 알고리즘을 쓰시오.

– ( ① ) 알고리즘은 인접 라우터와 정보 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘이다.

– ( ② ) 알고리즘은 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘이다.

정답 : ① 거리 벡터 ② 링크 상태

해설

* 동적 라우팅에 사용되는 알고리즘

* 거리벡터(Distance Vector)

– 거리와 방향만을 위주로 만들어진 라우팅 알고리즘

– 모든 이웃 라우터들에게 자신이 가진 모든 정보를 주기적으로 알려줌

– RIP, IGRP

* 링크상태(Link State)

– 라우팅 테이블을 구성하기 위해 딕스트라 알고리즘을 사용

– OSPF

* 경로벡터(Path Vector)

– 소스부터 모든 목적지까지의 경로는 스패닝 트리에 의해 결정

– BGP

참고

* 라우팅 프로토콜(Routing Protocol)

– 최종 목적지까지 패킷을 최소 비용 또는 최소 홉수를 알고리즘을 통해 적잘한 경로를 설정해주는 프로토콜

  1. 웹 서비스(Web Service)는 네트워크에 분산된 정보를 서비스 형태로 개방하여 표준화된 방식으로 공유하는 기술로써 서비스 지향 아키텍처(SOA) 개념을 실현하는 대표적인 기술이다. 아래 웹 서비스 구성도에서 밑줄 친 ①, ②, ③의 용어를 약술하시오.

정답

① UDDI ( Universal Description, Discovery, and Integration )

– 웹 서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소로 공개적으로 접근, 검색이 가능한 레지스트리이다.

– 기업이나 단체, 개인이 자신들의 서비스 내용을 인터넷 상에 등록할 수 있게하는 XLML 기반의 등록처이다. 이 등록처에 WSDL을 사용하여 수행한다.

② WSDL ( Web Services Description Language )

– 웹 서비스명, 제공 위치, 메시지 포맷, 프로토콜 정보 등 웹 서비스에 대한 상세 정보가 기술된 XML 형식으로 구현되어 있는 언어이다.

– 어떤 등록처나 저장소에 자료를 저장하려면 어떤 자료가 어디에 어떤 형식으로 저장되는지 알아야 사용이 가능한데 이런 특정 서비스의 설명과 접근 방법과 같은 전자적으로 접근하는 방법을 XML언어 기반으로 제공하는 기술이다.

③ SOAP ( Simple Object Access Protocol )

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

– 웹 상에 연결된 컴퓨터 속에 있는 각 객체들을 액세스 하기 위한 MS 사의 프로토콜인데 HTTP로 XML 구문을 사용하여 COM, DCOM, 자바 등이 수행될 수 있다.

해설

* 웹서비스

– 웹이라는 네트워크 환경에 연결된 서로 다른 컴퓨터들이 동적으로 서로 연결되어 소통하고 실행될 수 있도록 하는 동적 환경 구현을 위한 소프트웨어 컴포넌트 묶음

* 웹 서비스 묶음에는

– 단순 객체 접근 프로토콜(SOAP),

– 웹 서비스 기술 언어(WSDL),

– 전역 비즈니스 레지스트리(UDDI) 등의 표준 기술을 사용하는데 네트워크에 연결된 다른 컴퓨터 간의 분산 컴퓨팅을 지원하는 소프트웨어 및 기술들이다.

* 저장소로 UDDI를 사용하고, 저장소에 접근과 그 저장된 자료의 접근 형식을 적은 설명서 WSDL과 이 자료를 꺼내서 가져가는 실행 프로토콜인 SOAP로 구성되고 여기에는 XML이 사용된다.

  1. 다음 [보기]에 제시된 결함 관리 프로세스들을 순서대로 쓰시오.

[보기]

가. 에러 발견     마. 에러 분석

나. 에러 등록     바. 결함 확정

다. 결함 할당     사. 결함 조치 검토 및 승인

라. 결함 조치

정답 : 가 >나 >마 >바 >다 >라 >사

해설

– 두음쌤 : 발등 분확할 조검

  1. 아래는 현행 시스템 파악을 위한 3단계 절차이다. 괄호 ( ) 안에 들어갈 세부 절차를 쓰시오.

정답 : ① 아키텍처 파악 ② 소프트웨어 구성 파악

해설

* 현행 시스템 파악

– 사용자 요구사항을 확인하기 위한 준비단계

– 현행 시스템이 어떤 하위 시스템으로 구성되어 있는지, 제공하는 기능이 무엇인지, 다른 시스템들과 어떤 정보를 주고받는지, 어떤 기술요소를 사용하고 있는지, 사용하고 있는 소프트웨어 및 하드웨어는 무엇인지, 네트워크는 어떻게 구성되어 있는지 등을 파악하는 활동

* 목적

– 향후 개발하고자 하는 시스템의 개발 범위 및 이행방향성 설정에 도움을 주는 것

  1. 다음은 성능 분석 도구에 대한 설명이다. 괄호 ( ) 안에 들어갈 올바른 용어를 쓰시오.

– 애플리케이션의 성능 분석 도구는 ( ① ) 도구와 ( ② ) 도구로 분류된다.

– ( ① ) 도구는 애플리케이션에 부하나 스트레스를 적용하여 애플리케이션의 성능 측정 지표를 점검하는 도구로 종류에는 JMeter. LoadUI. OpenSTA 등이 있다.

– ( ② ) 도구는 애플리케이션이 실행되었을 때 시스템 자원 사용량을 확인하고, 분석이 가능한 도구로 종류에는 Scouter. Zabbix 등이 있다.

정답 : ① 성능 테스트 ② 시스템 모니터링

해설

* 성능/부하/스트레스(Performancd/Load/Stress) 점검 도구

– 애플리케이션의 성능 점검을 위해 가상의 사용자를 점검 도구 상에서 인위적으로 생성한 뒤, 시스템의 부하나 스트레스를 통해 성능 측정 지표인 처리량, 응답 시간, 경과 시간 등을 점검하기 위한 도구이다.

* 모니터링(Monitoring) 도구

– 애플리케이션 실행 시 자원 사용량을 확인하고 분석 가능한 도구로, 성능 모니터링, 성능 저하 원인 분석, 시스템 부하량 분석, 장애 진단, 사용자 분석, 용량 산정 등의 기능을 제공하여, 시스템의 안정적 운영을 지원하는 도구이다.

  1. 다음 ① ~ ④의 설명에 적합한 프로그래밍 언어를 [보기]에서 골라 쓰시오.

① 알고리즘의 연구개발에 이용하기 위한 목적으로 생성된 언어로, 절차형 언어로는 최초로 재귀 호출이 가능한 언어

② 수학 표기법을 나타내기 위한 목적으로 생성된 언어로 함수 호출 시 함수 이름 혹은 연산자가 첫 번째로 위치하여 피연산자가 이어서 위치하는 언어

③ 논리식을 기반으로 객체 간의 관계에 관한 문제를 해결하기 위해 사용되고, 인공지능이나 계산 언어학 분야, 자연언어 처리 분야에서 사용되는 언어

④ 함수형 프로그래밍 언어로 부작용이 없고, 코드가 간결, 에러 발생 가능성이 낮은 언어이며 재귀 함수나 대수적 자료형도 지원하는 언어

[보기]

[리스프(LISP), HTML, 알골(ALGOL), 하스켈(Haskell), 프롤로그(Prolog), 파이썬(Python), 펄(Perl)]

정답 :  ① 알골 ② 리스프 ③ 프롤로그 ④ 하스켈

해설

– 알고리즘 >알골 / 수학 >리스프 / 논리식 >Pro_log(ical) / 함수형 >하스켈

  1. 아래는 사용자 인터페이스(UI) 설계 기본 원칙에 대한 설명이다. 괄호 ( ) 안에 들어갈 설계 기본 원칙을 쓰시오.

– ( ① ): 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함

– ( ② ): 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작

– ( ③ ): 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작

– ( ④ ): 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작

정답 : ① 직관성 ② 유효성 ③ 학습성 ④ 유연성

  1. 아래는 이상 현상이 나타난 테이블이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.

정답 : 삽입

  1. 다음은 소프트웨어 아키텍처 4+1뷰이다. 괄호 안에 들어갈 용어를 쓰시오

논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰, ( ①  )

정답 : 유스케이스 뷰

  1. 다음 중 ① ~③의 설명에 해당하는 보안 약점을 [보기]에서 찾아서 쓰시오.

① SQL 삽입 공격, 크로스 사이트 스크립트(XSS) 공격을 유발할 수 있는 보안 약점

② 인증, 권한 관리, 암호화, 중요정보 처리를 부적절하게 구현 시 발생할 수 있는 보안 약점

③ 잘못된 세션에 의한 정보 노출, 제거되지 않은 디버그 코드, 시스템 정보 노출 등으로 발생할 수 있는 보안 약점

[보기]

ㄱ. 캡슐화 보안 약점

ㄴ. 입력데이터 검증 및 표현의 보안 약점

ㄷ. 보안 기능에 대한 보안 약점

ㄹ. 시간 및 상태 보안 약점

ㅁ. 에러 처리 보안 약점

정답 : ① ㄴ ② ㄷ ③ ㄱ

  1. 다음은 통합 테스트에 대한 설명이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오.

– ( ① )은/는 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈로 상향식 통합 테스트 수행 시 사용된다.

– ( ② )은/는 모듈 및 모든 하위 컴포넌트를 대신하는 더미 모듈로 하향식 통합 테스트 수행 시 사용된다.

– ( ③ )테스트는 모든 모듈을 동시에 통합 후 테스트를 수행하는 방식으로 단시간에 통합 테스트가 가능하다.

정답 : ① 테스트 드라이버(driver) ② 테스트 스텁(Stub) ③ 빅뱅

  1. 다음은 데이터 타입의 유형에 대한 설명이다. 알맞은 데이터 타입을 쓰시오.
  • 조건이 참인지 거짓인지 판단하고자 할 때 사용하는 타입
  • C언어에서는 미지원
  • C++, 자바에서는 참일 경우 true로 거짓일 경우 false로 표현
  • 파이썬에서는 참일 경우 True로 거짓일 경우 False로 표현

정답 : boolean

  1. SW 개발 보안의 3대 요소 중에서 인가되지 않은 개인 혹은 시스템 접근에 따라 정보의 노출을 차단하는 특성이 무엇인지 쓰시오.

정답 : 기밀성

해설

– SW 개발 보안의 3대 요소

* 기밀성(Confidentiality)

– 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되며, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음

* 무결성(Integrity)

– 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음

* 가용성(Availability)

– 인가받은 사용자는 언제라도 사용할 수 있음

  1. 다음에 해당하는 용어를 쓰시오

데이터 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상

정답 : 이상현상

  1. 요구사항 확인

1) 현행 시스템 파악

– 현재 개발하고자 하는 시스템의 개발 범위를 설정하기 위해 구성과 기능, 연계정보, 소프트웨어, 하드웨어, 네트워크의 구성을 파악하는 과정을 의미한다.

2) 현행 시스템 파악 절차

현행 시스템 구성 파악현행 시스템 기능 파악인터페이스 현황 평가
기간 업무지원 업무제공하는 기능 파악계층형 표시데이터 종류, 통신규약, 연계 유형
아키텍처 구성 파악소프트웨어 구성 파악
업무 수행 기술 요소들이 사용되는지 최상위 수준에서 파악소프트웨어 제품명, 용도라이선스 수적용 방식 명시
하드웨어 구성 파악네트워크 구성 파악
서버의 주 사양서버의 이중화, 수량네트워크 구성 파악을 위해 네트워크 연결 방식을 구성도로 작성

3) 소프트웨어 아키텍처(서술형)

– 여러가지 소프트웨어 구성요소와 외부 특성, 구성요소 간의 관계를 표현하는 시스템 구조 – 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

4) 소프트웨어 아키텍처 프레임워크(서술형)

소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 표준 기술을 의미한다.

– 기본 구조, 소프트웨어의 베이스(개발 기반), 역할 : 품질유지, 원칙, 지침

– 동일한 아키텍쳐 = 기본 구조가 같은 여러 형태의 결과물

* 소프트웨어 프레임워크의 특징

– 모듈화(Modularity)

: 프레임워크는 인터페이스에 의한 캡슐화를 통해서 모듈화를 강화하고 설계와 구현의 변경에 따르는 영향을 극소화하여 소프트웨어의 품질을 향상시킨다.

– 재사용성(Reusability)

: 프레임워크가 제공하는 인터페이스는 반복적으로 사용할 수 있는 컴포넌트를 정의할 수 있게 하여 재사용성을 높여준다. 또는 재사용성은 소프트웨어의 품질을 향상시킬 뿐만 아니라 개발자의 생산성도 높여준다.

– 확장성(Extensibility)

: 프레임워크는 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 넓게 사용할 수 있게 한다. 또한 애플리케이션 서비스와 특성을 변경하고 프레임워크를 애플리케이션의 가변성으로부터 분리함으로써 재사용성의 이점을 얻게 한다.

– 제어의 역흐름(Inversion of control)

: 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어하여 특정한 이벤트가 발생할 때 다형성을 통해 애플리케이션이 확장한 메소드를 호출함으로써 제어가 프레임워크로부터 애플리케이션으로 반대로 흐르게 한다.

5) 소프트웨어 아키텍처 4+1 뷰

* 정의 : 고객의 요구사항을 정리해둔 시나리오 4개의 관점으로 바라보는 소프트웨어적인 접근 방법

* 4+1뷰의 종류

– 유스케이스 뷰 : 아키텍처를 도축하고 설계하는 작업을 주도하는 뷰

– 논리 뷰 : 설계 모델의 추상화, 클래스 식별 -> 클래스 다이어그램

– 프로세스 뷰 : 런타임 시 스레드와 프로세스 사이의 상호 작용

– 배포 뷰 : 물리적인 노드의 구성 -> 배포 아이어그램

– 구현 뷰 : 정적인 소프트웨어 구현 -> 컴포넌트 뷰, 컴포넌트 다이어그램

* 런타임 : 컴퓨터 프로그램이 실행되고 있는 동안의 동작 상태

* 스레드 : 프로세스의 실행을 담당하는 실행의 기본 단위

* 프로세스 : 운영체제가 관리하는 실행 단위며 PCB를 가진 시스템

* 프레임워크 : 소프트웨어의 특정 부분을 설계 및 구현 시 재사용이 가능하도록 클래스 제공

6) 개발 기술 환경 정의

* 운영체제(서술형) : 사용자와 하드웨어의 인터페이스 역할을 하며 컴퓨터 시스템의 자원을 관리하는 소프트웨어

– 키워드 : 신뢰성, 성능, 기술 지원, 주변 기기, 구축 비용

* DBMS(서술형) : 사용자와 Database 사이에서 사용자의 요구에 따라 정보를 생성해주고 Database를 관리해주는 소프트웨어

– 데이터의 중복성과 종속성을 해결

– 키워드 : 가용성, 성능, 기술 지원, 상호 호환성, 구축비용

* JDBC : JAVA 언어를 이용하여 DB에 접근하여 관리할 수 있는 인터페이스

* ODBC : 응용프로그램에서 DB에 접근하여 데이터를 관리할 수 있는 표준 인터페이스

* 미들웨어 : 운영체제와 소프트웨어 Application 사이에서 원만한 통신이 이루어질 수 있도록 중개 및 제어 역할을 하는 소프트웨어

* 미들웨어의 종류

– DB(DataBase)

: 데이터베이스 벤더(Vendor)에서 제공하는 클라이언트에서 원격의 데이터베이스와 연결하기 위한 미들웨어

– RPC(Remote Procedure Call)

: 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어

– MOM(Message Oriented Middleware)

: ​메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어

– TP-Monitor(Transaction Processing Monitor)

: 항공기나 철도 예약 업무 등과 같은 온라인 트랜잭션 업무에서 트랜잭션을 처리 및 감시하는 미들웨어

– ORB(Object Request Broker)

: 객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어

– WAS(Web Application Server)

: 사용자의 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어

– 키워드 : 가용성, 성능, 기술 자원, 구축 비용

– WAS 종류 : Tomcat, JBoss, Jetty, JEUS

* 가비지 컬렉선 : 실제로 사용되지 않고 있지만 반환되지 않은 메모리 공간을 강제로 해제하여 사용할 수 있도록 하는 메모리 관리 기법

* 오픈소스 : 누구나 제한 없이 사용할 수 있는 소스코드를 공개한 라이선스를 만족하는 소프트웨어

– 키워드 : 라이선스 종류, 사용자의 수, 기술 지속 가능성 고려

* tpmC : 1분당 최대 처리 건수, 하드웨어 성능 지표로 사용

* OLTP/배치/데이터베이서 서버 -> tpmC

* WEB/WAS 서버 -> OPS(Operations per Second)

7) 요구사항

* 소프트웨어가 문제를 해결하기 위해 제공되는 서비스 설명과 제약조건을 나타낸다.

– 기능적 요구사항 : 시스템이 제공하는 기능, 서비스 (기능성, 완전성, 일관성)

– 비기능적 요구사항 : 기능외의 제약사항이나 보안적인 요소

– 사용자 요구사항 : 사용자 관점에서 시스템이 제공해야 할 기능 및 서비스

– 시스템 요구사항 : 개발자 관점

– 요구사항 개발 프로세스

도출분석명세확인
요구사항 식별
인터뷰
브레인스토밍
리서치
워크숍
요구사항 분류
개념 모델링
요구사항 협상
요구사항 할당
정형 분석
문서화
시스템 요구사항 명세서
시스템 정의서
요구사항 검토
프로토타이핑
모델 검증
– 인수 테스트
개념 모델링 : 요구사항 분석의 핵심으로요구사항을 단순화하여 개념적으로 표현한 것
* 유스케이스 다이어그램 : 액터(사용자)와 시스템의 관계를 표현하고 기능적인 요구사항을 유스케이스라는 단위로 표현
* UML : 개발자들이 효율적으로 의사소통을 하기 위해 만들어진 표준 통합 모델링 언어요구사항 할당 : 아키텍처 구성요소 식별정형 분석 : 구문과 의미를 갖는 정형화된 언어를 수학적 기호로 표현하여 분석모델 검증 : 정적 분석 수행인수테스트 : 사용자의 입장에서 테스트하는 방법으로 알파 테스트와 베타 테스트가 존재프로토타이핑 : 새로운 요구사항을 도축하기 위한 수단 또는 요구사항에 대해 소프트웨어 엔지니어가 해석한 것으로 확인하기 위한 수단

8) 비용 산정 모델

– 하향식 선정 방법 : 전문가 판단, 델파이 기법

– 상향식 선정 방법 : LOC, M/M(Man/Month), Putnam, COCOMO

* Putnam : 개발 주기의 단계별 요구, 인원 분포도 가정

* COCOMO : 보헴이 정의 / 프로그램 규모에 따라 비용 산정

* 상호 운용성 : 서로 다른 시스템 간의 데이터를 주고 받아 효율적으로 운용될 수 있는 특성

9) 분석 모델 검증

(1) 유스케이스 모델 검증 ( 액터, 유스케이스 )

(2) 개념 수준의 분석 클래스 검증

(3) 분석 클래스 검증

– 경계 : 외부 액터와 상호작용

– 엔티티 : 시스템이 유지해야 하는 정보를 관리

– 제어 : 시스템이 제공하는 기능의 로직, 제어 담당

– 기술적 타당성 검토

(1) 성능 및 용량 산정의 적정성

(2) 시스템 간 상호 운용성

(3) IT 시장 성숙도 및 트렌드 부합성

(4) 기술적 위험 분석

10) UML

* 정의 : 개발자들이 원활한 의사소통을 하기 위해 고안된 표준화 통합 모델링 언어

* 6개의 구조 다이어그램 + 7개의 행위 다이어그램

* 구성요소 : 사물, 관계, 다이어그램

– 사물 : 구조, 그룹, 행동, 주해

– 관계

– 연관관계 : 2개 이상 사물이 서로 연관

– 집합관계 : 하나의 사물이 다른 사물에 포함

– 포함관계 : 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계

– 일반화 : 상속 관계

– 의존 : 필요에 의해 짧은 기간 동안 관계 유지

연관
Association
집합
Aggregation
포함
Composition
일반화
Generalization
의존
Dependency
실체화
Realization
정의2개 이상사물 서로 관련하나의 사물다른 사물에포함포함되는 사물에게 영향 미침사물끼리일반적, 구체적표현연관은 있으나영향줄 때만연관을 유지행위인터페이스로서로그룹화할 수 있는 관계
표기법
* 다수, .. 또는
상위개념 실선일시적, 점선상위개념, 점선
예시자동차타이어컴퓨터
마우스
마우스
마우스 리시버
토레타 포카리 이온음료고객등급
사은품
벽시계
시간확인

– 실체화 : 서로를 그룹화할 수 있는 인터페이스

– 다이어그램(6개의 구조 다이어그램 + 7개의 행위 다이어그램)

– 6개 구조 다이어그램 : 클래스, 객체, 컴포넌트, 배치

– 컴포넌트 다이어그램 : 컴포넌트와의 관계나 인터페이스를 표현

– 배치 다이어그램 : 물리적인 요소들의 위치 표현

– 7개 행위 다이어그램 : 유스케이스, 시퀀스, 커뮤니케이션, 상태

구조적 다이어그램행위 다이어그램
종류키워드종류키워드
클래스구조유스케이스모델링
객체관계시퀀스메시지
컴포넌트구현, 인터페이스커뮤니케이션메시지 + 연관관계
배치구현, 위치상태상태 변화
복합체 구조내부 구조활동로직 흐름
패키지그룹상호작용 개요제어 흐름
타이밍시간제약

* 유스케이스 다이어그램 구성요소 : 액터, 유스케이스, 시스템, 관계

* 유스케이스 : 액터에게 제공하는 서비스, 기능을 표현

  1. 데이터 모델링 절차

* 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링

– 개념적 데이터 모델링 : 현실 세계의 인식을 추상적인 개념으로 모델링

– 논리적 데이터 모델링 : 개념적 구조를 컴퓨터가 이해할 수 있는 형태로 변환

1) 논리 데이터 모델링

– 업무영역의 업무 데이터 및 규칙을 구체적으로 표현

– 특징 : 정규화, 완전성, 독립성, 포용성

– 속성 : 개체(사각형), 속성(동그라미), 관계(마름모)

2) 정규화(서술형)

– 관계형 데이터베이스 설계 시 중복을 최소화하여 데이터를 구조화하는 과정

(데이터 중복 최소화 + 데이터 구조화)

* 이상현상(서술형) : 데이터의 중복성으로 인해 테이블을 조작할 때 발생하는 비합리적인 현상

– 삽입이상 : 정보 저장 시 불필요한 세부사항을 입력해아 하는 경우

– 삭제이상 : 삭제 시 원치않는 정보까지 삭제되는 경우

– 갱신이상 : 중복 데이터에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

* 정규화 단계

– 1NF(제1정규화) : 테이블 내의 속성값은 원자 값을 가져아 한다.

– 2NF(제2정규화) : 부분 함수 종속성을 제거해야 한다.

– 3NF(제3정규화) : 이행 함수 종속성을 제거해야 한다.

– BCNF : 결정자 함수의 종속성을 제거하고 모든 결정자가 후보키 집합에 속한 정규형

– 4NF(제4정규화) : 다중 값 종속을 제거해야 한다.

– 5NF(제5정규화) : 조인 종속성을 제거해야 한다.

3) 물리 데이터 모델링

– 논리 데이터 모델을 DBMS 특성 및 성능을 고려하여 구체화시킨 모델

< 모델링 절차 >

(1) 개체 -> 테이블

(2) 속성 -> Column

(3) UID -> PK(Primary Key)

(4) 관계 -> 외래키

(5) Column 길이 및 유형 정의

(6) 반정규화(2020 1회 실기 기출) : 시스템의 성능 향상을 위해 수행되는 의도적인 정규화 원칙을 위배하는 행위

* 참조 무결성 제약 조건 : 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건

* 인덱스 : 검색 연산의 최적화를 위해 키값과 포인터의 쌍으로 구성되는 데이터 구조

– 적용기준 : 분포도가 10~15%이내

– 특징

분포도가 좋은 칼럼은 단독으로 생성

자주 조합되어 사용되는 칼럼은 결합 인덱스로 생성

지나치게 많은 인덱스는 오버헤드 발생 가능

* 뷰 : 사용자에게 허용된 정보만 보여주기 위해 하나 이상의 테이블로부터 유도된 논리적인 가상 테이블

– 속성 : REPLACE, FORCE, NOFORCE

– 논리적인 독립성을 제공하고 접근 제어를 통한 자동 보안 기능 제공

* 클러스터 : 데이터 접근 효율을 높이기 위해 동일한 성격의 데이터를 같은 데이터 블록에 저장하는 물리적 저장 방법

– 특징 : 조회 속도는 향상시키지만 삽입, 삭제, 수정의 기능은 저하

– 종류 : 단일 테이블 클러스트링, 다중 테이블 클러스트링

* 파티셔닝 : 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나누는 것

– 레인지 파티셔닝 : 연속되는 숫자나 날짜 기준으로 파티셔닝

– 해시 파티셔닝 : 파티션 키의 해시 함수 값으로 파티셔닝

– 리스트 파티셔닝 : 데이터에 대한 명시적 제어가 가능한 파티셔닝

– 컴포지트 파티셔닝 : 범위 분할 이후 해시 함수를 적용하는 파티셔닝

– 장점 : 성능 향상, 가용성 향상, 백업 기능

4) 데이터 조작 프로시저(4장과 함께 보기)

– 저장된 프로시저, 저장된 함수, 저장된 패키지, 트리거

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

– PL/SQL : 표준 SQL을 기반으로 Oracle에서 개발한 데이터 조작 언어

– JDBC : 자바에서 DB를 사용할 수 있도록 연결해주는 인터페이스

* 프로시저 생성 SQL문

CREATEORREPLACE

(nameINVARCHAR)

ISBEGIN

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

– SEVEROUTPUT ON : PL/SQL 처리 결과를 출력

– SHOW ERRORS : PL/SQL 오류 발생 출력

* APM (Application Performance Monitoring) : 안정적인 시스템 운영을 위한 성능 모니터링 도구

5) 데이터 조작 프로시저 최적화

* 옵티마이저 : SQL을 가장 빠르고 효율적으로 수행할 수 있는 최적의 경로 생성

– 실행 계획 : 최적의 처리 경로

* RBO : 규칙(Rule) 기반 옵티마이저

* CBO : 비용(Cost) 기반 옵티마이저

* 통합 구현 : 사용자의 요구사항을 해결하고, 새로운 서비스 창출을 위해 단위 기능을 하는 모듈 간의 연계와 통합

* 통합 구현은 시스템 아키텍처 구성, 송수신 방식, 송수신 모듈 구현 방법 등에 따라 다양하므로 구축하고자 하는 환경과 사용자 요구사항에 따라 적합한 통합 구현 방법을 설계한다.

  1. 연계 데이터 구성

1) 연계 요구사항 분석

* 통합 구현을 위해 연계 시스템 아키텍쳐를 설계하고, 연계 데이터를 정의하기 위해서는 사용자 요구사항 분석은 중요한 작업이다.

* 분석 기법

– 인터뷰, 리서치

– 체크리스트 : 시스템 운영환경, 성능, 보안, 데이터 주기 등 기준에 대한 점검을 통한 분석 기법

– 델파이 기법 : 통합 구현 및 연계 전문가, 시스템 아키텍처, 업무 전문가 등 각 분야 전문가로부터 연계 데이터 및 사용자 요구사항 식별

– 브레인스토밍 : 소속된 인원들이 자연스럽게 제시된 아이디어 목록을 통해 분석

– 분석 참고 문서 : 코드 정의서, 테이블 정의서, 응용 프로그램 구성도, 시스템 구성도

* 개체 정의서 : 개념 모델링 단계에서 도출한 개체의 타입과 속성 식별자 정보를 명세화한 문서

* 테이블 정의서 : 테이블을 구성하는 칼럼의 특성 및 인덱스를 문서화

* 인터페이스 명세서 : 인터페이스 정의서 기반으로 상세화

* 송신 시스템과 수신 시스템 간의 인터페이스 방식, 주기, 기록, 데이터 크기, 인터페이스 ID 등 기술

* 연계 시스템 구성 : 송신 시스템, 수신 시스템, 중계 서버

* 인터페이스 시스템의 데이터 표준 : 공통부, 개별부, 종료부

2) 연계 매커니즘

– 데이터 생성과 전송을 담당하는 송신 체계와 데이터 수신과 DB 반영을 담당하는 수신 체계로 구성

< 연계 방식 >

* 직접 연계 : 중간 매개체 없이 송수신 시스템 연결

– DB Link : DB에서 제공하는 DB 링크 객체 이용

– DB Connection : DB Connection Pool 생성

– API/Open API : API 생성

– JDBC : JDBC 드라이브 이용

– Hyper Link : 링크 속성, Hub &Spoke + ESB, 병목 현상 최소화

* 간접 연계 : 중간 매개체를 통한 연계

– EAI : 기업에서 운영되는 이기종 간 시스템 연계 솔루션

– ESB/Web Service : WSDL과 SOAP 프로토콜을 이용한 시스템 연계

– Socket : 포트 할당, 클라이언트 요청 연결

* 연계 메커니즘 주행 절차

연계 데이터 추출 생성 -> 코드 매핑/변환 -> 파일 생성 -> 로그 기록 -> 송수신 어댑터 -> 전송 -> 반영

3) 연계 모듈 기능 구현

– EAI : 기업에서 운영되는 이기종 간 시스템 연계 솔루션

– Point – to Point : 가장 기본적, 변경 재사용 어려움

– Hub &Spoke : 허브 시스템, 확장, 유지보수 용이

– Message Bus(ESB) : 미들웨어를 두고 처리, 뛰어난 확장성

– Hybrid : Hub &Spoke + ESB, 병목 현상 최소화

* ESB : 기업에서 운영되는 이기종 간의 서비스를 통합하여 하나의 시스템으로 관리 운영할 수 있는 기술

– 느슨한 결합 : 특정 서비스를 변경해도 연결된 다른 서비스에 영향을 주지 않는 구조

– 개발자가 서비스를 개발하고 적절한 API를 통해 서비스 간에 통신을 하는데 도움이 되는 인프라 스트럭처 소프트웨어

– SOA가 실현되는 플랫폼으로 사용될 수 있지만 ESB는 서비스가 흐르는 매체일 뿐이고 SOA의 구현과 서비스 구성 및 배치를 위한 기능을 제공

EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로기업 내 APP 통합 연계미들웨어(BUS)를 이용하여서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

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

– SOAP, WSDL, UDDI

– SOAP : HTTP, HTTPS, SMTP 프로토콜을 사용하여 XML 기반의 메시지를 교환하는 프로토콜

– WSDL : 웹 서비스에 대한 상세 정보를 기술한 파일

– UDDI : WSDL을 등록하고 검색하기 위한 저장소

* XML(2020 1회 실기 기출)

– HTML 문법이 호환되지 않는 문제와 SGML의 복잡함을 해결하기 위해 고안된 마크업 언어

* JSON(2020 1회 실기 기출)

– 비동기 브라우저, 서버 통신을 위해 ‘속성-값’의 쌍으로 이루어진 개방형 표준 포맷

* AJAX(2020 2회 실기 기출)

– JavaScript를 이용한 비동기 통신으로 클라이언트와 서버 간 XML 데이터를 주고받는 기술

* REST

– URL을 통해 자원을 명시하고 HTTP 메서드를 통해 해당 자원을 조작할 수 있는 기법

* 테스트 케이스

– 명세 기반 테스트를 산출물로 입력값, 실행 조건, 기대 결과로 구성된 테스트 항목

  1. 서버 프로그램 구현

1) 개발 환경 구축

* 개발 도구 분류

– 구현 도구 : 코드 작성과 디버깅 및 수정 작업

– 테스트 도구 : 코드의 기능과 품질 향상 ( xUnit, PMD, Findbugs, Cppcheck, Sonar )

– 형상관리 도구 : 코드와 산출물에 대한 버전 관리

– 빌드 도구 : 코드의 빌드와 배포 수행 ( Gradle, Maven, Ant )

* 서버 하드웨어 개발 환경

ClientWeb ServerWASDB(데이터 베이스)
Client 하드웨어 개발 환경웹상의 정적 콘텐츠
HTTP를 이용한 요청/응답
동적 콘텐츠데이터 수집 및 관리

* 소프트웨어 개발 환경

운영체제미들웨어DBMS
하드웨어와 사용자 인터페이스컴퓨터와 컴퓨터를 연결
쉽고 안전하게 프로그램 사용
사용자 DB 사이 위치

* JVM : 시스템 메모리를 관리하고 자바 기반 Application을 위해 실행 환경 제공

* 형상 관리(SCM; Software Configuration Management) (2020 실기 2회 기출문제 – 단답형)

– 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

– 소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보

– 형상 관리는 소프트웨어 개발의 전 단계에 적용되는 활동이며, 유지보수 단계에서도 수행

– 형상 관리는 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함

* 형상 관리 기능의 종류 : 형상 식별, 버전 제어, 형상 통제, 형상 감사, 형상 기록

– 형상 식별

: 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 함

– 버전 제어

: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구(Tool)를 결합시키는 작업

– 형상 통제(변경 관리)

: 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업

– 형상 감사

: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업

– 형상 기록(상태 보고)

: 형상의 식별, 통제, 감사 작업의 결과를 기록 관리하고 보고서를 작성하는 작업

* 베이스라인(단답형) : 개발 과정의 각 단계에서 나온 산출물들의 변화를 통제하는 시점

2) 공통 모듈 구현

* 모듈(서술형) : 하나의 소프트웨어 또는 하드웨어 단위

– 소프트웨어 설계에서 기능 단위로 분해하여 추상화되어 재사용 및 공유가 가능한 단위

* 모듈화(서술형) : 모듈을 통해 소프트웨어의 성능을 향상시키고 디버깅, 수정, 통합을 용이하게 하는 설계 기법

– 모듈화 기법 : 루틴, 메인 루틴, 서브 루틴

* 루틴 : 소프트웨어의 특정 동작을 수행하는 코드

* 공통 모듈

– 기능을 분할하고 추상화하여 성능 향상 및 유지 보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법

– 공통 모듈 구현 비용

: 모듈 개수 ↑ >>통합 비용 ↑

: 모듈 개수 ↓ >>개발 비용 ↑

* 공장에서 모듈(부품)생산할 때 모듈 개수가 많다면 인프라 구축으로 인해서 개발 비용은 별로 들지 않지만 통합적인 비용이 많이 들 수 있다. 반대로 공장에서 적은 모듈의 개수를 생산한다면 각각의 모듈에 대한 개발 비용이 들 수 있다.

* 결합도와 응집도

– 결합도 : 상호의존의 정도, 결합도가 약해야 품질이 상승

[ 결합도가 약한 순서 -> 강한 순서 ]

data – stamp – control – external – common – content

자스(잤으)니까 합격제외 공부는 내)처럼

자료-데이터 / 스탬프-자료구조 / 제어-다른 모듈에서 흐름 파악 / 외부-참조 / 공통-공유되는 / 내용-직접참조,다른모듈에서 사용

– 자료: 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식

– 스탬프: 두 모듈이 동일한 자료 구조를 조회하는 경우

– 제어: 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우, 다른 모듈에서 흐름을 제어

– 외부: 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때

– 공통: 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때

– 내용: 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때

( 다른 모듈에서 사용하는 경우 )

– 응집도 : 정보은닉 개념 확장, 응집도가 강할수록 품질이 좋음

[ 응집도가 강한 순서 -> 약한 순서]

functional – sequential – communication – procedural – temporal – logical – coincidental

기엽고 순진한 교회오빠는 절은 시러 노우

기능-단일 / 순차-나온것 입력으로 / 통신-동일한입출력 다른기능수행

절차-다수의 관련기능 순차수행 / 시간-특정시간 / 논리-유사한 성격 / 우연-서로 관련 없는 요소

– 기능적 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우

– 순차적 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음활동의 입력 데이터로 사용할 경우

– 통신적(교환적) : 동일한 입출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우

– 절차적 : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우

– 시간적 : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성한 경우

– 논리적 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리요소들이 하나의 모듈이 되는 경우

– 우연적 : 모듈 내부의 각 구성요소들이 서로 관련 없는 요소로만 구성된 경우

3) 공통 모듈 구현 절차

DTO/VO -> SQL -> DAO -> Service -> Controller -> View

* DTO(Data Access Object) : 프로세스 사이에서 데이터 전송

* VO(Value Object) : 고정 클래스가 가지는 Object

* DAO(Data Transfer Object) : 특정 타입의 DB의 추상 인터페이스를 제공하는 객체

*아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결방식 또는 예제를 의미한다. SW시스템 구조 구성위한 기본적인 윤곽 제시

아키텍처 장점:시행착오 줄임, 개발시간 단축, 고품질 SW생산,의사소통 잘됨

손쉬운 유지보수,개발전 특성예측 가능

아키텍처 패턴의 종류:

*레이어패턴:특정 계층만을 교체해 시스템을 개선(OSI참조모델)

*클라이언트-서버:하나의 서버컴포넌트와 다수의 클라이언트컴포넌트로 구성

*파이프-필터:대표적으로 UNIX의 쉘이 있다. 필터 재사용성 좋고, 확장용이

* MVC 패턴 : Model, View, Controller로 이루어진 패턴(아키텍쳐)

-모델: 서브시스템의 핵심기능과 데이터 보관

– 뷰 : 사용자에게 정보를 표시한다.

– 컨트롤러 : 사용자로부터 받은 입력을 처리한다.

*마스터-슬래이브 패턴: 장애허용시스템,병렬컴퓨터시스템에서 활용

*브로커패턴:분산환경 시스템에서 주로 활용

*피어-투-피어패턴:피어를 하나의 컴포넌트로 간주, 멀트스레딩 방식사용

*이벤트-버스:4가지 이벤트생성소스,수행리스너,통로채널,관리하는버스로 구성

*블랙보드패턴:음성인식,차량식별,신호해석등활용(해결책없는문제처리유용패턴

*인터프리터패턴:특정언어로 작성된 프로그램 코드를 해석.컴포넌트 설계사용

* 디자인 패턴 종류 설명

모듈간 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 도는 예제를 의미한다.

디자인패턴은 재사용할 수 있는 기본형 코드들이 포함되어 있다.

생성 패턴
(Creational Pattern)
구조 패턴
(Structural Pattern)
행위 패턴
(Behavioral Pattern)
객체의 생성과 관련된 패턴클래스나 객체들을조합하여
더 큰 구조로만들 수 있게 해주는 패턴
클래스나 객체들이서로 상호작용하는
방법이나 책임 분배 방법을 정의하는 패턴
추상 팩토리(Abstract Factory)
빌더(Builder)
팩토리 메소드(Factory Method)
프로토타입(Prototype)
싱글톤(Singleton)
어댑터(Adapter)
브리지(Bridege)
컴포지트(Composite)
데코레이터(Decorator)
퍼싸드(Facade)
플라이웨이트(Flyweight)
프록시(Proxy)
책임 연쇄(Chain of Responsibility)
커맨드(Command)
인터프리터(Interpreter)
반복자(Iterator)
중재자(Mediator)
메멘토(Memento)
옵서버(Observer)
상태(State)
전략(Strategy)
템플릿 메소드(Template Method)
방문자(Visitor)

< 생성 패턴 >팩프로 추운데 싱글쳤어 언빌리버블

추상팩토리는 서로 다른 부품을 조립만 하는 조립공장, 빌더는 건축가가 블록을 조립하는 모습, 팩토리 메소드는 부품부터 완성품가지 통째로 찍어내는 공장, 프로토타입은 원형을 두고 복제품을 만드는 것, 싱글톤은 식당에서 누구나 사용할 수 있지만, 하나뿐인 정수기를 연상해보세요.

* 추상 팩토리

– 동일한 주제의 다른 팩토리를 묶어줌

– 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

* 빌더

– 생성과 표기를 분리해 복잡한 객체를 생성

* 팩토리 메소드

– 생성할 객체의 클래스를 국한하지 않고 객체를 생성

– 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴

* 프로토타입

– 기존 객체를 복제함으로써 객체를 생성

* 싱글톤

– 한 클래스에 한 객체만 존재하도록 제한

– 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

< 구조 패턴 > 어브가 퍼플색 컴프데 샀어

어댑터는 전압을 맞춰주는 변압기, 브리지는 두 섬을 ᅟᅧᆫ결하는 다리, 컴포지트는 폴더와 파일을 합성한 것, 데코레이터는 온갖 것으로 장식된 눈사람, 퍼싸드는 외부의 리모컨 버튼만으로 복잡한 명령들을 간편하게 수행하는 것, 플라이웨이트는 부담을 가볍게 하기 위해 물품을 공유하는 것, 프록시는 내가 하기 어려운 법률업무를 대리해서 처리해주는 변호사라고 염두해두세요.

* 어댑터

– 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움

* 브리지

– 추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있음

* 컴포지트

– 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있음

– 여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라리언트에서 구별없이 다루게 해주는 패턴

* 데코레이터

– 기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있음

* 퍼싸드

– 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공

* 플라이웨이트

– 다수의 유사한 객체를 생성, 조작하는 비용을 절감할 수 있음

* 프록시

– 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공함

< 행위 패턴 > 옴메, 반중인이 책방에서 상전노릇하네 템플스테이로 커몬

책임연쇄는 위에서 쏟아지는 물을 여러 물받이가 연속해서 나눠 받는 물레방아, 커맨드는 각종 명령어를 하나로 합쳐둔 것, 인터프리터는 언어 변역가, 반복자는 음악파일의 다음 곡 재생처럼 같은 명령의 반복, 중재자는 물품매매를 중개해주는 인터넷사이트, 메멘토는 기억속의 그때로 돌아가는 것, 옵서버는 변화를 지켜보고(옵서버) 알려주는 것. 상태는 환자의 상태에 따라 치료방법이 다른 것, 전략은 여러전략들은 만들고 원하는 전략을 선택하여 쓰는 것, 템플릿메소드는 세모,네모.동그라미를 그리는 방법들을 도형이라는 하나의 큰 틀(템플릿)로 묶는 것. 방문자는 책을 만들기 위해 저자.편집자.홍보팀을 번갈아가며 방문하는 것과 비교한다고 염두해 두세요.

* 커맨드

– 위의 명령어를 각각 구현하는 것보다는 위 그림처럼 하나의 추상 클래스에 메서드를 하나 만들고 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행하는 것

– 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴

* Observer 패턴(2020 실기 1회 기출문제)

– 어떤 클래스에 변화가 일어났을 때, 이를 감지하여 다른 클래스에 통보해주는 것

– 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 패턴

* 템플릿 메소드

– 상위 클래스에서는 추상적으로 표현하고, 그 구체적인 내용은 하위 클래스에서 결정되는 디자인 패턴

– 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴

4) 팬 인 팬 아웃(2020 실기 1회 기출문제)

– 소프트웨어의 구성 요소인 모듈을 계층적으로 분석하기 위해서 팬 인, 팬 아웃 활용

– 팬 인 : 어떤 모듈을 제어하는 수, 해당 모듈로 들어오는 모듈의 수 (능동태 느낌)

– 팬 아웃 : 어떤 모듈에 의해 제어되는 수, 해당 모듈에서 나가는 모듈의 수 (수동태 느낌)

* 공통 모듈 테스트 : 화이트 박스 테스트 // IDE 도구를 활용하여 디버깅 진행

– 화이트박스 검사

: 내부 소스코드를 확인하며 의도한 설계 흐름에 따라 코드가 실행되는지, 실행흐름에서 벗어나 불필요한 코드는 없는지 살펴봄 + 프로그램 로직을 이해하고 내부 구조와 동작을 검사하는 테스트 기법

– 블랙박스 검사

: (내부 코드를 보지 않고) 사용자 요구사항 시점에서 기능이 잘 작동하는지 살펴봄 + 인터페이스 오류, 입력값에 목표 결과값이 나오는지 등을 봄

– JUnit : 자바 프로그래밍 언어용 단위 테스트 도구

– 어노테이션 : 주석을 달아 특별한 의미를 부여하는 메타데이터

* Assert 메소드

– JUnit에서 가장 많이 이용되는 단정(Assert) 메소드

– assertEquals(a, b) : 객체 a와 b가 일치함을 확인 (객체의 내용)

– assertSame(a, b) : 객체 a와 b가 같은 객체임을 확인 (객체 자체)

5) 배치 프로그램

* 배치 프로그램 : 사용자와 상호작용 없이 일련의 작업을 작업 단위로 묶어 정기적으로 반복 수행하는 일괄 처리 방법

* 배치 스케줄러 : 일괄처리를 위해 주기적으로 발생시키는 작업 지원 도구

– 스프링 배치 : 대용량 처리를 제공하는 스케줄러

– 쿼츠 스케줄링 : 플러그인을 통해 유연성을 제공하는 오픈 소스 기반 스케줄러

– Cron 표현식 : 스케줄러를 실행시키기 위해 작업이 실행되는 주기를 설정하는 표현식

– Cron 표현식 순서 : 초 분 시 일 월 요일 연도

– 특수문자 의미

(1) * : 모든 값

(2) ? : 특정한 값이 없음

(3) – : 범위를 뜻함 (예) 월요일에서 수요일까지는 MON-WED로 표현

(4) , : 특별한 값일 때만 동작 (예) 월,수,금 MON,WED,FRI

(5) / : 시작시간 / 단위  (예) 0분부터 매 5분 0/5

(6) L : 일에서 사용하면 마지막 일, 요일에서는 마지막 요일(토요일)

(7) W : 가장 가까운 평일 (예) 15W는 15일에서 가장 가까운 평일 (월 ~ 금)을 찾음

(8) # : 몇째주의 무슨 요일을 표현 (예) 3#2 : 2번째주 수요일

– 유형 : 이벤트 배치, 온디멘드 배치, 정기 배치

– 온디멘드 배치 : 사용자의 명시적 요구가 있을 때마다 실행하는 방법

– 정기 배치 : 정해진 시점(주로 야간)에 실행하는 배치

* 배치 프로그램이 가지는 필수 요소

>> 배치 프로그램 : 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식

– 초기의 배치프로그램 방식은 사용자와 상호작용하는 것이 불가능했지만, 운영체제가 발전함에 따라 프로그램 입출력을 통해 상호작용하는 것이 가능해짐

– 즉, 개별적으로 어떤 요청이 있을 때마다 실시간으로 통신하는 것이 아닌 한꺼번에 일괄적으로 대량 건을 처리하는 것

– 보통 정해진 특정한 시간에 실시함

– 사용하는 이유 : 업무의 효율성과 비효율적인 시스템의 과부하를 줄이기 위해서

– 대용량 데이터 : 대용량의 데이터를 처리할 수 있어야 함

– 자동화 : 심각한 오류 상황 외에는 사용자의 개입없이 동작해야 함

– 견고성 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 함

– 안정성 : 어떤 문제가 생겼는지 언제 발생했는지 등을 추적할 수 있어야 함

– 성능은 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 함

  1. 인터페이스 구현

1) 인터페이스 산출물

* 인터페이스 설계서 ( 가장 큰 단위의 설계서 )

– 이기종 시스템 및 컴포넌트 간 데이터 교환 및 처리를 위해 각 시스템이 교환되는 데이터, 업무, 송수신 주체 등이 정의된 문서

– 상세기능 인터페이스 정의서 : 상세기능 인터페이스 목록 + 상세기능 인터페이스 정의서

– 시스템 인터페이스 정의서 : 시스템 인터페이스 목록 + 시스템 인터페이스 정의서

* 인터페이스 정의서

– 송수신 정보 구체화, 인터페이스 상세 정보

* 인터페이스 데이터 표준 확인

– 상호 연계하고자 하는 시스템 간 인터페이스 되어야 할 데이터 형식과 표준 정의

* 컴포넌트 명세서 : 컴포넌트 개요, 내부 클래스 동작, 인터페이스를 통해 외부와 통신하는 명세 정의

* 인터페이스 명세서 : 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부정보를 명시한 명세서

2) EAI(Enterprise Application Interface)

– 기업에서 운영되는 이기종 간의 시스템 연계 솔루션

EAI 방식 종류
Point to Point 방식1:1 단순 통합 방식
Hub &Spoke 방식허브 시스템을 통하여 데이터를 전송하는 중앙 집중형 방식
Message Bus 방식애플리케이션 사이에 미들웨어를 두고 연계하는 방식
Hybrid 방식내부 – Hub &Spoke 방식, 외부 – Message Bus 방식

3) ESB(Enterprise Service Bus)

– 기업에서 운영되는 이기종 시스템을 하나로 통합하여 관리하는 방식

* 느슨한 결합 : 서비스를 변경하여도 다른 서비스에 영향을 주지 않는 유연한 구조

* 어댑터 : 애플리케이션을 연결하는 EAI 핵심 장치

EAI 방식ESB 방식
구성도APPESB(BUS)
개념미들웨어(Hub)를 이용하여 Biz로직을 중심으로기업 내 APP 통합 연계미들웨어(BUS)를 이용하여서비스 중심으로 서비스를 지원하기 위한 관련 시스템의 유기적 연계 (SOA의 토대가 됨)
특징단일 접점인허브 시스템을 통해 시스템을 통합하는 중앙 집중식 방식
– HUB장애 시 전체 영향
각 시스템을BUS를 통해 연결하므로 뛰어난 확장성, 유현성, 신속성 제공
– network에 의존적

4) 인터페이스 기능 구현

(1) 송신 측에서 필요한 데이터를 선택하여 전송

(2) 필요 항목에 대해서 데이터 전달

(3) 전달 후 수신 측으로부터 전달 여부에 대한 값 반환

* JSON(2020 실기 1회 기출문제)

– 비동기식 브라우저/서버 통신을 위해 “속성-값”의 쌍으로 이루어진 오브젝트를 전달하기 위한 인간이 읽기 쉬운 텍스트를 사용하는 개방형 표준 포맷

* REST(단답형)

– URL 자원을 활용하여 HTTP 메서드를 주고받는 웹 아키텍처

* 직렬화(단답형)

– 데이터 구조나 오브젝트 상태를 다른 컴퓨터 환경에서 저장하고 재구성할 수 있는 포맷으로 변환하는 과정

5) 인터페이스 보안 취약점 및 보안 구현

* 스니핑(단답형) : 직접 공격하지 않고 데이터를 몰래 들여다보는 공격 기법

* 인터페이스 보안 취약점 ( 9장 내용과 동일 ) – 입어 보니 시원한 애 코 캡

– 입력 데이터 검증 및 표현

– 보안 기능

– 시간 및 상태

– 에러 처리

– 코드 오류

– 캡슐화

– API 오용

6) 데이터베이스 보안 적용 ( 9장 내용과 동일 )

* DB 암호화 알고리즘

– 대칭키 : 암호화와 복호화의 암호키가 동일 ( DES / AES / SEED )

: SEED : 블록 암호화

– 비대칭키 : 암호화와 복호화의 암호키가 다름 ( RSA / ECC / EIgamal )

: RSA : 공개키 암호화 알고리즘, 소인수분해

– 해시 : MD5 ( 2020 실기 1회 기출 ) / SHA

* DB 암호화 기법

– API 방식 : 애플리케이션 레벨에서 암호화 모듈을 적용

– Plug-In 방식 : DBMS에서 Plug-In 모듈로 동작하는 방식

– Hybrid 방식 : API 방식과 Plug-In 방식의 장점을 합친 방식

* IPSec(2020 실기 2회 기출) : IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜

* SSL/TLS : Application과 TCP/IP 계층 사이에서 웹 데이터를 암호화하고 전송 시 기밀정을 보장하는 공개키 기반 보안 프로토콜

* 데이터베이스 보안 기능 적용

– 데이터베이스 접근 권한

– 악의적 코드 삽입 금지

– 민감 데이터 관리

– 악의적 시도 시 에러 처리

7) 인터페이스 구현 검증(단답형)

– xUnit

:JAVA(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크

– STAF

: 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크

– FitNesse

: ​웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크

– NTAF

: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크

– Selenium

: ​다양한 브라우저 및 개발 언어를 지원​하는 웹 애플리케이션 테스트 프레임워크

– watir

: Ruby를 사용하는 애플리케이션 테이트 프레임워크

8) 인터페이스 감시 도구

– 스카우터(단답형) : 애플리케이션 모니터링 및 DB 모니터링, 인터페이스 감시 기능 제공

– 인터페이스 구현 검증 프로세스

: 송신 측에서 인터페이스 대상 선택 전송 -> 인터페이스 객체 전송 -> 수신 측에서 수신 트랜잭션 결과 반환

9) 인터페이스 오류 처리 방법

– 사용자 화면에 오류 인지하도록 구현

– 인터페이스 오류 로그 생성

– 인터페이스 관련 테이블에 오류사항 기록

– 오류 처리 보고 시기

: 최초 발생 보고 -> 오류 처리 경과보고 -> 완료 보고

  1. 화면 설계

1) UI ( 사용자 인터페이스 )

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

– CLI, GUI, NUI, OUI

* UI 설계 원칙 ( 2020 실기 2회 기출 문제 )

– 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 한다.

– 유효성 : 정확하고 완벽하게 사용자의 목표에 달성할 수 있어야 한다.

– 학습성 : 초보자와 숙련자 모두가 쉽게 배우고 사용 가능해야 한다.

– 유연성 : 사용자의 인터렉션을 최대한 포용하고 실수를 방지할 수 있어야 한다.

* UI 설계 지침

– 사용자 중심, 일관성, 단순성, 결과 예측 가능, 가시성, 표준화, 접근성, 명확성, 오류 발생 해결

* UI 요구사항 종류 : 기능적 비기능적 요구사항

2) UI 표준 정의

디자인 철학과 원칙에 기반하여 시스템에 공통적으로 적용되는 화면 간 이동, 화면 구성에 대한 규약

* UX : 제품과 시스템 사용하면서 느낀 사용자의 직접적, 간접적인 경험

* UI 구동 환경의 정의 : OS 확인, 웹 브라우저, 모니터 해상도, 프레임 시트

– 프레임 시트 키워드 : 프레임을 구분, 단일 프레임 웹 애플리케이션

* 리치 클라이언트(단답형) : 소프트웨어 실행을 클라이언트가 책임지는 기술

* 씬 클라이언트(단답형) : 소프트웨어 실행을 전적으로 서버가 책임지는 기술

* SSO(Single Sign On) (단답형) : 한 번의 로그인을 통해 다른 사이트에 자동으로 접속하여 이용하는 방법

3) UI 지침

UI 표준에 따라 UI 설계와 개발 시 따라야 하는 가이드 라인

* UI 개발 주요 기법(단답형)

– 3C 분석 : 고객, 경쟁사, 자가 분석

– SWOT : 강점, 약점, 기회, 위협 분석

– 시나리오 플래닝 : 불확실성이 높은 상황 변화를 예측하고 다양한 시나리오 설계

– 사용성 테스트(단답형) : 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞춰 과제를 수행한 후 답하는 테스트

– 워크숍 : 소규모 과제, 회의 (세미나)

* 사용자 요구사항 도출

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

– 콘셉트 모델 정의 (브레인스토밍)

– 요구사항 매트릭스 : 페르소나의 목적을 기준으로 데이터 요구, 기능의 기반으로 만든 요구사항 표

– 정황 시나리오 : 요구사항 정의에 사용되는 초기 시나리오

– 이상적인 시스템 동작에 초점을 맞추는 시나리오

4) UI 설계 도구(단답형)

– 스토리보드 : UI 화면 설계를 위해 와이어 프레임과 데이터베이스 연동 등 구축하는 서비스의 정보가 수록된 문서

– 와이어 프레임 : 이해관계자들과 화면구성을 협의하거나 화면 단위로 대략적인 레이아웃만 구성하는 단계

– 프로토타입 : 정적인 화면으로 설계된 와이어 프레임, 스토리보드에 동적인 요소를 적용하여 실제 구현된 것처럼 시뮬레이션 가능한 모형

5) UI 흐름 설계

업무의 흐름이나 업무 수행 시 일련의 클릭에 의해 화면의 위차와 흐름을 표현

* UI 설계서 구성

– UI 설계서 표지, 개정 이력, UI 요구사항 정의서, 시스템 구조, 사이트 맵, 프로세스 정의, 화면 설계

* 유스케이스

– 시스템이 액터에게 제공해야 하는 기능으로 시스템 요구사항이자 시스템의 기능

6) 설계 도구 분류

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

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

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

  1. 애플리케이션 테스트 관리

1) 애플리케이션 테스트

* 소프트웨어 테스트

– 개발된 응용프로그램이나 시스템이 사용자가 요구하는 성능이나 사용성, 안정성 등을 만족하는지 확인하고 소프트웨어 결함을 찾아내는 과정

– 오류 발견의 관점, 오류 예방의 관점, 품질 향상 관점

* 테스트 프로세스 : 테스트 계획 -> 분석/설계 -> 수행 -> 관리

* 소프트웨어 테스트 원리

– 테스팅은 결함이 존재하는 것을 밝혀내는 행동

– 완벽한 테스팅은 없다.

– 개발 초기에 테스팅을 시작 ( 개발 완료 후 테스팅을 시작하면 비용 및 시간 증가 )

– 결함의 집중 ( 결함은 한 모듈에 집중되어 있다 )

– 살충제 패러독스 ( 2020 실기 1회 기출문제 )

: 동일한 테스트 케이스로 테스트를 진행하면 더이상 새로운 결함을 찾을 수 없으므로 주기적으로 테스트 케이스를 점검하고 관리하여야 한다.

– 테스팅은 정황에 의존적

– 오류-부재의 궤변(서술형)

: 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없는 소프트웨어 테스트 원리

* 소프트웨어 테스트 산출물

– 테스트 계획서(테스트 수행 계획), 테스트 케이스(테스트 항목 명세서, 설계 산출물), 테스트 시나리오(테스트 절차 명세), 테스트 결과서(테스트 리프팅)

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

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

* 요구사항 검토(Requirements Review)

요구사항 명세서의 오류 확인 및 표준 준수 여부 등의 결함 여부를 검토 담당자들이 수작업으로 분석하는 방법

* 종류

– 동료 검토(Peer Review) : 요구사항 명세서 작성자가 내용을 직접 설명, 동료들이 이를 들으면서 결함 발견

– 워크 스루(Walk Trough) : 검토 회의 전 요구사항 명세서를 미리 배포하여 사전 검토 회의를 통해 결함 발견

– 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 결함 발견

– 프로토타이핑 : 실제 개발될 소프트웨어에 대한 ​견본품을 만들어 최종 결과물 예측

– 테스트 설계 : 테스트 케이스를 생성해 이후에 요구사항이 현실적으로 테스트 가능한지 검토

– CASE 도구 활용 : 일관성 분석을 통해 요구사항 변경사항의 추적 및 분석, 관리, 표준 준수 여부 확인

– 화이트 박스 테스트 : 내부 로직을 보면서 수행하는 구조 기반 테스트 (제어 구조/루프 테스트)

– 블랙박스 테스트 : 프로그램 외부의 사용자 요구사항 명세를 보면서 수행하는 기능 테스트 (경계값 분석/동등분할/결정테이블/상태전이/유스케이스)

– 검증 : 소프트웨어 과정을 테스트 ( 개발자 관점 )

– 확인 : 소프트웨어 결과를 테스트 ( 사용자 관점 )

2) 소프트웨어 테스트 유형 (단답형/서술형)

– 회귀 테스트 : 오류를 제거하거나 수정 후 새롭게 유입된 오류가 있는지 테스트

– 회복 테스트 : 고의로 실패 유도 후 정상 복귀 여부 확인하는 테스트

– 안전 테스트 : 소스 내의 보안적인 결함을 확인

– 강도 테스트 : 과부하 시 정상적인 동작을 하는지 테스트

– 성능 테스트 : 응답시간, 특정 시간, 처리량 등 시스템 반응 속도 테스트 (처응경쟈)

– 구조 테스트 : 시스템 내부의 경로나 소스코드 복잡도 테스트

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

3) 소프트웨어 테스트 종류

** 구조 기반 테스트 ( 화이트박스 테스트)

* 구문 커버리지

– 프로그램 내 모든 명령문을 적어도 한 번 수행

* 결정 커버리지

– 프로그램 내 전체 결정문이 적어도 한 번은 참과 거짓의 결과를 수행

– 프로그램 내의 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

* 조건 커버리지

– 결정 명령문 내 각 조건이 적어도 한 번은 참과 거짓의 결과가 출력되도록 수행

– 전체 조건식과 결과와 관계없이 각 개별 조건식이 참/거짓 한 번만 모두 갖도록 개별 조건식을 조합하는 테스트 커버리지

* 조건-결정 커버리지

– 전체 조건 식 뿐 아니라 개별 조건식도 참, 거짓이 한 번 씩 결과가 되도록 수행

– 결정 명령문 내의 각 조건(개별조건)과 전체조건식이 적어도 한 번은 참과 거짓의 결과를 수행하는 테스트 케이스

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

– 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식의 독립적 영향을 주도록 수행

* 다중 조건 커버리지

– 결정 포인트 내에 있는 모든 개별 식 조건의 모든 조합을 고려한 커버리지

* 명세 기반 테스트 : 동등 분할, 경계값 분석, 결정 테이블, 유스케이스, 상태 전이 ( 블랙박스 테스트 )

* 경험 기반 테스트 : 블랙박스 테스트

* 테스트 케이스 : 특정 요구사항을 준수하는지 확인하기 위해 입력값, 실행조건, 예상 결과의 집합

4) 테스트 오라클

테스트의 결과값이 참인지 거짓인지 판단하기 위해서 사전에 정의한 참 값을 입력하여 비교

* 종류

– 참 오라클 : 모든 입력값에 대해 기대하는 결과 생성, 모든 오류 검사

– 샘플링 오라클 : 특정 몇 개의 입력값에 대해 결과값을 제공

– 휴라스틱 오라클 : 샘플 오라클을 개선한 것으로 특정 몇 개의 입력값에 대한 결과를 제공하고 나머지는 추정

– 일관성 검사 오라클 : 애플리케이션 변경이 있을 대 수행 전 후의 결과값이 동일한지 확인

* 테스트 레벨 : 테스트 활동의 그룹

단위 테스트통합 테스트시스템 테스트인수 테스트
단위 모듈, 서브루틴모듈 간 상호작용시스템 기능사용자 입장 테스트베타/알파 테스트

* 테스트 시나리오 : 테스트를 수행하기 위한 테스트 케이스의 집합으로 테스트 케이스의 실행 순서와 절차를 작성한 문서

5) 통합 테스트

소프트웨어의 각 모듈 간의 인터페이스 관련 오류와 결함을 찾아내는 테스트

– 하향식 통합 : 깊이-너비, 스텁

– 상향식 통합 : 드라이버

– 빅뱅 통합 : 실제 모듈 테스트 진행

6) 테스트 자동화 도구(단답형)

테스트 도구를 활용하여 반복적인 테스트를 스크립트 형태로 구현하여 시간 단축과 비용 최소화

* 정적 분석 도구(2020 실기 2회 기출문제) : 애플리케이션을 실행하지 않고 테스트 수행

– 애플리케이션을 실행하지 않고 소스코드에 대한 표준 코딩, 코딩 스타일, 코드 복잡도 및 결함을 발견하기 위해 사용

* 성능 테스트 도구

– 애플리케이션 처리량, 응답시간, 경과시간에 대해 가상 사용자를 생성하여 테스트 실행

* 테스트 통제 도구

– 테스트 계획 및 관리를 위한 테스트 관리 도구

* 테스트 하네스

– 테스트를 지원하기 위한 코드와 데이터를 말하며 단위 테스트에 사용하기 위해 개발자가 작성

* 테스트 슈트

– 테스트 대상 컴포넌트나 시스템에 사용되는 테스트 케이스 집합

* 테스트 케이스

– 입력값, 실행 조건, 기대 결과 등의 집합

* 테스트 스크립트

– 자동화된 테스트 케이스의 절차와 실행 순서 명시

* 목 오브젝트

– 사용자의 행위를 조건부로 사전에 입력해두면 예정된 행위를 수행하는 객체

7) 소프트웨어 결함

– 에러/오류 : 결함의 원인이 되는 것으로 인간의 실수에서 생성

– 결함/버그 : 에러나 오류가 원인이 되어 소프트웨어에 포함되어 있는 것

– 실패/문제 : 소프트웨어 결함이 시스템 실행 시 발생되어 시각적으로 문제를 확인

* 결함 추이 분석

– 분포 분석 : 결함의 수

– 추세 분석 : 시간의 흐름에 따른 결함의 수

– 에이징 분석 : 결함 상태의 지속시간 측정

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

* 구문 커버리지 – 결정 커버리지 – 조건/결정 커버리지 – 변경 조건 커버리지 – 다중 조건 커버리지

* 결함 심각도

– 치명적 – 주요 – 보통 – 경미 – 단순

* 결함 우선순위

– 치명적 – 높음 – 중간 – 낮음

8) 애플리케이션 성능 측정 지표( 2020 실기 1회 기출문제 )

* 처리량(Throughput)

– 일정 시간 내 애플리케이션이 처리하는 작업의 양

– 애플리케이션이 주어닌 시간에 처리할 수 있는 트랜잭션 수

* 응답시간(Response Time)

– 애플리케이션에 작업을 요청해서 응답 도착까지 걸린 시간

– 응답 후 입력에 대한 응답 출력(완료된 상태)

* 경과시간(Turn Around Time)

– 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

– 요구를 입력하여 트랜잭션 처리 후 출력(완료가 되지 않은 상태)

* 자원사용률(단답형)

– 애플리케이션이 작업을 처리할 동안의 CPU, MEM, DISK 등의 사용량

* 성능 테스트 도구 : JMeter, Load UI

* 시스템 모니터링 도구

– 스카우터 : 애플리케이션 및 OS 자원에 대한 모니터링 기능을 제공하는 소프트웨어

* 애플리케이션 성능 개선

– 나쁜 코드 : 다른 개발자가 로직을 이해하기 어렵게 작성된 코드, 동일한 처리 로직이 중복되게 작성된 코드 등

– 클린 코드 : 의미있는 이름, 간결하고 명확한 주석, 보기좋은 배치 ( 가독성, 유지보수, 프로그래밍 속도 증가 )

* 소스코드 품질 분석

– 정적 분석 도구 : 작성된 코드를 실행시키지 않고 분석

– 동적 분석 도구 : 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황 파악 및 스레드의 결함 분석

* 애플리케이션 성능 개선 방안

– 소스코드 최적화

– 아키텍처 조정을 통한 성능 개선

– 프로그램 호출 순서 조정 적용

– 소스코드 품질 분석 도구 활용

– 메모리 사용 최적화 적용

– 입출력 발생의 최소화

– System.out.println() 사용 제외

  1. SQL 응용

1) 절차형 SQL

특정 사용자가 실행 순서를 정해놓고 사용하는 SQL문

* 프로시저(서술형)

– 절차형 SQL문을 활용하여 사전에 정의해놓은 SQL문을 호출할 경우 특정 기능을 수행하는 트랜잭션 언어

DECLARE // 프로시저 선언부

BEGIN/END // 프로시저 시작

CONTROL // 제어부(조건/반복), 순차적 처리

SQL // DQL, DML

EXCEPTION // 예외사항 처리

TRANSCATION // DML 수행 취소 여부(ROLLBACK, COMMIT)

– CREATE OR REPLACE : 프로시저 생성 SQL문

* 사용자 정의 함수(서술형)

– 사용자가 정의하여 SQL문 처리 수행 후 단일 값으로 반환하는 절차형 SQL

DECLARE // 프로시저 선언부

BEGIN/END // 프로시저 시작

CONTROL // 제어부(조건/반복), 순차적 처리

SQL // DQL, DML

EXCEPTION // 예외사항 처리

RETURN // 단일 값 반환

* 트리거(서술형)

특정 테이블에 수정, 삭제, 삽입 등의 데이터 이벤트 발생 시 자동으로 DBMS에서 실행되도록 구현된 프로그램

– 종류

: 행 트리거 – 데이터 변환 시 실행

: 문장 트리거 – 트리거에 의해 한 번 실행

DECLARE // 프로시저 선언부

EVENT // 이벤트 부(FOREACHROW)

BEGIN/END // 프로시저 시작

CONTROL // 제어부(조건/반복), 순차적 처리

SQL // DQL, DML

EXCEPTION // 예외사항 처리

2) 응용 SQL 작성

* 집계 함수
– 여러 행과 테이블 전체로부터 하나의 결과값을 반환

– GROUP BY문 사용

– COUNT, SUM, AVG, MAX, MIN, STDDEV, VARIAN 함수 사용

* 그룹 함수

– 소 그룹 간의 중간 합계, 소계를 계산하여 산출하는 함수

– ROLLUP : 소계, 중간 집계 값 산출

– CUBE : 다차원 집계 생성

– GROUPING SET : 컬럼에 대한 개별 집계

* 윈도 함수

– 데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해 SQL에 추가한 함수

SELECT 함수명(파라미터) OVER PARTITION BY ORDER BY

순위함수행 순서 함수그룹 내 비율 함수
RANK()FIRST_VALUERATIO_TO_REPORT
DENSE_RANK()LAST_VALUEPERENT_RANK
ROW_NUMBER()

* JDBC

– 자바 언어를 이용하여 DBMS에 질의하고 데이터를 조작하는 API 제공

* MyBatis

– DBMS에 질의하기 위해 SQL 쿼리를 별도의 파일에 분리하고 Mapping을 통해 SQL 실행

– 복잡한 JDBC 코드 단순화

– SQL문 거의 그대로 사용 가능

– 우수한 성능

* 동적 SQL : 조건에 따라 SQL문 구문 자체를 변경하고 조작이 가능

* DCL

– GRANT : 권한 부여 – ON TO WITH

– REVOKE : 권한 해제 – ON FROM CASCADE

  1. 소프트웨어 개발 보안 구축

1) 소프트웨어 개발 보안

* 보안의 3대 요소(단답형)

– 기밀성(Confidentiality)

: 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용되며, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음

– 무결성(Integrity)

: 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 + 완전성, 일관성, 데이터 훼손 및 파손 X

– 가용성(Availability)

: 인가받은 사용자는 언제라도 사용할 수 있음

* 인증(Authentication)- 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위

* 부인 방지(NonRepudiation)- 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함

* 보안 용어 : 자산, 위협, 취약점, 위험

2) 서비스 공격 유형 ( 키워드 중심 )

* DOS 공격

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

– 지역 시스템 공격 / 원격 네트워크 공격

* DDOS 공격

– 공격자를 분산 배치하여 동시에 특정 시스템을 공격하는 기법

– 구성요소 : 핸들러, 에이전트, 마스터, 공격자, 데몬 프로그램

– 공격 대응 방안 : 보안 솔루션 운영, 차단 정책 업데이트, 시스템 패치

* XSS(크로스 사이트 스크립트)

– 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

* SQL삽입(SQL Injection)

– 공격자가 입력한 데이터에 대한 유효성을 점검하지 않아 DB쿼리 로직이 변경되어 정보 유출 또는 DB의 변경을 가하는 공격

* CSRF ( 사이트 간 요청 위조 )

– 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격

** 자원 고갈 공격

* SYN 플러딩

– 3-hand-shaking 과정에서

* UDP 플러딩

– 대량의 UDP 패킷 생성하여 자원을 고갈시키는 공격

* 스머프 또는 스머핑

– 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에 ICMP Echo 패킷을 브로드캐스팅하여 마비시키는 공격으로 제3의 사이트를 이용해 공격하는 공격기법

* PoD(Ping of Death)

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

** 애플리케이션 공격

* HTTP GET 플러딩

– Chache Control Attack -> Chaching 서버 유도

* Slowloris

– HTTP GET 메서드, 개행

* 루디(RUDY)

– 요청 헤더의 Content-length 를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격

** 네트워크 서비스 공격

* 네트워크 스캐너, 스니퍼

– 보안 취약점 파악 -> 공격 도구

* 패스워드 크래킹

– 사전 크래킹과 무차별 크래킹 사용

* IP 스푸핑

– IP Address 위조

* 트로이 목마

– 정상적인 기능을 하는 프로그램인 척 위장하여 해당 프로그램 동작시 부작용을 일으키는 공격 기법

** 취약점 공격

* 랜드 어택

– 출발지(Source) IP와 목적지 (Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법

* 티어 드롭(Tear Drop)

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

* 봉크/보잉크

– 프로토콜의 오류 제어를 이용한 공격 기법 (시퀀스 번호)

3) 암호 알고리즘

– 무결성 및 기밀성 확보

* 암호 알고리즘의 암호 키들의 키워드와 비교할 내용을 잘 암기하기 ( 암호키의 Bit 크기 비교 )

대칭키블록암호DES, AES, SEED (단답형)* DES : 54Bits의 키와 64Bits의 블록* AES : DES를 대체하는 알고리즘* SEED : KISA 구현, 고속 블록, 128Bits
스트림 암호 방식RC4
비대칭키디피 헬만
RSA(단답형) : 소인수 분해의 어려움을 이용하여 암호화
해시SHA(단답형) (Secure Hash Algorithm) : 미국 표준
MD5 (2020 실기 1회 기출) : 128Bits 해시 알고리즘* 1991년 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안한 128Bits 암호화 해시 함수

– 정보에 대한 보안 항목 식별 (정보 보호 관련 법률) : 개인정보 보호법, 정보통신망법, 신용정보법

* SSL(Secure Socket Layer) (단답형)

– 응용 계층과 TCP/IP 계층 사이에서 웹 데이터 암호화 및 전송 시 기밀성을 보장하는 공개키 기반의 보안 프로토콜

* 일방향 암호화 (단답형)

– 암호화 수행은 하지만 절대로 복호화가 불가능한 알고리즘

4) 정보 자산 주요 용어

– 자산, 사용자, 소유자, 관리자

– 자산 분류 기준 : 소프트웨어, 하드웨어, 데이터, 문서, 시설, 자원 설비, 인력

5) 보안 기능

– 인증 관리, 권한 간리, 암호화, 중요 정보 처리

* 솔트(Salt) (단답형)

– 일방향 해시 함수에서 다이제스트를 생성할 경우 추가되는 임의의 문자열

– 소금이 기본 양념이듯 원문에 가미하여 암호문을 다른 값으로 만드는 것

– 문자열의 앞 뒤에 난수생성을 통해 작성된 특정 문자열을 끼어넣는 상태로 해시를 돌림

6) 예외 처리/세션 통제

* 세션 하이제킹(단답형)

– 세션을 가로채어 정상적인 인증 절차를 무시하고 불법적으로 시스템 접속

7) 소프트웨어 개발 보안 적용 사례

– MS-SDL, Seven Touchpoints, CLASP

– 보안 취약점 : 외부 공격과 해킹으로 시스템의 보안 정책을 침해하는 보안 사고의 원인이 되는 보안 허점

– 보안 약점 : 개발 과정에서 발생할 수 있는 결함/버그와 같은 오류

8) 소프트웨어 개발 보안 구현

– 보안 취약점 제거, 보안 약점 방지

* 시큐어 코딩 가이드 : 입어 보니 시원한 애코캡

– 입력 데이터 검증 및 표현

– 보안 기능

– 시간 및 상태

– 에러 처리

– 코드 오류

– 캡슐화

– API 오용

(1) 입력 데이터 검증 및 표현 : SQL 삽입, XSS(크로스 사이트 스크립트)

* SQL Injection (SQL 삽입) (2020 실기 2회 기출)

– 웹 애플리케이션에서 입력 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 취약점 공격기법

* XSS(크로스 사이트 스크립트)

– 웹 페이지에 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도하는 방법으로, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보 유출 등의 공격을 유발할 수 있는 공격 기법

< 보안 취약점 보완 방법 >

– SQL 삽입 : PreparedStatement

– XSS : 치환 함수

(2) 보안 기능 : 인증, 권한 관리, 암호화

* 인증 관련 보안 약점

– 적절한 인증 X

– 반복된 인증 시도 제한 기능 부재 -> 무차별 공격

– 취약 패스워드 허용

* 권한 관리 보안 약점

– 주요 자원에 대한 잘못된 권한 설정

– 부적절할 인가

* 암호화 보안 약점

– 취약 암호화 알고리즘, 충분하지 않은 키 길이, 하드코딩된 비밀번호

– 부적절한 난수, 솔트없는 일방향 해시 함수 사용

* 시간 상태

– 경쟁 조건 : 메모리 공유되는 하나의 객체에 두 개 이상의 스레드가 동시 처리되는 상황

– 종료되지 않은 반복문

– 재귀 함수

* 에러 처리

– 오류 메시지 정보 노출 -> 최소한 정보 포함

– 오류 상황 대응 부재 -> try-catch 문

– 부적절한 예외 처리

(5) 코드 오류 : 타입 변환 오류, 메모리 부적절한 반환 / 개발자 오류

– Null Pointer 역참조

– 부적절한 자원 해제

– 해제된 자원 사용

– 초기화하지 않은 변수 사용

(6) 캡슐화

– 잘못된 세션에 의한 정보 노출 -> 싱글톤 패턴

– 제거되지 않은 디버그 코드

– 시스템 정보 노출

* 세션 : 서버와 클라이언트 간의 논리적인 연결

* 싱글톤 패턴 : 전역 변수를 사용하지 않고 하나의 객체를 만들어 어디서든지 참조할 수 있도록 하는 패턴

(7) API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API 사용 시 발생

– DNS 의존한 보안 결점

– 취약한 API

* API(Application Programming Interface)

– 프로그램 개발 및 작성을 위한 서브 프로그램

9) 소프트웨어 개발 보안 테스트

– 보안 테스트 유형 : 화이트박스 테스트, 블랙박스 테스트

* 화이트 박스 테스트 : 프로그램 내부 로직을 보면서 수행하는 구조 기반 테스트

* 블랙박스 테스트 : 프로그램 외부 사용자의 요구사항 명세를 보면서 테스트하는 것 (성능 테스트)

* 정적 분석(2020 실기 2회 기출)

– 소프트웨어를 실행하지 않고 보안 약점 분석

* 동적 분석

– 소프트웨어 실행환경에서 보안 약점 분석

* 시큐어 코딩(단답형)

– 설계 및 구현 단계에서 해킹 등 공격을 유발하는 가능성이 있는 보안 취약점을 사전에 제거하고 안전한 소프트웨어를 만드는 코딩 기법

  1. 운영체제의 특징

1) 운영체제

사용자가 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공하는 소프트웨어로 컴퓨터 시스템과 사용자의 상호작용할 수 있는 편리성을 제공

* 인터페이스 : 서로 다른 시스템 또는 장치 사이에서 정보를 공유하는 시스템 또는 경계

WindowsGUI 제공선점형 멀티태스킹 방식 제공,
자동 감지 기능, OLE(Object Linking and Embeded) 사용
Unix대화식 운영체제다중 작업 기능 제공다중 사용자 기능 제공,
이식성 제공계층적 트리구조 파일 시스템 제공
Linux유닉스 기반, 유닉스 특징오픈 소스,
다양한 리눅스 운영체제 종류
MAC유닉스 기반 GUI 운영체제 (Apple )
안드로이드(Android)리눅스 기반의 안드로이드 운영체제,
런 타임 라이브러리 제공, SDK

* 안드로이드(Android) (2020 실기 2회 기출)

– 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램 등을 포함하고 있는 소프트웨어 스택이자 리눅스 모바일 운영체제이다. 개발자들이 자바와 코틀린 언어로 응용 프로그램을 작성할 수 있게 하였으며, 컴파일된 바이트코드를 구동할 수 있는 런타임 라이브러리를 제공한다.

* 운영체제 제어

– GUI (Graphic User Interface) : 마우스 클릭 등 그래픽 기반으로 제어

– CLI (Command Line Interface) : 사용자가 직접 명령어 입력 후 컴퓨터에 명령을 내리는 방식

* 리눅스/유닉스 계열 기본 명령어 (2020 실기 2회 기출)

– 쉘(Shell) : 컴퓨터 내부를 관리하는 커널과 사용자 간의 연결하는 명령어 창

* 운영체제 핵심 기능

– 중앙처리 장치, 메모리, 스토리지, 주변기기 관리

– 메모리 관리, 프로세스 관리

– 메모리에 있는 프로그램을 CPU로 이동시켜 관리

* MMU(단답형) (Memory Management Unit)

– CPU가 메모리에 접근하는 것을 관리하는 하드웨어 부품으로 가상 메모리를 실제 메모리 주소로 변환하는 장치

2) 프로세스 관리

– 생성 상태 : 사용자로 인해 프로세스가 생성된 상태

– 준비 상태 : CPU에 할당받을 수 있는 상태

– 실행 상태 : 프로세스가 CPU를 할당받아 동작 중인 상태

– 대기 상태 : 프로세스 실행 중 처리로 인해 CPU를 양도하고 대기 리스트에서 기다리는 상태

– 완료 상태 : 프로세스가 CPU 할당을 받고 주어진 시간에 완전히 수행한 상태

출처; 별랑님 블로그

* 디스패치

– 준비 상태에 있는 프로세스를 스케줄링하여 CPU에 할당

* 타이머 런 아웃(타임아웃)

– CPU에 할당된 프로세스가 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장

* PCB(Process Control Block)

– 운영체제가 프로세스의 정보를 표현한 것

* 문맥 교환(단답형)

– CPU가 현재 실행하고 있는 프로세스의 상태를 PCB에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업

(1) 프로세스 스케줄링 : CPU를 사용하려는 프로세스 사이의 우선순위를 관리하는 작업

– 프로세스 스케줄링 이용 시 CPU 이용률 증가, 오버헤드 응답시간, 반환시간, 대기시간 감소

* 서비스 시간 : 프로세스가 결과를 산출하기 전까지 소요되는 시간

* 응답 시간 : Response Time으로 대기시간 + 수행시간

* 대기 시간 : 프로세스가 할당되기 전까지 대기 큐에서 대기하는 시간

* 응답률 : (서비스 시간 + 대기시간) / 서비스 시간 -> HRN(Highest Response Ratio Next) (2020 실기 1회 기출)

(2) 선점형 스케줄링

– 하나의 프로세스가 CPU에 할당되어 있을 때 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식

– 라운드 로빈(RR), SRT(Shortest Remining Time First), 다단계 큐, 피드백 큐

* 라운드 로빈

– CPU 할당 시간 설정 후 프로세스가 할당된 시간 내 처리하지 못할 경우 큐 리스트의 가장 맨 뒤로 이동하고 다음 프로세스를 CPU에 할당하는 기법

* SRT

– 가장 짧은 시간이 소요되는 프로세스를 먼저 처리하고 남은 시간이 짧은 프로세스가 리스트 큐에 생기면 CPU에 할당하는 기법

* 다단계 큐

– 작업들을 분할, 여러 개의 큐를 이용하여 상위 단계 작업에 의한 하위 단계 작업 선정 및 독자적인 스케줄링

* 다단계 피드백 큐

– FIFO + RR의 혼합, 마지막 단계는 RR 방식으로 처리

[정보처리기사 필기/2과목 소프트웨어 개발] – 정보처리기사 필기 ) 선점 스케줄링

(3) 비선점형 스케줄링

– 한 프로세스가 CPU를 할당받으면 작업 후 CPU 반환 시까지 다른 프로세스가 CPU에 할당하지 못하는 스케줄링 기법

– 우선순위, 기한부, FCFS, HRN, SJF

* 우선순위

– 프로세스 별로 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함

* 기한부

– 작업들을 명시된 시간이나 기한 내 완료되도록 계획

* FCFS

– 프로세스가 대기 큐 리스트에 도착한 순서에 따라 CPU를 할당

* SJF

– 가장 작은 서비스 시간을 가진 프로세스를 우선순위로 하여 평균 대기 시간을 최소화시키는 기법

* HRN(2020 실기 1회 기출)

– 대기 중인 프로세스 중 현재 응답률이 가장 높은 프로세스를 우선순위

– (서비스 시간 + 대기 시간) / 서비스 시간

[정보처리기사 필기/2과목 소프트웨어 개발] – 정보처리기사 필기 ) 비선점 스케줄링

3) 가상화

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

– 플랫폼 가상화 : 플랫폼 위에 독립된 환경을 만드는 기술

– 리소스 가상화 : 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법

– 컴퓨터 가상화(Hyper V) : 물리적인 리소스를 논리적인 리소스로 사용

– 분산처리 기술 : 여러 대 컴퓨터를 이용하여 대용량 처리

4) 컴퓨터 클라우딩

– 인터넷을 통해 클라우드 서버를 접속하여 리소스를 제공하고 자원들을 네트워크를 통해서 어디서든지 접속할 수 있는 기술

– 인프라형(IaaS) : 서버, 스토리지 같은 시스템 자원 클라우드 제공

– 플랫폼형(PaaS) : 인프라 생성 및 관리하는 복잡함을 없애고 애플리케이션 개발과 실행 시 사용

– 소프트웨어형(SaaS) : 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용

5) 데이터 베이스

– 시스템과 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합

* 데이터베이스 종류

– 파일 시스템 : 파일에 이름을 부여하고 어디에 위치시켜야 하는지 등을 정의한 뒤 DB 전 단계의 데이터를 관리하는 방식

– 계층형 데이터베이스 관리시스템 : 데이터를 상하 종속적인 관계로 계층화하여 관리하는 DB

– 망형 데이터베이스 관리시스템 : 데이터 구조를 네트워크의 망 형태로 논리적으로 표현한 DB 모델

– 관계형 데이터베이스 관리시스템 : 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하관계로 표시하며 상관관계를 정리한 시스템 ( ORACLE, SQL Server, My SQL, Maria DB )

* 데이터베이스 도구

– DB 관리자가 데이터베이스를 편리하고 쉽게 다를 수 있도록 도와주는 도구

– DB 생성 및 삭제, SQL 명령어 수행, 상태 모니터링, 사용자 계정 관리, DB 내보내기

* DBMS

– 데이터의 관리의 복잡성을 해결하는 동시에 데이터 생성 및 관리(데이터 추가, 삭제, 검색, 변경 및 보안, 백업, 권한 등의) 기능을 지원하는 소프트웨어

* 유형

– 키-값 DBMS : GET/PUT/DELETE 기능 제공

– 칼럼 기반 데이터 저장 DBMS : Key 안에 Column과 Value의 조합

– 문서 저장 DBMS : 값의 데이터 타입을 문서 타입으로 사용

– 그래프 DBMS : 그래프 데이터 표현

* 특징

– 데이터 무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것

– 데이터 일관성 : 저장 후 데이터는 일정

– 데이터 회복성 : 장애 발생 시 회복 가능

– 데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호

– 데이터 효율성 : 응답시간, 저장 공간 활용 등 최적화

* ERD

– 업무 분석 결과로 도출된 엔티티(개체)와 엔티티(개체) 간의 관계를 도식화한 다이어그램

– 엔티티 : 현실 세계의 사물이나 사건으로 정의 ( 다이어그램에서 네모로 표현 )

– 속성 : 엔티티가 가지고 있는 요소 또는 성질 ( 다이어그램에서 원으로 표현 )

– 관계 : 두 엔티티 간의 관계를 정의 ( 다이어그램에서 마름모로 표현 )

6) 트랜잭션 ( 2020 실기 1회 기출 )

– DB 시스템에서 하나의 논리적인 기능을 수행하기 위한 작업의 기본 단위

– 원자성 (Atomicity) : 전체가 실패 또는 성공

– 일관성 (Consistency) : 트랜잭션 성공 이후 항상 일관된 DB 상태 유지

– 격리성 (Isolation) : 트랜잭션 실행 중 다른 트랜잭션 접근 불가

– 영속성 (Durability) : 성공된 트랜잭션 결과는 DB에 영속적으로 저장

* 트랜잭션의 특성

– Atomicity(원자성)

: 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다.

: 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.

: 타인에게 송금하는 도중 장애가 발생하였을 경우 부작용을 방지하는 특성

– Consistency(일관성)

: 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

: 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

– Isolation(독립성, 격리성, 순차성)

: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.(접근 불가)

: 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

– Durability(영속성, 지속성)

: 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

* 트랜잭션 상태

– 활동 상태 : 초기 상태, 트랜잭션이 실행 중인 상태

– 부분 완료 상태 : 마지막 명령문이 실행되고 난 후 가지는 상태

– 완료 상태 : 트랜잭션이 성공적으로 처리된 후 완료된 상태

– 실패 상태 : 정상적인 실행이 더 이상 진행되지 않는 상태

– 철회 상태 : 트랜잭션이 취소되고 DB가 트랜잭션 시작 전 상태로 환원

* 용어

– TCL : 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용

– COMMIT : 모든 작업을 정상적으로 처리하겠다고 트랜잭션을 확정하는 명령어

– ROLLBACK(2020 실기 2회 기출) : 트랜잭션의 실패로 작업을 취소하고, 이전 상태로 되돌리는 데이터 제어어

– CHECKPOINT : 트랜잭션을 저장하는 시기를 설정하는 명령어

–  Trigger : 트랜잭션을 취소하는 이외의 조치를 명세할 필요가 있는 경우 메시지를 보내 어떤 값을 자동으로 갱신하도록 프로시저를 가동시키는 방법

7) CRUD

* 데이터베이스의 기본 연산

– CREATE : 생성 (SELECT FROM)

– READ : 조회 (INSERT INTO)

– UPDATE : 갱신 (UPDATE SET)

– DELETE : 삭제 (DELETE FROM)

8) 11장 응용 소프트웨어 단답형 및 서술형 예상 내용

* NoSQL (NOT Only SQL)

– 전통적인 RDBMS(관계형 데이터베이스 관리 시스템)와 달리 데이터 저장이 필요한 테이블 스키마가 필요하지 않고 Join 연산도 하지 않는 수평적 확장이 가능한 DBMS

* 온폴로지(단답형)

– 설계 시 개념, 속성, 관계를 컴퓨터가 이해할 수 있도록 서술

* 시맨틱 웹(단답형)

– 온폴로지를 이용하여 서비스 검색, 조합 등 기능들을 자동화하는 웹

* 데이터 마이닝(2020 실기 1회 기출)

– 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 규칙이나 패턴을 찾아내는 기술

* 빅데이터

– 주어진 비용과 시간을 초과한 페타바이트 크기의 정형 데이터

9) 네트워크

– 원하는 정보를 수신자에게 정확하게 전달하기 위한 인프라

– WAN : 광대역 네트워크로 전송거리가 넓고 라우팅 알고리즘이 필요한 네트워크

– LAN : 근거리 네트워크로 작은 지역을 커버하는 네트워크

* OSI 7계층

– 파일 참고

OSI 7계층.hwp

0.06MB

* 프로토콜 : 이기종 시스템간 데이터 교환을 할 수 있도록 하는 표준화 통신 규약

* 프로토콜의 기본 요소(2020 실기 1회 기출) : 구문, 의미, 타이핑

* 네트워크 프로토콜 : 컴퓨터나 통신장비 사이에서 메시지를 교환하는 통신규약이나 규칙

* TCP(서술형/단답형)

– 근거리 통신망이나 인터넷에서 신뢰성있는 전송을 수행하는 프로토콜

– 특징 : 신뢰성 보장, 연결 지향적, 흐름제어, 혼잡제어

* UDP(서술형/단답형)

– 비연결성이고 신뢰성이 없으며 순서화되지 않는 데이터그램 서비스를 제공하는 통신 프로토콜

– 특징 : 비 연결성, 비 신뢰성, 순서화되지 않은 데이터그램 서비스 제공, 단순 헤더

[네트워크관리사] – 네트워크관리사2) TCP/UDP

* IPv4

– 데이터 교환을 위해 32bit 주소체계를 갖는 네트워크 계층의 프로토콜

– 유니캐스트, 멀티캐스트, 브로드캐스트

* IPv6

– 차세대 인터넷 프로토콜로 IPv4의 주소 자원 고갈, 보안성 등 문제점을 해결하기 위해 개발된 128bit 주소체계를 갖는 프로토콜

– 유니캐스트, 멀티캐스트, 애니캐스트

* 패킷 스위칭

– 작은 블록의 패킷으로 데이터를 전송하며 전송하는 동안만 네트워크를 사용

* X.25(단답형)

– 두 단말장치가 패킷 통신망을 통해 원활한 패킷 전송을 하기 위한 프로토콜

* 프레임 릴레이

– 비동기 전송모드인 광대역 전송에 사용되는 스위칭 기법

* ATM(단답형)

– 비동기 전송모드인 광대역 전송에 사용되는 스위칭 기법

* 서킷 스위칭

– 네트워크 리소스를 특정 사용계층이 독점하여 통신하는 방식

10) 라우팅 프로토콜(단답형)

* 거리 벡터 알고리즘

– 인접 라우터와 정보를 공유하여 목적지까지의 방향과 거리를 결정

– RIP : 자율 시스템(AS) 내에서 사용하는 거리 벡터 알고리즘을 기반으로 개발된 통신규약으로 최대 홉수를 15개로 제한한 라우팅 프로토콜

– IGRP : RIP의 문제점을 개선하기 위해 개발된 통신규약으로 RIP보다 대규모로 복잡한 통신망에서의 운용을 상정한 규격으로 되어 있으며, 거리 백터 라우팅 알고리즘을 채용하여 목적 통신망까지의 경로는 지연, 회성의 대역폭, 신뢰성 및 부하를 고려하여 결정하는 프로토콜

* 링크 상태 알고리즘

– 링크 정보를 모든 라우터에게 전달하여 최적의 경로를 구성

– OSPF

– BGP : 규모가 큰 네트워크를 상호 연결하는 알고리즘

* 라우팅 프로토콜(Routing Protocol)

– 최종 목적지까지 패킷을 최소 비용 또는 최소 홉수를 알고리즘을 통해 적잘한 경로를 설정해주는 프로토콜

RIP
(Routing Information Protocol)
OSPF
(Open Shortest Path First)
개념AS(Autonomous System) 내에서 사용하는거리벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜RIP의 단점을 개선하기 위해 자신을기준으로 하여링크상태 알고리즘 기반으로 최단 경로를 찾는 라우팅 프로토콜
라우팅 테이블 전송 시기일정주기(30)변화 발생시에만
최대 지원 네트워크 크기15255
  1. 제품 소프트웨어 패키징

1) 제품 소프트웨어 패키징

– 개발이 완료된 소프트웨어를 고객에게 전달하기 위해 패키징 하는 과정

– 키워드 : 버전관리/릴리즈 노트, 고객 중심, 모듈화

* 모듈

– 소프트웨어 설계에서 기능 단위로 분해하고 추상되어 재사용 및 공유가 가능한 단위

* 모듈화(서술형)

– 모듈을 통해 제품 소프트웨어의 성능을 향상시키고 시스템의 통합, 시험 디버깅 및 수정을 용이하게 하는 소프트웨어 설계 기법

* 사용자 중심의 모듈 패키징 프로세스

– 기능 식별 >모듈화 >빌드 진행 >사용자 환경 분석 >패키징 적용 시험 >패키징 변경 개선

2) 릴리즈 노트

– 최종 사용자인 고객에게 잘 정리된 릴리즈 정보를 제공하는 문서, 현재 시제로 작성

– 정보 제공 : 릴리즈 노트에는 테스트 결과와 정보 포함

– 관리의 용이성 : 자동화, 릴리즈 정보를 체계적으로 관리

– 고려 사항 : 개발팀에서 작성, 명확, 정확, 완전한 정보 제공

* 구성 요소 (2020 실기 1회 기출)

– 헤더 : 문서 이름, 제품 이름, 버전 번호, 릴리즈 날짜

– 개요 : 제품 및 번경에 대한 간략한 전반적인 개요

* 릴리즈 노트 작성 프로세스(모정개 영정추)

– 모듈 식별 >릴리즈 정보 확인 >릴리즈 노트 개요 작성 >영향도 체크 >정식 릴리즈 노트 작성 >추가 개선 항목 식별

3) 제품 소프트웨어 패키징 도구

패키징 시 디지털 콘텐츠의 지식 재산권을 보호하고 관리하는 기능 제공, 안전한 유통 배포 보장하는 도구

4) 저작권 보호 패키징 도구

* DRM(디지털 저작권 관리) (단답형)

– 데이터의 안전한 배포를 활성화하거나 불법 배포를 방지하여 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권을 보호하기 위한 시스템

5) 암호화

텍스트, 콘텐츠 등을 암호문으로 만드는 기술

* 공개키 기반 구조(PKI), 대칭 및 비대칭 암호화 전자서명, 키 관리, 식별 기술, 저작권 표현, 암호화 파일 생성, 정책 관리, 크랙 방시, 인증

* 공개키 기반 구조(PKI)

– 공개키 암호화 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자 등을 총칭하는 암호 기술

* 대칭 및 비대칭 암호화 : 암호화 시 키, 복호화 키 생성

* 전자 서명 : 전자적 형태의 정보

[정보처리기사 실기/실기 정리] – 정보처리기사 실기) 9장 소프트웨어 개발 보안 구축

* DOI(Digital Object Identifier) (단답형)

– 디지털 저작물에 특정 번호를 부여하는 일종의 바코드 시스템

* URI (단답형)

– 인터넷에 있는 자원을 나타내는 유일한 주소

* XrML (단답형)

– 디지털 콘텐츠, 웹 서비스 권리 조건을 표현한 XML 기반의 마크업 언어

* MPEG-21 (단답형)

– 멀티미디어 표준 규격

* XML (단답형)

– 마크업 언어로 의 한 쌍으로 사람이 쉽게 알아볼 수 있는 오브젝트를 생성하는 언어

* JSON (단답형)
비동기 브라우저 / 서버 통신(AJAX)을 위해 “속성-값 쌍’, ‘키-값 쌍’으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

* 코드 난독화 (단답형)

– 역공학을 통한 공격을 막기 위해 프로그램 소스를 알아보기 힘든 코드로 바꾸는 기술

* Secure DB (단답형)

– 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고 접근제어와 보안적인 요소가 추가된 데이터베이스 강화 기술

* SSO(Single Sign On) (단답형)

– 한 번의 인증 절차를 통해 여러 정보 시스템에 재인증 절차없이 사용할 수 있는 통합 로그인 기술

* CMS (단답형)

– 콘텐츠 생산 전 활동의 과정을 관리하는 기술

6) 제품 소프트웨어 매뉴얼 작성

* 제품 소프트웨어 매뉴얼

– 제품 소프트웨어 개발 단계부터 적응한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용을 기록한 문서

* 제품 소프트웨어 설치 매뉴얼

– 사용자가 제품을 구매한 후 최초 설치 시 참조하는 매뉴얼 목차, 개요, 이력정보, 설치 매뉴얼 주석, 설치 도구

* 제품 소프트웨어 사용자 매뉴얼

– 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위해 피키징하고 설치와 사용에 필요한 제반 절차 및 환경에 대한 전체 내용을 포함하는 매뉴얼

* 제품 소프트웨어 배포판

– 배포 정보를 포함하여 개발된 컴포넌트 혹은 패키지가 제품화된 것

7) 제품 소프트웨어 패키징의 형상 관리

* 형상관리(2020 실기 2회 기출)

– 소프트웨어의 변경사항을 계속적으로 추적하고 버전 관리 및 통제하는 관리 기법

– 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

* 형상관리 도구의 기능 : 체크인, 체크아웃, 커밋

– 체크인

: 개발자가 수정한 소스를 형상관리 저장소로 업로드하는 기능

– 커밋

: 개발자가 소스를 형상관리 저장소에 업로드 후 최종적으로 업데이트가 되었을 때 형상관리 서버에 반영하도록 하는 기능

* 형상관리 역할 : 관리 유용, 동시 개발, 빠른 복구

* 형상 식별

– 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업

* 버전 제어

– 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구(Tool)를 결합시키는 작업

* 형상 통제(변경 관리)

– 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업

* 형상 감사

– 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업

* 형상 기록(상태 보고)

– 형상의 식별, 통제, 감사 작업의 결과를 기록, 관리하고 보고서를 작성하는 작업

* 베이스 라인(Base Line) (단답형) : 소프트웨어 변경 통제 시점

* 컴포넌트 저장소 : 인증받은 컴포넌트를 등록하는 저장소로 사용자가 손쉽게 컴포넌트를 이용 가능

8) 버전 관리 도구

제품 소프트웨어의 신규 개발, 변경, 개선과 관련된 수정사항을 관리하는 도구

공유 폴더 방식클라이언트/서버 방식분석 저장소 방식
공유 폴더에 복사하는 방식클라이언트/서버 방식로컬 저장소 -> 원격 저장소
RCSCVS, SVNGit, Bitkeeper

* 공유 폴더 방식

– 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식

– 파일의 변경 사항을 데이터베이스에 기록하여 관리

– 종류 : SCCS, RCS, PVCS, QVCS 등

* RCS

– 파일, 잠금 방식으로 소스파일 수정은 한 명으로 제한하여 버전 관리

* 클라이언트/서버 방식

– 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식

– 모든 버전 관리는 서버에서 수행

– 서버에 문제가 생기면, 서버가 복구되기 전가지 다른 개발자와의 협업 및 버전 관리 작업은 중단

– 종류 : CVS, SVN(Subversion), CVSNT, Clear Case, CMVC, Perforce 등

* CVS

– 서버와 클라이언트를 구성되어 다수의 인원이 동시에 접근 가능하여 버전 관리 가능

* Subversion(서브버전, SVN)

– CVS를 개선한 것, 아파치 소프트웨어 재단에서 발표

– 모든 개발 작업은 trunk 디렉터리에서 수행

– commit 할 때마다 revision이 1씩 증가 ( 커밋 실패 시 롤백 지원 가능 )

– 클라이언트는 대부분의 운영체제에서 사용되지만, 서버는 주로 유닉스를 사용

– 디렉토리 파일을 자유롭게 이동 가능

– add, commit, update, checkout, lock/unlock, import, export, info, diff, merge

* 분산 저장소 방식

– 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식

– 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업 가능

– 종류 : Git, GNU arch, DCVS, Bazaar, Bitkeeper 등

* Bitkeeper

– SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도

* Git(깃)

– 지역 저장소는 개발자들이 실제 개발을 진행하는 장소, 버전 관리가 수행

– 원격 저장소는 여러 사람들이 협업을 위해 버전을 공동으로 관리하는 곳

– branch를 이용하면 기본 버전 관리 틀에 영향을 주지 않으면서 다양한 형태의 기능 테스팅이 가능

– 파일의 변화를 스냅샷으로 저장

– SVN 저장소에 대한 이관 기능

– add, commit, branch, checkout, merge, init, remote add, push, fetch, clone, fork

– branch, check-out, commit 등 로컬 환경에서의 형상관리 기능

– push, fetch, pull 등 원격 환경에서의 변경 전송 기능

DB정리

*정규화: 테이터의 중복성을 최소화하고 일관성등을 보장하여 데이터베이스의 품질을 보장하여 데이터베이스의 품질을 보장하고 성능 향상을 위해 수행한다.

정규화과정->비정규릴레이션-(도메인이원자값)-1NF-(부분적함수종적제거)-2NF-(이행적함수종속제거)-3NF-(결정자이면서후보키가아닌것제거)-BCNF-(다치종속)-4NF-(조인종속성이용)-5NF

*반정규화:시스템의 성능향상,개발 및 운영의 편의성등을 위해 정규화된 데이터 모델을 통합,중복,분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위

반정규화과정->테이블통합(조인), 테이블분할(수평레코드기준,수직테이블기준), 중복테이블추가(원본테이블에 트리거성정 ), 중복테이블 수정

*시스템 카탈로그의 의미 : 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템DB이다.(INSERT,DELETE,UPDATE문으로 카탈로그 갱신허용안됨)

*클러스터인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장, 한 개의 릴레이션에 하나의 인덱스만 생성, 검색속도빠름

*넌클러스터인덱스 : 인덱스의 킷값만 정렬되어 있을뿐 실제 데이터는 정렬되지 않는 방식. 한 개의 릴레이션에 여러개의 인덱스 만들수있음. 인덱스 검색속도 떨어짐

*뷰 : 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가진 가상테이블

*SQL은 1974년 IBM 연구소에서 개발한 SEQUEL에서 유래. DDL(CREATE,ALTER,DROP),DML(SELECT,INSERT,DELETE,UPDATE),DCL(GRANT,REVOKE,COMMIT,ROLLBACK)로 구성

*파티션 : 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것. 3가지종류:범위(일,월,년등),해시(주민번호,고객번호등),조합(범위+해시)

-CREATE TABLE 재학생 AS SELECT 학번,이름,학년 FROM 학생; <학생>테이블의 ‘학번’,‘이름’ 속성을 이용하여 <재학생> 테이블을 정의하는 SQL문을 작성하시오.

-CREATE VIEW 안산고객(성명,전화번호) AS SELECT 성명,전화번호 FROM 고객 WHERE 주소=‘안산시’; <고객>테이블에서 ‘주소’가 ‘안산시’인 고객들의 ‘성명’과 ‘전화번호’를‘안산고객’이라는 뷰로 정의하시오.

-CREATE UNIQUE INDEX 고객번호_idx ON 고객(고객번호 DESC); <고객>테이블에서 UNIQUE한 특성을 갖는‘고객번호’ 속성에 대해 내림차순으로 정렬하여 ‘고객번호_idx’라는 이름으로 인덱스를 정의하시오.

-ALTER TABLE 학생 ADD 학년 VARCHAR(3); <학생>테이블에 최대 3문자로 구성되는 ‘학년’속성 추가하시오.

-ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL; <학생>테이블의 ‘학번’필드의 데이터 타입과 크기를 VARCHAR(10)으로 하고 NULL 값이 입력되지 않도록 변경하시오.

-DROP SCHEMA 스키마명 CASCADE, DROP DOMAIN 도메인명 CASCADE, DROP TABLE 케이블명 CASCADE, DROP VIEW 뷰명 CASCADE, DROP INDEX 인덱스명 CASCADE, DROP INDEX CONSTRAINT 제약조건명;

-DROP TABEL 학생 CASCADE; <학생>테이블을 제거하되, <학생> 테이블을 참조하는 모든 데이터를 함께 제거하시오.

-GRANT RESOURCE TO NABI; 사용자ID가 ‘NABI’인 사람에게 데이터베이스 및 테이블을 생성할 수 있는 권한을 부여하는 SQL문을 작성하시오.

-GRANT CONNECT TO STAR; 사용자 ID가 “STAR”인 사람에게 단순히 데이터베이스에 있는 정보를 검색 할 수 있는 권한을 부여한다.

-GRANT ALL ON 고객 TO NABI WITH GRANT OPTION; NABI에게 <고객>테이블에 대한 모든 권한과 다른 사람에게 권한을 부여할 수 있는 권한까지 부여

-REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM STAR; STAR인 사람에게 부여한<고객> 테이블에 대한 권한 중 UPDATE권한을 다른 사람에게 부여할 수 있는 권한만 취소

-INSERT INTO 사원(이름,부서) VALUES(‘홍승현’,‘인터넷’); <사원>테이블에 (이름은 홍승현, 부서는 인터넷을 삽입하시오)

-INSERT INTO 사원 VALUES (‘장보고,’기획‘,#05/03/73#,’홍제동‘,90); <사원>테이블에 (장보고,기획,05/03/73, 홍제동,90)을 삽입하시오.

-INSERT INTO 편집부원(이름,생일,주소,기본급) SELECT 이름,생일,주소,기본급 FROM 사원 WHERE 부서 =‘편집’; <사원>테이블의 부서가 편집부인 모든 편집부사원(이름,생일,주소,기봅급)을 <편집부원>테이블에 삽입.

-DELETE FROM 사원 WHERE 이름 = ‘홍길동’; <사원>테이블에서 ‘홍길동’에 대한 튜플 삭제.

-DELETE FROM 사원 WHERE 부서 = ‘공무부’; <사원>테이블에서 ‘공무부’부서에 대한 모든 튜플을 삭제하시오.

-DELETE FROM 사원 ; <사원> 테이블의 모든 레코드를 삭제하시오.

-UPDATE 사원 SET 주소 = ‘수정동’ WHERE 이름 = ‘홍길동’ ; <사원>테이블에서 이름이 홍길동인 사원의 주소를 수정동으로 수정

-UPDATE 사원 SET 부서 = ‘기획’, 기본급 = 기본급 +5 WHERE 이름 = ‘황진이’; <사원>테이블에서 이름이 황진이인 사원의 부서를 기획으로 수정하고 기본급을 5만원 인상으로 수정함

-SELECT * FROM 사원; SELECT 사원.* FROM 사원; SELECT 이름,부서,생일,주소,기본급 FROM 사원; SELECT 사원.이름,사원.부서,사원.생일,사원.주소,사원.기본급 FROM 사원; <사원>테이블의 모든 튜플을 검색하시오.

-SELECT DISTINCT 주소 FROM 사원; <사원> 테이블에서 ‘주소’만 검색하되 같은 ‘주소’는 한 번만 출력하시오.

-SELECT부서+‘부서의’ AS 부서2, 이름+‘의 월급’ AS 이름2, 기본급 + 10 AS 기본급2 FROM 사원; (예) 부서2컬럼 **부서의 , 이름2의 컬럼 ***의 월급, 기본급2 컬럼 *** 형태로 출력된다.

-SELECT * FROM 사원 WHERE 이름 LIKE “김%”; <사원>테이블에서 성이 ‘김’인 사람의 튜플을 검색하시오.

-SELECT * FROM 사원 WHERE 생일 BETWEEN #01/01/77# AND #12/31/99#; <사원> 테이블에서 ‘생일이 ’01/01/77’에서 ‘12/31/99’ 사이인 튜플을 검색하시오(날짜데이터는 숫자로 취급하지만 ‘ ’ 또는 # #으로 묶는다.

-SELECT * FROM 사원 WHERE 주소 IS NULL; <사원> 테이블에서 ‘주소’가 NULL인 튜플을 검색하시오. IS NOT NULL 인 경우 ‘주소’가 NULL이 아닌 튜플을 검색하시오.

-SELECT TOP 2 * FROM 사원 ORDER BY 주소 DESC; <사원> 테이블에서 ‘주소’를 기준으로 내림차순 정렬시켜 상위2개 튜플만 검색하시오.

-SELECT * FROM 사원 ORDER BY 부서 ASC, 이름 DESC; <사원>테이블에서 ‘부서’를 기준으로 오름차순 정렬하고, 같은 ‘부서’에 대해서는 ‘이름’을 기준으로 내림차순 정렬시켜서 검색하시오.

-SELECT 이름,주소 FROM 사원 WHERE 이름(SELECT 이름 FROM 여가활동 WHERE 취미 = ‘나이트댄스’); ‘취미’가 ‘나이트댄스’인 사원의 ‘이름’과 ‘주소’를 검색하시오.

-SELECT * FROM 사원 WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동);

-SELECT 사원.이름,사원.부서,여가활동.취미,여가활동.경력 FROM 사원,여가활동 WHERE 여가활동.경력 >= 10 AND 사원.이름 = 여가활동.이름; <사원><여가활동>

복수테이블에서 ‘경력’10년 이상 사원의‘이름’,‘부서‘,’취미‘,’경력’을 검색하시오

-SELECT 상여내역,상여금, ROW_NUMBER() OVER(PARTITION BY 상여내역 ORDER BY 상여금 DESC)AS NO FROM 상여금;

:<상여금>테이블에서 ‘상여내역’별로 ‘상여금’에 대한 일련 번호를 구하시오. (단, 순서는 내림차순이며 속성을 ‘NO’로 할 것)

-SELECT 상여내역,상여금, RANK() OVER (PARTITION BY 상여내역 ORDER BY 상여금 DESC) AS 상여금순위 FROM 상여금;

:<상여금>테이블에서 ‘상여내역’별로 ‘상여금’에 대한 순위를 구하시오(단, 순서는 내림차순이며, 속성명은 ‘상여금순위’로 하고, RANK()함수를 이용할 것)

-SELECT * FROM 사원 INTERSECT SELECT * FROM 직원; <사원>테이블과 <직원> 테이블에 공통으로 존재하는 레코드만 통합하시오.

-SELECT * FROM 사원 UNION SELECT * FROM 직원; <사원>테이블과 <직원> 테이블을 통합하시오(단, 같은 레코드가 중복되어 나오지 않게 하시오)

-SELECT 부서, COUNT(*) AS 사원수 FROM 상여금 WHERE 상여금 >=100 GROUP BY 부서 HAVING COUNT(*) >= 2; <상여금>테이블에서 ‘상여금’이 100이상은 사원이 2명이상인 ‘부서’의 튜플 수를 구하시오.

Start typing and press Enter to search

Shopping Cart