✅ 사용자 정의 함수
사용자가 직접 새로운 함수를 정의하여 사용
(프로시저와 동일한 방법으로 사용되지만, 사용자 정의함수는 일련의 연산 처리 결과를 단일값으로 반환할 수 있다)
✅ 접근제어자
지정된 클래스, 변수, 메서드를 외부(같은 패키지이거나 다른 패키지)에서 접근할 수 있도록 권한을 설정
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에 대해서 서술하시오.
→ 객체지향 기법에서 상위 클래스의 메서드와 속성을 하위 클래스가 물려받는 특징
'자격증 > 정보처리기사' 카테고리의 다른 글
애플리케이션 테스트 관리 (0) | 2022.04.15 |
---|---|
데이터 입출력 구현 (0) | 2022.03.31 |
정처기필기 오답정리 (0) | 2022.03.04 |
[정처기필기] 소프트웨어 설계 (0) | 2022.03.04 |
[정처기필기] 데이터베이스 구축 (0) | 2022.03.02 |