정보처리기사 23년 1회

이주원·2025년 6월 27일

컴퓨터언어

목록 보기
41/50
post-thumbnail

1회

🧱 Java 문법 정리 표

항목설명
생성자 함수
(Constructor)
- 클래스명과 이름이 같음
- 오버로딩(인수값이 다름)에 따라 여러 생성자 정의 가능
this() 호출- 생성자 내부에서 다른 생성자를 호출할 때 사용
- 예: Child() 생성자가 this(5000)으로 Child(int x) 생성자 호출
static 변수- 클래스 로딩 시점에 메모리의 static 영역에 할당됨
- main() 실행 전부터 존재하며, 객체 없이 클래스명으로 접근 가능
서식 문자열 %s- 문자열 출력 시 사용
- 문자열 시작 주소부터 널 문자 전까지의 모든 문자 출력
- System.out.printf("이름: %s", name); 형식

📊 SQL 주요 키워드 및 기능 정리

용어 / 구문설명
SELECT조회할 열(column)을 선택하는 구문
과목이름SELECT 절에서 조회되는 그룹 기준 열 (GROUP BY 대상)
MIN(점수)각 그룹 내에서 **가장 작은 점수(최소값)**을 계산
MAX(점수)각 그룹 내에서 **가장 큰 점수(최대값)**을 계산
AS 최소점수 / 최대점수MIN, MAX 결과에 **별칭(Alias)**을 붙여 출력 시 해당 이름으로 표시
FROM 성적데이터를 가져올 테이블 지정 – 여기선 성적 테이블
GROUP BY 과목이름과목 이름을 기준으로 그룹핑하여 집계 함수 적용
HAVING AVG(점수) >= 90각 그룹의 평균 점수가 90 이상인 그룹만 출력
HAVINGGROUP BY와 함께 사용하며, WHERE과 달리 집계 함수 사용 가능

📡 AJAX (Asynchronous JavaScript and XML)

항목설명
정의JavaScript와 XML을 이용하여 클라이언트와 서버 간 비동기적으로 통신하는 기술
특징전체 페이지를 새로 고치지 않고, 일부 영역만 업데이트 가능
주요 구성 요소- JavaScript
– XMLHttpRequest 객체
– HTML/CSS
– XML 또는 JSON
장점빠른 응답성, 부드러운 사용자 경험 (UX), 트래픽 감소
활용 예시실시간 검색, 댓글 비동기 로딩, 지도 드래그 시 재로드 없음 등

🔁 데이터 교환 방식 보기 정리

용어설명
회선 교환 방식(①) 출발지-목적지 간 경로를 사전에 고정해서 통신 (전화망 기반)
메시지 교환 방식전체 메시지를 한 번에 전송, 중간 노드가 수신 후 저장하고 전달
가상 회선 방식패킷 교환 기반이나 논리적 경로를 먼저 설정하는 방식
데이터그램 방식(②) 패킷마다 경로를 지정하여 개별 전송, 사전 접속 없음 (인터넷 방식)

🔒 L2TP (Layer 2 Tunneling Protocol)

항목설명
계층데이터링크 계층 (OSI 2계층)
용도PPTP 및 VPN 구현에 사용되는 터널링 프로토콜
특징- 자체적으로 암호화와 인증 기능 없음
- 다른 보안 프로토콜(IPSec 등)과 결합 사용
기능원격 접속 시 다중 점을 연결하여 가상 전용 네트워크(VPN) 구성 가능
적용 예시VPN, 기업 내 외부 접속 보안 터널 구성 등

🔐 SSH (Secure Shell)

항목설명
정의원격 컴퓨터에 안전하게 접속하고 명령 실행, 파일 복사 등을 수행할 수 있는 암호화된 통신 프로토콜
기능로그인, 원격 명령어 실행, SCP/SFTP 파일 전송
보안 방식강력한 대칭/비대칭 암호화공개키 기반 인증 지원
포트 번호기본적으로 22번 포트 사용
활용 사례개발 서버 접속, 배포 자동화, 원격 제어, 서버 보안 통신

☠️ 보안 위협 유형 보기 (웜, 바이러스, 트로이 목마)

용어정의 및 특징
웜(Worm)- 자체 복제 능력을 가진 독립 실행형 악성코드
- 사용자 개입 없이 네트워크 통해 전파됨
바이러스(Virus)- 파일에 기생해 함께 실행되며 전파됨
- 사용자 실행이 있어야 활동 가능
트로이 목마- 정상 프로그램으로 위장해 설치된 후 백도어/정보유출 등 악성 기능 수행

📡 ICMP (Internet Control Message Protocol)

항목설명
정의IP의 부가 기능으로, 네트워크 계층에서 오류 메시지 전달 및 진단을 위한 프로토콜
OSI 계층3계층 (네트워크 계층)
기능- 목적지 도달 불가, 경로 변경, TTL 초과 등 오류 메시지 전송
- 상태 점검 및 경로 추적
도구 예시ping, traceroute
공격 사례ping of death, ICMP flood네트워크 공격에도 활용 가능

🧩 GoF 디자인 패턴 23가지 요약 설명 표

분류패턴 이름설명 (기능 요약)
생성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요소를 순차적으로 접근하는 방법 제공

🧩 프록시(Proxy) vs 파사드(Facade) 패턴 비교 표

항목프록시 패턴파사드 패턴
주요 목적원래 객체에 대한 접근 제어, 지연 로딩, 보안, 로깅복잡한 서브시스템을 단순화하여, 외부에 간단한 인터페이스 제공
내부 구성하나의 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 관련 주요 기능

기능사용 예시설명
집합 생성{'한국', '중국', '일본'} 또는 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;
특정 사용자/앱 전용 제한된 데이터 표현, 민감 정보 제외된 뷰 생성
profile
뭐가될지 모름

0개의 댓글