1. 다음은 보안 공격 관련 용어이다. 괄호 안에 들어갈 올바른 용어를 보기에서 골라 쓰시오.
- ( 1 ) 은/는 산업 제어 시스템(Industrial Control System)에 대한 공정, 기반 시설, 설비를 바탕으로 한 작업 공정을 감시하고 제어하는 컴퓨터 시스템으로 최근 이를 대상으로 이루어진 사이버 공격으로 인해 전력 공급 체계 등 사회 기반 시설 운영에 피해가 발생하고 있다.
- 또한 ( 2 ) 은/는 2010년 6월에 발견된 산업 시스템 대상 웜 바이러스이다.
[보기]
PLC, SCADA, Modbus, Card trap. A, CommWarrior, Hobbles. A, Brader, Stuxnet, Tripwire, Fcheck, Samhain, Advanced Persistent Threat, Supply Chain Attack, Botnet, Smishing |
▷ 1: SCADA / 2: Stuxnet
- PLC: 프로그램 가능한 논리 제어 장치
- Modbus: 디바이스간 통신을 위한 산업용 프로토콜
2. 다음은 C 언어 코드이다. 출력 결과를 쓰시오.
#include<stdio.h>
int main(int argc, char *argv[]){
int a = 7;
int s = 0;
int sum = 0;
while(a < 10){ // a 값이 10 보다 작을 때까지 반복 수행
a++;
if(a%2 == 1) continue; // a 를 2 로 나눈 나머지가 1 이면 countinue 실행
sum += a; // a + sum 을 한 값을 sum 에 대입
}
switch(a/2){
case 2: s++; // a 를 2 로 나눈 값이 2이면 s 를 1 증가
case 3: a += s; // a 를 2 로 나눈 값이 3이면 a + s 를 a 에 대입
default: a++; // 그 외에는 a 값을 1 증가시킴
}
printf("%d%d", s, a);
return 0;
}
▷ 011
3. 다음은 직원 테이블이 있다. [조건]에 맞도록 SQL 문을 작성하시오.
[조건]
- 테이블 명은 직원이다.
- 대소문자를 구분하지 않는다.
- UPDATE 구문을 사용한다.
- 직원 테이블에서 직급이 '대리'인 직원의 연봉을 10,000,000원 인상한다.
[직원] 테이블
속성명 | 데이터 타입 | 비고 |
직원번호 | VARCHAR(10) | PRIMARY KEY |
이름 | VARCHAR(20) | |
직급 | VARCHAR(10) | |
연봉 | INT | |
휴대전화 | VARCHAR(11) | |
주소 | VARCHAR(40) |
▷ UPDATE 직원 SET 연봉 = 연봉 + 10000000 WHERE 직급 = '대리';
4. 다음은 SCRUM의 구성요소에 대한 설명이다. 괄호 안에 들어갈 용어를 영어 full-name으로 쓰시오.
- ( 1 ) 은/는 개발에 필요한 모든 제품과 프로젝트에 대한 요구사항(User Story)을 우선순위에 따라 나열한 목록이다. 프로젝트 과정에서 새롭게 도출되는 요구사항으로 인해 지속해서 업데이트 된다,
- ( 2 ) 은/는 스프린트에서 수행하고 있는 작업의 진행 상황을 확인할 수 있도록 시간의 진행에 따라 남은 작업 시간을 그래픽적으로 표현한 차트로 작업이 진행될수록 점점 줄어든다.
▷ 1: Backlog / 2: Burn Down chart
5. 다음은 C 언어 코드이다. 출력 결과를 쓰시오.
#include<stdio.h>
int main(int argc, char *argv[]){
int a[5] = {3, 4, 10, 2, 5};
int temp;
int i = 0, j = 0;
for(i = 0; i <= 3; i++){ // i 값이 0 부터 3 보다 작거나 같을 때까지 1 씩 증가시키면서 반복
for(j = i + 1; j <= 4; j++){ // j 값이 i+1 과 같고 4 보다 작을 때까지 j 값을 1 씩 증가시키면서 반복
if(a[i] < a[j]{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("%d", a[1]);
return 0;
}
a = 10 4 3 5 2
100
temp = 2
i = 4
j = 5
▷ 5
6. 무결성의 종류 중 개체 무결성의 개념을 서술하시오.
▷ 한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없음
데이터베이스 무결성의 종류
- 개체 무결성: 한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없음
- 참조 무결성: 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL 이어야 함
- 속성 무결성: 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 함
- 사용자 무결성: 사용자의 의미적 요구 사항을 준수해야 함
- 키 무결성: 한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없음
7. 다음은 비즈니스 연속성 계획과 관련된 내용이다. 괄호 안에 들어갈 용어를 쓰시오.
- BCP(Business Continuity Plan)은 비즈니스 연속성 계획은 각종 재해, 장애, 재난으로부터 위기 관리를 기반으로 재해 복구, 업무 복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계이다.
- BCP 주요 요소 중에 ( 1 ) 은/는 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석이고, ( 2 ) 은/는 업무 중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간이다.
- 기업의 BCP 계획이 수립되었으면 계획에 맞는 DRS를 구축해야 한다. DRS 증 ( 3 ) Site는 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방식의 미러링을 통하여 데이터의 최신상태를 유지하고 있는 재해 복구 센터로 재해 발생 시 복구까지의 소요 시간은 4시간 이내이다.
▷ 1: BIA(Business Impact Analysis) / 2: RTO(Recovery Time Object) / 3: Hot
8. 3개의 페이지를 수용할 수 있는 주기억 장치가 있으며, 초기에는 모두 비어 있다고 가정한다. 다음의 순서로 페이지 참조가 발생할 때, LRU(Least Recently Used) 페이지 교체 알고리즘을 사용할 경우 몇 번의 페이지 결함이 발생하는가?
페이지 참조 순서: 1, 2, 3, 1, 2, 4, 1, 2, 5, 4 |
▷ 6
9. 다음은 C 언어 코드이다. 출력 결과를 쓰시오.
#include <stdio.h>
int get_length(char *p){
int len = 0;
int i = 0;
while(p[i] != NULL){ // p[i]가 NULL이 아니면 반복 수행
len++;
i++;
}
return len;
}
int main(int argc, char *argv[]){
char *p = "soojebi"; // 문자형 포인터 변수 p 선언, 문자열 soojebi 로 초기화
int len = get_length(p + 3); // get_length 함수를 호출, 리턴값을 len 변수에 대입
print("%d\n", len);
return 0;
}
▷ 4
10. 다음은 디자인 패턴(Design Pattern)에 대한 설명이다. 괄호 안에 들어갈 디자인 패턴의 종류를 영어 full-name으로 쓰시오.
- ( 1 ) Pattern: 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴으로 기능 확장이 필요할 때 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 디자인 패턴
- ( 2 ) Pattern: 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 하는 패턴
▷ 1: Decorator / 2: Composite
디자인 패턴 종류
생성 패턴: 객체 인스턴스 생성에 관여, 클래스의 정의와 객체 생성 방식을 구조와, 캡슐화를 수행하는 패턴
- 빌더: 복잡한 인스턴스를 조립하여 만드는 구조
- 프로토타입: 처음부터 일반적인 원형을 만들어 놓고 ,그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴
- 팩토리 메서드: 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
- 앱스트랙 팩토리: 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- 싱글톤: 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 디자인 패턴
구조 패턴: 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴
- 브리지: 기능의 클래스 계층과 구현의 클래스 계층을 연결, 구현부에서 추상 계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 패턴
- 데코레이터: 기존에 구현되어 있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴
- 퍼사이드: 복잡한 시스템에 대하여 단순한 인터페이스를 제공, 사용자와 시스템 간 또는 여타 시스템과의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게하는 패턴
- 플라이웨이트: 다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화하여 공유함으로써 메모리를 절약하고 클래스의 경량화를 목적으로 하는 패턴
- 프록시: 실제 객체에 대한 대리 객체로 실제 객체에 대한 접근 이전에 필요한 행동을 취할 수 있게 만들며, 이점을 이용해서 미리 할당하지 않아도 상관없는 것들을 실제 이용할 때 할당하게 하여 메모리를 아낄 수 있으며, 실제 객체를 드러나지 않게 하여 정보 은닉의 역할도 수행하는 패턴
- 컴포지트: 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴
- 어댑터: 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴
행위 패턴: 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴
- 미디에이터: 중간에 지시할 수 있는 역할을 하는 중재자를 두고, 중재자에게 모든 것을 요구하여 통신의 빈도수를 줄여 객체 지향의 목표를 달성하게 해주는 패턴
- 인터프리터: 언어의 다양한 해석, 구체적으로 구문을 나누고 그 분리된 구문의 해석을 맡는 클래스를 각각 작성하여 여러 형태의 언어 구문을 해석할 수 있게 만드는 패턴
- 이터레이터: 컬렉션의 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공하는 디자인 패턴
- 템플릿 메서드: 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
- 옵저버: 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고, 자동으로 내용이 갱신되는 방법으로, 일대 다의 의존성을 가지며 상호 작용하는 객체 사이에서는 가능하면 느슨하게 결합하는 패턴
- 스테이트: 객체 상태를 캡슐화하여 클래스화함으로써 그것을 참조하게 하는 방식으로 상태에 따라 다르게 처리하 수 있도록 행위 내용을 변경하여, 변경 시 원시 코드의 수정을 취소할 수 있고 유지보수의 편의성도 갖는 패턴
- 비지터: 각 클래스 데이터 구조로부터 처리 기능을 분리하여 별도의 클래스를 만들어 놓고 해당 클래스의 메서드가 각 클래스를 돌아다니며 특정 작업을 수행하도록 만드는 패턴
- 커맨드: 실행될 기능을 캡슐화 함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴으로 하나의 추상 클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징을 갖는 패턴
- 스트래티지: 알고리즘 군을 정의하고(추상 클래스), 같은 알고리즘을 각각 하나의 클래스로 캡슐화한 다음 필요할 때 서로 교환해서 사용할 수 있게 하는 패턴
- 메멘토: 클래스 설계 관점에서 객체의 정보를 저장할 필요가 있을 때 적용하는 패턴으로, Undo 기능을 개발할 때 사용하는 디자인 패턴
- 체인 오브 리스폰서빌리티: 정적으로 어떤 기능에 대한 처리의 연결이 하드코딩 되어있을 때 기능 처리의 연결 변경이 불가능한데, 이를 동적으로 연결되어 있는 경우에 따라 다르게 처리될 수 있도록 연결한 패턴
11. 다음은 접근 통제에 대한 설명이다. 괄호 안에 들어갈 용어를 쓰시오.
- 접근 통제 기법: 인증된 주체에게 접근을 허용하는 활동으로 특정 업무를 수행할 권리를 부여하는 행위 → ( 1 )
- 접근 통제 유형: 객체에 포함된 정보의 허용 등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 접근 통제 정책 → ( 2 )
- 접근 통제 보호 모델: 무결성을 보장하는 최초의 모델로 속성은 No Read Down, No Write Up → ( 3 )
▷ 1: 인가(Authorization) / 2: MAC / 3: 비바(BIBA) 모델
접근 통제 기법
- 3A: 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고 신뢰성 있는 인증, 권한 검증, 과금 기능을 체계적으로 제공하는 정보 기술
- 인증(Authorization)
- 권한 부여(Authorization)
- 계정 관리(Accounting)
접근 통제 유형
- 임의적 접근 통제(DAC): 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법
- 강제적 접근 통제(MAC): 객체에 포함된 정보의 허용 등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에근거하여 객체에 대한 접근을 제한하는 방법
- 역할 기반 접근 통제(RBAC): 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법
접근 통제 보호 모델
- 벨-라파듈라 모델(BLP): 미 국방부 지원 보안 모델로 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근 통제하는 모델 (No Read Up, No Write Down)
- 비바(BIBA) 모델: 벨-라파듈라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델(No Read Down, No Write Up)
12. 다음은 C 언어 코드이다. 출력 결과를 쓰시오.
#include<stdio.h>
char *soojebi(char *p){
int len = 0;
int i = 0;
while(p[i] != ' '){ // p[i] 값이 ' ' 이 아니면 반복
len++;
i++;
}
return &p[i + 1]; // p[i+1] 의 주소값을 리턴함
}
int main(int argc, char *argv[]){
char *p = "soojebi hello world";
printf("%s\n", soojebi(p + 3));
return 0;
}
p = soojebi hello world
&p[7]
▷ hello world
13. 소프트웨어 아키텍처 4+1 뷰(View)에서 물리적 시스템에서 사용하는 소프트웨어 서브 시스템의 모듈(컴포넌트)이 서로 어떤 연관 관계가 있고 설계와 어떻게 연결 관계를 나타내는지에 관심이 있는 뷰(View)는 무엇인가?
▷ 구현 뷰
소프트웨어 아키텍처 4+1 뷰(View)
- 유스케이스 뷰: 최종 사용자가 인식하는 시스템의 기능을 의미
- 논리 뷰: 시스템의 기능을 제공하기 위해 필요한 클래스나 컴포넌트 및 이들의 관계에 초점을 맞춘 뷰
- 프로세스 뷰: 개발자와 시스템 통합자를 위한 관점으로 실제 구동 환경을 살펴봄으로써 논리적 관점과 같이 시스템의 내부 구조(클래스 간 관계, 클래스의 동작, 클래스 간 상호작용)에 초점을 맞춘 뷰
- 구현 뷰: 물리적 시스템에서 사용하는 소프트웨어 서브 시스템의 모듈(컴포넌트)이 서로 어떤 연관 관계가 있고 설계와 어떻게 연결 관계를 나타내는지에 초점을 맞춘 뷰
- 배포 뷰: 시스템에서 필요한 하드웨어 환경을 포함해 시스템을 구성하는 처리 장치 간의 물리적인 배치에 초점을 맞춘 뷰
14. 다음은 객체 지향 개념에 대한 설명이다. 괄호 안에 들어갈 용어를 쓰시오.
- ( 1 ) 은/는 모듈 안에 있는 자료 구조와 메서드에 사용된 알고리즘을 외부에서 직접 변경할 수 없고, 공개 인터페이스로 정의된 메서드를 통해서만 접근할 수 있는 것을 의미한다.
- ( 2 ) 은/는 하나의 사물이 다른 사물에 포함된 관계를 표현하고, 포함되는 쪽(부분)에서 포함하는 쪽(Whole)으로 속이 빈 마름모를 연결하여 표현한다.
- ( 3 ) 은/는 같은 오퍼레이션이 다른 클래스에서 다르게 동작하는 것을 말하며, 하나의 함수 이름이나 연산자가 여러 목적으로 사용될 수 있는 것을 의미한다.
▷ 1: 정보 은닉 / 2: 집합 관계 / 3: 다형성
객체 지향의 특징
- 캡슐화(Encapsulation): 외부에서 접근을 제한하기 위해 인터페이스를 제외한 세부 내용을 은닉하는 것
- 상속(Inheritance): 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
- 다형성(Polymorphism): 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
- 연관성(Relationship): 두 개 이상의 객체들이 상호 참조하는 관계
15. 다음 SQL 문의 실행 결과를 쓰시오.
[EMP_SALARY] 테이블
EMP_ID | SALARY |
202001 | 15000 |
202002 | 12000 |
202003 | 11000 |
202004 | 14000 |
[EMP_DIVISION] 테이블
EMP_ID | DIV | EMP_NAME |
202001 | 기획팀 | 강은미 |
202002 | 개발팀 | 김정미 |
202003 | 마케팅팅 | 홍길동 |
SELECT SALARY FROM EMP_SALARY WHERE EMP_ID = (SELECT EMP_ID FROM EMP_DIV WHERE EMP_NAME= '강은미'); |
▷ 15000
16. 다음은 테스트 관련 용어이다. 괄호 안에 들어갈 용어를 보기에서 골라 쓰시오.
- Req-01: 검토 자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 문제 식별, 대안 조사, 개선 활동, 학습 기회를 제공하는 가장 비형식적인 검토 기법 → ( 1 )
- Req-02: 제어 흐름 그래프에 데이터 사용 현황을 추가한 그래프를 통해 테스트하는 기법 → ( 2 )
- Req-03: 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법으로 특정 테스트 대상이 주어지면 테스터의 경험과 직관을 바탕으로 개발자가 범할 수 있는 실수들을 나열하고, 해당 실수에 따른 결함을 노출하는 테스트를 수행하는 기법 → ( 3 )
[보기]
Inspection, Walk Through, Technical Review, Decision Coverage, Data Flow Testing, Condition Coverage, Boundary Value Analysis Testing, Error Guessing, Use Case Testing, Decision Table Testing, State transition testing, Cause-Effect Graph Testing, Comprison Testing |
▷ 1: Walk Through / 2: Data Flow Testing / 3: Error Guessing
화이트박스 테스트: 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트
- 구문 커버리지: 프로그램 내의 모든 명령문을 적어도 한 번 수행
- 결정 커버리지: (각 분기의) 결정 포인트 내의 전체 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
- 조건 커버리지: (각 분기의) 결정 포인트 내의 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과를 수행
- 조건/결정 커버리지: 전체 조건식 뿐만 아니라 개별 조건식도 참 한 번, 거짓 한 번 결과가 되도록 수행
- 변경 조건/결정 커버리지: 개별 조건식이 다른 개별 조건식에 영향을 받지 않고, 전체 조건식에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상 시킨 커버리지
- 다중 조건 커버리지: 결정 조건 내 모든 개별 조건식의 모든 가능한 조합을 100% 보장
- 기본 경로 커버리지: 수행 가능한 모든 경로를 테스트
- 제어 흐름 테스트: 프로그램 제어 구조를 그래프 형태로 나타내어 내부 로직을 테스트
- 데이터 흐름 테스트: 제어 흐름 그래프에 데이터 사용 현황을 추가한 그래프를 통해 테스트
블랙박스 테스트: 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 기능 테스트
- 동등 분할 테스트: 입력 데이터의 영역을 유사한 도메인별로 유효값/무효값을 그룹핑하여 대표값 테스트 케이스를 도출
- 경곗값 분석 테스트: 등가 분할 후 경곗값 부분에서 오류 발생 확률이 높기 때문에 경곗값을 포함하여 테스트 케이스를 설계하여 테스트
- 결정 테이블 테스트: 요구사항의 논리와 발생 조건을 테이블형태로 나열하여 조건과 행위를 모두 조합하여 테스트
- 상태 전이 테스트: 테스트 대상 / 시스템이나 객체의 상태를 구분하고 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행
- 유스케이스 테스트: 시스템이 실제 사용되는 유스케이스로 모델링되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행
- 분류 트리 테스트: SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트 케이스를 설계하여 테스트
- 페어와이즈 테스트: 테스트 데이터 값들 간에 최소한 한 번씩을 조합하는 방식
- 원인 결과 그래프 테스트: 그래프를 활용하여 입력 데이터 간의 관계 및 출력에 미치는 영향을 분석하여 효용성이 높은 테스트 케이스를 선정하여 테스트
- 비교 테스트: 여러 버전의 프로그램에 같은 입력값을 넣어서 동일한 결과 데이터가 나오는지 비교
17. 다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.
a = 5
for i in range(1, a+1):
if a % i == 0:
print(i)
▷
1
5
파이썬은 print 함수가 끝나면 개행이 된다.
1부터 시작하니까 5 % 1 = 0 이니까, 5를 1과 5로 나누면 나누어 떨어지므로 1과 5가 출력된다.
18. 다음 Java 프로그램의 실행 결과로 가장 알맞은 것은?
class Connection{
private static Connection inst = null; // Connection 인스턴스인 inst 변수를 static으로 선언하고 null로 초기화
private int count = 0; // 정수형 변수 count 선언, 0으로 초기화
static public Connection getInstance(){
if(inst == null){ // inst 가 null 이면 Connection() 생성자 호출하여 새로 생성
inst = new Connection();
return inst;
}
return inst;
}
public void count(){count++;} // count 개수를 구함
public int getCount(){
return count;
}
}
class Soojebi{
public static void main(String[] args){
Connection conn1 = Connection.getInstance();
conn1.count(); // gelInstance 메서드 호출, 결과를 conn1에 대입하고 count 개수 1 증가시킴
Connection conn2 = Connection.getInstance();
conn2.count(); // gelInstance 메서드 호출, 결과를 conn2에 대입하고 count 개수 1 증가시킴
System.out.print(conn1.getCount()); // getCount 메서드 호출, count 값 출력
}
}
▷ 2
19. 다음은 네트워크 보안 시스템에 대한 설명이다. 괄호 안에 들어갈 용어를 영어 약자 또는 영문 full-name으로 작성하시오.
- ( 1 ): 웹 어플리케이션 보안에 특화된 보안장비로 SQL 인젝션, XSS 등과 같은 웹 공격을 탐지하고 차단하는 기능을 하는 장비
- ( 2 ): 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션으로 바이러스나 웜 등의 보안 위협으로부터 네트워크 제어 및 통제 기능을 수행하는 시스템
- ( 3 ): 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 장비로 외부 공격에 대해 내부 시스템 보호를 위해 무선랜 환경에서의 보안 위협을 탐지하는 시스템
▷ 1: WAF(Web Application Firewall) / 2:NAC(Network Access Control) / 3: WIPS(Wireless Instrusion Prevention System)
네트워크 보안 솔루션
- 방화벽(Firewall): 기업 내부, 외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단하는 시스템
- 웹 방화벽(WAF; Web Application Firewall): 웹 애플리케이션 보안에 특화된 보안 장비. XSS, SQL 인젝션 차단 가능
- 네트워크 접근 제어(NAC; Network Access Control): 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
- 침입 탐지 시스템(IDS; Intrusion Detection System): 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원 접근과 보안 정책 위반 행위(침입)을 실시간으로 탐지하는 시스템
- 침입 방지 시스템(IPS; Intrusion Prevention System): 네트워크에 대한 공격이나 침입을 실시간으로 차단하고 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템
- 무선 침입 방지 시스템(WIPS; Wireless Intrusion Prevention System): 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
- 통합 보안 시스템(UTM; Unified Threat Management): 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
- 가상 사설망(VPN; Virtual Private Network): 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
20. 다음은 C 언어 코드이다. 출력 결과를 쓰시오.
#include<stdio.h>
#include<string.h>
int main(int argc, char *argv[]){
char *p = "soojebi hello world";
char *pSoojebi;
pSoojebi = strchr(p, ' '); // *p에서 ' '을 찾으면 pSoojebi에 ' ' 의 주소값을 대입함
if(pSoojebi != NULL){
printf("%s\n", ++pSoojebi);
} else{
printf("%s\n", p);
}
return 0;
}
p = soojebi hello world
pSoojebi = 2
▷ hello world
'정보처리기사' 카테고리의 다른 글
[문제 & 풀이] 정보처리기사 실기 족보_4 (0) | 2023.04.18 |
---|---|
[JAVA] 자바의 객체 지향 특징 (2) | 2023.04.17 |
[11. 응용 SW 기초 기술 활용] 핵심 키워드 정리 (0) | 2023.04.15 |
[문제 & 풀이] 정보처리기사 실기 족보_2 (0) | 2023.04.13 |
[문제 & 풀이] 정보처리기사 실기 족보_1 (0) | 2023.04.11 |