| 항목 | 설명 |
|---|---|
| 생성자 함수 (Constructor) | - 클래스명과 이름이 같음 - 오버로딩(인수값이 다름)에 따라 여러 생성자 정의 가능 |
| this() 호출 | - 생성자 내부에서 다른 생성자를 호출할 때 사용 - 예: Child() 생성자가 this(5000)으로 Child(int x) 생성자 호출 |
| static 변수 | - 클래스 로딩 시점에 메모리의 static 영역에 할당됨 - main() 실행 전부터 존재하며, 객체 없이 클래스명으로 접근 가능 |
서식 문자열 %s | - 문자열 출력 시 사용 - 문자열 시작 주소부터 널 문자 전까지의 모든 문자 출력 - System.out.printf("이름: %s", name); 형식 |
| 용어 / 구문 | 설명 |
|---|---|
| SELECT | 조회할 열(column)을 선택하는 구문 |
| 과목이름 | SELECT 절에서 조회되는 그룹 기준 열 (GROUP BY 대상) |
| MIN(점수) | 각 그룹 내에서 **가장 작은 점수(최소값)**을 계산 |
| MAX(점수) | 각 그룹 내에서 **가장 큰 점수(최대값)**을 계산 |
| AS 최소점수 / 최대점수 | MIN, MAX 결과에 **별칭(Alias)**을 붙여 출력 시 해당 이름으로 표시 |
| FROM 성적 | 데이터를 가져올 테이블 지정 – 여기선 성적 테이블 |
| GROUP BY 과목이름 | 과목 이름을 기준으로 그룹핑하여 집계 함수 적용 |
| HAVING AVG(점수) >= 90 | 각 그룹의 평균 점수가 90 이상인 그룹만 출력 ※ HAVING은 GROUP BY와 함께 사용하며, WHERE과 달리 집계 함수 사용 가능 |
| 항목 | 설명 |
|---|---|
| 정의 | JavaScript와 XML을 이용하여 클라이언트와 서버 간 비동기적으로 통신하는 기술 |
| 특징 | 전체 페이지를 새로 고치지 않고, 일부 영역만 업데이트 가능 |
| 주요 구성 요소 | - JavaScript – XMLHttpRequest 객체 – HTML/CSS – XML 또는 JSON |
| 장점 | 빠른 응답성, 부드러운 사용자 경험 (UX), 트래픽 감소 |
| 활용 예시 | 실시간 검색, 댓글 비동기 로딩, 지도 드래그 시 재로드 없음 등 |
| 용어 | 설명 |
|---|---|
| 회선 교환 방식 | (①) 출발지-목적지 간 경로를 사전에 고정해서 통신 (전화망 기반) |
| 메시지 교환 방식 | 전체 메시지를 한 번에 전송, 중간 노드가 수신 후 저장하고 전달 |
| 가상 회선 방식 | 패킷 교환 기반이나 논리적 경로를 먼저 설정하는 방식 |
| 데이터그램 방식 | (②) 패킷마다 경로를 지정하여 개별 전송, 사전 접속 없음 (인터넷 방식) |
| 항목 | 설명 |
|---|---|
| 계층 | 데이터링크 계층 (OSI 2계층) |
| 용도 | PPTP 및 VPN 구현에 사용되는 터널링 프로토콜 |
| 특징 | - 자체적으로 암호화와 인증 기능 없음 - 다른 보안 프로토콜(IPSec 등)과 결합 사용 |
| 기능 | 원격 접속 시 다중 점을 연결하여 가상 전용 네트워크(VPN) 구성 가능 |
| 적용 예시 | VPN, 기업 내 외부 접속 보안 터널 구성 등 |
| 항목 | 설명 |
|---|---|
| 정의 | 원격 컴퓨터에 안전하게 접속하고 명령 실행, 파일 복사 등을 수행할 수 있는 암호화된 통신 프로토콜 |
| 기능 | 로그인, 원격 명령어 실행, SCP/SFTP 파일 전송 |
| 보안 방식 | 강력한 대칭/비대칭 암호화 및 공개키 기반 인증 지원 |
| 포트 번호 | 기본적으로 22번 포트 사용 |
| 활용 사례 | 개발 서버 접속, 배포 자동화, 원격 제어, 서버 보안 통신 |
| 용어 | 정의 및 특징 |
|---|---|
| 웜(Worm) | - 자체 복제 능력을 가진 독립 실행형 악성코드 - 사용자 개입 없이 네트워크 통해 전파됨 |
| 바이러스(Virus) | - 파일에 기생해 함께 실행되며 전파됨 - 사용자 실행이 있어야 활동 가능 |
| 트로이 목마 | - 정상 프로그램으로 위장해 설치된 후 백도어/정보유출 등 악성 기능 수행 |
| 항목 | 설명 |
|---|---|
| 정의 | IP의 부가 기능으로, 네트워크 계층에서 오류 메시지 전달 및 진단을 위한 프로토콜 |
| OSI 계층 | 3계층 (네트워크 계층) |
| 기능 | - 목적지 도달 불가, 경로 변경, TTL 초과 등 오류 메시지 전송 - 상태 점검 및 경로 추적 |
| 도구 예시 | ping, traceroute |
| 공격 사례 | ping of death, ICMP flood 등 네트워크 공격에도 활용 가능 |
| 분류 | 패턴 이름 | 설명 (기능 요약) |
|---|---|---|
| 생성 | Abstract Factory | 관련 객체를 일관된 방식으로 묶어 생성 |
| Builder | 복잡한 객체를 단계별로 생성 | |
| Factory Method | 객체 생성 책임을 서브클래스로 위임 | |
| Prototype | 객체를 **복사(clone)**하여 생성 | |
| Singleton | 하나의 인스턴스만 생성 및 공유 | |
| 구조 | Adapter | 인터페이스 호환이 안 되는 객체 연결 |
| Bridge | 추상화와 구현을 분리하여 독립적 확장 | |
| Composite | 객체를 트리 구조로 구성, 전체-부분 동일 처리 | |
| Decorator | 기존 객체에 기능을 동적으로 추가 | |
| Facade | 복잡한 시스템에 단순한 인터페이스 제공 | |
| Proxy | 접근을 제어하거나 지연시킴 (대리자 역할) | |
| 행위 | Chain of Responsibility | 요청을 연쇄적으로 처리할 수 있게 연결 |
| Command | 요청을 객체로 캡슐화, 명령 추상화 | |
| Interpreter | 언어의 문법을 해석기 형태로 표현 | |
| Iterator | 컬렉션 순회 기능을 객체화 | |
| Mediator | 객체 간 직접 통신을 중재자 객체로 위임 | |
| Memento | 객체의 상태를 저장 및 복원 | |
| Observer | 변화가 생기면 자동으로 통지 받는 구조 | |
| Strategy | 알고리즘을 객체로 캡슐화, 상황에 따라 교체 | |
| Template Method | 알고리즘의 구조를 정의하고, 세부는 서브클래스가 구현 | |
| State | 객체의 상태에 따라 행동이 달라짐 | |
| Visitor | 구조는 그대로, 기능을 유연하게 추가 | |
| Iterator | 요소를 순차적으로 접근하는 방법 제공 |
| 항목 | 프록시 패턴 | 파사드 패턴 |
|---|---|---|
| 주요 목적 | 원래 객체에 대한 접근 제어, 지연 로딩, 보안, 로깅 등 | 복잡한 서브시스템을 단순화하여, 외부에 간단한 인터페이스 제공 |
| 내부 구성 | 하나의 Real 객체 또는 복잡한 초기화를 감싸는 대리 객체 | 여러 서브시스템/모듈을 하나의 통합 인터페이스로 제공 |
| 복잡성 숨김 가능 여부 | 원래는 접근 제어 목적이나, 일부 Complexity-Hiding Proxy에서는 내부 복잡성도 숨길 수 있음 | ✔️ 주 목적이 복잡한 구조의 감춤임 |
| 클라이언트 관점 | 실제 객체를 직접 사용하는 것처럼 느껴짐 | 복잡한 시스템을 단일 인터페이스처럼 사용함 |
| 예시 | 가상 프록시, 보호 프록시, 스마트 프록시, 복잡성 은닉 프록시(Complexity-Hiding Proxy) | 하위 API 호출들을 감추는 라이브러리 Wrapper, 서브시스템 집합 |
| 공통 요소 | 설명 |
|---|---|
| 중간 객체 역할 | 둘 다 클라이언트와 실제 대상 사이의 중간 계층으로 동작 |
| 복잡성 숨김 가능 | 내부 구조나 로직의 복잡성을 외부로부터 감춤 |
| 캡슐화 구현 | 클라이언트는 내부 구조를 몰라도 되며, 단일 인터페이스만으로 사용 가능 |
| 결합도 감소 | 클라이언트와 대상 객체 간의 의존성을 낮추는 역할 수행 |
| 용어 | 설명 |
|---|---|
| 도메인 (Domain) | 열이 가질 수 있는 유효한 값들의 집합. 예: 월 → {Jan, Feb, …}, 정수형 데이터 등 (opentextbc.ca) |
| 속성 (Attribute) | 릴레이션의 열(column)이며, 각 속성은 도메인에 정의된 데이터 타입과 값을 갖는다 |
| 튜플 (Tuple) | 릴레이션의 행(row)을 의미하는 단위. 속성들에 매핑된 값들의 모음 |
| 차수 (Degree) | 릴레이션이 가진 속성(attribute)의 개수, 즉 열의 수 |
| 카디널리티 (Cardinality) | 릴레이션 인스턴스(테이블)가 가진 튜플(행)의 수 |
| 릴레이션 스키마 (Relation Schema) | 릴레이션의 구조 정의(이름, 속성들과 각 속성의 도메인 등), 즉 메타데이터 ≡ heading |
| 릴레이션 인스턴스 (Relation Instance) | 릴레이션 스키마 구조에 따라 실제 존재하는 튜플들의 집합 (time-varying body) |
| 항목 | 릴레이션 스키마 (Relation Schema) | 릴레이션 인스턴스 (Relation Instance) |
|---|---|---|
| 정의 | 릴레이션(테이블)의 구조를 정의하는 메타데이터 - 열 이름, 데이터 타입, 제약조건 등 (turingmachine.org) | 릴레이션 스키마 구조에 따라 현재 저장된 튜플(행)의 집합 |
| 구성 요소 | - 테이블 이름 - 속성(Attributes) 목록 + 각 도메인(Domain) - 키, 제약조건 등 | - 튜플(Tuples, 행/records) - 카디널리티(Cardinality): 튜플 개수 |
| 변경 주기 | 드물게 변경됨 (데이터 정의 수준) | 자주 변경됨 (INSERT/UPDATE/DELETE 시마다) |
| 역할 | DB 구조 설계 및 데이터 무결성 보장 기준 역할 | 실제 데이터 상태를 나타내는 스냅샷 역할 |
| 개념 수준 | 논리/물리 설계 단계에서 정의 | 실행 중인 DB의 상태, OS나 사용자 작업에 의해 달라짐 |
| 예시 | STUDENT(roll_no: int, name: varchar, dept_id: int, …) | { (1, 'Kim', 10), (2, 'Lee', 20), … } 같은 실제 행 데이터 |
| 기능 | 사용 예시 | 설명 |
|---|---|---|
| 집합 생성 | {'한국', '중국', '일본'} 또는 set() | 중복 없는 요소의 무순서 컬렉션 생성 (programiz.com) |
| add() | asia.add('베트남') | 요소 하나를 추가함 (중복이면 무시) |
| remove() | asia.remove('일본') | 지정 요소를 삭제함 (없으면 KeyError) |
| update() | asia.update({'한국','홍콩','태국'}) | 다른 iterable의 요소들을 집합에 추가, 중복은 무시 |
| 수준 | 정의 | 주요 특징 | 변경 영향 | 주 대상 |
|---|---|---|---|---|
| 개념적 스키마 (Conceptual Schema) | 데이터베이스 전체의 논리 구조를 정의하는 설계 | 엔티티·속성·관계·제약조건 포함 (en.wikipedia.org) | 물리 구조 변경 시 논리 구조엔 영향 없음 (물리 독립성 확보) | DBA, 시스템 설계자 |
| 내부 스키마 (Internal Schema) | 실제 물리적 저장 구조를 정의한 설계 | 레코드 형식·인덱스·파일 구조 등 포함 | 개념/외부 구조에 영향 없이 저장 방식 변화 가능 (논리 독립성 확보) | DBA, 시스템 엔지니어 |
| 외부 스키마 (External Schema) | 사용자나 응용 프로그램의 개별적 관점(View) | 특정 사용자/권한에 맞춘 뷰 정의 | 논리/물리 구조 변경 시에도, 외부 뷰와 독립적으로 변경 가능 | 최종 사용자, 응용 프로그램 |
| 스키마 수준 | 예시 (구체적 설명) | 설명 |
|---|---|---|
| 개념적 스키마 (Conceptual) | • STUDENT(student_id, name, dept_id, dob)• DEPT(dept_id, dept_name)• 속성 간 관계(학생–부서)는 PK·FK로 설정됨 | 전체 시스템의 논리 구조를 설계 DBMS 내부 저장 방식과 독립적 (bimstudies.com) |
| 내부 스키마 (Internal/Physical) | • STUDENT 테이블은 MyISAM 엔진 사용, B-tree 인덱스 생성• 레코드 고정 길이, 페이지 크기 16KB, 압축 적용 | 물리적 저장 방식 및 최적화에 대한 정의 하드웨어나 DB엔진 관련 설정 포함 |
| 외부 스키마 (External/View) | • CREATE VIEW StudentPublic AS SELECT student_id, name FROM STUDENT;• CREATE VIEW DeptSummary AS SELECT dept_name, COUNT(*) FROM STUDENT GROUP BY dept_name; | 특정 사용자/앱 전용 제한된 데이터 표현, 민감 정보 제외된 뷰 생성 |