정보처리기사 23년 2회

이주원·2025년 6월 25일

컴퓨터언어

목록 보기
40/50

2회


✅ INSERT 문 작성 방식 차이

항목INSERT INTO 학생 (컬럼명 나열)INSERT INTO 학생 (컬럼명 생략)
컬럼명 지정 여부컬럼명을 명시적으로 지정 → 명확하고 안전컬럼명을 생략함 → 테이블 구조에 전적으로 의존
⚠️ 컬럼 순서의 영향작성자가 지정한 순서대로 값이 매핑됨테이블 생성 시 정의된 컬럼 순서에 따라 자동 매핑됨
🔄 테이블 구조 변경 시컬럼 순서가 바뀌거나 추가되어도 영향 적음 (컬럼명만 일치하면 OK)컬럼 추가/순서 변경 시 데이터가 잘못 들어갈 가능성 높음
🛠️ 실무 사용 권장 여부✅ 실무에서 권장 (유지보수 및 안전성 확보에 유리)❌ 테스트용 또는 컬럼 구조 고정된 경우에만 제한적으로 사용 권장

✅ gets(n)과 return n의 위험성 요약

항목설명
gets(n) 사용사용자의 입력을 버퍼 크기 확인 없이 n에 저장
버퍼 오버플로우 위험 있음
⚠️ return n 포인터n이 지역 변수일 경우, 해당 포인터는 함수 종료 후 무효
미정의 동작 위험

✅ 자바에서 == 연산 결과

항목설명
연산자==
결과 타입boolean
출력값 형태true 또는 false → 모두 소문자로 출력됨
주의사항기본 타입은 값 비교, 참조 타입은 주소 비교에 사용됨

✅ 커버리지

커버리지 유형정의장점단점/한계
문장 커버리지 (Statement Coverage)코드 내 각 문장이 최소한 한 번 실행되었는지 확인- 구현이 간단
- 테스트 누락을 빠르게 파악 가능
- 조건 분기 및 로직 완전성 검증에 취약
분기 커버리지 (Branch Coverage)if/else, switch 등 분기의 각 갈래(true/false)가 모두 실행되었는지 검증- 주요 분기 로직 커버
- 테스트의 논리 흐름 검증에 유용
- 개별 조건식의 평가 경로(조합)는 확인하지 않음
조건 커버리지 (Condition Coverage)복합 조건식 내 각각의 조건이 true/false 모두인 경우 실행되었는지 확인- 조건 하나하나의 로직 확인 가능- 조건 조합 전체 경로 검증 부족
분기/조건 커버리지 (Branch/Condition Coverage, MC/DC)분기와 개별 조건 모두 충분히 검증되며, 각 조건이 결정적 역할을 하나 이상 증명- 테스트의 완전성 및 신뢰도 매우 높음
- 항공·의료 등 고신뢰도 도메인 필수
- 테스트 설계 복잡
- 케이스 수 급증, 구현 비용 부담 가능
항목분기 커버리지 (Branch Coverage)조건 커버리지 (Condition Coverage)
정의모든 분기(outcome), 즉 if/else 등의 true/false, switch 분기를 최소 한 번씩 실행 (geeksforgeeks.org)복합 조건식 내 각 개별 조건이 각각 true/false 모두 평가되도록 테스트
테스트 대상분기점 자체: true 분기와 false 분기만 점검복합 조건식 내부의 각 서브 조건 (predicate) 별로 true와 false 평가 여부 점검
예시if(a && b): a&&b가 true와 false가 되도록 실행if(a && b): a=true/b=false, a=false/b=true, a=true/b=true 등 다양한 조합 필요
커버리지 기준총 분기 수 대비 실행된 분기 수 비율모든 개별 조건이 true, false 각각 한 번씩 평가된 비율
강도상대적으로 약함: 분기만 커버되면 충분더 강함: 조건 하나하나의 변화까지 살펴야 함
한계복합 조건에서 특정 서브 조건이 평가되지 않았어도 100% 달성 가능각 조건 결과를 모두 점검해도, 조건 간 상호 의존성(여러 조합 경로)은 확인 불가
언제 사용?조건식 없이 간단한 분기 로직 중심일 때복잡한 논리 연산, 보안·오류 처리 등 조건의 세부 평가가 중요한 경우 유리

✅소프트웨어/데이터베이스 개발 생명주기(SDLC/DBLC)

단계포함 항목설명
요구 / 분석 (Requirements Analysis)• 요구 조건 분석사용자 요구사항 수집·정의 단계로, 시스템 전체의 요구가 무엇인지 파악
개념적 설계 (Conceptual Design)• 개념적 설계ER 다이어그램 등으로 주요 엔티티와 관계를 추상적으로 모델링 (geeksforgeeks.org)
논리 스키마 설계 (Logical Schema Design)• 논리 스키마 설계
• 논리적 설계
개념모델을 DBMS 친화적 논리 구조(테이블, 칼럼, 정규화)로 변환
인터페이스 설계 (Interface Design)• 인터페이스 설계사용자·시스템 간 화면/UI 또는 API 설계 단계로, 입출력 구조 설계
물리적 설계 (Physical Design)• 물리적 설계논리모델을 저장소·인덱스·파티셔닝 등 DBMS 물리 구조로 구현
구현 / 개발 (Implementation / Coding)• 데이터베이스 구현
• 트랜잭션 작성
SQL이나 코드로 스키마 생성, 트랜잭션 로직, 저장 프로시저 등을 실제 구현
테스트 / 트랜잭션 작성• 트랜잭션 작성 (검증 포함)구현된 기능과 트랜잭션 흐름을 유효성 및 무결성 기준으로 테스트
배포 / 유지보수 (Deployment / Maintenance)(미포함 항목들)구현 후 실제 시스템에 배포·운영하며 유지보수 진행

🛠️ 오류 감지 & 수정 방식 정리

항목유형설명 & 역할
NAK프로토콜 신호"Negative Acknowledgement": 오류 시 재전송 요청
Parity단일 패리티 비트 검사데이터 비트의 1 개수(짝/홀)로 단순 오류 감지 (gisafirst.com, en.wikipedia.org, freeedeveloper.tistory.com)
CRC순환 중복 검사다항식 나눗셈을 기반으로 블록 단위 오류 감지
Hamming블록 오류 정정 코드중복 비트를 추가해 1비트 오류를 자동 정정, 2비트 오류 감지
FEC전진형 오류 정정재전송 없이 수신 측에서 오류 정정, Hamming 등이 활용됨
MD5암호학적 해시 함수데이터 무결성 검증에 사용되며, 변조 탐지 목적, 오류/변조 모두 감지 가능
BCD부호화 방식 (2진-coded decimal)숫자를 이진으로 표현하는 방식, 오류 처리 목적은 아님, 표현 형식
BEC채널 모델 (Binary Erasure Channel)통신 이론 상 '지워짐' 오류를 가정한 이론 채널 모델
항목결론
CRC🎯 다항식 나눗셈 방식 사용 → Generator Polynomial로 나머지 계산해 오류 탐지
BEC📡 채널 모델: 오류 감지(지워짐 인지)는 가능하지만, 자동 재요청은 없음 → 복구는 별도 메커니즘 필요

🖥️ HDLC 프레임 구성 및 기능/모드 정리

항목설명
플래그 (Flag)프레임의 시작과 끝을 나타내는 고유 비트 패턴 (01111110) (seb.kr)
주소부 (Address Field)송·수신 스테이션 식별 (브로드캐스트는 11111111, 시험용은 00000000)
제어부 (Control Field)프레임 종류 표시(IF, S‑frame, U‑frame 등), ARQ 및 흐름 제어 기능 포함
정보부 (Information Field)실제 사용자 데이터가 담기는 가변 길이 필드
감독 (S‑frame 종류)흐름·오류 제어용 프레임: RR, RNR, REJ, SREJ 등

🔄 HDLC 데이터 전송 모드 비교

모드명 (영문 / 한글)구성특징
NRM
(Normal Response Mode)
불균형 / 반이중주국의 허가(Poll) 있어야 종국 송신 가능 (seb.kr)
ARM
(Asynchronous Response Mode)
불균형 / 전이중종국이 주국 허가 없이 송신 가능, 제어권은 주국에 있음
ABM
(Asynchronous Balanced Mode)
균형 / 전이중주/종국 구분 없이 동등하게 자유 전송 가능

🔒 암호화 알고리즘 비교

알고리즘유형블록/키 크기주요 특징 및 활용
RSA비대칭키 길이: 일반적으로 2048–4096비트 (en.wikipedia.org, preyproject.com)공개키/개인키 사용, 보안 수준은 큰 소수 분해 어려움에 기인. SSL/TLS, 디지털 서명에 사용
DES대칭 (블록암호)블록 64비트, 키 56비트초기 표준, 현대에선 취약(작은 키 길이), 3DES로 연장 사용
ARIA대칭 (블록암호)블록 128비트, 키 128/192/256비트AES 구조 기반, 한국 표준 채택. 12/14/16 라운드로 키 길이에 따라 다양
ECC비대칭키 길이: 160–512비트 이하타원 곡선 수학 기반, RSA보다 짧은 키로 같은 보안 수준 제공
SEED대칭 (블록암호)블록 128비트, 키 128비트한국산 암호, Feistel 구조, 금융 및 정부 시스템에 사용
AES대칭 (블록암호)블록 128비트, 키 128/192/256비트현재 국제 표준, 빠르고 안전, FBI/NSA에서도 채택. 다양한 모드(CCM, GCM 등) 지원
항목대칭키 (Symmetric Key)비대칭키 (Asymmetric Key)
키 개수하나의 비밀키로 암·복호화 모두 수행 (deviceauthority.com, en.wikipedia.org)공개키 + 개인키 한 쌍 사용 (공개키로 암호화, 개인키로 복호화)
속도 및 성능매우 빠르며, 대량 데이터 암호화에 적합계산량이 많아 느리며, 소량 데이터나 키 교환에 적합
보안 및 키 관리키 분배 과정에서 비밀 키 노출 위험 있음공개키는 자유롭게 배포, 개인키는 비밀 유지 → 키 공유가 안전
기능적 특징- 빠른 암호화
- 대규모 데이터에 적합
- 디지털 서명, 인증 가능
- 키 교환 경험 보안성 확보
사용 사례AES, DES 등 → 파일암호화, VPN, 데이터베이스, 스트리밍RSA, ECC 등 → SSL/TLS 핸드셰이크, 이메일 인증(PGP), 디지털 서명
키 길이 예시128~256비트 (AES) 등 → 짧아도 높은 보안성RSA 2048비트, ECC 256비트 등 더 긴 키 필요
속도 대비 보안빠르지만 키 유출 시 치명적 위험 가능느리지만 높은 보안성과 키 분배 용이성 제공

🔐 해시 함수 및 관련 개념 정리

용어 / 개념정의 & 특징
Hash (해시)임의 길이 데이터를 고정된 길이의 값(메시지 다이제스트)으로 변환하는 일방향 함수. 데이터 무결성, 무결성 검사, 인증 등에 사용됨 (csrc.nist.gov, link.springer.com)
고정 길이 출력입력 데이터 길이와 상관없이 일정한 길이의 해시 값을 생성 (예: MD5 = 128 bit, SHA‑256 = 256 bit)
일방향 함수해시 결과값으로부터 원본 데이터를 복원하는 것이 실질적으로 불가능한 특성 (Pre‑image resistance)
SHA 시리즈Secure Hash Algorithm
- SHA‑1: 160bit, 과거 TLS/SSL에 사용됨
- SHA‑2/3: 향상된 안전성, 현재 권장 표준
MD5128 bit 출력, Merkle‑Damgård 구조 기반.
현재는 취약점(충돌)으로 암호학적 해시로는 부적합, 체크섬 등 비보안 목적으로 주로 사용됨
N‑NASHNIST 기구에서 제안된 one-way 해시 함수. 현재는 SHA 계열에 밀려 사용은 제한적이며, 해시 함수 경쟁에서 제외됨.
SNEFRURalph Merkle가 개발한 해시 알고리즘 (128/256bit). 초기에는 안전성을 가졌으나, 충돌 공격이 가능해짐

🔄 SQL CASCADE

용어유형설명
CASCADE외래키(FK) 옵션부모 테이블 변경(DELETE/UPDATE)이 발생할 때, 자식 테이블의 데이터도 자동으로 연쇄 반영됩니다.
ON DELETE CASCADE: 부모 행 삭제 시 자식 행도 삭제 (geeksforgeeks.org)
ON UPDATE CASCADE: 부모 키 변경 시 자식의 FK 컬럼도 자동 변경 (geeksforgeeks.org)

📐 등차수열 항의 개수 계산 (예: 4의 배수 ≤ 2023)

항목설명
등차수열 일반항an=a1+(n1)da_n = a_1 + (n - 1)d
여기서는 an=4na_n = 4n (공차 4, 초항 4로 가정 시)
조건마지막 항 2023\leq 2023
계산 방법4n2023n202344n \leq 2023 \rightarrow n \leq \frac{2023}{4}
정수로 내림n=2023÷4=505n = 2023 \div 4 = 505
결론4의 배수는 총 505개 존재

🧪 템퍼 프루핑 (Tamper Proofing)

항목설명
정의프로그램이나 데이터가 변조되었는지 탐지하거나 방지하는 기술
주요 목적해커가 프로그램 내부를 조작하거나 수정하지 못하도록 보호
활용 예시게임 프로그램, 보안 소프트웨어, 라이선스 검사 등
방법 예시- 체크섬/해시 검증
– 코드 난독화
– 메모리 변조 감지
profile
뭐가될지 모름

0개의 댓글