| 항목 | 설명 |
|---|---|
new 키워드 | 힙 메모리에 객체 생성 → 생성자 호출 → 참조 변수에 주소 대입 |
| 기본 생성자 | 생성자를 명시하지 않으면, 자바가 자동으로 매개변수 없는 기본 생성자 생성 |
| 생성자 호출 흐름 | 자식 클래스 생성자 실행 시 → 부모 생성자(super())가 자동으로 먼저 호출 |
| 최상위 부모 | 부모 클래스가 없더라도, Object 클래스의 생성자가 암묵적으로 호출됨 |
| 생성자 규칙 | 클래스 이름과 같아야 하며 반환형 없음 (void도 없음) |
| 생성자 오버로딩 | 가능. 이름은 같지만 매개변수 개수/타입이 다르면 다르게 정의 가능 |
| 항목 | 설명 |
|---|---|
| 형태 | Parent p = new Child(); 와 같이 부모 타입의 참조변수로 자식 객체 참조 |
| 주요 개념 | 오버라이딩된 메서드는 실제 객체 타입(자식)의 메서드가 실행됨 (동적 바인딩) |
| 목적 | 다양한 객체를 부모 타입으로 통일되게 제어 가능 |
| 대표 예시 | Animal a = new Dog();, Shape s = new Circle(); |
| 목적 | 설명 |
|---|---|
| ✅ 코드 유연성 | 다양한 자식 클래스를 하나의 부모 타입으로 처리 가능 |
| ✅ 상속/인터페이스 활용 | 공통된 메서드 호출은 부모에서, 실제 동작은 자식에서 정의 (동적 바인딩) |
| ✅ 유지보수성 향상 | 새로운 자식 클래스 추가 시, 기존 코드를 거의 수정하지 않아도 됨 |
| 표현식 | 의미 설명 |
|---|---|
*p = "KOREA" | 문자열 "KOREA"의 첫 글자 'K'를 가리키는 포인터 |
p + 1 | "OREA" 전체 문자열 (포인터가 한 글자 앞으로 이동) |
*(p + 3) | 'E' (포인터 기준으로 세 번째 인덱스 문자) |
*p + 4 | 'K'의 ASCII(75) + 4 = 79 → 문자 'O' |
| 문자 | 권한 종류 | 설명 |
|---|---|---|
r | Read | 읽기 권한 |
w | Write | 쓰기 권한 |
x | Execute | 실행 권한 |
- | None | 해당 권한 없음 |
| 사용자 구분 | 예시 | 2진수 변환 |
|---|---|---|
| 사용자 | rwx | 111 (7) |
| 그룹 | rwx | 111 (7) |
| 기타 | rwx | 111 (7) |
| 정렬 종류 | 설명 |
|---|---|
| 오름차순 | 작은 값 → 큰 값 순서 |
| 내림차순 | 큰 값 → 작은 값 순서 |
| 항목 | UNION | UNION ALL |
|---|---|---|
| 중복 제거 | ✅ O (중복 제거함) | ❌ X (중복 포함함) |
| 속도 | 느림 (정렬 필요) | 빠름 (정렬 없음) |
| 조건 | 컬럼 개수/타입 같아야 함 | 동일 조건 필요 |
| 에러 조건 | 열 개수/타입 다르면 에러 | 동일하게 맞춰야 함 |
| 결과 열 이름 | 첫 번째 SELECT 기준 사용 | 첫 번째 SELECT 기준 사용 |
| 번호 | 완전수 | 약수 (자기 제외) | 합 |
|---|---|---|---|
| 1 | 6 | 1, 2, 3 | 6 |
| 2 | 28 | 1, 2, 4, 7, 14 | 28 |
| 3 | 496 | 1, 2, 4, 8, 16, 31, 62, 124, 248 | 496 |
| 항목 | 인스턴스 메서드 | static 메서드 |
|---|---|---|
| 접근 방법 | 객체 생성 후 객체명.메서드() 형태로 접근 | 클래스명으로 직접 접근: 클래스명.메서드() |
| 객체 생성 필요 여부 | ✅ 필요 (new 클래스명()) | ❌ 필요 없음 |
| 메모리 할당 시점 | 객체 생성 시 힙(heap) 영역에 할당 | 클래스 로딩 시 **메서드 영역(method area)**에 할당 |
| 인스턴스 변수 접근 가능? | ✅ 가능 (같은 인스턴스 내이므로) | ❌ 불가능 (객체가 아직 생성되지 않았을 수 있음) |
| 용도 | 객체 상태에 따라 동작해야 하는 기능 | 클래스 전체에서 공통으로 사용하는 기능 |
| 용어 | 정의 | 주요 기능/특징 |
|---|---|---|
| OpenID | 분산형 인증 프로토콜, 여러 사이트에서 하나의 ID로 로그인 가능 (en.wikipedia.org, linkedin.com) | 신원 확인 ± 사용자 속성 전송 |
| SASL | 애플리케이션 계층 인증 프레임워크 | IMAP, SMTP, LDAP 등에 플러그형 인증 지원 |
| PEAP | 보호된 EAP 인증 프로토콜 (TLS 터널 기반) | 무선 LAN에서 사용자/서버 인증 |
| IDEA | 대칭 키 암호 알고리즘 | 암호화된 인증 토큰 생성 등에서 사용 |
| OAuth | API 접근 위임용 인가 프레임워크 | 외부 애플리케이션에 자원 접근 권한 위임 |
| OpenID Connect (OIDC) | OAuth 기반 인증 레이어 | 사용자 식별 및 SSO 기능 지원 |
| SSPI | Windows 인증용 보안 API | Kerberos, NTLM 등 Windows 인증 통합 |
| JAAS | 자바 플랫폼의 인증·인가 모듈 시스템 | Pluggable Authentication Module 구조 |
| OIDC vs OAuth | OAuth는 인가, OIDC는 인증을 추가 | 인증용의 표준 기반 확장 |
| 항목 | 메모리 로딩 시점 | 메모리 영역 | 객체 생성 필요 여부 | 설명 |
|---|---|---|---|---|
| 클래스 (Class) | JVM 실행 시 클래스가 처음 참조될 때 | 메서드 영역 (Method Area) | ❌ | 클래스 정의가 처음 필요해질 때 로딩됨 |
static 변수 | 클래스 로딩 시 자동 할당 | 메서드 영역 (static 영역) | ❌ | 모든 객체가 공유, 클래스 단위로 존재 |
static 메서드 | 클래스 로딩 시 자동 할당 | 메서드 영역 | ❌ | 클래스명으로 바로 접근 가능 (Class.method()) |
| 인스턴스 변수 | 객체 생성 시점 (new 사용) | 힙 영역 (Heap) | ✅ | 객체별로 독립 존재 |
| 인스턴스 메서드 | 호출 시 실행 (메모리엔 공유됨) | 메서드 영역 (코드) + 힙 객체 참조 | ✅ | this가 필요, 객체 기반 동작 |
| 항목 | 설명 |
|---|---|
| 정의 | UML 정적 모델링의 하나로, 관련 있는 객체(클래스 등)를 하나로 묶은 상위 개념을 추상화 |
| 표현 대상 | 유스케이스, 클래스 등의 요소를 그룹화하여 의존 관계 표현 |
| 주 용도 | 대규모 시스템에서 주요 요소 간의 중속성(의존성) 파악에 사용 |
| 장점 | - 시스템 구조를 간단하게 표현 |
| 항목 | 설명 |
|---|---|
| 정의 | ‘네트워크 주소 변환’이라는 의미의 NAT는 공인 IP ↔ 사설 IP 간 변환 기술 |
| 기능 | 1개의 공인 IP 주소에 대해 다수의 사설 IP 주소를 연결 가능하게 함 |
| 장점 | - IP 주소 절약 - 사설 네트워크 보안 강화 - 공인 IP 부족 문제 해결 |
| 문제점 | 1개의 공인 IP를 사용하는 경우, 동시 접속 수 제한 가능성 |
| 해결 방법 | 이 문제는 IP 마스커레이드(Masquerade) 기술로 해결 가능 |
| 활용 예 | 가정용 공유기에서 내부 PC들이 하나의 외부 IP로 인터넷 접속할 때 |
| 항목 | 설명 |
|---|---|
| 전송 방식 | 데이터를 53Byte 셀 단위로 일정 크기와 순서대로 전송 |
| 셀 구조 | 5Byte 헤더 + 48Byte 데이터 (총 53Byte) |
| 특징 | - 고정 크기 셀 → 처리 단순 - 고속망에 적합 - 지연 시간 예측 쉬움 |
| 다중화 방식 | 동기식보다 효율적인 비동기식 시분할 다중화 사용 |
| 지원 서비스 | CBR (고정 대역폭), VBR (가변 대역폭) 등 다양한 전송 품질(QoS) 제공 |
| 활용 | B-ISDN 백본망에서 음성/영상/데이터 등 통합 전송 매체로 사용 가능 |
| 모델 | 정의 | 특징 | 장점 | 단점 |
|---|---|---|---|---|
| DAC (Discretionary Access Control) | 객체 소유자가 권한을 관리할 수 있는 모델 (pingidentity.com, en.wikipedia.org, delinea.com) | ACL 기반, 소유자에 의해 권한 위임 가능 | 유연하고 사용 편의성 높음 | 임의 위임으로 보안 취약성 존재 |
| MAC (Mandatory Access Control) | 시스템 전역 정책에 따라 중앙에서 엄격히 권한 제어 | 보안 라벨/레벨 기반, 사용자 개입 불가 | 높은 보안성, 데이터 분류 보장 | 관리 복잡, 유연성 낮음 |
| RBAC (Role‑Based Access Control) | 역할 단위로 권한을 부여하고, 사용자는 역할을 할당받는 방식 | 역할 중심, 최소 권한 원칙, 관리 용이 | 확장성 좋고 감사·규정 준수에 유리 | 역할 정의 복잡해질 수 있으며 세밀도 부족 |
| 모델 | 비유 | 사용자는 |
|---|---|---|
| IaaS | 반죽/도구만 제공받고 피자는 내가 만듦 | 거의 다 직접 |
| PaaS | 반죽+오븐+조리대까지 제공, 토핑만 하면 됨 | 개발 코드만 |
| SaaS | 완성된 피자를 배달받아 먹기만 함 | 그냥 사용 |
| 항목 | 설명 |
|---|---|
| 정의 | 거리 벡터 라우팅 프로토콜의 일종으로, 라우터 간 경로 정보를 거리(Hop 수) 기반으로 교환 |
| 탐색 알고리즘 | Bellman-Ford 알고리즘 사용 |
| 최대 홉 수 | 15홉까지만 허용, 16 이상은 도달 불가능(infinite)으로 간주 |
| 적합한 환경 | 소규모/동등한 규모의 네트워크에서 효율적 |
| 제한사항 | 홉 수 제한으로 대규모 네트워크에는 부적합 |
| 업데이트 방식 | 주기적으로 라우팅 테이블을 전체 브로드캐스트 |
| 단점 | 라우팅 루프, 느린 수렴 속도, 정체된 경로로 간주되는 한계 |
| 고장 처리 | 일정 시간 동안 정보가 갱신되지 않으면 그 경로는 더 이상 유효하지 않음 |
| 연산자 | 기호 | 설명 |
|---|---|---|
| Join | ⋈ | 공통 속성을 기준으로 두 릴레이션을 결합하여 새로운 릴레이션 생성 ⇒ 교차곱 후 조건 적용 |
| Project | π | 지정된 속성(열)만 추출하여 새로운 릴레이션 생성 ⇒ 중복 제거됨 |
| Select | σ | 조건을 만족하는 튜플(행)을 선택하는 연산 ⇒ 수평 연산자라고도 함 |
| Division | ÷ | 릴레이션 R에서 릴레이션 S의 모든 값을 포함하는 튜플만 반환 ⇒ 조건에 맞는 튜플 필터링, (S를 포함한 튜플만 남기고, S 속성은 결과에서 제거) |
| 무결성 유형 | 적용 범위 | 정의 및 설명 | 목적 | 예시 |
|---|---|---|---|---|
| 개체 무결성 (Entity Integrity) | 테이블(행) | 각 행(튜플)은 고유해야 하며, 기본키(PK)는 null이나 중복 불가 (opentextbc.ca, oa.mo.gov) | 행마다 유일한 식별자 확보 | Employee 테이블에서 EmpID가 PK이고, null/중복 허용되지 않음 |
| 참조 무결성 (Referential Integrity) | 테이블 간(외래키-FK) | 외래키 값은 부모 테이블의 PK에 존재해야 하고, 또는 null이어야 함 | 테이블 간 관계 일관성 유지 | Order.CustID는 Customer.CustID 값 중에서만 허용 |
| 도메인 무결성 (Domain Integrity) | 컬럼(속성) | 컬럼값은 정의된 자료형, 범위, 형식 내에 속해야 함 | 컬럼 값의 정확성·일관성 보장 | age는 1~120, gender는 ‘M’ 또는 ‘F’ 제한 |
| 사용자 정의 무결성 (User‑defined Integrity) | 테이블 또는 전체 모델 | 비즈니스 규칙 등 사용자 특화 제약조건을 적용 | 고유 비즈니스 로직 준수 | startDate < endDate, salary >= bonus 등 |