728x90

출제 영역 분석

필자의 분석이므로 출제기관의 분석과 다를 수 있습니다.

1 5단원 / 네트워크 11 1단원 / 어플리케이션 설계
2 1단원 / 소프트웨어 설계 12 5단원 / 네트워크
3 3단원 / SQL 13 1단원 / 디자인패턴
4 3단원 / 논리 데이터베이스 설계 14 3단원 / 병행제어
5 3단원 / SQL 15 4단원 / 객체지향프로그래밍
6 3단원 / SQL 16 4단원 / C언어
7 4단원 / Python 17 4단원 / JAVA
8 5단원 / 암호 기술 18 4단원 / C언어
9 2단원 / 어플리케이션 테스트 19 4단원 / JAVA
10 3단원 / SQL 20 2단원 / 어플리케이션 테스트
단원 1단원 2단원 3단원 4단원 5단원
문제 수 2 -> 3 ( +1) 4 -> 2 ( -2) 5 -> 6 ( +1) 5 -> 6 ( +1) 4 -> 3 (-1)

단원별로 문제의 수를 살펴보면 실기인 만큼 3,4단원의 비중이 늘어난 것을 볼수 있었습니다.

응시자 15,281명 중 합격자 4,235명으로 합격률 27.7%
2021년 1회차 보다는 합격률이 낮아진 시험입니다.


1) Ch 5. 네트워크

네트워크 기술에 관한 문제 입니다.

애드혹 네트워크
: 네트워크 장치를 필요로하지 않고 네트워크 토폴로지가 동적으로 변화되는 특징이 있으며 응용 분야로는 긴급 구조, 긴급 회의, 전쟁터에서의 군사 네트워크에 활용되는 네트워크

2) Ch 1. 소프트웨어 설계

UI에 관한 문제입니다.

CLI, Command Line Interface
 : 명령 문자열을 통해 시스템과 상호작용하는 UI로 DOS, Linux, 명령 프롬프트 등에서 사용된다.
GUI, Graphic User Interface
 : 메뉴, 아이콘 등의 그래픽 요소를 통해 시스템과 상호작용하는 UI이다. Windows, mac OS 등에서 사용된다.
NUI, Natural User Interface
 : 사람의 음성, 온도, 터치 등을 통해 시스템과 상호작용 하는 UI이다. 스마트폰, 지문 인식등에서 사용된다.

3) Ch 3. SQL

트랜잭션에 관한 문제입니다.

트랜잭션
 : 한 개 이상의 데이터베이스를 조작하는 논리적인 연산의 집합
 
트랜잭션의 특성 (ACID)
- 원자성 Atomicity : 모두 실행되거나 모두 실행되지 않아야 한다.
- 일관성 Consistency : 트랜잭션을 마친 후에도 동일하게 오류가 발생하지 않아야 한다.
- 고립성 Isolation : 트랜잭션 실행 중 다른 트랜잭션에 영향을 받지 않아야 한다
- 지속성 Durability : 트랜잭션의 결과는 항상 유지 보존되어야한다.

4) Ch 3. 논리 데이터베이스 설계

정규화에 관한 문제로 자주 출제된다.

정규화
: 데이터 모델링의 단계 중 가장 중요한 단계로써 논리 데이터 모델링을 상세화 하는 단계
 - 정확성, 일치성, 단순성 ,비중복성, 안정성이 보장된다.
 - 중복되는 튜플이 없어 효과적인 데이터 표현 및 저장이 가능하다
 - 비교적 간단한 연산자로 효과적인 연산이 가능하도록 구성한다
 
제1 정규형 : 도메인이 원자 값만 가지도록 분해한다.
제2 정규형 : 부분 함수 종속을 제거한다. [ 부분 함수 종속 = 기본키만으로는 해당 데이터를 식별할 수 없는 종속관계 ]
제3 정규형 : 이행적 함수 종속을 제거한다.
보이스 코드 정규형 : 결정자가 후보 키가 아닌 종속을 제거한다. [ 후보키 = 결정자가 유일성과 최소성을 만족시키는 키]
제4 정규형 : 다치 종속을 제거한다.
제5 정규형 : 후보키를 통하지 않은 조인 종속을 제거한다.

5) Ch 3. SQL

SQL문중 DML에 해당하는 수정 문제이다.

UPDATE ~ SET 구문으로 사용된다.
UPDATE 테이블명 SET 필드 = 값[, ...] WHERE 조건식;​

6) Ch 3. SQL

SQL문중 DML에 해당하는 수정 문제이다.

//INNER JOIN : 일치하는 데이터만 조인
SELECT * FROM 학생 JOIN 과목 ON 학생.과목코드 = 과목코드.과목코드;

//LEFT JOIN : 왼쪽(학생)의 테이블 데이터는 전부 포함하고 
//오른쪽(과목) 테이블은 기준을 일치하는 데이터만 조인
SELECT * FROM 학생 LEFT JOIN 학생.과목코드 = 과목.과목코드;

//RIGHT JOIN : 오른쪽(학생)의 테이블 데이터는 전부 포함하고
// 왼쪽(학생) 테이블은 기준을 일치하는 데이터만 조인
SELECT * FROM 학생 RIGHT JOIN 학생.과목코드=과목.과목코드;

~ JOIN ~ ON ~ 구문으로 사용된다.


8) Ch 5. 암호 기술

대칭키, 비대칭키 알고리즘에 관한 문제이다.

대칭키 방식 - DES,AES
비대칭키 방식 - RSA

DES ( Data Encryption Standard )

 : 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘이다. 

 - 블록의 크기는 64비트, 키 길이는 56비트이다.

 - 컴퓨터의 발전에 따라 해독이 가능해졌다.

 

AES ( Advanced Encryption Standard )

 : 2001년 미국 NIST에서 발표한 개인키 암호화 알고리즘이다.

 - DES의 한계를 보완한 것으로 블록 크기는 128비트, 키 길이는 128, 192, 256으로 분류된다.

 

RSA ( Rivest Shamir Adleman )

 : 공개키 암호 알고리즘을 이용한 디지털 서명 기법으로, 공개키 기반 서명 알고리즘 중 가장 먼저 상용화 되고 보편화되어있는 알고리즘이다. 적절한 시간 내에 인수가 큰 정수의 소인수 분해가 어렵다는 점을 이용한 공개키 암호화 기법

 

SEED

 : 한국인터넷진흥원에서 개발된 암호화 알고리즘이다.

 - 128/256 비트의 고정키를 사용하고, 128/256 비트의 블록을 암호화하는 블록 암호 방식

 

ARIA ( Academy, Resaerch Institute, Agency )

 : 국가보안기술연구소 (NSRI)가 주도하여 구현된 국가 암호화 알고리즘이다.

 - SEED와 함께 전자 정부의 대국민 행정 서비스용으로 보급되고 있다.

 

ECC ( Elliptic Curve Crypto )

 :  타원곡선과 임의의 곡선과의 교점 연산에서 정의되는 이산대수 문제의 어려움을 이용하는 암호 방식이다.


9) Ch 2. 어플리케이션 테스트

테스트 커버리지에 관한 문제이다.

테스트 커버리지
 : 테스트 케이스에 의해 수행되는 소프트웨어의 테스트 범위를 측정하는 테스트 품질 측정 기준

- 구문 (Statement) 커버리지 : 모든 명령문을 적어도 한번은 수행하는 커버리지 
- 결정 (Decision) , 분기 (Branch)  커버리지 : 전체 결정문이 적어도 한번은 참과 거짓의 결과를 수행 
- 조건(Condition) 커버리지 : 결정 명령문 내의 각 조건이 적어도 한 번은 참과 거짓의 결과가 되도록 수행하는 커버리지 
- 조건/결정 커버리지 : 전체 조건식뿐만 아니라 개별 조건식도 참과 거짓 결과가 한 번씩 되도록 수행하는 커버리지 
- 변경(Modified) 조건/결정 커버리지 : 각 개별 조건식이 다른 개별 조건식에 영향을 받지않고 전체 조건식에 독립적으로 영향을 주도록 설계 
- 다중 조건 커버리지 : 결정 조건 내 모든 개발 조건식의 모든 가능한 조합을 100% 보장하는 커버리지

10) Ch 3. SQL

SQL문중 DDL에 해당하는 수정 문제이다.

//AND 비교
//국어와 영어 성적이 모두 80점 이상인 튜플 출력
SELETE * FROM  성적 WHERE 국어 >= 80 AND 영어 >= 80;

//OR 비교
//1반,3반,5반 의 튜플 출력
//IN : 조금더 간편하게 표현가능
SELECT * FROM 성적 WHERE 반="1반" OR 반="3반" OR 반="5반";
SELECT * FROM 성적 WHERE 반 IN ("1반", "3반", "5반");

//IS NULL 비교 : 필드가 비어있는 튜플 출력
SELECT * FROM 성적 WHERE 벌점 IS NULL;

//LIKE 비교 : 이름이 박으로 시작되거나 은으로 끝나는 튜플 출력
SELECT * FROM 성적 WHERE 이름 LIKE 박% OR &은 ;

//BETWEEN 비교 
SELECT * FROM 성적 WHERE 평균 BETWEEN 80 AND 90;

11) Ch 1. 어플리케이션 설계

1회에서도 다루었던 문제로 응집도에대한 이해 문제이다.

결합도 Coupling -  "내공외제스자"
 : 모듈 사이의 연관 관계에 의해 모듈이 서로를 의존하는 정도를 의미한다.
 - 결합도가 약할수록 의존성이 약해지기 때문에 모듈의 독립성이 높아진다.
 
내용 결합도 Content Coupling 
 : 모듈이 다른 모듈의 내부 기능과 데이터를 직접적으로 사용하는 경우
공통 결합도 Common Coupling 
 : 모듈이 다른 모듈의 내부 데이터를 참조하는 경우
 - 인수로 받은 매개변수가 아닌 호출 모듈의 내부 전역 변수를 제어 Call By Reference 방식
외부 결합도 External Coupling 
 : 두 모듈이 외부에 선언된 변수를 참조하는 경우
제어 결합도 Control Coupling 
 : 모듈 간의 인터페이스로 값만 전달되는 것이 아니라 제어 요소도 전달하는 경우
스탬프 결합도 Stamp Coupling 
 : 두 모듈이 동일한 자료구조를 부분적으로 공유하는 경우
자료 결합도 Data Coupling 
 : 모듈 간의 인터페이스로 전달되는 인수와 전달받는 매개변수를 통해 상호작용이 일어남
 - Call By Value 방식


응집도 Cohesion - "우논시절교순기"
: 모듈 내부 요소들이 밀접한 관계를 맺고 있는 정도를 의미한다.
 
우연적 응집도 Coincidental Cohesion 
 : 서로 관련 없는 요소로 구성된 경우
논리적 응집도 Logical  Cohesion 
 : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들
시간적 응집도 Temporal Cohesion 
 : 연관성은 없지만 특성 시기에 함께 처리해야 하는 기능들을 묶어놓은 경우
절차적 응집도 Procedural  Cohesion 
 : 하나의 문제를 해결하기 위해 순차적(순서대로)으로 수행되는 경우
교환적 응집도 Communication  Cohesion 
 : 모듈의 기능들이 동일한 입출력 데이터를 사용하여 서로 다른 기능을 수행하는 경우
순차적 응집도 Sequential  Cohesion 
 : 모듈의 기능 수행의 결과물이 그다음 기능 수행의 입력 데이터로 사용되는 경우
기능적 응집도 Functional  Cohesion 
 : 모듈 내부의 모든 기능 요소들이 단일 문제를 해결하는데 수행

12) Ch 4. 네트워크

데이터 전송 제어에 관한 문제이다.

(자세한 내용은 https://facepark0408.tistory.com/59 에서 참고할 수 있습니다.)

축적 교환 방식 중에서 패킷교환 방식이다.
 - 가상 회선 패킷 교환 방식
 : 패킷들을 전송하기 전에 미리 가상 경로를 확보하여 전송하는 방식이다. 제어 패킷으로 경로를 확보한 다음 나머지 패킷들이 확보된 경로로 전달되는 방식이다.
 
 - 데이터그램 패킷 교환 방식
 : 경로를 확보하지 않고 독립적으로 자유롭게 전송하는 방식으로 제어 패킷을 사용하지 않는다. 송수 신국 사이에 논리적 연결이 설정되지 않는다.

추가적인 정보로는 회선교환 방식과 축적 교환 방식이 존재한다.
 - 회선 교환 방식 ( Circuit Switching )
 : 송수신 단말 장치 사이에서 데이터를 전송할 때마다 통신 경로를 설정하여 데이터를 교환하는 방식이다.
장점 ) 통신 경로 접속 시간이 매우 짧다. 통신 중 전송 제어 절차 정보의 형식에 제약을 받지 않는다.단점 ) 통신하는 양측의 시스템이 동시에 데이터 교환 준비가 되어있어야 한다. 접속되어 있는 동안은 두 시스템 간의 통신 회선이 독점되어있어 효율이 떨어진다.
 - 축적 교환 ( Store and forward Switching )
 : 전달된 데이터를 버퍼에 일시적으로 저장한 후, 에러 검출, 변환 등과 같은 처리를 완전히 수행한 뒤에 목적지로 전달하는 방식이다.

13) Ch 1. 어플리케이션 설계

자주 출제되는 문제 유형중 하나로 GoF 디자인 패턴 문제이다.

자세한 내용은 https://facepark0408.tistory.com/66 에서 다루었습니다.

디자인 패턴 문제는 생성, 구조, 행위로 3가지 종류가 있으며 
Command, Interpreter 가 보이는 것으로 행위 패턴 임을 유추 할 수 있어야 한다.

20) Ch 2. 어플리케이션 테스트

V-모델 중에서 통합 테스트 내용에 대한 이해문제이다.

통합 테스트
 : 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트 단계이다.

- 점증적/비점증적 방식, 하향식 통합테스트, 상향식 통합테스트

 - 하향식 테스트 : 주요 제어 모듈의 하위 모듈은 스텁(Stub)으로 대체

 - 상향식 테스트 : 상위 모듈에서의 데이터 입출력을 확인하기 위한 드라이버(Driver) 작성

테스트 스텁  :  하향식 테스트에서 하위 모듈 역할을 대신하는 기능
테스트 드라이버 :  상향식 테스트에서 상향 모듈의 인터페이스를 담당하는 기능


기타 풀이의 오류 및 오타 추가요청이 있으시다면 댓글 달아주세요!
감사합니다 좋은 하루 되세요~

 

 

728x90

+ Recent posts