본문 바로가기

IT Programmer/Certification (정보처리기사)

[4과목_프로그래밍 언어 활용] 오답노트


개발 환경 구축 시 소프트웨어 환경에 대한 설명으로 올바르지 않은 것은?

[ 소프트웨어 환경은 시스템 소프트웨어 / 개발 소프트웨어 로 구성됨 ]
[ 개발 소프트웨어 ]
- 요구사항 관리 도구 : ( JIRA , IBM DOORS, inteGREAT, Reqtify, Trello )
요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어
- 설계/모델링 도구 : ( DB Designer, PlantUML, ArgoUML)
UML(통합 모델링 언어)을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어
- 구현 도구 : (Eclipse, IntelliJ IDEA, Visual Studio, Netbeans, Node.js )
개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어
- 빌드 도구 : (Ant, Gradle, Maven, Jenkins )
구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어
- 테스트 도구 : ( CppUnit, JUnit, HttpUnit, NUnit, Spring Test )
 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어
- 형상관리 도구 : ( GIT, CVS, Subversion, Mercurial )
산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어

 

다음 중 웹 애플리케이션 서버(WAS)가 아닌 것은?
[ 하드웨어 환경 ]

웹 애플리케이션 서버
: 사용자에게 동적서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버
( Apache Tomcat, IBM WebSphere, Oracle WebLogic, Jeus ) 

파일 서버 
: 데이터베이스에 저장하기는 비효율적이거나, 서비스 게종을 목적으로 유지하는 파일들을 저장하는 서버.
( AWS S3 )

 

소프트웨어 개발 보안 점검 항복에 대한 설명으로 올바른 것은?
1. 입력데이터 검증 및 표현
: 입력 데이터에 대한 유효성 검증체계를 갖추고, 검증 실패 시 이를 처리할 수 있도록 코딩하는 것
-> 문제의 설명은 [ 보안 기능 : 인증 , 접근제어, 기밀성 등의 기능을 의미 ] 설명
2. 시간 및 상태의 보안 약점
: 검사시점과 사용 시점(TOCTOU), 종료 되지 않는 반복문 또는 재귀 함수 등이 있다.
3. 코드 오류 보안 약점
: 널 포인터 역참조, 부적절한 자원 해제 등이 있다
-> 문제의 설명은 [ 에러 처리 : 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재 ] 설명
4. API 오용 
: API를 잘못 하용하거나, 보안에 취약한 API를 사용하지 않도록 고려하여 코딩하는 것으로, 
DNS lookup에 의존한 보안결정, 취약한 API 사용이 있다.
-> 문제 중 [ 보안 약점 : 경로조작 및 자원 삽입( 입력 데이터 검증 및 표현 ) ] 설명.

 

배치프로그램이 가지는 필수 요소에 대한 설명으로 옳지 않은 것은?
- 대용량 데이터
- 자동화
- 견고성
- 안전성/신뢰성 : 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야한다.
- 성능 : 주어진 시간 내에 처리를 완료할 수 있어야하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다
-> 문제의 설명은 '성능'에 대한 설명.

 

절차적 프로그래밍 언어에 대한 설명으로 옳지 않은 것은?
1.  ALGOL
: 수치 계산이나 논리 연산을 위한 과학 기술 계산용 언어
- 재귀 호출이 최초로 가능하게 한 절차형 언어
2. C언어
: 이식성이 높은 언어로 UNIX 운영 체제 에서 사용하기 위한 언어.
- 컴파일러 방식의 언어
- '데니스 리치'에 의해 개발 되었다.
3. BASIC
: 교육용으로 개발되어 문법이 쉽다.
4. FORTRAN(포트란)
: 과학 기술 계산용 언어
- 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 할 수 있다.

 

운영체제에 대한 설명으로 부적절한 것은?
1. 윈도우
: GUI(인터페이스)를 채용했으며, PnP로 시스템 환경을 자동으로 구성해 준다.
2. 유닉스
: AT&T 벨(Bell) 연구소, MIT, General Electric이 공동 개발한 운영체제
- 시분할 시스템을 위해 설계된 대화식 운영체제
3. 리눅스
: 리누스 토발즈가 개발한 운영체제, 인터페이스는 GUI, BASH쉘을 사용한다.
4. 안드로이드 운영체제
: 휴대용 장치를 위한 운영체제, 리눅스 커널 위에서 동작하며 자바와 코틀린 언어로 프로그램을 작성.

 

OSI 7계층의 응용 계층의 프로토콜이 아닌 것은?
[ 응용 계층 - 표현 계층 - 세션 계층 - 전송 계층 ( 상위 ) - 네트워크 계층 - 데이터 링크 계층 - 물리 계층 ( 하위 )]

- 응용 계층 
: 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공.
[ FTP, SMTP, HTTP ]
- 네트워크 계층 
[ IP, ICMP, IGMP, ARP, RARP ]

 

다음 중 UDP(User Datagram protocol)에 대한 설명으로 옳지 않은 것은?
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공
- TCP에 비해 상대적으로 단순한 헤더 구조 -> 오버헤드가 적음.
- 빠른 속도 필요, 동시에 여러 사용자에게 데이터 전달, 정기적으로 반복 전송 시 사용.
- 실시간 전송에 유리.
[ 4. 흐름제어로 Stop&Wait 기법, 슬라이딩 윈도우 기법이 있다 : TCP에 대한 설명 ]   

 

Locality ( 지역성 / 구역성 / 국부성 / 국소성 )
프로세스가 실행 되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
- 스레싱을 방지하기 위한 워킹 셋 이론의 기반

- Denning 교수에 의해 구역성의 개념이 증명 됨.
- 캐시 메모리 시스템의 이론적 근거.
- 종류 : 시간 구역성 / 공간 구역성 

[ 시간 구역성 ]
- 프로세스가 실행되면서 하나의 페이지를 일정 시간동안 집중적으로 액세스 하는 현상
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조 할 가능성이 높음을 의미.
- 기억 장소 : Loop (반복 순환), Stack(스택), 부 프로그램(Sub routine), Counting(1씩 증감)등 에 사용되는 변수(기억장소)

[ 공간 구역성 ]
- 일정 위치의 페이지를 집중적으로 액세스하는 현상
- 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음을 의미.
- 기억 장소 : Array Traversal(배열 순회), 순차적 코드의 실행, 같은 영역의 변수를 참조할 때 사용