Skip to content

정처기(실기이론) 용어집 ​

문서에서 점선 밑줄이 있는 용어를 누르면 이곳의 해당 항목으로 온다. 다 읽었으면 아래 읽던 문서로 버튼으로 돌아간다.

용어 260개

ㄱ

가상 회선virtual circuit

보내기 전에 논리적 경로를 먼저 정해, 모든 패킷이 같은 길로 순서대로 가게 하는 패킷 교환 방식.

가시성visibility

클래스의 속성이나 동작에 어디서 접근할 수 있는지 나타내는 표시. + 공개, - 비공개, # 상속 허용, ~ 같은 묶음 안에서만이다.

가용성availability

허락받은 사람이 필요할 때 언제든 시스템과 정보를 쓸 수 있어야 한다는 보안 성질.

강제 접근 통제Mandatory Access Control

사용자와 자원의 보안 등급을 비교해 시스템이 접근을 결정하는 방식. 소유자라도 권한을 바꾸지 못한다. 약어 MAC은 네트워크의 MAC 주소와 다른 말이다.

객체 재사용 보호object reuse protection

반납된 메모리나 디스크에 남은 데이터를 다음 사용자가 보지 못하게 지우는 기능.

거리 벡터distance vector

라우터가 목적지별 거리 표를 이웃에게 주기적으로 넘겨 경로를 정하는 라우팅 방식. RIP가 대표적이다.

결정 표decision table

입력 조건의 조합과 그에 따라 나와야 할 결과를 행과 열로 정리한 표다. 조건 조합을 빠뜨리지 않고 테스트 케이스를 뽑을 때 쓴다.

결합도coupling

모듈과 모듈이 서로 얼마나 기대고 있는지의 정도. 약할수록 한쪽을 고쳐도 다른 쪽이 덜 흔들려 좋은 설계다.

경계값 분석boundary value analysis

입력 범위의 끝과 그 바로 바깥 값을 골라 시험하는 방법. 실수가 경계에서 자주 나기 때문이다.

경량 프로세스light weight process

스레드의 다른 이름. 프로세스의 자원을 나눠 써서 만들고 바꾸는 비용이 작다.

경로 벡터path vector

경로가 거쳐 간 네트워크 목록을 함께 담아 전달해, 같은 곳을 다시 도는 루프를 막는 라우팅 방식이다.

고장 허용성fault tolerance

일부가 고장 나도 시스템이 정해진 기능을 계속 해내는 능력.

공개키 암호public-key cryptography

누구에게나 알리는 공개키와 본인만 가진 개인키, 서로 다른 두 키를 쓰는 암호 방식. 키를 미리 나눌 필요가 없지만 느리다.

교차 조인cross join

조건 없이 두 테이블의 모든 행을 서로 짝지은 조인. 결과 행 수는 두 테이블 행 수의 곱이다.

구조 패턴structural pattern

클래스와 객체를 엮어 더 큰 구조를 만드는 방법을 다루는 GoF 디자인 패턴의 한 갈래.

기능 요구사항functional requirement

시스템이 무엇을 하는지에 대한 요구. 입력·출력·저장·계산처럼 제공해야 할 기능을 적는다.

기능 점수function point

코드 줄 수 대신 입력·출력·조회·파일처럼 사용자가 받는 기능의 양으로 소프트웨어 규모를 재는 방법. 줄여서 FP.

기밀성confidentiality

허락받은 사람만 정보를 볼 수 있어야 한다는 보안 성질. 전송 중 엿보여도 내용을 알 수 없게 하는 것도 포함한다.

기본 생성자default constructor

생성자를 하나도 적지 않은 클래스에 컴파일러가 넣어 주는, 매개변수 없는 생성자.

기본키primary key

후보키 가운데 대표로 고른 하나로, 테이블에서 행을 하나로 가려내는 데 쓴다. 비어 있거나 중복될 수 없다.

기수cardinality

릴레이션(표) 하나가 가진 튜플(행)의 개수.

기준선baseline

형상 관리에서 공식적으로 검토·합의해 확정한 기준 상태. 이후 변경은 절차를 거쳐서만 반영한다.

ㄴ

나선형 모형spiral model

계획 수립·위험 분석·개발 및 검증·고객 평가를 한 바퀴로 삼아 여러 바퀴 반복하며 소프트웨어를 점점 키워 가는 개발 모형. 매 바퀴 위험을 따지는 것이 특징이다.

내부 단편화internal fragmentation

할당한 칸보다 프로그램이 작아 칸 안쪽에 남아 버려지는 공간.

내부 조인inner join

두 테이블에서 조건이 맞는 행끼리만 이어 붙이는 조인. 짝이 없는 행은 결과에서 빠진다.

널 문자null character

C 문자열의 끝을 표시하는 값 0인 문자. 문자 배열 크기는 글자 수에 이 문자 하나를 더한 만큼 필요하다.

ㄷ

다중 버전 동시성 제어Multi-Version Concurrency Control

같은 데이터를 여러 버전으로 두어, 읽는 쪽이 쓰는 쪽을 기다리지 않고 자기 시점의 버전을 읽게 하는 기법이다.

다중도multiplicity

관계선 끝에 적어 상대 객체가 몇 개 연결되는지 나타내는 표기. 1..* 는 1개 이상이라는 뜻이다.

다형성polymorphism

같은 요청을 받아도 객체의 종류에 따라 서로 다르게 동작하는 성질.

단말 노드terminal node

트리에서 자식이 하나도 없는 노드. 잎 노드라고도 한다.

대체키alternate key

후보키 가운데 기본키로 뽑히지 않고 남은 키다.

대칭키 암호symmetric-key cryptography

암호화와 복호화에 같은 키를 쓰는 암호 방식. 빠르지만 상대와 키를 미리 안전하게 나눠 가져야 한다. 국내 시험은 개인키 암호라고도 부른다.

데이터 마이닝data mining

쌓인 데이터 속에서 눈에 잘 띄지 않는 규칙이나 관계를 찾아내는 분석 방법.

데이터 무결성 검사 도구data integrity checker

시스템 파일이 바뀌었는지 정기적으로 확인해 바뀌면 관리자에게 알려 주는 도구. Tripwire·AIDE 등이 있다.

데이터그램datagram

경로를 미리 정하지 않고 패킷마다 따로 길을 골라 보내는 방식, 또는 그렇게 보내는 패킷이다.

도메인domain

데이터베이스에서는 한 속성이 가질 수 있는 값의 범위(예: 학년 속성의 도메인은 1~4). 네트워크에서는 사람이 읽기 쉽게 붙인 주소 이름(예: example.com)을 뜻한다.

동적 바인딩dynamic binding

어떤 메서드를 실행할지 프로그램이 실행될 때 실제 객체를 보고 정하는 방식. 부모 타입 변수로 불러도 자식이 다시 정의한 메서드가 실행된다.

동적 할당dynamic allocation

프로그램이 실행되는 도중에 필요한 만큼 메모리를 빌려 쓰는 일. C에서는 malloc으로 빌리고 free로 돌려준다.

동치 분할equivalence partitioning

결과가 같게 나올 입력들을 한 묶음으로 보고, 묶음마다 대표값 하나씩만 시험하는 방법.

디스패치dispatch

준비 큐에서 차례가 된 프로세스에 CPU를 넘겨 실행을 시작시키는 일.

디자인 패턴design pattern

설계에서 자주 만나는 문제와 그 해법을 이름 붙여 정리한 것. 흔히 GoF의 23개를 가리킨다.

ㄹ

람다lambda

이름 없이 한 줄로 쓰는 작은 함수. 다른 함수에 계산 방법을 바로 넘길 때 쓴다.

럼바우 분석 기법Object-Modeling Technique

럼바우가 정리한 객체지향 분석 방법. 객체 모델링, 동적 모델링, 기능 모델링 순서로 시스템을 그린다.

로킹 단위locking granularity

한 번에 잠그는 대상의 크기. 클수록 관리는 쉽지만 동시에 처리할 수 있는 양이 줄어든다.

리스트 컴프리헨션list comprehension

반복과 조건을 대괄호 한 줄에 써서 새 리스트를 만드는 Python 문법.

리팩토링refactoring

프로그램이 하는 일은 그대로 두고, 코드의 내부 구조만 읽고 고치기 쉽게 다듬는 일.

리피터repeater

거리가 멀어져 약해진 신호를 다시 키워 보내는 1계층 장비.

릴레이션relation

관계형 데이터베이스에서 데이터를 담는 표. 행은 튜플, 열은 속성이라 부른다.

릴리즈 노트release notes

새 버전에서 바뀐 기능과 고친 오류를 사용자에게 알리는 문서.

링크 상태link state

라우터가 자기 링크 상태를 망 전체에 알려 각자 전체 지도로 최단 경로를 계산하는 라우팅 방식. OSPF가 대표적이다.

ㅁ

맵리듀스MapReduce

큰 데이터를 먼저 키별로 묶고(Map), 같은 키끼리 모아 결과를 줄이는(Reduce) 두 단계로 나눠 처리하는 방식.

멀티캐스트multicast

정해진 여러 장치에게만 데이터를 한 번에 보내는 방식이다. 받을 장치를 미리 그룹으로 묶어 둔다.

메시 네트워크mesh network

노드들이 그물처럼 얽혀 서로의 데이터를 대신 전달해 주는 망.

모듈화modularity

시스템의 기능을 작은 단위(모듈)로 나누는 일. 나눠 두면 고치기·다시 쓰기·관리하기가 쉬워진다.

무결성integrity

정보가 허락 없이 바뀌거나 훼손되지 않고 정확하게 유지되어야 한다는 성질. 데이터베이스에서는 규칙에 어긋난 값이 들어 있지 않은 상태를 뜻하기도 한다.

미들웨어middleware

운영체제와 응용 프로그램, 또는 클라이언트와 서버 사이에서 통신 같은 공통 기능을 대신 해 주는 소프트웨어.

ㅂ

반정규화denormalization

조회를 빠르게 하려고 나눠 둔 표를 일부러 합치거나 값을 중복해 두는 일.

버블 정렬bubble sort

이웃한 두 원소를 비교해 순서가 틀리면 바꾸는 일을 되풀이하는 정렬 방법. 한 바퀴마다 가장 큰 값이 맨 뒤로 간다.

벨레이디의 모순Bélády's anomaly

FIFO 교체에서 메모리 칸을 늘렸는데 페이지 부재가 오히려 늘어나는 현상.

병합 정렬merge sort

배열을 반으로 나눠 각각 정렬한 뒤 두 결과를 차례대로 합치는 정렬 방법.

복호화decryption

암호화된 값을 원래 값으로 되돌리는 것.

봇넷botnet

악성코드에 감염되어 원격 조종을 받는 컴퓨터들이 네트워크로 묶인 집단. 주로 대량 공격이나 스팸 발송에 쓰인다.

분할 정복divide and conquer

큰 문제를 같은 모양의 작은 문제로 쪼개 풀고, 그 답을 합쳐 전체 답을 얻는 방법.

브로드캐스트 주소broadcast address

같은 네트워크의 모든 장치에게 한 번에 보낼 때 쓰는 주소. 호스트 번호 비트가 모두 1이다.

브리지bridge

네트워크에서는 두 LAN을 잇고 장치 고유 주소를 보고 필요한 쪽으로만 데이터를 넘기는 2계층 장비. 디자인 패턴에서는 추상 부분과 구현 부분을 나눠 따로 바꿀 수 있게 하는 구조 패턴.

블랙박스 테스트black-box testing

내부 코드를 보지 않고 명세만 보고 입력을 넣어 출력이 맞는지 확인하는 방법. 기능 테스트라고도 한다.

블록 암호block cipher

평문을 정해진 크기의 조각으로 잘라 조각 단위로 암호화하는 방식.

블록체인blockchain

거래 기록 묶음을 사슬처럼 이어 여러 참여자가 똑같은 사본을 나눠 가지는 기술. 한 곳만 고치면 바로 드러나 위조가 어렵다.

비기능 요구사항non-functional requirement

기능을 얼마나 잘, 어떤 제약 아래 하는지에 대한 요구. 성능·보안·가용성 같은 품질과 제약을 적는다.

비선형 구조non-linear structure

한 데이터가 여러 데이터와 이어져 계층이나 망을 이루는 자료구조. 트리와 그래프가 있다.

빅-O 표기법big-O notation

입력 크기 n이 커질 때 실행 단계 수가 늘어나는 빠르기를 가장 큰 항만 남겨 나타내는 표기.

ㅅ

사설 IP 주소private IP address

내부망 안에서만 쓰도록 떼어 둔 주소 대역. 10.x, 172.16~31.x, 192.168.x가 있다.

사회공학social engineering

기술 대신 사람 사이의 신뢰와 심리를 이용해 속여서 비밀번호 같은 정보를 얻어 내는 수법.

삽입 정렬insertion sort

앞쪽의 정렬된 부분에 다음 원소를 하나씩 알맞은 자리에 끼워 넣어 정렬하는 방법.

생성 패턴creational pattern

객체를 만드는 방법을 정해 두어, 어떤 객체를 어떻게 만드는지 코드가 직접 알지 않게 하는 GoF 디자인 패턴의 한 갈래.

서브네팅subnetting

네트워크 하나를 호스트 번호 비트 일부를 빌려 여러 작은 네트워크로 나누는 일.

서브넷 마스크subnet mask

IP 주소 중 어디까지가 네트워크 번호인지 1로 표시한 32비트 값. 255.255.255.0이면 앞 24비트가 네트워크 부분이다.

서브쿼리subquery

다른 SQL 문 안에 괄호로 넣은 SELECT 문. 바깥 문장이 그 결과를 값이나 목록으로 쓴다.

서비스 거부 공격Denial of Service

서버의 자원이나 통신 대역을 바닥내 정상 사용자가 서비스를 쓰지 못하게 하는 공격. 약어는 DoS이고, 여러 대가 함께 하면 DDoS라 한다.

선입선출FIFO (First In First Out)

가장 먼저 넣은 데이터를 가장 먼저 꺼내는 규칙. 줄을 선 순서대로 처리하는 것과 같다.

선택 정렬selection sort

남은 원소 중 가장 작은 값을 찾아 맨 앞 원소와 바꾸는 일을 되풀이하는 정렬 방법.

선형 구조linear structure

데이터가 한 줄로 늘어서 앞뒤가 하나씩 정해진 자료구조. 배열·리스트·스택·큐·덱이 있다.

세션 하이재킹session hijacking

정상 사용자가 서버와 맺은 연결 정보를 가로채 그 사용자인 척 접속하는 공격.

셸shell

사용자가 입력한 명령을 해석해 운영체제 핵심부에 전달하는 명령어 해석기. 셸 정렬의 '셸'은 이 뜻이 아니라 발명자 이름(Donald Shell)이다.

소프트웨어 생명 주기software life cycle

소프트웨어를 기획해서 만들고, 운영하다가 폐기하기까지의 전체 흐름. 보통 요구사항 분석·설계·구현·테스트·유지보수 단계로 나눈다.

순차 다이어그램sequence diagram

객체들이 주고받는 메시지를 위에서 아래로 시간 순서대로 그린 UML 그림.

순환 복잡도cyclomatic complexity

프로그램 흐름 그림에서 서로 겹치지 않는 경로의 개수. 간선 수 − 노드 수 + 2로 구한다.

슈퍼키superkey

행을 유일하게 구별할 수 있는 열의 모음이다. 없어도 되는 열이 섞여 있을 수 있다.

스래싱thrashing

페이지를 바꿔 넣는 일이 너무 잦아 실제 작업보다 교체에 시간을 더 쓰는 현상.

스크럼Scrum

한 달 이하의 고정된 기간인 스프린트를 반복하며 제품을 조금씩 완성하는 애자일 프레임워크.

스키마schema

데이터베이스에 어떤 데이터가 어떤 구조와 규칙으로 들어가는지 적어 둔 설계 명세.

스택 가드stack guard

함수의 복귀 주소 앞에 특정 값을 넣어 두고, 돌아가기 직전에 그 값이 바뀌었으면 프로그램을 멈춰 버퍼가 넘치는 공격을 막는 기술.

스택 오버플로stack overflow

함수 호출 정보를 쌓아 두는 메모리 공간이 가득 차서 프로그램이 멈추는 일이다. 끝나지 않는 재귀 호출이 대표적인 원인이다.

스텁stub

아직 없는 하위 모듈 대신 정해진 값만 돌려주는 임시 모듈. 하향식 통합 테스트에서 쓴다.

스트림 암호stream cipher

평문과 같은 길이의 난수 열을 만들어 비트나 바이트 단위로 섞어 암호화하는 방식.

스풀링spooling

느린 장치와 주고받을 데이터를 디스크 대기열에 먼저 적어 두고, 장치 속도에 맞춰 차례로 처리하는 방식.

스프린트sprint

스크럼에서 계획·개발·검토·회고를 한 번 도는 한 달 이하의 고정된 개발 기간.

슬라이딩 윈도우sliding window

확인 응답을 받지 않아도 정해 둔 개수만큼 연달아 보내고, 응답이 오면 보낼 범위를 앞으로 밀어 가는 흐름 제어 방식.

슬라이싱slicing

리스트나 문자열에서 시작 번호부터 끝 번호 바로 앞까지를 잘라 새 값을 만드는 문법. a[1:4]처럼 쓴다.

시스템 카탈로그system catalog

DBMS가 스스로 관리하는, 테이블·뷰·인덱스·사용자·권한 같은 모든 객체의 정의를 담은 데이터베이스다. 사용자는 조회만 하고 갱신은 DBMS가 한다.

신뢰 경로trusted path

사용자와 로그인 같은 보안 기능 사이에 가짜 프로그램이 끼어들 수 없게 만든 통로.

실체화 관계realization

클래스가 인터페이스가 약속한 기능을 실제로 구현하는 관계. 점선과 빈 삼각형으로 그린다.

ㅇ

아키텍처 패턴architecture pattern

시스템 전체를 어떤 덩어리로 나누고 어떻게 소통시킬지 정한 검증된 틀. 레이어, 파이프-필터, MVC 등이 있다.

안전 상태safe state

모든 프로세스가 차례로 필요한 자원을 받아 끝낼 수 있는 순서가 하나라도 있는 상태.

애니캐스트anycast

같은 주소를 가진 여러 장치 중 경로상 가장 가까운 한 곳에만 전달하는 방식.

애자일agile

계획을 한 번에 다 세우지 않고, 짧은 주기로 동작하는 결과물을 만들어 보여 주며 요구 변화에 맞춰 가는 개발 방식의 총칭.

액터actor

유스케이스 다이어그램에서 시스템 밖에서 시스템과 주고받는 사람이나 외부 시스템.

얕은 복사shallow copy

바깥 리스트만 새로 만들고 안에 든 리스트는 원본과 함께 쓰는 복사.

에이징aging

오래 기다린 프로세스의 우선순위를 조금씩 올려 끝없이 밀리지 않게 하는 기법.

역참조dereference

포인터에 담긴 주소를 따라가 그 자리에 있는 값을 꺼내거나 바꾸는 일. C에서는 * 기호로 한다.

역할 기반 접근 통제Role-Based Access Control

권한을 사람이 아닌 역할에 묶고 사람에게 역할을 주는 방식. 약어는 RBAC.

연관 관계association

두 클래스가 서로 관련되어 있음을 실선으로 나타내는 가장 일반적인 관계. 한쪽만 상대를 알면 그쪽으로 화살표를 그린다.

연산자 우선순위operator precedence

한 식에 연산자가 여러 개 있을 때 어느 것을 먼저 계산할지 정한 순서. 곱셈이 덧셈보다 먼저인 것이 대표적이다.

예외 처리exception handling

실행 중 생긴 오류 상황을 잡아서 프로그램이 바로 멈추지 않고 정해 둔 대응을 하게 하는 방법. Java에서는 try·catch·finally로 쓴다.

오버라이딩overriding

부모 클래스에 있는 메서드를 자식 클래스가 이름과 매개변수를 똑같이 두고 내용만 다시 정의하는 것.

오버로딩overloading

한 클래스 안에서 이름은 같고 매개변수의 개수나 자료형이 다른 메서드를 여러 개 두는 것.

옥텟octet

IP 주소를 8비트씩 나눈 한 칸이다. 192.168.10.77에서 점으로 나뉜 네 숫자가 각각 옥텟이다.

완전 이진 트리complete binary tree

마지막 층을 뺀 모든 층이 꽉 차 있고, 마지막 층은 왼쪽부터 빈틈없이 채운 이진 트리.

외래키foreign key

다른 표의 기본키 값을 가리켜 두 표를 이어 주는 속성.

외부 단편화external fragmentation

빈 공간을 합하면 충분한데 여기저기 흩어져 있어 한 덩어리로는 쓸 수 없는 상태.

외부 조인outer join

짝이 없는 행도 결과에 남기고 빈 쪽 열을 NULL로 채우는 조인. 어느 쪽을 남기느냐에 따라 왼쪽·오른쪽·완전으로 나뉜다.

워크스루walkthrough

검토할 문서를 미리 나눠 주고 짧은 회의에서 결함을 찾는 비공식 검토.

워킹 셋working set

최근 일정 구간 동안 프로세스가 실제로 참조한 페이지들의 모임. 이만큼을 메모리에 두면 페이지 부재가 줄어든다.

유니캐스트unicast

장치 하나에게만 데이터를 보내는 방식이다.

유스케이스 다이어그램use case diagram

사용자와 외부 시스템이 이 시스템으로 할 수 있는 기능을 사용자 관점에서 그린 UML 그림.

은행원 알고리즘banker's algorithm

자원을 줄 때마다 모든 프로세스가 끝날 수 있는 순서가 남는지 검사해 위험한 할당을 피하는 방법.

응집도cohesion

한 모듈 안의 요소들이 얼마나 한 목적으로 뭉쳐 있는지의 정도. 강할수록 모듈이 한 가지 일만 해서 좋은 설계다.

의존 관계dependency

소유하지 않고 필요할 때 잠깐 쓰는 관계. 쓰는 쪽에서 쓰이는 쪽으로 점선 화살표를 그린다.

이산대수discrete logarithm

어떤 수를 몇 번 곱해야 원하는 값이 되는지 알아내기 매우 어려운 수학 문제. 공개키 암호 여러 개가 이 어려움에 기댄다.

이진 검색binary search

정렬된 배열의 가운데 값과 비교해 찾는 범위를 절반씩 줄여 가는 검색 방법.

이진 트리binary tree

모든 노드가 자식을 최대 두 개, 왼쪽과 오른쪽으로만 가지는 트리.

인수 테스트acceptance test

사용자가 요구대로 만들어졌는지 확인하고 받아들일지 정하는 마지막 테스트.

인스턴스 변수instance variable

객체마다 따로 갖는 변수다. 같은 클래스로 만든 객체라도 값이 서로 다를 수 있다.

인스펙션inspection

작성자를 뺀 전문가들이 정해진 절차에 따라 문서를 꼼꼼히 읽고 결함을 찾는 가장 형식적인 검토.

인월man-month

한 사람이 한 달 동안 하는 일의 양. 소프트웨어 개발 노력을 재는 단위로 MM이라고 쓴다.

일반화 관계generalization

더 일반적인 것과 더 구체적인 것 사이의 관계. 코드의 상속에 해당하고 하위에서 상위로 빈 삼각형 화살표를 그린다.

임계 경로critical path

작업 흐름에서 시작부터 끝까지 가장 오래 걸리는 경로. 이 길이가 프로젝트를 끝내는 데 필요한 최소 기간이다.

임의 접근 통제Discretionary Access Control

자원의 소유자가 사용자의 신원에 따라 접근 권한을 정하는 방식. 약어는 DAC.

ㅈ

자료 흐름도data flow diagram

데이터가 어디서 와서 어떻게 바뀌어 어디로 가는지를 프로세스·자료 흐름·자료 저장소·단말 네 기호로 그린 그림. 줄여서 DFD.

자연 조인natural join

두 테이블에서 이름이 같은 열의 값이 같은 행끼리 자동으로 잇고, 그 열을 결과에 한 번만 보여 주는 조인.

자율 시스템Autonomous System

한 기관이 하나의 정책으로 관리하는 라우터와 네트워크의 묶음. 줄여서 AS라 한다.

전위 순회preorder traversal

트리를 근 노드, 왼쪽 서브트리, 오른쪽 서브트리 순서로 방문하는 방법.

전위 표기법prefix notation

연산자를 두 피연산자 앞에 쓰는 수식 표기.

접근 제어자access modifier

클래스의 필드나 메서드를 어디서 쓸 수 있는지 정하는 예약어. Java에는 public, protected, default, private가 있다.

정규형normal form

테이블이 지켜야 할 설계 기준의 단계다. 1NF, 2NF처럼 숫자가 클수록 기준이 엄격하다.

정보 은닉information hiding

모듈 안의 절차와 자료를 감춰 다른 모듈이 직접 보거나 바꾸지 못하게 하는 원칙. 내부를 바꿔도 바깥에 영향이 덜 간다.

제어 흐름 그래프control flow graph

프로그램의 문장과 분기를 동그라미와 화살표로 그려 실행 순서를 나타낸 그림이다. 이 그림에서 독립적인 경로의 수를 세어 순환 복잡도를 구한다.

제어의 역흐름inversion of control

내 코드가 흐름을 이끄는 대신, 프레임워크가 흐름을 쥐고 필요할 때 내 코드를 불러 주는 구조. 줄여서 IoC.

종단 간end-to-end

중간 장비가 아니라 통신하는 양 끝 장치 사이를 뜻한다.

중위 순회inorder traversal

트리를 왼쪽 서브트리, 근 노드, 오른쪽 서브트리 순서로 방문하는 방법.

즉시 갱신immediate update

작업이 끝나기 전이라도 바뀐 값을 바로 데이터베이스에 쓰는 회복 방식. 되돌리기와 다시 쓰기가 모두 필요하다.

증분increment

스크럼에서 한 스프린트 동안 완성해 바로 쓸 수 있게 된 결과물.

지속적 통합continuous integration

여러 사람이 고친 코드를 자주 합치고 그때마다 자동으로 빌드와 테스트를 돌리는 개발 방식.

지연 갱신deferred update

작업이 확정될 때까지 데이터베이스에 쓰기를 미루는 회복 방식. 되돌릴 일이 없어 다시 쓰기만 한다.

집계 함수aggregate function

여러 행의 값을 하나로 줄이는 함수. 개수·합계·평균·최댓값·최솟값을 구하는 COUNT·SUM·AVG·MAX·MIN이 있다.

집합 관계aggregation

전체와 부분의 관계 중 부분이 전체 없이도 따로 존재할 수 있는 관계. 전체 쪽에 빈 마름모를 그린다.

ㅊ

차수degree

릴레이션(표) 하나가 가진 속성(열)의 개수. 트리에서는 한 노드가 가진 자식의 수를 뜻한다.

참조 모니터reference monitor

주체가 객체에 접근할 때마다 빠짐없이 가로채 허용 여부를 판단하는 운영체제의 핵심 장치.

추상 클래스abstract class

본문 없는 메서드를 가질 수 있어 직접 객체를 만들 수 없는 클래스. 자식 클래스가 빠진 메서드를 채워야 쓸 수 있다.

ㅋ

캡슐화encapsulation

객체지향에서는 데이터와 그 데이터를 다루는 연산을 하나로 묶고, 바깥에 공개할 부분만 남기고 감추는 것. 네트워크에서는 위 계층의 데이터에 계층마다 헤더를 덧붙여 감싸 내려보내는 것.

커널kernel

운영체제의 핵심 부분. 부팅 뒤 늘 메모리에 머물며 프로세스·메모리·장치를 관리한다.

커버리지coverage

테스트가 코드의 문장·분기·조건을 얼마나 거쳤는지 나타내는 비율.

컴포넌트 기반 개발component based development

이미 만들어진 독립 부품인 컴포넌트를 조합해 새 프로그램을 만드는 개발 방법. 줄여서 CBD.

퀵 정렬quick sort

기준값을 골라 그보다 작은 값은 왼쪽, 큰 값은 오른쪽으로 나누는 일을 되풀이하는 정렬 방법.

클라우드 컴퓨팅cloud computing

서버·저장 공간·프로그램을 인터넷으로 필요한 만큼 빌려 쓰고 반납하는 방식.

클리어링 하우스clearing house

DRM에서 라이선스와 복호화 키를 내주고 이용료를 정산하는 곳.

ㅌ

타임스탬프timestamp

트랜잭션이 시작할 때 붙이는 고유한 시각 표식이다. 이 순서대로 작업하면 충돌을 가릴 수 있다.

터널링tunneling

한 프로토콜의 패킷을 다른 프로토콜 패킷 안에 통째로 넣어 보내는 기술.

테스트 드라이버test driver

시험할 하위 모듈을 대신 호출하고 결과를 받아 주는 임시 상위 모듈. 상향식 통합 테스트에서 쓴다.

테스트 오라클test oracle

테스트 결과가 맞는지 판정할 기준을 주는 장치나 방법.

테스트 주도 개발test-driven development

실제 코드보다 테스트를 먼저 작성하고, 그 테스트를 통과하는 코드를 짜는 개발 방식. 줄여서 TDD라고 한다.

테스트 케이스test case

무엇을 넣고, 어떤 상태에서 실행하며, 무엇이 나와야 맞는지를 묶어 적은 시험 단위.

토폴로지topology

장치와 회선을 어떤 모양으로 연결했는지 나타낸 네트워크 배치 형태. 성형·버스형·링형·계층형·망형이 있다.

튜플tuple

데이터베이스에서는 릴레이션의 한 행(파일의 레코드 하나). 파이썬에서는 한 번 만들면 값을 바꿀 수 없는, 순서가 있는 값 묶음을 뜻한다.

트리거trigger

테이블에 행이 들어오거나 바뀌거나 지워질 때 자동으로 실행되도록 데이터베이스에 저장해 둔 SQL.

ㅍ

파이프-필터 패턴pipe-filter pattern

데이터를 처리하는 단계를 필터로 나누고, 앞 필터의 결과를 파이프로 다음 필터에 넘기는 구조. UNIX 셸 명령 잇기가 대표 예다.

패리티parity

데이터로 계산해 함께 저장하는 검사용 값. 디스크 하나가 사라져도 남은 데이터와 이 값으로 내용을 다시 계산할 수 있다.

팬아웃fan-out

구조도에서 어떤 모듈이 호출하는 하위 모듈의 수. 그 모듈에서 나가는 화살표 수를 센다.

팬인fan-in

구조도에서 어떤 모듈을 호출하는 상위 모듈의 수. 그 모듈로 들어오는 화살표 수를 센다.

페이지 부재page fault

실행에 필요한 페이지가 주기억장치에 없어 보조기억장치에서 가져와야 하는 상황.

페이지 프레임page frame

주기억장치를 페이지와 같은 크기로 나눈 한 칸. 페이지 하나가 여기에 올라간다.

포인터pointer

값 대신 그 값이 저장된 메모리 주소를 담는 변수. 주소를 따라가 값을 읽거나 바꿀 수 있다.

포화 이진 트리perfect binary tree

모든 층이 빈자리 없이 꽉 찬 이진 트리. 깊이가 k면 노드가 정확히 2의 k제곱 빼기 1개다.

폭포수 모형waterfall model

요구사항 분석부터 유지보수까지 단계를 차례대로 한 번씩만 밟는 개발 모형. 앞 단계가 끝나 승인받아야 다음 단계로 넘어가고, 앞 단계로 되돌아가지 않는 것을 전제로 한다.

폴스루fall-through

switch 문에서 break가 없어, 맞는 case를 실행한 뒤 아래 case들까지 이어서 실행되는 현상.

프로토타입 모형prototype model

실제 제품을 만들기 전에 시제품을 먼저 만들어 사용자에게 보여 주고, 그 반응으로 요구사항을 확정해 가는 개발 모형.

프리픽스prefix

주소 앞쪽에서 네트워크를 나타내는 부분의 비트 수다. /26처럼 슬래시 뒤 숫자로 적는다.

피코넷piconet

블루투스 기기들이 이루는 작은 무선망. 마스터 1대가 활성 기기를 최대 7대까지 거느린다.

ㅎ

하둡Hadoop

아주 큰 데이터를 여러 대의 컴퓨터에 나눠 저장하고 함께 처리하게 해 주는 오픈 소스 도구.

함수 포인터function pointer

함수가 저장된 곳의 주소를 담는 변수. 이 변수로 함수를 대신 부를 수 있다.

함수적 종속functional dependency

어떤 속성 값을 알면 다른 속성 값이 하나로 정해지는 관계. X → Y로 쓴다.

합성 관계composition

전체와 부분의 관계 중 전체가 사라지면 부분도 함께 사라지는 관계. 전체 쪽에 채운 마름모를 그린다.

해시 충돌hash collision

서로 다른 두 입력이 같은 해시 값을 내는 것. 이런 입력을 찾아낼 수 있으면 위조 파일도 원본과 같은 값을 내 변조를 확인할 수 없다.

해시 함수hash function

길이가 제각각인 입력을 고정 길이 값으로 바꾸는 함수. 결과에서 원래 입력을 되돌릴 수 없어 변조 확인과 비밀번호 저장에 쓴다.

행위 패턴behavioral pattern

객체들이 책임을 어떻게 나누고 서로 어떻게 메시지를 주고받을지를 다루는 GoF 디자인 패턴의 한 갈래.

향상된 forenhanced for

Java에서 배열이나 목록의 원소를 앞에서부터 하나씩 꺼내 반복하는 for 문. 변수에는 번호가 아니라 원소 값이 들어간다.

헝가리안 표기법Hungarian notation

변수 이름 앞에 자료형이나 용도를 뜻하는 짧은 접두어를 붙이는 이름 짓기 규칙. 정수 변수에 i를 붙여 iCount로 쓰는 식이다.

형상 관리software configuration management

개발 중 생기는 소스와 문서의 변경을 기록하고 정해진 절차로만 반영되게 관리하는 활동.

화이트박스 테스트white-box testing

프로그램 내부 코드 구조와 논리 흐름을 보고 테스트 케이스를 만드는 방법.

환경 변수environment variable

프로그램이 실행될 때 넘겨받는 이름과 값의 쌍. 실행 경로처럼 프로그램 동작에 영향을 주는 설정을 담는다.

회귀 테스트regression test

코드를 고친 뒤 이미 통과했던 부분이 망가지지 않았는지 다시 하는 테스트.

회선 교환circuit switching

통신 전에 전용 경로를 잡아 두고 끝날 때까지 혼자 쓰는 전달 방식. 옛 전화망이 대표적이다.

후보키candidate key

행을 하나로 구별할 수 있으면서, 속성을 하나라도 빼면 구별이 안 되는 최소한의 속성 묶음.

후위 순회postorder traversal

트리를 왼쪽 서브트리, 오른쪽 서브트리, 근 노드 순서로 방문하는 방법. 근 노드가 맨 마지막에 나온다.

후위 표기법postfix notation

연산자를 두 피연산자 뒤에 쓰는 수식 표기. 괄호 없이도 계산 순서가 하나로 정해진다.

후입선출LIFO (Last In First Out)

가장 나중에 넣은 데이터를 가장 먼저 꺼내는 규칙. 접시를 쌓고 맨 위부터 꺼내는 것과 같다.

A

AJAXAsynchronous JavaScript and XML · 비동기 자바스크립트와 XML

화면 전체를 다시 불러오지 않고 필요한 데이터만 서버와 주고받아 일부만 바꾸는 웹 기술.

ARQAutomatic Repeat reQuest · 자동 반복 요청

받는 쪽이 오류를 발견하면 다시 보내 달라고 요청해 오류를 고치는 방식.

C

CASEComputer Aided Software Engineering · 컴퓨터 지원 소프트웨어 공학

분석·설계·구현·테스트 같은 개발 과정의 일부나 전체를 전용 도구로 자동화하는 것.

CIDRClassless Inter-Domain Routing · 클래스 없는 도메인 간 라우팅

클래스와 상관없이 네트워크 경계를 정하고, 그 비트 수를 /24처럼 주소 뒤에 붙여 쓰는 방식.

CMMICapability Maturity Model Integration · 능력 성숙도 통합 모델

개발 조직의 업무 능력이 얼마나 성숙했는지 초기·관리·정의·정량적 관리·최적화 다섯 단계로 평가하는 모델.

COCOMOCOnstructive COst MOdel · 구성적 비용 모형

보엠이 만든 비용 산정 모형. 코드 규모를 소프트웨어 유형별 공식에 넣어 필요한 노력과 기간을 계산한다.

CRUD 분석Create Read Update Delete analysis · 생성 읽기 갱신 삭제 분석

프로세스와 테이블 사이에 생성·읽기·갱신·삭제 중 무엇을 하는지 표로 적어 트랜잭션이 몰리는 테이블이나 설계 누락을 찾는 기법이다.

CSMA/CACarrier Sense Multiple Access with Collision Avoidance · 충돌 회피 반송파 감지 다중 접속

보내기 전에 임의 시간을 기다려 충돌을 미리 피하는 무선 LAN 방식.

CSMA/CDCarrier Sense Multiple Access with Collision Detection · 충돌 감지 반송파 감지 다중 접속

회선이 비었는지 듣고 보낸 뒤 충돌을 알아차리면 잠시 기다렸다 다시 보내는 유선 이더넷 방식.

D

DCLData Control Language · 데이터 제어어

누가 어떤 데이터를 다룰 수 있는지 정하는 SQL. GRANT·REVOKE가 있고, 국내 시험은 COMMIT·ROLLBACK도 여기에 넣는다.

DDLData Definition Language · 데이터 정의어

테이블·뷰·인덱스 같은 데이터베이스의 구조를 만들고 바꾸고 지우는 SQL. CREATE·ALTER·DROP이 여기에 속한다.

DHCPDynamic Host Configuration Protocol · 동적 호스트 구성 프로토콜

네트워크에 새로 붙은 장치에게 IP 주소 같은 설정을 자동으로 나눠 주는 규약이다.

DMLData Manipulation Language · 데이터 조작어

테이블 안의 행을 조회하고 넣고 고치고 지우는 SQL. SELECT·INSERT·UPDATE·DELETE가 여기에 속한다.

DRMDigital Rights Management · 디지털 저작권 관리

디지털 콘텐츠를 암호화하고 사용 권한을 관리해 허락된 사람만 쓰게 하는 기술.

E

EAIEnterprise Application Integration · 기업 애플리케이션 통합

회사 안의 여러 프로그램이 서로 데이터를 주고받도록 이어 주는 방법과 솔루션.

ESBEnterprise Service Bus · 엔터프라이즈 서비스 버스

여러 프로그램을 하나의 버스처럼 생긴 통로로 느슨하게 잇고, 메시지 변환과 전달을 한곳에서 처리하는 통합 기반.

F

FLSMFixed Length Subnet Mask · 고정 길이 서브넷 마스크

네트워크를 모두 같은 크기의 작은 네트워크로 나누는 방식.

G

GoFGang of Four · 4인방

1994년 디자인 패턴 23개를 정리한 책을 쓴 저자 네 명을 부르는 별명. 그 23개 패턴을 GoF 패턴이라 한다.

H

HIPOHierarchy plus Input-Process-Output · 계층 입력 처리 출력

기능을 위에서 아래로 계층 구조로 나누고 각 기능의 입력·처리·출력을 적는 문서화 기법.

HRNHighest Response-ratio Next · 응답률 우선

(대기 시간 + 실행 시간) ÷ 실행 시간이 큰 프로세스부터 처리하는 비선점 스케줄링.

I

ICMPInternet Control Message Protocol · 인터넷 제어 메시지 프로토콜

네트워크 기기가 상대가 살아 있는지 확인하거나 오류를 알릴 때 쓰는 통신 규칙.

ISO/IEC 25010

ISO/IEC 9126을 대신하는 현재의 소프트웨어 품질 표준. 2011년판은 8가지, 2023년판은 9가지 품질 특성을 둔다.

ISO/IEC 9126

소프트웨어 제품 품질을 기능성·신뢰성·사용성·효율성·유지 보수성·이식성 여섯 특성으로 나눈 옛 국제 표준. 지금은 ISO/IEC 25010으로 바뀌었다.

L

L2TPLayer 2 Tunneling Protocol · 2계층 터널링 프로토콜

L2F와 PPTP를 합쳐 만든 가상 사설망용 터널링 프로토콜. 스스로 암호화하지 않아 IPsec과 함께 쓴다.

LODLinked Open Data · 연결된 공개 데이터

누구나 쓸 수 있게 공개하고 URI 링크로 서로 이은 데이터.

N

N-S 차트Nassi-Shneiderman chart

상자 안에 상자를 넣는 방식으로 처리 순서를 그리는 순서도. 화살표와 GOTO 없이 순차·선택·반복만으로 나타낸다.

NATNetwork Address Translation · 네트워크 주소 변환

내부망의 사설 주소와 외부의 공인 주소를 서로 바꿔 주는 기술. 공유기가 대표적으로 쓴다.

NUINatural User Interface · 자연스러운 사용자 인터페이스

터치 제스처·음성·몸동작처럼 따로 배우지 않아도 되는 자연스러운 행동으로 기기를 다루는 방식.

O

OFDMOrthogonal Frequency Division Multiplexing · 직교 주파수 분할 다중화

여러 좁은 주파수에 데이터를 나눠 동시에 싣는 변조 방식.

OMTObject Modeling Technique · 객체 모델링 기법

럼바우가 만든 객체지향 분석 방법으로, 객체·동적·기능 모델로 나눠 그린다.

OSI 참조 모델OSI reference model

통신 기능을 물리부터 응용까지 7개 계층으로 나눠 정리한 국제 표준 설계도.

P

PATPort Address Translation · 포트 주소 변환

공인 주소 하나를 포트 번호로 나눠 여러 장치가 함께 쓰게 하는 주소 변환 방식. NAPT라고도 한다.

PDUProtocol Data Unit · 프로토콜 데이터 단위

각 계층이 주고받는 데이터 덩어리의 이름. 계층마다 비트·프레임·패킷·세그먼트로 부른다.

R

RAIDRedundant Array of Independent Disks · 복수 디스크 배열

여러 디스크를 하나처럼 묶어 속도를 높이거나 고장에 대비하는 기술. 묶는 방식에 따라 0·1·5·6 같은 레벨로 나눈다.

RARPReverse Address Resolution Protocol · 역순 주소 결정 프로토콜

장치 고유의 하드웨어 주소로 자기 IP 주소를 알아내는 옛 프로토콜. 지금은 DHCP가 대신한다.

RFCRequest for Comments · 인터넷 표준 문서

인터넷에서 쓰는 규격과 약속을 번호를 붙여 공개한 문서다. 예를 들어 RFC 1918은 사설 주소 범위를 정한 문서다.

S

SDDCSoftware-Defined Data Center · 소프트웨어 정의 데이터 센터

데이터 센터 자원을 모두 가상화해 소프트웨어로 관리하는 방식.

SOAPSimple Object Access Protocol

XML로 만든 메시지를 주로 HTTP로 주고받는 통신 규약.

SOLIDSRP, OCP, LSP, ISP, DIP · 객체지향 설계 5원칙

단일 책임·개방-폐쇄·리스코프 치환·인터페이스 분리·의존 역전 원칙의 첫 글자를 모은 말. 변경에 강한 객체지향 설계의 기준이다.

SPICESoftware Process Improvement and Capability dEtermination · 소프트웨어 프로세스 개선 및 능력 결정

소프트웨어 개발 과정을 평가하고 개선하기 위한 국제 표준. 번호는 ISO/IEC 15504이며 지금은 ISO/IEC 33000 계열로 바뀌었다.

SQL 삽입SQL injection

사용자 입력이 SQL 문의 일부로 해석되어 의도하지 않은 쿼리가 실행되는 보안 약점. 입력을 값으로만 끼워 넣는 매개변수 바인딩으로 막는다.

SRTShortest Remaining Time · 남은 시간 최소 우선

새 프로세스가 올 때마다 남은 실행 시간이 가장 짧은 쪽에 CPU를 주는 선점 스케줄링.

T

TCBTrusted Computing Base · 신뢰 컴퓨팅 기반

시스템에서 보안 정책을 실제로 집행하는 하드웨어·소프트웨어 전체.

TCPTransmission Control Protocol · 전송 제어 프로토콜

데이터를 빠짐없이 순서대로 전달하려고 먼저 연결을 맺는 통신 규칙.

U

UDDIUniversal Description, Discovery and Integration

웹 서비스 정보를 등록해 두고 필요한 사람이 찾아 쓰게 하는 저장소.

umask

파일이나 디렉터리를 새로 만들 때 빼 버릴 권한을 정하는 값. 022이면 새 파일은 644가 된다.

UMLUnified Modeling Language · 통합 모델링 언어

소프트웨어의 구조와 동작을 정해진 기호로 그리는 표준 표기법.

USNUbiquitous Sensor Network · 유비쿼터스 센서 네트워크

곳곳의 센서가 모은 정보를 무선으로 보내는 망.

UXUser Experience · 사용자 경험

사용자가 서비스를 쓰는 동안 느끼고 생각하게 되는 경험 전체.

V

VLSMVariable Length Subnet Mask · 가변 길이 서브넷 마스크

필요한 장치 수에 맞춰 작은 네트워크마다 크기를 다르게 나누는 방식. 큰 것부터 배정한다.

VPNVirtual Private Network · 가상 사설망

인터넷 같은 공용 통신망 위에 암호화된 통로를 만들어 전용 회선처럼 통신하게 하는 기술.

W

WSDLWeb Services Description Language · 웹 서비스 기술 언어

웹 서비스가 어떤 기능을 어떻게 부르는지 XML로 적은 문서 형식.

X

XPeXtreme Programming · 익스트림 프로그래밍

켄트 벡이 정리한 애자일 방법론. 고객 참여, 짧은 릴리스, 테스트 먼저 쓰기 같은 좋은 습관을 아주 자주 실천한다.

0-9

2단계 로킹 규약two-phase locking protocol

잠금을 얻기만 하는 단계와 풀기만 하는 단계를 나눠, 한 번 풀면 다시 얻지 못하게 하는 규칙.

마지막 갱신: