정보처리기사 실기/개념

[2025년 3회] 문제 개념 정리

박허디 2026. 6. 24. 14:33

UML 다이어그램

구조적 다이어그램 (Structural / Static Diagram)

  • 클래스(Class) 다이어그램: 객체 지향 모델링의 핵심입니다. 시스템 내 클래스들의 속성, 메서드, 그리고 클래스 간의 관계(의존, 연관, 상속 등)를 표현합니다.
  • 패키지(Package) 다이어그램: 관련 있는 모델 요소들을 폴더 모양의 패키지 단위로 그룹화하여 모듈 간의 의존 관계를 표현합니다 («import», «access»).
  • 컴포넌트(Component) 다이어그램: 물리적인 모듈(소스코드, 컴파일된 파일, 라이브러리 등) 단위인 컴포넌트 간의 인터페이스와 연결 관계를 표현합니다.
  • 배치(Deployment) 다이어그램: 소프트웨어가 실제 실행되는 하드웨어(노드, 서버, 네트워크 환경) 물리적 위치와 배치 구조를 표현합니다.
  • 객체(Object) 다이어그램: 특정 시점에 존재하는 객체 인스턴스(실제 값)들과 그들 사이의 관계를 스냅샷 형태로 표현합니다.

2. 행위적 다이어그램 (Behavioral / Dynamic Diagram)

시스템의 동적인 흐름과 객체 간의 상호작용을 표현합니다.

  • 유스케이스(Use Case) 다이어그램: 개발 초기 단계에서 사용자(Actor)와 시스템이 제공하는 기능(Use Case) 간의 상호작용을 명세합니다 («include», «extend»).
  • 시퀀스(Sequence) 다이어그램: 객체들이 주고받는 메시지를 시간의 흐름(종축)에 따라 순차적으로 표현하는 다이어그램입니다. (생명선, 실행 상자 등장)
  • 커뮤니케이션(Communication) 다이어그램: 시퀀스와 동일하게 메시지를 표현하지만, 시간 흐름보다는 객체들 간의 연관 관계(횡축)와 네트워크 구조에 집중하여 표현합니다.
  • 상태(State) 다이어그램: 객체가 가질 수 있는 상태의 변화와 상태 간의 전이 조건(이벤트)을 표현합니다. (시작 상태, 종료 상태, 전이)
  • 활동(Activity) 다이어그램: 시스템 내에서 처리되는 로직의 처리 흐름, 업무 프로세스, 연산 절차를 순서도(Flowchart) 형태로 표현합니다.

 

화이트박스 테스트

  • 문장(Statement): 소스코드의 모든 줄(소스 명령문)이 최소한 한 번은 실행되게 만듭니다. (구문 커버리지와 동의어)
  • 분기(Branch) / 결정(Decision): 두 용어는 완벽한 동의어입니다. if문이나 switch문 같은 전체 조건문이 True가 되는 경우와 False가 되는 경우를 모두 실행합니다.
  • 조건(Condition): if문 내부의 결과와 상관없이, 그 안에 속한 개별 조건식들이 각각 True/False를 한 번씩 갖게 만듭니다.
  • 조건/결정(Condition/Decision): ㄴ. 결정과 ㅇ. 조건을 동시에 둘 다 만족하도록 테스트 케이스를 짜는 기법입니다. (전체식도 T/F, 개별식도 T/F 만족)
  • 변경 조건/결정(MC/DC): 각 개별 조건식이 다른 조건식의 영향을 받지 않고, 독립적으로 전체 결과에 영향을 주도록 설계하는 기법입니다. (항공기, 자동차 등 안전 필수 시스템에 필수적인 매우 중요한 기법입니다.)
  • 다중 조건(Multiple Condition): 결정문 내부에 있는 개별 조건들의 모든 가능한 T/F 논리 조합(총 $2^n$개)을 전부 다 테스트하는 가장 강력하고 완벽한 기법입니다.
  • 경로(Path): 프로그램 내부에 존재하는 실행 가능한 모든 경로(길)를 전부 테스트하는 기법입니다.
  • 루프(Loop): 프로그램 내의 for문이나 while문 같은 반복 구조가 한 번도 실행 안 될 때, 1번 실행될 때, 최대 횟수 실행될 때 등의 케이스를 집중적으로 테스트하는 기법입니다.

 

오류검출 방식

 

  • CRC (Cyclic Redundancy Check) : 송신측과 수신측이 동일한 특정 다항식을 사용하여 나눗셈 연산으로 오류를 검출하는 방식
  • FEC (Forward Error Correction) : 재전송 요구 없이 수신 측에서 에러 교정 코드를 통해 자체적으로 오류를 수정하는 방식
  • BEC (Backward Error Correction) : 오류 발생 시 수신측이 송신측에 데이터 재전송을 요구하여 오류를 제어하는 방식
  • NAK (Negative Acknowledgment) : 수신측이 전송받은 데이터에 오류가 있음을 알리고 재전송을 요청할 때 보내는 부성 응답 신호
  • Parity (Parity Check) : 데이터 블록 끝에 1비트의 검사 비트를 추가하여 전체 1의 개수의 짝/홀수로 오류를 검출하는 방식
  • MD5 (Message-Digest Algorithm 5) : 데이터의 무결성 검증을 위해 입력값을 128비트 크기의 고정 길이로 변환하는 단방향 암호화 해시 알고리즘
  • BCD (Binary-Coded Decimal) : 10진수 숫자 하나를 표현하기 위해 4비트의 2진수를 사용하는 문자 표현용 이진화 십진 코드
  • Hamming (Hamming Code) : 전송 데이터에 여러 검사 비트를 추가하여 수신 측에서 오류를 스스로 검출하고 수정까지 가능한 코드

 

 

OTP

한 번 사용하면 즉시 폐기되어 재사용이 불가능하다.

서버와 토큰(또는 앱)은 시간 동기화나 카운터 기반 방식으로 매번 새로운 값을 생성하고, 내부 검증은 해시 함수를 이용한 방식으로 서버에 평문을 저장하지 않고도 유효성을 확인할 수 있다.

이 특성 때문에 은행 인증 등 고보안 영역에서 널리 사용되며 재전송 공격 방지와 사용자 편의성을 동시에 만족한다.

 

OAuth

사용자가 새로운 사이트에 가입하지 않고 평소에 이용하던 서비스의 계정으로 로그인할 수 있게 해주는 기술이다.

사용자의 비밀번호는 절대 전달되지 않으며 사용자가 승인한 범위에 대해서만 접근 권한이 위임된다.

이 방식은 직접 인증(Authentication)을 수행하지 않고 "인가(Authorization)" 절차를 통해 접근 권한을 제3자에게 부여한다.

인증 완료 후, 서비스 제공자는 Access Token을 발급하며 애플리케이션은 이 토큰을 이용해 API를 호출하여 필요한 정보에 접근한다.

대표적인 예는 소셜 로그인이며 SSO(Single Sign-On)과 달리 동일 시스템 내 인증이 아니라 서로 다른 서비스 간의 권한 위임에 초점이 맞춰져 있다.

 

관계형 데이터베이스

 

  • 스키마 (Schema) : 데이터베이스의 구조와 제약 조건에 관해 컴파일러가 이해하도록 기술한 데이터 구조의 틀이자 논리적 정의
  • 속성 (Attribute) : 데이터베이스를 구성하는 가장 작은 논리적 단위이며, 파일 구조의 필드(Field) 또는 열(Column)에 해당하는 항목
  • 튜플 (Tuple) : 릴레이션을 구성하는 각각의 행(Row)으로서, 공통된 속성들의 모임으로 구성된 하나의 레코드(Record)
  • 차수 (Degree) : 하나의 릴레이션(테스트 테이블) 내부에서 정의된 속성(Attribute)의 전체 개수
  • 인스턴스 (Instance) : 스키마에 따라 테이블에 실제로 저장된 데이터 전체의 값이며, 튜플들의 집합체로 구성된 현재 상태의 데이터 객체
  • 카디널리티 (Cardinality) : 하나의 릴레이션(테스트 테이블)에 존재하는 튜플(Tuple)의 전체 개수

 

정보보안 접근통제 방식

MAC : 중앙에서 보안 정책을 일괄적으로 설정하며, 주체(사용자)가 임의로 수정하거나 변경할 수 없다. 주로 군사 기밀, 국가 보안과 같은 높은 보안 수준이 요구되는 환경에서 사용된다. 보안 등급(Top Secret / Secret / Confidential 등)에 따라 접근 여부가 결정된다.

 

RBAC : 조직 내에서 부여된 직무나 역할(Role)에 따라 접근 권한을 부여하는 방식이다. 개별 사용자에게 직접 권한을 설정하지 않고, 역할에 권한을 묶어 부여하기 때문에 관리가 용이하며 직무 변경 시 역할만 변경하면 된다.

 

DAC : 자원의 소유자(Owner)가 해당 자원에 대한 접근 권한을 자유롭게 부여하거나 회수할 수 있는 방식이다. 파일이나 폴더의 소유자가 읽기/쓰기/실행 권한을 설정하는 것이 대표적인 예로 사용자의 임의 설정이 가능해 보안성이 상대적으로 낮다.