1. 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 나가는 프로세스 모델 방식이다. 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수 프로세스와는 비교가 많이 되는 반대의 개념이다. 이 소프트웨어 개발 방법론을 쓰시오.
생명주기 모형의 종류
폭포수 모형
- 문서가 완벽하게 만들어 져야함, 되돌아 갈 수 없음
- 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
프로토타입 모형
- 실제 개발될 시스템의 견본(prototype)을 미리 만들어 최종 결과물을 예측하는 모형
나선형 모형
- 계획 → 위험 분석 → 개발 → 평가
RAD: CASE 도구를 사용해서 빨리빨리 개발함
CASE(Computer Aid Software Engineering)
상위 CASE: 분석 설계
하위 CASE: 개발 테스트
애자일(Agile) 방법론
XP(eXtreme Programming)
- 의사소통, 단순성, 피드백, 용기, 존중('의사'선생님 저 약 '피''존''용기'에 '단'아주세요)
- 고객과 함께 2주 정도의 반복 개발을 하고, 테스트와 우선 개발이 특징
SCRUM
- 프로젝트를 30일마다 동작 가능한 제품을 제공하는 스프린트로 분리
- 매일 15분 정도 회의를 한다
정답: 애자일 방법론
2. 다음은 데이터베이스 설계의 순서이다. 빈 칸에 해당하는 설계 순서를 쓰시오
요구사항 분석 → ( ) → ( ) → ( ) → 구현
정답: 개념적 설계, 논리적 설계, 물리적 설계
개념적 설계: ERD 그리기
논리적 설계: 목표 DBMS에 맞는 설계, Transation Interface 만들기, 정규화 → JOIN 연산 발생 → 계산이 기하 급수적 증가
물리적 설계: 성능에 대한 고려(인덱스, 클러스터링, 파티션, 뷰,,,, 반정규화)
3. 다음 빈칸에 알맞은 용어를 쓰시오
일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다. ( ) 은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 되는데, ( ) 에는 몇 가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call: RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)로 메시지를 요청하고, 서버는 메시지를 즉시 응답하게 되는 형식이다. 즉 ( )는 XML을 이용해서 분산처리 환경에서 정보교환을 쉽게 할 수 있도록 도와준다.
EAI 공부하기
WSDL: 데이터를 주고받기 위한 설명서
UDDI: WSDL을 모아놓은 도서관
SOAP: WSDL, UDDI를 기반으로 실제로 데이터를 주고받는 프로토콜
HTTP(80포트): ID, PW 를 입력했을 때 평문으로 날라감
HTTPS(443 포트): ID, PW를 입력했을 때 암호문으로 날라감
SMTP: 메일을 주고받는 프로토콜
정답 : SOAP
4. 다음 빈 칸 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오
- ( )는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, ( ) 는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간을 이야기한다.
- ( )란 소프트웨어 소스 코드 뿐 아니라 개발 환경, 빌드 구조 등 전반적인 환경 내역에 대한 관리 체계를 정의하고 있다.
- 이를 지원하는 도구로 GIT, SVN, CVS 등이 있다.
형상관리 절차(식통감기)
형상 식별 → 형상 통제(baseline 설정) → 형상 감사 → 형상 기록
CVS, SVN → 중앙 통제, 클라이언트/서버 방식
GIT → 분산 저장소 방식
정답 : 형상관리
5. 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있는 비동기 방식 처리 기술의 약어를 쓰시오
동기: 데이터가 다 들어올 때 까지 기다려야 함
비동기: 데이터를 불러오면서 다른 작업도 할 수 있음
정답: AJAX
6. 다음은 UI 설계 원칙 4가지이다. 빈 칸에 알맞은 용어를 쓰시오.
설계 원칙 | 설명 |
직관성 | 누구나 쉽게 이해하고 사용할 수 있어야 한다. |
( ) | 사용자의 목적을 정확하게 달성하여야 한다. |
학습성 | 누구나 쉽게 배우고 익힐 수 있어야 한다. |
유연성 | 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다. |
직유학유
정답 : 유효성
7. 프로그램을 실행 시키지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 복잡도, 보안 취야점, 잠재적인 결함을 찾는 테스트 활동이 무엇인지 쓰시오.
V모델(단통시인)
단위 테스트
- 정적 테스트: 소스 코드 내부를 봄
- 동적 테스트: 모듈을 실행시켜서 입력값에 대한 출력값이 올바른지 확인
통합 테스트
- 상향식 테스트: 작은 모듈 부터, 위에 모듈이 없으면 드라이버로 대체
- 하향식 테스트: 메인 함수 부터, 아래 모듈이 없으면 스텁으로 대체
- 빅뱅 테스트
시스템 테스트
- 기능 테스트
- 비기능 테스트: 안정성, 성능,,,
인수 테스트
- 알파 테스트: 개발자 + 사용자
- 베타 테스트: 사용자
애플리케이션 테스트 유형 분류
프로그램 실행 여부
- 정적 테스트
- 동적 테스트
테스트 기법
- 화이트박스 테스트: 소스 내부를 봄
- 블랙박스 테스트: 동작 방식을 봄, 동등 분할 기법, 경계값 분석, 원인 효과 그래프 기법
테스트에 대한 시각
- 검증 테스트: 잘 만들고 있는지
- 확인 테스트: 만든 후 잘 만들었는지
테스트 목적
- 회복 테스트: 일부러 장애를 발생 시킨 후에 잘 회복 되는지
- 안전 테스트: 보안 테스트
- 강도 테스트: 스트레스 테스트, 일부러 과한 용량을 집어놓고 잘 버티는지
- 성능 테스트: 성능 확인
- 구조 테스트: 구조 확인
- 회귀 테스트: 수정 후 잘 돌아가는지 확인
- 병행 테스트: 두개 실행 시키고 두개의 결과가 똑같은지
테스트 기반
- 명세 기반 테스트: 문서 보고
- 구조 기반 테스트: 코드 보고
- 경험 기반 테스트
정답: 단위테스트
8. 아래 보기의 <학생> 테이블을 대상으로 <요구사항>을 적용하여 출력하는 SQL 을 작성하시오
<요구사항>
3학년이거나 4학년 학생의 학번과 이름을 검색하시오
단, 주건절 작성 시 in 예약어를 사용하여 작성하시오

답:
SELECT 학번, 이름
FROM 학생
WHERE 학년 IN (3, 4);
9. 다음 주어진 student 테이블의 name 속성을 오름차순하여 idx_name를 인덱스명으로 하는 인덱스를 생성하는 SQL 명령문을 작성하시오
정답:
CREATE INDEX idx_name
ON student(name asc);
10. 보안의 취약점 중 하나인 SQL Injection에 대해 간략히 서술하시오
정답: 웹 프로그램에 SQL 구문을 삽입하여, 서버의 데이터베이스를 공격할 수 있는 공격방식
XSS(Cross Site Script): 자바스크립트를 삽입하여 다른사용자들의 쿠키정보 등을 탈취함
11. SQL 제어어 (DCL) 중 ROLLBACK 명령에 대해 간략히 설명하시오
DDL: CREATE ALTER DROP TRUNCATE
DML: INSERT, UPDATE, DELETE
DCL: GRANT ~ TO, REVOKE ~ FROM
TCL: COMMIT, ROLLBACK
정답: 데이터베이스 내의 연산이 비정상적으로 종료되거나, 정상수행이 되었다 하더라도 수행되기 이전의 상태로 되돌리기 위한 명령이다.
12. 네트워크 계층(Network Layer, 3계층)인 IP 계층에서 IP 패킷 단위의 데이터 변조 방지 및 암호화 기능을 제공하는 통신 규약을 쓰시오.

OSI 7 | 특징 | 장치 | PDU | 프로토콜 |
응용 계층 | 프로그램 | |||
표현 계층 | 압축, 암호화 | |||
세션 계층 | 연결 설정 | |||
전송 계층 | 양 종단 간의 신뢰성 있는 정보 전달 담당, 흐름제어 오류 제어 | Header/Data = Segment | TCP(연결 확립), UDP(연결 미확립) | |
네트워크 계층 | 빠르게 전달하기 위한 목적, 비연결성, 비신뢰성 | 라우터 | Header/Segment = packet | IP, ICMP, ARP, RARP,,, |
데이터링크 계층 | 인접한 노드 간의 신뢰성 있는 정보 전달 | 스위치, 브리지 | Heaer/Packet = Frame | |
물리 계층 | 비트로 바꿔서 전달 | NIC, 허브, 리피터 |
IPSec의 헤더 프로토콜
AH(Authentication Header): 인증, 무결성
ESP(Encapsulation Security Payload): 인증, 무결성, 기밀성
정답: IPSec
13. 리눅스 커널을 기반으로 동작하며 자바와 코틀린 언어로 개발된 핸드폰이나 소형기기에 사용되는 오픈소스 플랫폼인 모바일 운영체제는 무엇인지 쓰시오
정답: 안드로이드
14. 리눅스 또는 유닉스에서 a.txt 파일에 대해 다음 조건을 만족하는 권한을 부여하고자 한다. 다음 <조건>을 준수하여 적합한 명령어를 작성하시오
<조건>
- 사용자에게는 읽기, 쓰기, 실행의 세 개의 권한을 모두 부여한다.
- 그룹에게는 읽기, 실행 두개의 권한을 부여한다
- 그룹 외 사용자에게는 실행 권한을 부여한다.
- 한 줄로 명령문이 작성되어야 하며, 8진수로 권한을 부여한다.
권한을 설정: chmod
소유자를 변경: chown
chmod + 8진수(0~7) 3개(소유자, 그룹, other)
8진수는 2진수 기준 3비트 → 첫번째 비트는 Read, 두번째 비트는 Write, 세번째 비트는 Execute
ex) 4 는 100(2) 로 표시하고 Read만 할수 있다, 6은 110(2) 이므로
정답: chmod 751 a.txt
15. 다음은 IP 인프라 서비스 관리 실무와 관련된 <실무 사례>에 대한 설명이다. 가장 적합한 용어를 한글 또는 영문으로 쓰시오.
<실무 사례>
A는 (주)한국아이티 보안관제실에서 정보시스템의 정보관리를 위해 모니터링을 담당하며 근무하고 있다. 시스템 운영 중 자연재해나 시스템 장애 등이 이유로 대고객 서비스가 불가능한 경우가 종종 발생한다. A는 이런 장애 발생시 서비스를 정상적으로 수행하기 위해 구축 시스템을 관리하는 역할을 한다. 이 용어는 이런 비상 상황이 발생 했을 때, "서비스 중단 시점과 서비스 복원 시점 간에 허용되는 최대 지연 시간"을 가리킨다.
RTO(Recovery Time Objective): 서비스 중단 시점부터 서비스 복원 시점까지 허용되는 최대 지연 시간, 목표 복구 시간
RPO(Recovery Point Objective): 서비스 중단 시점부터 서비스 복원 시점까지 손실 허용되는 데이터의 양, 목표 복구 지점)
전체 백업
증분 백업 : 월요일 꺼 둔 상태에서 화요일꺼 추가, 월화꺼 둔 상태에서 수요일꺼 추가..
차등 백업: 월요일 꺼 다 뜨고, 화요일꺼 다 뜨고,,
16. 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고, 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의하는 디자인 패턴명을 영문으로 쓰시오.
디자인 패턴 시험 전에 외우기
정답: Observer Pattern
17. 다음에서 설명하는 용어를 쓰시오.
- 자유롭게 사용이 가능하며, 저작권 표시 및 변경 허락 조건하에 재배포 가능한 링크 기반 개방형 데이터
- 연계 데이터(Linked data)와 오픈 데이터(Open data)가 결합된 단어로 웹에 게시되는 데이터에 식별자(URI)를 부여하고 관련 정보를 구조적으로 제공하는 연계 데이터를 저작권 없이 무료로 제공하여 사용자가 정보를 다양하고 효율적으로 활용할 수 있도록 한다
- 하이퍼텍스트 전송규약(HTTP), 자원 기술 프레임워크(RDF)와 인터넷 식별자(URI) 등의 웹 표준 기술을 이용하여 시맨틱 웹을 구축하고, 출처가 서로 다르지만 인터넷 식별자(URI)를 통해 데이터를 서로 연결한다.
- 데이터를 재사용할 수 있고, 데이터 중복을 줄일 수 있는 장점이 있다.
*시멘틱 웹
- 의미론적인 웹, 즉 문서의 의미에 맞게 어플리케이션의 의미에 맞게 구성된 웹
- 컴퓨터가 사람을 대신하여 정보를 읽고, 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹
- 즉, 검색이 잘되게 하기 위함

REST
- 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것
- HTTP URI를 통해 자원(Resource)를 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
정답: Linked Open Data
18. 다음은 Python 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오
asia = {'한국', '중국', '일본'} # 중괄호 .. 순서의 의미가 없다, 중복 허용 안함
asia.add('베트남') # 한국 중국 일본 베트남
asia.add('중국')
asia.remove('일본') # 한국 중국 베트남
asia.update(['홍콩', '한국', '태국']) # 한국 중국 베트남 홍콩 태국
print(asia)
중괄호 = 중복 허용 안함, 정렬 의미 없음
정답: {'한국', '중국', '베트남', '홍콩', '태국'}
19. 다음에 제시된 JAVA 프로그램은 <처리결과>와 같이 출력된다. JAVA 프로그램의 <?>에 들어갈 JAVA 표현을 대소문자를 구별하여 쓰시오
class Parent {
void show() {
System.out.println("Parent");
}
}
class Child extends Parent {
void show() {
System.out.println("Child"); // 메서드 오버라이딩
}
}
public class Exam {
public ststic void main(String[] args) {
Parent pa = <?> Child();
pa.show()
}
}
정답: new
20. 다음에 JAVA로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.
class A {
int a;
public A(int n) {
a = n;
}
public void print() {
System.out.println("a="+a);
}
}
class B extends A {
public B(int n) { // 클래스 이름과 같은 것이 생성자
super(n); // 생성자 호출,,, super() 형태로 호출
super.print(); // 메서드, 변수를 이용할 때는 . 사용
}
}
public class Exam {
public static void main(String[] args) {
B obj = new B(10); // B에 변수가 없으므로 A 클래스의 a를 변수로 가짐
}
}
System.out.println() 은 문자열을 만나면 그 뒤는 다 문자열 취급을 함
ex) System.out.println(7+5+3+"a"+3+5);
15a35
정답: a=10
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 2020년 3회 실기 기출문제 풀이 (0) | 2024.10.15 |
---|---|
[정보처리기사] 2020년 1회 실기 기출문제 풀이 (0) | 2024.10.11 |
[정보처리기사] C언어 특강 60강 이후 정리(printf 출력순서, ++ -- 연속, fork) (0) | 2024.10.10 |
[정보처리기사] C언어 특강 58~60강 정리(중복 재귀함수) (0) | 2024.10.10 |
[정보처리기사] C언어 특강 53~57강 정리(재귀함수) (0) | 2024.10.09 |