Engineer Information Processing study materials
Engineer Information Processing study resources

Engineer Information Processing key terms

Engineer Information Processing · Get comfortable with the vocabulary.

요구사항 추적성

요구사항이 설계, 구현, 테스트 산출물까지 어떻게 연결되는지 양방향으로 확인할 수 있는 성질이다. 변경 발생 시 영향 범위를 파악하고 누락을 방지하는 데 사용된다.

Related: 요구사항 검증, 형상관리
요구사항 검증

작성된 요구사항이 완전하고 일관되며 검증 가능한지 이해관계자와 함께 확인하는 활동이다. 검토 회의나 프로토타이핑을 통해 모호함과 충돌을 조기에 제거한다.

Related: 요구사항 추적성, 프로토타이핑
프로토타이핑

핵심 기능만 빠르게 구현한 시제품을 만들어 사용자 피드백을 받는 개발 기법이다. 요구사항을 조기에 구체화하고 위험을 줄이지만, 폐기 여부를 명확히 정해야 한다.

Related: 요구사항 검증, 애자일 스프린트
애자일 스프린트

짧고 고정된 기간 동안 우선순위가 높은 백로그 항목을 완성하는 반복 주기다. 매 주기 끝에 동작하는 결과물과 회고를 남겨 점진적으로 제품을 개선한다.

Related: 프로토타이핑, 지속적 통합
모듈 응집도

한 모듈 내부 요소들이 서로 얼마나 밀접하게 관련되어 있는지를 나타내는 척도다. 기능적 응집도가 가장 바람직하며, 우연적 응집도에 가까울수록 유지보수가 어려워진다.

Related: 모듈 결합도, 정보 은닉
모듈 결합도

서로 다른 모듈 사이의 의존 관계가 얼마나 강한지를 나타내는 척도다. 자료 결합도가 가장 바람직하며, 내용 결합도처럼 강한 결합은 변경 파급을 키운다.

Related: 모듈 응집도, 인터페이스 분리
정보 은닉

모듈 내부의 구현 세부와 자료를 외부에 노출하지 않고 필요한 인터페이스만 공개하는 설계 원칙이다. 내부 변경이 다른 모듈에 영향을 주지 않도록 경계를 만든다.

Related: 모듈 응집도, 캡슐화
캡슐화

데이터와 그 데이터를 다루는 메서드를 하나의 단위로 묶고 외부 접근을 제한하는 객체지향 특성이다. 내부 상태를 보호하고 변경 영향을 줄이며 재사용성을 높인다.

Related: 정보 은닉, 다형성
다형성

같은 메시지나 호출이 객체의 실제 타입에 따라 서로 다른 동작을 수행하는 객체지향 특성이다. 오버로딩과 오버라이딩으로 구현하며 확장성을 높인다.

Related: 캡슐화, 추상 클래스
추상 클래스

공통 속성과 일부 구현을 제공하되 직접 인스턴스화할 수 없고 상속을 통해서만 사용하는 클래스다. 템플릿 메서드처럼 골격을 정의하고 하위 클래스에 세부를 맡긴다.

Related: 다형성, 인터페이스 분리
인터페이스 분리

클라이언트가 사용하지 않는 메서드에 의존하지 않도록 작고 목적별로 인터페이스를 나누는 설계 원칙이다. 불필요한 의존을 줄여 결합도를 낮춘다.

Related: 모듈 결합도, 추상 클래스
디자인 패턴

소프트웨어 설계에서 반복되는 문제와 그 해법을 이름 붙여 정리한 재사용 지식이다. 생성, 구조, 행위 패턴으로 분류하며 코드 재사용과 의사소통을 돕는다.

Related: 싱글턴 패턴, 옵저버 패턴
싱글턴 패턴

클래스의 인스턴스를 하나만 만들고 어디서나 같은 인스턴스에 접근하도록 보장하는 생성 패턴이다. 전역 상태를 공유하므로 남용하면 결합도와 테스트 난이도가 높아진다.

Related: 디자인 패턴, 팩토리 메서드 패턴
팩토리 메서드 패턴

객체 생성 코드를 하위 클래스나 별도 메서드로 분리해 어떤 구체 클래스를 만들지 캡슐화하는 생성 패턴이다. 생성 로직 변경 없이 제품군을 교체할 수 있다.

Related: 싱글턴 패턴, 디자인 패턴
옵저버 패턴

한 객체의 상태 변화가 있을 때 그 객체를 구독한 여러 객체에 자동으로 알림을 보내는 행위 패턴이다. 발행자와 구독자를 느슨하게 연결해 이벤트 처리에 활용된다.

Related: 디자인 패턴, 모듈 결합도
정규화

이상 현상을 제거하기 위해 릴레이션을 작은 단위로 분해하는 과정이다. 함수 종속과 다치 종속을 기준으로 1정규형부터 단계적으로 적용하며 중복과 갱신 이상을 줄인다.

Related: 함수 종속, 반정규화
함수 종속

한 릴레이션에서 속성 집합 X의 값이 정해지면 다른 속성 Y의 값이 유일하게 결정되는 관계다. 정규화 단계 판단의 기준이 되며 부분 종속과 이행 종속을 구분한다.

Related: 정규화, 후보키
반정규화

성능 향상을 위해 의도적으로 중복을 허용하거나 테이블을 합치는 기법이다. 조회는 빨라지지만 데이터 일관성과 갱신 비용이 커지므로 통제가 필요하다.

Related: 정규화, 인덱스
후보키

릴레이션에서 각 튜플을 유일하게 식별하면서 최소성을 만족하는 속성 집합이다. 그중 하나를 기본키로 선택하고 나머지는 대체키가 된다.

Related: 함수 종속, 참조 무결성
참조 무결성

외래키 값이 참조 대상 릴레이션의 기본키 값과 일치하거나 널이어야 한다는 제약이다. 데이터 간 관계의 일관성을 보장하며 위반 시 연산이 거부된다.

Related: 후보키, 트랜잭션 ACID
트랜잭션 ACID

트랜잭션이 가져야 할 원자성, 일관성, 고립성, 지속성 네 가지 성질이다. 부분 완료를 허용하지 않고 동시 수행과 장애 상황에서도 데이터 정합성을 유지한다.

Related: 동시성 제어, 참조 무결성
동시성 제어

여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않도록 직렬화 가능성을 보장하는 기법이다. 로킹과 타임스탬프 기법이 대표적이며 갱신 손실을 방지한다.

Related: 트랜잭션 ACID, 인덱스
인덱스

검색 속도를 높이기 위해 키 값과 레코드 위치를 정렬해 별도로 저장한 구조다. 조회는 빨라지지만 삽입과 갱신 시 추가 비용이 발생한다.

Related: 반정규화, 실행 계획
실행 계획

DBMS가 SQL 문을 어떤 순서와 방식으로 처리할지 결정한 절차다. 조인 순서와 접근 경로를 확인해 인덱스 사용 여부와 성능 병목을 분석한다.

Related: 인덱스, 동시성 제어
지속적 통합

개발자가 코드를 공유 저장소에 자주 병합하고 매번 자동으로 빌드와 테스트를 수행하는 관행이다. 통합 문제를 조기에 발견해 배포 가능한 상태를 유지한다.

Related: 애자일 스프린트, 형상관리
형상관리

소프트웨어 산출물의 버전과 변경을 식별하고 통제하며 이력을 기록하는 활동이다. 기준선을 정해 승인된 변경만 반영하고 릴리스 재현성을 보장한다.

Related: 지속적 통합, 요구사항 추적성
화이트박스 테스트

프로그램 내부 구조와 제어 흐름을 참고해 테스트 케이스를 설계하는 기법이다. 문장, 분기, 조건 커버리지를 측정해 논리 경로의 누락을 확인한다.

Related: 블랙박스 테스트, 경계값 분석
블랙박스 테스트

내부 구현을 보지 않고 명세에 정의된 입력과 출력만으로 테스트를 설계하는 기법이다. 동등 분할과 경계값 분석으로 기능 요구사항 충족 여부를 검증한다.

Related: 화이트박스 테스트, 경계값 분석
경계값 분석

입력 범위의 경계에서 결함이 자주 발생한다는 가정으로 경계 바로 안팎의 값을 테스트하는 기법이다. 동등 분할과 함께 사용해 테스트 수를 줄이고 효과를 높인다.

Related: 블랙박스 테스트, 화이트박스 테스트
단위 테스트

개별 함수나 모듈처럼 가장 작은 코드 단위의 동작을 검증하는 테스트다. 자동화된 테스트 프레임워크로 빠르게 반복 실행하며 리팩터링의 안전망 역할을 한다.

Related: 화이트박스 테스트, 지속적 통합
해시 함수

임의 길이의 입력을 고정 길이의 값으로 변환하는 함수다. 같은 입력에는 항상 같은 출력이 나오며 무결성 검증과 비밀번호 저장, 인덱스에 활용된다.

Related: 대칭키 암호, 디지털 서명
대칭키 암호

암호화와 복호화에 동일한 키를 사용하는 암호 방식이다. 속도가 빠르지만 키를 안전하게 공유해야 하며, 공개키 방식과 함께 세션키 교환에 쓰인다.

Related: 공개키 암호, 해시 함수
공개키 암호

공개키로 암호화하고 개인키로 복호화하는 비대칭 암호 방식이다. 키 분배 문제를 해결하고 전자서명에 쓰이지만 대칭키보다 연산이 느리다.

Related: 대칭키 암호, 디지털 서명
디지털 서명

메시지의 해시 값을 송신자의 개인키로 암호화해 무결성과 인증, 부인 방지를 제공하는 기술이다. 수신자는 공개키로 검증해 위조 여부를 확인한다.

Related: 공개키 암호, 해시 함수
SQL 삽입

입력 값에 악의적인 SQL 구문을 넣어 데이터베이스를 조작하는 공격이다. 입력 검증과 매개변수화된 쿼리 사용으로 방어하며 최소 권한 원칙이 도움이 된다.

Related: 입력 검증, 접근 제어
입력 검증

외부에서 들어오는 데이터의 형식, 길이, 범위를 서버 측에서 확인해 부적절한 값을 차단하는 기법이다. 화이트리스트 방식이 안전하며 인젝션과 스크립트 공격을 줄인다.

Related: SQL 삽입, 접근 제어
접근 제어

인가된 주체만 특정 자원에 접근하도록 권한을 부여하고 통제하는 보안 원칙이다. 역할 기반 모델과 최소 권한 적용으로 내부 오남용과 침해 확산을 막는다.

Related: 입력 검증, SQL 삽입
REST API

자원을 URI로 표현하고 HTTP 메서드로 행위를 구분하는 아키텍처 스타일의 인터페이스다. 무상태성과 일관된 인터페이스를 지향해 서비스 간 결합을 낮춘다.

Related: 마이크로서비스, 인터페이스 분리
마이크로서비스

하나의 응용을 독립 배포 가능한 작은 서비스로 나누어 구성하는 아키텍처다. 서비스별 기술 선택과 확장이 자유롭지만 분산 트랜잭션과 운영 복잡성이 늘어난다.

Related: REST API, 지속적 통합