정보처리기사

[정보처리기사 실기] 빈출 키워드 30 (21~30)

@leem 2025. 4. 9. 19:54
  키워드 개념 팁/포인트
21 정규화 (Normalization) 중복 제거 + 이상(Anomaly) 방지를 위한 데이터 구조 정리 1NF → 2NF → 3NF → BCNF 흐름 기억
이상 해결의 핵심 도구
22 반정규화 (Denormalization) 성능 향상을 위해 정규화된 테이블을 합치거나 중복 허용 JOIN 줄이고 조회 빠르게,
성능이 우선일 땐 고려
23 트랜잭션 (Transaction) DB 상태 변화의 논리적 단위, ACID 특성 필수 A.C.I.D = 원자성/일관성/고립성/지속성
→ 실기 자주 출제!
24 Commit & Rollback Commit: 저장 / Rollback: 되돌리기 Ctrl+S vs Ctrl+Z”처럼 외우면 쉽다
25 인덱스 (Index) 데이터 검색을 빠르게 하는 목차 구조 삽입·수정 시 성능 저하 주의,
클러스터드/넌클러스터드 구분
26 JUnit Java 단위 테스트 프레임워크, 테스트 자동화 지원 자바는 JUnit 
파이썬은 pytest
자바스크립트는 Jest 기억
27 NUI (Natural User Interface) 음성·터치·제스처 등 자연스러운 방식의 인터페이스 CLI/GUI/NUI 비교
NUI는 “No UI 같은 자연스러움
28 UX (User Experience) 사용자가 느끼는 시스템의 총체적 경험과 감정 UI는 “겉”, UX는 “느낌” 
접근성과 만족도 중심
29 살충제 패러독스 같은 테스트 반복 시 더 이상 오류 안 나오는 현상 테스트 케이스 주기적 변경 필수
30 경계값 분석 입력 값의 최대/최소값 근처를 중심으로 테스트하는 기법 실수는 경계에서 터진다
동치분할과 차이: 테두리만 집중

21. 정규화(Normalization)

  • 정의
    데이터의 중복을 제거하고 **이상(Anomaly)**을 방지하기 위한 데이터 구조 개선 과정.
  • 주요 단계
    • 1NF: 원자값만 허용 (반복 속성 제거)
    • 2NF: 부분 함수 종속 제거
    • 3NF: 이행 함수 종속 제거
    • BCNF: 결정자가 후보키가 되도록
  • 비교 개념
    • 정규화는 데이터 무결성 중심
    • 반정규화는 성능 중심
  • 정규화는 데이터 정리정돈.
    반복 → 부분 → 이행으로 가는 단계 기억!

22. 반정규화(Denormalization)

  • 정의
    성능 향상을 위해 정규화된 테이블을 다시 합치거나 중복을 허용하는 것.
  • 목적
    • 조회 성능 향상
    • JOIN 횟수 감소
  • 사용 예
    • 자주 조인되는 테이블 통합
    • 검색용 컬럼 추가
  • 반정규화 = 정규화를 되돌리는 것
    성능이 우선이면 반정규화 고려!

23. 트랜잭션(Transaction)

  • 정의
    데이터베이스의 상태를 변화시키기 위한 작업의 논리적 단위
  • ACID 특성
    • 원자성(Atomicity)
    • 일관성(Consistency)
    • 고립성(Isolation)
    • 지속성(Durability)
  • "트랜잭션은 A.C.I.D하게!"
    네 가지 특성을 무조건 외워야 실기 주관식에 강해짐

24. Commit & Rollback

  • Commit
    트랜잭션을 성공적으로 마쳐 DB에 영구 반영
  • Rollback
    트랜잭션 중 오류 발생 시 변경 내용 되돌림
  • Commit → 저장
    Rollback → 되돌리기
    “Ctrl+S vs Ctrl+Z”처럼 기억하기

25. 인덱스(Index)

  • 정의
    데이터 검색 속도를 높이기 위한 목차 역할의 객체
  • 종류
    • 클러스터드 인덱스 (기본 정렬 기준)
    • 넌클러스터드 인덱스 (별도 저장)
  • 주의사항
    삽입·수정 시 오히려 성능 저하 우려 있음
  • 인덱스 = “책의 목차”
    빠르게 찾지만 관리 비용이 든다

26. JUnit

  • 정의
    자바 기반의 단위 테스트 프레임워크로 Kent Beck과 Erich Gamma가 개발
  • 특징
    테스트 자동화, 반복 가능
    @Test, assertEquals 등 어노테이션 사용
  • 비교 개념
    • 정적 분석은 코드 실행 X
    • JUnit은 코드 실행 O
  • 자바 테스트는 “JUnit”
    Python은 “pytest”, JavaScript는 “Jest”

27. NUI(Natural User Interface)

  • 정의
    사람의 자연스러운 동작이나 음성을 이용한 인터페이스
  • 예시
    음성 인식(Siri), 터치, 제스처 인식 등
  • 비교 개념
    • CLI: 명령어 입력
    • GUI: 마우스, 메뉴
    • NUI: 음성·제스처 등 자연스럽게
  • NUI = “No UI 같지만 UI”
    자연스러움이 핵심

28. UX(User Experience)

  • 정의
    사용자가 시스템을 사용할 때 느끼는 총체적 감정과 경험
  • 목표
    • 사용성, 접근성, 만족도 개선
  • 비교 개념
    • UI보이는 인터페이스
    • UX느끼는 경험
  • UI는 “겉모습”, UX는 “느낌”

29. 살충제 패러독스(Pesticide Paradox)

  • 정의
    동일한 테스트 케이스로 반복 테스트하면 더 이상 결함을 찾지 못하는 현상
  • 해결법
    테스트 케이스 지속적 갱신 필요
  • 테스트도 다양화 필수

30. 경계값 분석(Boundary Value Analysis)

  • 정의
    입력 값의 경계값(최대/최소)에 오류가 집중되기 때문에 그 주변 값 중심으로 테스트
  • 예시
    나이 입력: 1~100 → 0, 1, 100, 101 등으로 테스트
  • 비교 개념
    • 동치 분할: 범위 내 대표값 중심
    • 경계값 분석: 범위의 경계값 중심