data integrity 데이터 무결성
데이터가 전송, 저장되고 처리되는 모든 과정에서 변경되거나 손상되지 않고 완전성, 정확성, 일관성을 유지함을 보장하는 특성. 데이터 무결성은 데이터를 저장, 처리, 전송, 검색하는 모든 시스템에서 중요한 특성으로 특히 데이터베이스 시스템(database system)에서는 필수적인 기능 요소다.
데이터베이스 시스템에서는 무결성 제약 조건(integrity constraint)을 부여하여 데이터에 대한 결손과 부정합이 없음을 보증한다. 또한 하드웨어적인 오류로 인한 데이터 손실 또는 변경을 막기 위해서 저장 장치 보호, 전원 장치 보호, 오류 보정 메모리 또는 칩 등이 활용되기도 한다.
또한, 보안 분야에서는 악의적인 공격으로 시스템 내부에 악성코드가 설치되거나 예상치 못한 오류 등으로 데이터가 의도하지 않게 변경되면 시스템 오작동 등의 피해가 발생하기 때문에 정보보안 분야에서도 기밀성(confidentiality) 및 가용성(availability)과 함께 주요한 보안 목표 중 하나다. 데이터 무결성을 유지하기 위해서는 데이터에 대해 허가받지 않은 접근을 차단한다. 또한 데이터 전송 구간 상에서 데이터가 변조되지 않도록 종단 간 암호화와 같은 보안 메커니즘을 적용하고, 데이터 생성자가 전자문서에 서명하여 데이터 이용자가 무결성을 확인할 수 있도록 하는 등의 보안 조치가 필요하다.
(IT용어사전, 한국정보통신기술협회)
dispersion 분산
데이터가 기대한 값과 얼마나 다른지에 대한 그 범위.
(컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회)
workflow 작업 흐름
본래는 business process를 수행하기 위해 일어나는 일련의 업무 흐름을 뜻한다. 워크플로 제품들은 한 조직체 내에서 발생하는 이러한 일련의 업무들을 정의하고, 정해진 시간 안에 업무가 자동적으로 수행 되도록 보장하기 위해, 클라이언트/서버 기술을 기반으로 하여 만든 소프트웨어이다. 기업 내 업무 프로세스를 수행하기 위하여 발생되는 트랜잭션을 처리하기 위해서 개별 단위의 태스크(task)들을 연결하고, 자동화 처리하는 컴퓨팅 환경을 말하는 것으로 구조화된 데이터에 대한 데이터 베이스 기술, 비정형 비구조화되어 있는 문서, 이미지, 팩스, 엑셀, 각종 수작업이 필요한 워드 등의 다양한 업무 처리 기술을 활용하여 하나의 워크플로 체계로 통합되어 운영·통제되는 정보적 기술이다. 여기에는 RDBMS(relational data base management system), 응용 시스템 기술, 이미징, 팩스, 멀티미디어, 메시징, API 등 복합 기술의 통합을 전제로 한다.
(컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회)
nonlinear structure 비선형 구조
컴퓨터가 자료를 정리하는 방법 중 하나인 비선형 구조는 자료들 간의 연결 관계가 하나 : 여러 개, 여러 개 : 여러 개의 형태를 지녔을 때 사용됩니다.
그물 모양처럼 자료가 얽혀있는 경우에도 사용되는데, 트리와 그래프 구조가 비선형 구조의 예라고 할 수 있습니다. 트리구조는 나뭇가지 모양을 뒤집어놓은 것처럼 생긴 모양입니다. 밑으로 내려갈수록 자료가 더욱 세분화되는 것이죠. 그래프 구조는 연결되어 있는 객체간의 관계를 표현할 수 있는 모양으로 복잡하게 연결된 구조들을 표현할 때 자주 쓰입니다. 예를 들어, 회사나 학교의 조직도를 표현할 때 사용하는 자료구조가 비선형 구조 중 트리구조입니다. 지하철 노선도처럼 복잡하게 얽혀있는 것들을 표현할 때 사용하는 것은 비선형 구조 중 그래프구조라고 할 수 있죠. 이처럼 비선형 구조는 복잡하게 얽혀 있으면서, 자료들의 순서가 불규칙할 때 사용하는 자료 정리 방법으로서 트리구조와 그래프구조로 나눌 수 있습니다.
(천재학습백과 초등 소프트웨어 용어사전)
node 노드
변과 함께 그래프를 구성하는 요소의 하나. 그래프 이론적으로는 결절(結節), 정점(頂點), 점이라고 한다. 그래프는 점과 선으로 구성되는데, 이 점을 노드 또는 절점이라 한다. 선은 두 개의 노드를 연결한 것이다. 그래프는 현실 문제를 추상화한 것이기 때문에 실제로 노드는 하나의 기능 단위를, 변은 그 사이의 정보 흐름이나 관계를 나타낸다. 통신망을 나타내는 그래프에서의 노드는 단말 장치나 통신 처리 장치 등에 해당한다. 「이음매」또는 「마디」의 의미로 네트워크 아키텍처의 이론 구조의 하나이다. 컴퓨터 네트워크는 컴퓨터, 데이터 통신망, 단말 장치 등으로 구성되는데 이들 구성 요소를 통신 기능면에서 모델화하고, 그 구조나 기능 분담, 인터페이스 등을 결정하지만 논리 구조로 불리고 있으며, 이와 같은 논리 구조를 이용함으로써 여러 가지 네트워크를 통일적으로 사용할 수 있다. 노드란 이 논리 구조 중 호스트 컴퓨터, 전처리 장치, 단말 제어 장치, 원격 처리 장치, 단말 장치 등 정보나 통신의 처리 기능을 갖는 요소를 모델화한 것을 말한다. 정보 통신 분야에서는 네트워크에 접속할 수 있는 장치를 의미한다. 또한 중계 지점에 두는 장치를 포함한 어드레스가 가능한 지점을 가리킨다. 인터넷에서는 수많은 호스트 컴퓨터가 연결되어 호스트 컴퓨터가 중계 지점을 겸하고 있는 경우가 많으며, 호스트 컴퓨터를 의미하는 경우가 많다.
[주] 데이터망에 있어 한 가지 이상의 기능 단위가 통신로 또는 데이터 회선을 상호 접속하는 점.
(컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회)
binding 바인딩
컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것. 프로그램 내에서 변수, 배열, 라벨, 절차 등의 명칭, 즉 식별자(identifier)가 그 대상인 메모리 주소, 데이터형 또는 실제값으로 배정되는 것이 이에 해당되며, 원시 프로그램의 컴파일링 또는 링크 시에 확정되는 바인딩을 정적 바인딩(static binding)이라 하고, 프로그램의 실행되는 과정에서 바인딩되는 것을 동적 바인딩(dynamic binding)이라고 한다. 프로그래밍에서는 바인딩을 가급적 뒤로 미루도록 권고하고 있다.
(IT용어사전, 한국정보통신기술협회)
object-oriented programming 객체지향프로그래밍
두산백과 두피디아, 두산백과
모든 데이터를 오브젝트(object;물체)로 취급하여 프로그래밍 하는 방법으로, 처리 요구를 받은 객체가 자기 자신의 안에 있는 내용을 가지고 처리하는 방식이다.
이 개념은 1960년 중엽에 유행한 시뮬레이션 언어의 SIMURA에서 유래한 것이다. 모든 데이터를 오브젝트(object:물체)로 취급하며, 이 오브젝트에는 클래스(class:類)의 개념이 있어서 상위(上位)와 하위(下位)의 관계가 있다. 클래스의 구체적인 예가 인스턴스(instance)이다. 오브젝트 사이는 메시지의 송신(送信)으로 상호 통신한다. 가장 특징적인 것은 각 클래스에 그 메시지를 처리하기 위한 방식이 있다는 것이다. 어떤 인스턴스에 메시지가 도래하면 그 상위 클래스가 그것을 처리한다. 현재 오브젝트지향개념은 프레임 표현형식과 융합하여 인공지능을 위한 소프트웨어 기법(技法)의 하나로 되어 있다.
객체지향프로그램은 C, Pascal, BASIC 등과 같은 절차형 언어(procedure-oriented programming)가 크고 복잡한 프로그램을 구축하기 어렵다는 문제점을 해결하기 위해 탄생된 것이다. 절차형 언어에서는 코드 전체를 여러 개의 기능부분 즉, 인쇄하는 기능부분과 유저로부터의 입력을 받는 기능부분 등으로 분할하는데, 이와 같이 각 기능부분을 구성하는 코드를 모쥴이라고 한다. 절차형 언어에서는 프로그램을 여러 기능으로 나누고 이들 모쥴을 편성하여 프로그램을 작성할 경우, 각 모쥴이 처리하는 데이터에 대해서는 전혀 고려하지 않는다. 다시 말하면 데이터 취급이 완전하지 않고 현실 세계의 문제를 프로그램으로서 표현하는 것이 곤란하다.
이러한 절차형 프로그래밍이 가지는 문제를 해결하기 위해 탄생된 객체지향프로그래밍은 객체라는 작은 단위로서 모든 처리를 기술하는 프로그래밍 방법으로서, 모든 처리는 객체에 대한 요구의 형태로 표현되며, 요구를 받은 객체는 자기 자신 내에 기술되어 있는 처리를 실행한다. 이 방법으로 프로그램을 작성할 경우 프로그램이 단순화되고, 생산성과 신뢰성이 높은 시스템을 구축할 수 있다.
IT용어사전, 한국정보통신기술협회
실세계의 현상을 컴퓨터상에 객체로 실현(모델화)함으로써, 컴퓨터를 자연스러운 형태로 사용하여 다양한 문제를 해결하기 위한 프로그램 기법. 여기에서 객체는 실체(데이터)와 그 실체와 관련되는 동작(절차, 방법, 기능)을 모두 포함한다. 기차역에서 승차권 발매의 예를 들면, 실체인 ‘손님’과 절차인 ‘승차권 주문’은 하나의 객체이고, 실체인 ‘역무원’과 절차인 ‘승차권 발매’도 하나의 객체이다. 어떤 과제를 처리하기 위해 객체 간에는 메시지(지시)를 주고받는다. 메시지를 받은 객체는 동작(절차)을 실행한다. 코볼이나 베이식과 같은 기존 프로그램에서는 동작과 절차를 중심으로 하고 실체는 종속적으로 취급했으나, 객체 지향 프로그램에서는 실체와 동작을 객체로 정의하고 객체 간의 메시지 교환에 주안점을 두어 정보를 처리한다. 즉, 객체 지향은 과정을 중시하는 절차 중심의 설계가 아니고, 실체를 중시하는 설계이다. 객체 지향 프로그램의 또 하나의 중요한 특징은 공통의 성질을 갖는 객체는 객체 등급으로 정의한다는 점인데, 같은 등급에 속하는 객체들은 그들이 받는 메시지에 대하여 비슷하게 반응한다. 객체 등급은 계층화할 수 있으며, 하위 계층의 객체 등급은 상위 등급의 성질과 기능을 계승한다. 따라서 객체 지향은 시스템의 모듈화, 캡슐화를 촉진하여 복잡화, 거대화되는 소프트웨어를 사용하기 쉽고, 작성하기 쉬우며, 유지 보수하기 쉬운 방향으로 재구축하는 새로운 기법으로 각광받고 있다. 객체 지향 프로그램은 스몰토크와 같은 객체 지향 언어로 작성된다.
module 모듈
소프트웨어나 하드웨어의 일부로, 큰 전체 시스템 및 체계 중 다른 구성 요소와 독립적인 하나의 구성 요소를 말한다. 컴퓨터 분야에서의 모듈이란 독립적인 하나의 소프트웨어 혹은 하드웨어 요소를 말하며, 각각 다음과 같은 개념을 의미한다.
1) 소프트웨어 모듈
프로그램의 기능을 독립적인 부품으로 분리한 것을 모듈이라고 하며, 모듈화 프로그래밍이란 이러한 분리를 강조하여 유지 보수와 타 프로그램에서의 코드 재사용을 손쉽게 하는 소프트웨어 설계 기법을 말한다. 모듈은 일반적으로 서브루틴과 데이터 구조의 집합체로서, 그 자체로서 컴파일 가능한 단위이며, 재사용 가능하고 동시에 여러 다른 모듈의 개발에 사용될 수 있다. 모듈의 인터페이스는 모듈에 의해 제공되거나 필요로 되는 요소들을 표현한다. 모듈의 개념을 명시적으로 지원하는 언어로는 Ada, FORTRAN, Pascal, Python, Ruby 등이 있으며, 일반적으로 프로그래밍 언어에 따라 모듈의 개념을 패키지라 부르기도 하며 그 규모도 언어마다 상이하다.
2) 하드웨어 모듈
컴퓨터 하드웨어나 전자공학에서의 모듈은 컴퓨터 내에서 기본적인 기능을 제공하기 위해 하나의 회로 보드로 패키지화 된 독립적인 전자 회로, 혹은 큰 장치 내에서 독립적으로 설치 및 교체되고 사용되도록 설계된 작은 구성요소를 말한다. 예를 들어 NOT 게이트와 같이 더 큰 논리 유닛을 만들기 위한 기본 논리 회로나, RAM과 같은 메모리 모듈을 모두 하드웨어 모듈이라 볼 수 있다.
(두산백과 두피디아, 두산백과)