개인공부/정보처리기사
정보처리기사 실기 핵심 단어 정리(82~153)
강갱갱
2025. 7. 15. 05:50
정보처리기사 실기 핵심 키워드 정리
데이터베이스
- 82. 트랜잭션(Transaction), 원자성, 일관성, 독립성, 영속성을 각각 서술하라:
- 원자성(Atomicity): 트랜잭션의 연산은 데이터베이스에 모두 반영되거나, 전혀 반영되지 않아야 한다. (All or Nothing)
- 일관성(Consistency): 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태를 유지해야 한다.
- 독립성(Isolation): 둘 이상의 트랜잭션이 동시에 실행될 때, 서로의 연산에 영향을 주지 않고 독립적으로 수행되는 것처럼 보여야 한다.
- 영속성(Durability): 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 데이터베이스에 저장되어야 한다. 시스템 오류가 발생해도 유지되어야 한다.
- 83. 도부이결다조 (두부이걸다줘) : 정규화 과정 정리)
- 도: 도메인 원자값 (1NF)
- 부: 부분 함수 종속 제거 (2NF)
- 이: 이행 함수 종속 제거 (3NF)
- 결: 결정자 함수 종속 제거 (BCNF)
- 다: 다치 종속 제거 (4NF)
- 조: 조인 종속 제거 (5NF)
- 84. 관계 해석, 비절차적: 관계 해석은 관계 데이터 연산을 표현하는 방법이다. 코드(E.F.Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계데이터베이스를 위해 제안했다. 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 가진다.
- 85. 데이터베이스의 이상(Anomaly) 종류와 각각을 서술하라.:
- 삽입 이상 (Insertion Anomaly): 데이터를 삽입할 때 원하지 않는 불필요한 정보까지 함께 삽입되거나, 필요한 정보를 삽입하기 위해 다른 정보가 누락되는 문제.
- 삭제 이상 (Deletion Anomaly): 튜플을 삭제할 때 필요한 정보까지 함께 삭제되어 정보 손실이 발생하는 문제.
- 갱신 이상 (Update Anomaly): 중복된 데이터 중 일부만 갱신되어 데이터의 불일치(모순)가 발생하는 문제.
- 86. 완전 함수 종속 (Full Functional Dependency): 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 어떠한 진부분 집합 Z에도 함수적 종속이 아닐 때, 속성 Y는 속성 집합 X에 완전 함수 종속이라고 한다.
- 87. 부분 함수 종속 (Partial Functional Dependency): 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속일 때, 속성 Y는 X에 대해 부분 함수 종속이라고 한다.
- 88. 이행 함수 종속 (Transitive Functional Dependency): X → Y 이고, Y → Z 일 때 X → Z를 만족하는 관계
- 89. 합집합 (∪), 교집합 (∩), 차집합 (−), 교차곱 (×) 기호
- 90. 관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 (절차적) 언어인 것은?
- 91. 관계대수기호: Select (σ), Project (π), Join (&Join;), Division (÷)
- 92. 후보키: 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합이다. (유일성)과 (최소성)을 만족시켜야 한다.
- 93. 기본키: 후보키 중에서 특별히 선정된 주키이다. (Null 값을 가질 수 없으며, 중복된 값을 가질 수 없다.)
- 94. 슈퍼키, 유일성, 최소성: 한 릴레이션 내에 존재하는 속성들의 집합으로 구성된 키이다. (유일성)을 만족하지만, (최소성)을 만족하지 못할 수 있다.
- 95. 유일성: 하나의 키 값으로 하나의 튜플만을 식별할 수 있어야 함.
- 96. 최소성: 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 한다.
- 97. 데이터 모델의 구성요소: 구조, 연산, 제약조건
- 98. 구조: 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
- 99. 연산: 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세로서, 데이터베이스를 조작하는 기본 도구
- 100. 제약 조건: 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
- 101. 스키마: 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세
- 102. 외부 스키마: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
- 103. 개념 스키마: 데이터베이스의 전체적인 논리적 구조, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 104. 내부 스키마: 물리적 저장장치의 입장에서 본 데이터베이스 구조. 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서를 나타낸다.
기타 주요 개념
- 105. SPICE (Software Process Improvement and Capability Determination): 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준.
- 106. 소프트웨어 개발 프레임워크: 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템.
- 107. CPM (Critical Path Method): 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는 데 사용되는 기법. 노드와 간선으로 구성된 네트워크로 노드는 작업을, 간선은 작업 사이의 전후 의존 관계를 나타낸다.
- 108. CMMI (Capability Maturity Model Integration): 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델.
- 109. CMMI의 성숙도:
- 초기 (Initial): CMMI에서 작업자 능력에 따라 성공 여부 결정. (프로세스가 정의되어 있지 않고 예측 불가능)
- 관리 (Managed): CMMI에서 특정한 프로젝트 내의 프로세스 정의 및 수행. (프로세스가 프로젝트 수준에서 정의되고 관리됨)
- 정의 (Defined): 조직의 표준 프로세스를 이용하여 업무 수행. (조직 전체에 표준화된 프로세스가 정의되어 사용됨)
- 정량적 관리 (Quantitatively Managed): 프로젝트를 정량적으로 관리 및 통제. (프로세스가 통계적인 기법으로 측정되고 관리됨)
- 최적화 (Optimizing): 프로세스 역량 향상을 위해 지속적인 프로세스 개선. (프로세스를 지속적으로 개선하고 최적화함)
- 110. CASE (Computer Aided Software Engineering): 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터의 전용 소프트웨어 도구를 사용하여 자동화하는 것.
- 111. 집합 (Aggregation): 집합 관계는 하나의 사물이 다른 사물에 포함되어 있는 관계이다. (부분이 전체에 속하는 포함 관계, 전체 객체가 사라져도 부분 객체는 독립적으로 존재할 수 있음)
- 112. Generalization: 일반화 (Generalization) 관계는 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계이다. (상위 클래스와 하위 클래스 간의 관계)
- 113. Dependency: 의존 (Dependency) 관계는 연관 관계와 같이 사물 사이에 서로 연관이 있으나, 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계이다. (한 클래스가 다른 클래스의 변화에 영향을 받는 관계)
- 114. 연산자 우선순위: 단산시 관비 논조 대순 (단항연산자 → 산술 연산자 → 시프트 연산자 → 관계 연산자 → 비트 연산자 → 논리 연산자 → 조건(삼항) 연산자 → 대입(할당) 연산자 → 순서 연산자)
- 115. 프로토콜 기본 요소: Syntax (구문), Semantics (의미), Timing (타이밍)
SQL 문법
- 116. DELETE FROM table [WHERE condition] : SQL DELETE 문
- 117. INSERT INTO table [columns] VALUES (value1, value2, ...) : SQL INSERT 문
- 118. ALTER TABLE table ADD column_name datatype [constraints] : SQL ALTER 문 (컬럼 추가 예시)
- 119. SELECT columns FROM table1 JOIN table2 ON table1.column = table2.column : SQL JOIN 문 (JOIN 예시)
- 120. CREATE INDEX index_name ON table(column1, column2, ...) : SQL INDEX 문
- 121. WHERE column IN (value1, value2, ...) : SQL WHERE 문 (IN 절 예시)
- 122. UPDATE table SET column1 = value1, column2 = value2, ... WHERE condition : SQL UPDATE 문
패턴 (디자인 패턴)
- 123. 추상 팩토리 (Abstract Factory): 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹을 생성하여 추상적으로 표현하는 패턴. 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능하다.
- 124. 빌더 패턴 (Builder Pattern): 작게 분리된 인스턴스를 건축하듯이 조립하여 객체를 생성하는 패턴이다. (복잡한 객체의 생성 단계를 분리하고, 동일한 생성 절차로 다양한 표현 결과를 만들 수 있음)
- 125. 팩토리 메서드 패턴 (Factory Method Pattern): 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴이며, 상위 클래스에서는 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 가상 생성자 패턴이라고도 불린다.
- 126. 프로토타입 (Prototype Pattern): 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴이다. 일반적인 방법으로 객체를 생성하는 비용이 큰 경우 주로 이용한다.
- 127. 싱글톤 패턴 (Singleton Pattern): 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없는 패턴이다. 클래스 내에서 인스턴스가 하나뿐임을 보장하며, 불필요한 메모리 낭비를 줄인다.
- 128. 어댑터 (Adapter Pattern): 호환성 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환하는 패턴.
- 129. 브릿지 (Bridge Pattern): 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한 패턴.
- 130. 데코레이터 (Decorator Pattern): 객체 간의 결합을 통해 능동적으로 기능들을 확장할 수 있는 패턴. (기존 객체의 기능을 동적으로 추가하거나 확장할 때 사용)
- 131. 퍼사드 (Facade Pattern): 복잡한 서브 시스템들을 피해 더 상위의 인터페이스를 구현하여 서브 시스템들의 기능을 간편하게 사용할 수 있도록 하는 패턴.
- 132. 플라이웨이트 (Flyweight Pattern): 인스턴스가 필요할 때마다 매번 생성하는 것이 아니고 가능한 공유해서 사용함으로써 메모리를 절약하는 패턴.
- 133. 프록시 (Proxy Pattern): 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조립하는 패턴으로 대리자라고도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해주고, 외부에서는 객체의 세부적인 내용을 숨겨주는 역할을 수행한다.
- 134. 책임 연쇄 (Chain of Responsibility Pattern): 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 패턴.
- 135. 커맨드 (Command Pattern): 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그를 남기는 패턴.
- 136. 인터프리터 (Interpreter Pattern): 언어의 문법 표현을 정의하는 패턴이다. SQL이나 통신 프로토콜과 같은 것을 개발할 때 사용한다.
- 137. 반복자 (Iterator Pattern): 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴.
- 138. 중재자 (Mediator Pattern): 수많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴.
- 139. 메멘토 (Memento Pattern): 특정 시점에서의 객체 내부 상태를 객체화함으로써 외부 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴.
- 140. 옵저버 (Observer Pattern): 한 객체의 상태가 변화하면 객체가 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴.
- 141. 상태 (State Pattern): 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴.
- 142. 전략 (Strategy Pattern): 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호교환하도록 정의한 패턴.
- 143. 템플릿 메소드 (Template Method Pattern): 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴이다.
- 144. 방문자 (Visitor Pattern): 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴이다.
저장 기술 (RAID & Partitioning)
- 145. Range Partitioning (범위 분할): 지정한 열을 기준으로 값 범위에 따라 분할.
- 146. Hash partitioning: 해시 함수를 적용한 결과 값에 따라 데이터 분할.
- 147. Composite Partitioning: 범위 분할로 분할한 다음 다시 해시함수를 적용하는 등 여러 파티셔닝 기법을 조합하여 데이터 분할.
- 148. RAID: 2개 이상의 하드디스크로 디스크 배열 구성, 데이터 블록을 서로 다른 디스크에 분산 저장하거나 다중화.
- 149. RAID0: 스트라이핑. 디스크를 병렬로 연결, 하나의 디스크 손상 시 전체 파손.
- 150. RAID1: 미러링. 같은 데이터를 다른 디스크에 동일 복사.
- 151. RAID3~4: 하나의 디스크에 오류 정정 부호를 각각 비트, 바이트 단위로 저장. 최소 3개 디스크 필요하며, 하나의 디스크 손상되어도 사용 가능.
- 152. RAID 5: 오류 정정 부호를 여러 디스크에 분산.
- 153. RAID6: 오류 정정 부호 2개를 여러 디스크에 분산 저장.
반응형