본문 바로가기

자격증/정보처리기사

정처기 실기 약술형 대비 정리

✅ 사용자 정의 함수

사용자가 직접 새로운 함수를 정의하여 사용

(프로시저와 동일한 방법으로 사용되지만, 사용자 정의함수는 일련의 연산 처리 결과를 단일값으로 반환할 수 있다)

 

✅ 접근제어자

지정된 클래스, 변수, 메서드를 외부(같은 패키지이거나 다른 패키지)에서 접근할 수 있도록 권한을 설정

public,

protected,

default,

private

 

✅ 객체지향 프로그래밍의 구성요소는 객체/클래스/메시지

 

✅ 객체

개체, 속성, 메서드로 구성된 클래스의 인스턴스

 

✅ 인스턴스

같은 클래스 내에 속하는 각각의 객체(클래스 내에 생성된 인스턴스)

 

✅ 클래스

객체 지향 프로그래밍(OOP)에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 틀

객체를 표현하는 추상 데이터 타입으로 객체를 생성하는 틀. 클래스를 통해 추상화된 자료형을 제공

클래스를 일반 변수로 선언함과 동시에 생성자가 호출되고, 일반변수로 선언한 곳에서 함수가 종료되면 소멸자가 호출

 

✅ 생성자&소멸자

생성자는 객체가 생성될 때 자동으로 호출되는 메서드

소멸자는 객체의 수명이 끝났을 때 객체를 제거하기 위한 메서드

 

✅ C++에서 생성자란? 🖐🏻

객체가 생성될 때 자동으로 호출되는 메서드(클래스명과 동일한 이름을 가진 메서드)

 

✅ 메시지

객체 간의 통신

 

✅ 객채의 다형성(Polymorphism) 🖐🏻

프로그램 언어 각 요소들이 다양한 자료형에 속할 수 있는 성질

구현 방법으로 오버로딩, 오버라이딩, 함수형 인터페이스 등

 

✅ 객체지향의 상속(Inheritance)

상위 클래스의 변수(필드)와 메서드(함수)하위 클래스에서 사용할 수 있도록 하는 객체 지향 기법

 

✅ 오버로딩과 오버라이딩

오버로딩은 동일한 이름의 메서드를 매개변수만 다르게 하여 여러개 정의할 수 있는 기능

오버라이딩은 하위 클래스(자식)에서 상위 클래스(부모)의 메서드를 재정의할 수 있는 기능

 

 

추상클래스 🖐🏻

객체 인스턴트를 생성하지 않고, 유사 클래스들의 공통된 특징을 정의

하나 이상의 미구현 추상 메서드를 가지고, 자식 클래스에서 해당 추상 메서드를 반드시 구현하도록 강제하는 기능

(일반 필드, 일반 메서드를 포함하는 클래스)

 

맵리듀스(MapReduce)의 개념에 대해서 설명하시오.

구글에서 대용량 데이터 처리분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크다.

1. 데이터웨어하우스- 업무시스템에서 모아진 정보를 일관된 스키마로 저장한 저장소

2. 사용성 테스트- 사용자가 직접 제품을 사용하면서, 사전에 정의된 시나리오에 맞춰 과제를 수행한 후 질문에 답하도록 하는 테스트 기법

3. 빅데이터- 기존에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트 크기의 비정형 데이터

4. UI- 사용자와 시스템 사이에 의사소통할 수 있도록 고안된 물리적 가상의 매개체

5. 정규화- 관계형 데이터 베이스의 설계에서, 중복을 최소화하여 데이터를 구조화하여 이상현상이 생기지 않도록 하는 데이터 모델링 기법

6. 인스펙션 - 원시코드 등을 저작자 이외의 전문가나 팀이 검사하여 오류를 찾아내는 공식적인 검토 방법

7. 워크스루 - 검토 자료를 회의 전에 배포한 후, 사전 검토 후 짧은 회의를 통해 오류를 발견하는 비공식적인 검토 방법

8. 동료검토 - 2~3명이 진행하며, 요구사항 명세서 작성자가 명세서를 설명하고 이해관계자들이 이를 들으면서 오류를 발견하는 기법

9. WSDL - 웹서비스명, 프로토콜 정보 등 웹서비스에 관한 상세정보를 XML 형식으로 기술한 언어 및 파일

10. 프로토타입 - 정적인 와이어프레임과 스토리보드에 동적 효과를 적용해 실제 구현한 것처럼 시뮬레이션 할 수 있는 모형

11. 와이어프레임 - 화면 단위의 레이아웃을 설계하는 작업

12. 스토리보드 - 와이어프레임과 같은 서비스 구축을 위한 모든 정보를 담은 문서

13. BCNF - 3차 정규화를 만족하면서, 모든 결정자가 후보키가 되도록 하여 결정자 함수 종속을 제거하는 것

14. 인덱스 - 검색 연산의 최적화를 위해, 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조

15. 반정규화 - 시스템의 성능 향상과 운영의 단순화를 위해, 테이블의 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법으로 역정규화 및 비정규화라고도 부름

16. DBMS_OUTPUT 패키지 - 메시지를 버퍼에 저장하고, 버퍼로부터 메시지를 읽어오기 위한 인터페이스를 제공하는 패키지

17. 옵티마이저 - SQL을 빠르고 효율적으로 수행할 최적의 경로를 생성하는 DBMS 내부의 핵심 엔진

18. JDBC - 자바에서 데이터베이스를 사용할 수 있도록 연결해주는 응용프로그램 인터페이스

19. ODBC - 모든 언어에서 사용할 수 있는 DB 접속 기술

20. DBMS - 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 시스템

21. E-R 모델 - 실제 세계에 존재하는 데이터와 그들간의 관계를 사람이 이해할 수 있는 형태로 표현한 모델

22. 프로시저 - SQL쿼리의 집합으로, 절차형 SQL을 통해 특정 기능을 수행하는 트랜잭션 언어

23. 트리거 - 특정 테이블에 데이터 변경 이벤트가 발생했을 때, DBMS에서 자동적으로 실행되도록 구현된 프로그램

24. XML - HTML, SGML 의 단점을 보완한 특수 목적용 마크업 언어

25. 데이터마이닝 - 대규모로 저장한 데이터 안에서 체계적으로 통계적 규칙이나 데이터 간의 관계 및 추세를 발견하는 기술

26. 군집화 - 유사한 특성을 갖는 데이터들을 집단화하는 방법

27. SAN - 광케이블을 활용해 근거리 네트워크 환경을 구축하여, 빠른 속도로 데이터를 전송할 수 있는 특수 목적용 고속 네트워크

28. IPsec - 3계층(네트워크 계층)에서 AH와 ESP를 통해 기밀성, 무결성, 인증의 기능을 수행하는 보안 프로토콜

29. ESB - 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들을 하나로 연계해 서비스 중심의 통합을 지향하는 기술

30. EAI - 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달 및 연계를 가능하게 해주는 솔루션

31. 형상관리 - 소프트웨어 개발의 전체 과정에서 발생하는 모든 변경사항들을 관리하는 활동

32. Mybatis - 자바의 관계형 DB 프로그래밍을 조금 더 쉽게할 수 있도록 도와주는 프레임워크

33. Tear Drop - IP패킷의 재조합 과정에서, 잘못된 Fragment offset 정보로 인해 타겟시스템에서 문제를 발생하도록 만드는 공격 기법

34. 메시지 버스(Message Bus) - 애플리케이션 사이에 미들웨어(버스)를 두어 연계하는 미들웨어 통합 방식

35. AJAX - 자바스크립트를 사용한 비동기 통신 기술로, 서버와 클라이언트 간 XML 데이터를 주고받는 기술

36. 스니핑 - 공격 대상에게 직접적으로 공격을 가하지 않고, 네트워크 중간에서 남의 패킷을 도청하는 수동적 공격 기법

37. UX - UI를 포함한 개념으로, 사용자가 직/간접적으로 경험하고 느끼는 총체적 경험

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

39. 오류-부재의 궤변 - 요구사항을 만족하지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없다는 테스트의 원리

40. 트랜잭션 - 하나의 논리적인 기능을 수행하기 위한 작업의 기본 단위로, 한꺼번에 수행되는 일련의 연산

41. 테일러링 - 소프트웨어의 기법, 프로세스 등을 기술적 요구에 맞춰 최적화 하는 기법

42. CSS(XSS) 공격 - 공격자가 웹 사이트에 악의적인 스크립트를 포함해서 사용자가 열어보도록 유도한 후, 사용자 정보를 탈취하는 공격 기법

43. CSRF 공격 - 공격자가 웹 서버의 취약점을 이용해 악성 스크립트를 삽입하고, 정상적인 사용자로 하여금 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 기법

44. 회귀 테스트 - 오류를 수정하거나 제거한 시스템에서 오류 수정 및 제거 이후 새로 유입된 오류가 없는지 확인하는 반복테스트 기법

45. 병행 테스트 - 변경된 시스템과 기존의 시스템에 동일한 데이터를 입력한 후 비교하는 테스트 기법

46. 클린 코드 - 잘 작성되어 가독성이 높고, 의존성을 줄이고 중복성을 최소화한 코드

47. 외계인 코드 - 베드코드의 한 유형으로, 아주 오래되거나 참고 문서가 없어 유지보수가 어려운 코드

48. 테스트 케이스 - 특정 요구사항에 준수하는 지 확인하기 위해 만들어진 입력 값, 실행 조건, 예상된 결과의 집합

49. 테스트 시나리오 - 테스트 케이스들의 집합으로, 테스트 절차를 명세한 문서

50. 목 오브젝트 - 사용자의 행위를 사전에 입력해두면, 그 상황에 예정된 행위를 수행하는 객체

51. 결함 에이징 분석 - 등록된 결함에 대해, 특정한 결함 상태의 지속 시간을 측정하여 분석하는 것

52. 파티셔닝 - 대용량 데이터베이스를 파티션이라는 보다 작은 단위로 분할한 것

53. 가상화 - 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적 리소스를 여러개로 보이게 하는 기술

54. 테스트 오라클 - 테스트 결과의 참/거짓을 판단하기 위해, 사전에 정의된 참 값을 대입해 비교하는 기법

55. 동등분할테스트 - 유사한 도메인별로 무효/유효값을 그룹핑하여, 대표 값을 테스트 케이스로 도출하여 테스트하는 기법

56. 경계 값 테스트 - 경계 값을 포함하여 테스트 케이스를 설계

57. 솔트(Salt) - 일방향 해시 함수에서, 다이제스트를 생성할 때 추가되는 임의의 문자열

58. SQL 삽입(Injection) - 공격자가 SQL에 악의적인 구문을 삽입해서, DB로 부터 정보를 열람 및 조작할 수 있는 공격기법

58. 구조체 - 사용자가 기본 타입을 가지고, 새롭게 정의할 수 있는 자료형

59. 열거체 - 서로 연관된 정수형 상수들의 집합

60. 공용체 - 모든 멤버 변수가 하나의 메모리 공간을 공유하는 자료형

60. NoSQL - 전통적인 RDBMS와 다르게 고정적인 테이블 스키마가 필요하지 않으며, 수평적으로 확장이 가능한 DBMS

61. 시큐어코딩 - 설계 및 구현 단계에서 해킹 등의 보안 취약점을 사전에 제거하고, 외부로부터 안전한 소프트웨어를 개발하는 것

62. VPN - 공중망에서 터널링 기법을 사용해 사설망과 같은 서비스를 제공하는 가상 네트워크

63. REST - HTTP URI 를 통해 자원을 명시하고, HTTP 메소드를 통해 해당 자원에 대한 명령을 적용할 수 있는 기술

64. MVC 패턴 - 모델, 뷰, 컨트롤러로 구성되어 비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있는 패턴

65. 델파이 기법 - 전문가의 경험적 지식을 통한 미래 예측 및 문제 해결 기법

66. SSO - 한번의 시스템 인증을 통해, 여러 정보 시스템에 재인증절차 없이 접근이 가능한 통합 로그인 기술

67. 스머핑/스머프 공격 - 출발지 주소를 공격대상의 IP로 설정해서, 네트워크 전체에 ICMP Echo를 직접 브로드캐스팅하여 타겟 시스템을 마비시키는 공격 기법

68. 알파테스트 - 개발자의 환경에서 통제된 상태로, 선택된 사용자가 개발자와 함께 수행하는 인수테스트

69. 베타테스트 - 실제 환경에서, 일정 수의 사용자에게 직접 해당 소프트웨어를 사용하게 하여 피드백을 받는 인수테스트

70. CRUD Matrix - 관계의존성을 Create, Read, Update, Delete로 표현한 매트릭스

71. 트랜잭션의 일관성(consistency) - 트랜잭션이 성공적으로 완료되면, 언제나 일관성 있는 DB상태로 변환

72. 트랜잭션의 원자성(Atomicity) - 트랜잭션의 연산은 모두 성공하거나, 모두 실패해야한다

73. 트랜잭션의 격리성(Isolation) - 트랜잭션이 실행 중일 때, 중간 결과를 다른 트랜잭션이 접근할 수 없다

74. 트랜잭션의 영속성(Durability) - 트랜잭션이 성공적으로 완료되면, 시스템에 오류가 발생하더라도 변경된 내용은 계속 보존

75. 이상현상의 발생 원인과 종류 - 원인: 테이블에서 일부 속성의 종속으로 인해 테이블 조작 시 중복이 발생하기 때문에 발생함

종류: 삽입, 삭제, 갱신이상

76. 파밍 - 사용자들이 진짜 사이트로 오인하도록 유도하여 개인정보를 훔치는 신종 인터넷 사기 수법

77. 병행제어 - 하나의 트랜잭션이 연산 중, 다른 트랜잭션의 영향을 받지 않도록 제어하는 것

78. 로킹기법 - 하나의 트랜잭션이 데이터 항목에 액세스중일 때, 다른 트랜잭션이 해당 데이터 항목에 접근하지 못하도록 제어하는 기법

79. 소프트웨어 아키텍처 - 소프트웨어의 구성요소와 그들간의 관계를 표현한 시스템 구조

80. WAS - 웹에서 애플리케이션이 구동될 수 있는 환경을 제공하는 서버

81. 멀티캐스트 프로토콜 - 인터넷에서 같은 내용의 데이터를 여러명의 특정 그룹의 수신자에게 동시에 전송할 수 있는 프로토콜

82. UML - 객체지향 소프트웨어 개발 과정에서, 산출물을 명세화/문서화하기 위한 모델링 언어

83. 링크- 상태 알고리즘 - 다익스트라 알고리즘을 이용해, 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 알고리즘

84. 거리-벡터 알고리즘 - 벨만-포드 알고리즘을 이용해, 인접 라우터와 정보를 공유해 목적지까지의 거리와 방향을 결정하는 알고리즘

85. 은행가 알고리즘 - 교착상태의 회피기법으로, 사전에 필요한 자원 수를 명시하고 안정적인 상태에만 자원을 할당하는 기법

86. 스레싱 - 계속적으로 페이지 부재가 발생하여, 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상

87. 맵리듀스 - 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 만든 프레임워크

88. API - 응용프로그램에서 사용할 수 있도록, 기능을 제어할 수 있게 만든 인터페이스

89. 비트락커 - 윈도즈 OS에 포함되어, 볼륨 전체의 암호화를 통한 완전한 디스크 암호화 기능을 제공

90. UI의 설계 원칙 -직관성 (쉽게 이사) - 사용자가 쉽게 이용하고 사용할 수 있다

- 유효성(정사목달) - 정확하게 사용자의 목표 달성

- 학습성 - 누구나 쉽게 배우고 사용

- 유연성(사인최포실방) - 사용자의 인터랙션을 최대한 포용하고, 실수를 방지

91. 미들웨어 - 컴퓨터와 컴퓨터간 연결을 쉽고 안전하게 도와주고, 이에 대한 관리를 도와주는 소프트웨어

92. DRM - 디지털 콘텐츠의 저작권을 보호하고, 권한을 허용하는 기술

93. 테스트 드라이버 - 상향식 통합 테스트에서, 하위 모듈을 호출하는 상위의 더미 모듈

94. tPmc - 하드웨어 성능 지표로 사용되며, 1분당 최대 처리건수를 나타낸 수치

95. 시멘틱웹 - 온톨로지를 사용하여, 컴퓨터가 이해할 수 있는 형태로 제작된 지능형 웹

95. 온톨로지 - 실세계에 존재하는 모든 개념들과 그들간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술한 것

96. 랜섬웨어 - 사용자 컴퓨터에 몰래 침입해 문서를 암호화하고, 사용자가 열지 못하도록 하여 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하는 공격

97. 제어구조 테스트 (제그내) - 제어구조를 그래프 형태로 나타내어, 내부 로직을 테스트하는 기법

98. JSON - AJAX를 위해, '속성-값', '키-값' 쌍으로 이루어진 데이터를 전달하기 위한 개방형 표준 포맷

99. 프로토콜 - 데이터 교환을 원활하게 하기 위한 표준화된 통신 규약

100. LOC 기법 - 각 기능의 원시코드 라인 수의 낙관치, 비관치, 중간치를 측정하여 예측치를 구하고, 이를 이용해 비용을 산정하는 비용산정 모델

 

 

 

101. RBAC(Role Based Access Control)에 대해서 서술하시오.

→ (역할기반의 접근통제) 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며,

조직내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법 이다.

 

102. Inheritance에 대해서 서술하시오.

 객체지향 기법에서 상위 클래스메서드속성하위 클래스물려받는 특징