제공자 등의 사업자가 주로 개인 홈페이지의 서버 기능을 대행하는 것. 기업의 대용량 메모리 공간 일부를 이용하여 사용자의 홈페이지나 웹 서버 기능을 대행하는 서비스. 이로써 사용자는 웹 서버의 운영 관리와 고속 전용선을 상시 사용하므로 회선 사용료의 부담을 줄일 수 있다.
사용자가 가진 도메인에서 홈페이지 개설부터 서버 관리까지 대행해주므로 독자 도메인 서비스라고도 한다. 한편, 서버를 갖고 있지 않은 사용자에게 웹 사이트나 서버 기능을 대여하는 것을 렌털 서버(rental server)라고 한다.
트래픽" 전신, 전화 등의 통신 시설에서 통신의 흐름을 지칭하는 말. 개개의호 보류시간에 관계없이 발생한 호의 수를 호 수라고 하고 호 수와평균 보류 시간의 곱을 트래픽량, 단위 시간당 트래픽량을 호량 또는 트래픽 밀도라 한다.
트래픽량의 단위를얼랑(erl)이라 한다. 1얼랑은 1회선이 전송할 수 있는 최대 호량, 즉 단위 시간 내에 1회선이 쉴 새 없이 점유될 때의 트래픽량이다. 또 1/36얼랑을 100초호(秒呼)라 한다.
업로드"
다운로드와는 반대되는 개념으로 소규모의 시스템에서 대규모의 시스템으로 데이터를 담고 있는 파일을 이동하는 작업을 통상적으로 부르는 용어이다. 예를 들어 웹디스크서비스를 운영하는 사이트나 웹메일서비스, 포털사이트 등에서 개인저장공간의 활용이나 자료송신 또는 많은 사람들에 의하여 공유되고 있는 대규모의 시스템에 정보를 제공하기 위하여 자신의 개인용 컴퓨터에 저장되어 있는 정보를 통신 시스템에 전달하는 작업이 우리가 쉽게 찾아볼 수 있는 업로드의 예라고 할 수 있다.
HTML (하이퍼 텍스트 마크 업 언어)"
웹 문서를 만들기 위하여 사용하는 기본적인 프로그래밍 언어의 한 종류이다. 하이퍼텍스트를 작성하기 위해 개발되었다. 인터넷 서비스의 하나인 월드 와이드 웹을 통해 볼 수 있는 문서를 만들 때 사용하는 프로그래밍 언어의 한 종류이다. 특히 하이퍼텍스트를 작성하기 위해 개발되었으며, 인터넷에서 웹을 통해 접근되는 대부분의 웹 페이지들은 HTML로 작성된다.
HTML은 전자 문서의 서식을 정의하기 위해 만들어졌으며, 국제표준 SGML의 부분 집합으로 정의되었다.HTML은 SGML에서 특히 하이퍼텍스트를 강조하여 만들어진 언어이며, 아스키코드로 된 일반적인 텍스트로 구성되었다. 이 언어는 별도 컴파일러가 필요치 않으며, 웹 브라우저에서 해석이 가능한 사용하기 쉬운 언어로 각광을 받고 있다.
HTML은 문서의 글자크기, 글자색, 글자모양, 그래픽, 문서이동(하이퍼링크) 등을 정의하는 명령어로서 홈페이지를 작성하는 데 쓰인다. HTML에서 사용하는 명령어는 태그(tag)라고 하는데 꺽쇠괄호"<>"를 사용하여 나타낸다.
일반적으로 태그는 시작과 끝을 표시하는 2개의 쌍으로 이루어져 있으나 "img", "br"등의 태그와 같이 시작태그만으로 그 영향을 나타내는 경우도 있으며, 종료 태그의 이름은 슬래시 문자[/]로 시작된다. 이와같이 HTML로 작성된 문서를 HTML문서라 하며 이 HTML로 작성된 문서를 웹 브라우저가 해석하여 이용자에게 보여주게 된다.
HTML에서는 문서가 별도의 코드(code)를 인식하여 완벽한 하이퍼텍스트를 만들 뿐만 아니라 단어 또는 단문을 인터넷의 다른 장소나 파일로 연결시킬 수 있다.
템플릿이란 파워포인트 작업 시 슬라이드의 배경으로 사용하는 각종 디자인 서식을 가리킨다. 템플릿을 구성할 때는 프레젠테이션하려는 내용과 어울리는 사진이나 이미지 등을 사용하고, 화려한 디자인보다는 깔끔하고 집중할 수 있는 디자인이 청중의 시선을 모을 수 있다.
매슬라이드마다 다르게 템플릿을 적용하면 청중을 혼란하게 할 수 있고 내용 전달에도 어려움이 있으므로, 가급적 일관성 있는 디자인으로 구성하는 것이 좋다.
CSS " 웹 문서의 전반적인 스타일을 미리 저장해 둔 스타일시트이다. 문서 전체의 일관성을 유지할 수 있고, 세세한 스타일 지정의 필요를 줄어들게 하였다.
기존의 HTML은 웹 문서를 다양하게 설계하고 수시로 변경하는데 많은 제약이 따르는데, 이를 보완하기 위해 만들어진 것이 스타일 시트이고 스타일 시트의 표준안이 바로 CSS이다. 간단히 스타일 시트라고도 한다. 웹" 개발자들은 보다 풍부한 디자인으로 웹을 설계할 수 있고, 글자의 크기, 글자체, 줄간격, 배경 색상, 배열위치 등을 자유롭게 선택하거나 변경할 수 있으며 유지·보수도 간편하게 할 수 있다.
HTML" 을 이용해서 웹 페이지를 제작할 경우 전반적인 틀에서 세세한 글꼴 하나 하나를 일일이 지정해주어야 하지만, 웹 페이지의 스타일(작성형식)을 미리 저장해 두면 웹 페이지의 한 가지 요소만 변경해도 관련되는 전체 페이지의 내용이 한꺼번에 변경되므로, 문서 전체의 일관성을 유지할 수 있고 작업 시간도 단축된다.
자바스크립트" 자바스크립트를 이용하면 웹에 풍부한 효과를 넣을 수 있지만, 2000년대 초반만 해도 자바스크립트는 개발자들에게 무시당하는 언어였다. 별다른 기능도 없고, 성능도 별로 좋지 않았기 때문이다. 하지만 최근 몇 년 사이에 다양한 자바스크립트 프레임워크와 라이브러리가 생기면서 자바스크립트 생태계는 크게 확장되고 있으며, 그 위상도 점점 높아지고 있다.
우리가매일 접속하는 웹사이트는 크게 3가지 요소로 구성된다.
1.HTML(Hyper Text MarkupLanguage)’,
2.CSS(CascadingStyleSheets)’,
3.자바스크립트(Javascript)’다.
HTML은 웹페이지의 큰 뼈대를 제공하고,
CSS는 색깔이나 글씨체와 같은 디자인 요소를 관리한다.
자바스크립트는 크로스 플랫폼(crossplatform), 객체지향 스크립트 언어로 웹페이지의 동작을 담당한다. 예를 들어 자바스크립트를 이용하면 ‘버튼을 클릭하면 밑에 날짜를 보여줘’라는 식의 명령을 내릴 수 있다.
프로그래밍 입문자들은 자바스크립트와 자바(Java)가 서로 비슷한 기술이라고 생각하곤 한다. 두 언어 모두 자바라는 단어를 사용하기 때문이다. 하지만 자바스크립트는 자바와는 전혀 관계가 없다. 언어를 만든 사람부터 기능과 사용법까지 완전히 다르다.
자바스크립트는 브랜든 아이크(Brendan Eich)가 개발했다. 브랜든 아이크는 1995년 넷스케이프에 근무하면서 자바스크립트 개념을 만들었다. 그는 처음에는 자바스크립트가 아닌 ‘모카(Mocha)’라는 이름을 붙였다. 모카는 1995년 12월 ‘라이브 스크립트(LiveScript)’라는 이름으로 바뀌었는데, 당시 자바가 큰 인기를 끌자 마케팅 효과를 노려 이름을 자바스크립트로 변경했다. 이후 자바스크립트 기술이 다양하게 발전했고, 이에 대한 표준과 명세를 ECMA 인터내셔널에서 관리하고 있다.
2014년 브랜든 아이크는 모질라 기업의 CEO 자리에 올라갔다. 하지만 문제가 닥쳤다. 내부 직원들이 “브랜든 아이크가 동성결혼을 금지하는 ‘동성결혼금지법(California’s Proposition 8)’을 위해 1천달러를 낸 경력이 있다” 라며 “파이어폭스가 추구하는 가치인 다양성과 맞지 않다” 라고 공개적으로 비판했다. 이후 브랜든 아이크는CEO 자리에 올라선 지 열흘 만에 사퇴했다.
모질라 기업을 떠난 브랜든 아이크는 2015년 브레이브소프트웨어라는 새로운 기업을 설립하고, 여기서 오픈소스 모바일 웹브라우저를 개발하고 있다. 브레이브소프트웨어는 ‘더 빠르고 안전한’ 웹브라우저를 지향한다. 기업이 함부로 개인 정보 및 쿠키 데이터를 추적하지 못하고, 가독성을 방해하는 광고를 없애는 방식의 기술을 만들고 있다.
자바스크립트 창시자 브랜든 아이크에 대해 보다 자세히 알아보자. 그는 미국 산타클라라대학교에서 수학과 컴퓨터과학을 전공했으며, 이후 일리노이대학교 어바나-샴페인캠퍼스에서 석사학위를 받았다. 대학 졸업 이후 그는 주로 운영체제와 네트워크 관련 개발을 맡았고,
1995년 넷스케이프에 합류한 이후부터 웹 기술에 깊숙이 관여했다. 넷스케이프(Netscape)는 당시 마이크로소프트(MS)가 만든 ‘인터넷 익스플로러(IE)’의 가장 강력한 라이벌 웹브라우저를 만들고 있었다. 자바스크립트는 다양한 장점과 단점을 가진다.
먼저 장점부터 살펴보자. 자바스크립트는 컴파일 과정이 없기 때문에 다른 언어와 비교했을 때 빠른 시간 안에 스크립트 코드를 작성할 수 있게 도와준다. 기존 C나 자바 언어와 달리 굉장히 단순한 구조와 원칙을 가지고 있기 때문에 초보 개발자들이 쉽게 배우고 이해할 수 있다.
자바스크립트 코드 안에서는 변수, 클래스 및 메소드를 선언하지 않아도 되고, 메소드가 ‘public’, ‘private’ 또는 ‘protected’인지 구분하지 않아도 된다. 이러한 특징은 개발자마다 서로 다른 방식으로 코드를 짜는 부작용도 있다. 그래서 구글이나 에어비앤비 같은 기업들은 ‘자바스크립트 스타일 가이드’라는 문서를 따로 만들어 읽기 쉽고 실수를 피할 수 있는 자바스크립트 작성법을 공개하기도 했다.
자바스크립트는 웹에 특화된 기술이기 때문에 운영체제나 플랫폼에 상관없이 잘 작동되고 확장성도 높다. 단점은 성능이나 보안 측면이다. 일단 내부에서 제공되는 기능이 제한적이고, 관련된 개발도구도 적은 편이다. 또한 자바스크립트는 HTML 소스코드에 함께 작성되면서 소스코드가 외부로 공개되는데, 이 과정에서 보안 취약점이 발생할 수 있다.
넷스케이프는 원래 브랜든 아이크에게 프로그래밍 언어 ‘스킴’을 웹브라우저에서 활용할 수 있는 방법을 알아봐달라고 요청했지만, 브랜든 아이크는 이와 달리 자바스크립트라는 언어를 새로 개발했다. 1998년 그는 웹 개방성을 옹호하는
모질라 프로젝트를 새로 시작했고, ‘파이어폭스(FireFox)’라는 웹브라우저를 만들었다. 이후 모질라에서 개발하는 기술은 그가 총괄하게 된다. 이러한 이유로 자바스크립트와 관련해 다양하고 자세한 문서를 모질라 커뮤니티 홈페이지에서 볼 수 있다.
가상현실"
특수한 안경과 장갑을 사용하여 인간의 시각, 청각 등 감각을 통하여 컴퓨터의 소프트웨어프로그램 내부에서 가능한 것을 현실인 것처럼 유사 체험하게 하는 유저 인터페이스 기술의 하나. 말 그대로 현실이 아닌 세계를 말한다. 예를 들어 가상 현실의 하나인 가상 쇼핑을 인터넷에서 어떻게 구현되는지 알아보면 다음과 같다.
현재의 웹 서비스가 애니메이션과 디지털 무비를 지원한다 해도 2차원 형태의 화상 정보로는 한계가 있다. 실제로 웹 서비스를 이용하여 전자 쇼핑을 한다고 할 때 구입하려는 물품의 목록과 사진, 가격을 확인하도록 해줄 뿐 실제로 매장 안을 걸어다니며 각 상품을 즉흥적으로 골라서 볼 수 있는 3차원적인 기능을 영화 속에서나 기대해볼 만한 것이다. 하지만 웹에서도 이러한 3차원적인 효과를 제공하는 서비스들이 하나둘씩 생겨나고 있다. VRML(virtualrealitymodellinglanguage)을 지원하는 웹 사이트들이 그것인데, 전자 쇼핑을 예로 들 경우, 마치 3D 게임에서 건물 안을 자유롭게 돌아다니면서 마음에 드는 매장에서 마음에 드는 제품을 선택하여 보고, 전자적으로 대금을 결제할 수 있는 가상 현실적인 서비스가 가능하다. 즉, 컴퓨터에서 현실을 가상으로 구현한 것으로 앞으로 소프트웨어 기술이 향상되면서 그 성능이 보다 향상될 것으로 보인다.
알고리즘"
어떤 문제를 해결하기 위해 명확히 정의된(well-defined) 유한 개의 규칙과 절차의 모임. 명확히 정의된 한정된 개수의 규제나 명령의 집합이며, 한정된 규칙을 적용함으로써 문제를 해결하는 것. 이 용어 자체는 1957년 이전의 웹스터(webster) 사전에는 실려 있지 않다. 아라비아 숫자를 사용하여 연산을 행하는 수순을 의미한다. 알고리즘은 부여된 문자가 수학적인지 비수학적인지, 또 사람의 손으로 문제를 해결할 것인지, 컴퓨터로 해결할 것인지에 관계없이 적용된다. 특히 컴퓨터로 문제를 푸는 경우에는 알고리즘을 형식적으로 표현하는 것이프로그램을 작성하는 데 중요한 요소가 된다. 이 알고리즘의 좋고 나쁨에 따라 같은 결과를 구하는 처리에서도 시간이나 조작성에 큰 차이가 날 수가 있다.
알고리즘은 다음 조건을 만족해야 한다.
① 입력:외부에서 제공되는 자료가 있을 수 있다.
② 출력:적어도 한 가지 결과가 생긴다.
③ 명백성:각 명령들은 명백해야 한다.
④ 유한성:알고리즘의 명령대로 수행하면 한정된 단계를 처리한 후에 종료된다.
⑤ 효과성:모든 명령들은 명백하고 실행 가능한 것이어야 한다.
어원은 9세기의 과학자 al Khorezmi의 이름에서 유래한다. 개발자들의 대표 커뮤니티인 스택오버플로우는 2015년 157개국에 있는 사용자 2만6천여명에게 다양한 기술 관련 설문조사를 실시했다. 그 결과 자바스크립트는 ‘스위프트’와 함께 개발자들이 가장 많이 관심을 가지는 언어로 뽑혔다. 스택오버플로우는 설문조사 결과를 발표하면서 “자바스크립트는 가장 많이 사용하고 있는 프로그래밍 언어이며, 노드JS와 앵귤라JS가 눈에 띄게 성장하고 있다”라고 밝혔다. 오픈소스 개발자들이 많이 모이는 깃허브에서도 “자바스크립트가 소스코드 저장소에서 가장 많이 활용되고 있다”라는 통계를 공개했다. 그만큼 자바스크립트가 눈에 띄게 성장하고 있다는 뜻이다. 오픈소스 커뮤니티처럼 개인 개발자가 만든 기술도 많지만, 기업이 직접 자바스크립트 기술을 배포해 사용자를 모으는 경우도 적잖다. 최근에는 자바스크립트 관련 라이브러리나 프레임워크가 개발자들 사이에서 큰 화제다. 위키피디아에 올라온 ‘자바스크립트 라이브러리 목록’을 보면 관련된 기술이 90여개인데다 데이터과학, 이용자조작화면(UI), 서버 등 활용 분야도 다양하다.
다음은 최근 큰 인기를 끄는 자바스크립트 기술들이다. D3.JS" D3는 ‘DataDrivenedDocument’(데이터 기반 문서)의 약자로, 자바스크립트 라이브러리다. 데이터와 이미지를 함께 묶어 표현해줘 데이터 시각화를 웹페이지에서 표현할 때 많이 사용된다. 노드JS" (Node.js)는 자바스크립트 엔진 ‘V8’ 위에서 동작하는 이벤트 처리 I/O 프레임워크다. 서버 환경에서 자바스크립트로 애플리케이션을 작성할 수 있게 돕는다. 노드JS의 장점은 비동기 프로그래밍이다. 동기 프로그래밍은 무엇인가 요청하면 결과를 즉시 받는 것을 의미한다. 비동기는 이벤트를 요청하고 바로 결과를 받지 않아도 된다. 따라서 결과값을 기다리지 않고 보다 다양한 요청을 처리할 수 있다. 웹 분야에서는 비동기 프로그래밍을 쓰는 경우가 드물었는데, 노드JS로 비동기 프로그래밍을 비교적 쉽게 할 수 있게 됐다.
리액트JS"
리액트 JS(React.js)는 사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리다. 페이스북이 만든 기술로, 2013년에 공개됐다. 커스텀 태그, 가상 DOM, 단방향 데이터 바인딩 기능을 제공해 주목을 받고 있다. 실제로 워드프레스, 넷플릭스가 리액트JS를 사용하고 있다고 밝히기도 했다. 리액트JS기술 중 일부는 모바일 쪽에서 활용되고 있다.
앵귤라.JS" (Angular.js)
웹 애플리케이션 프레임워크로, 개발과 테스트 환경을 단순화시킨 기술이다. 구글이 직접 만들었으며, 현재 버전은 2.0까지 나왔다.
해외에는 ‘앵귤라JS잡닷컴’이라는 구직 웹사이트가 있을 정도로 앵귤라JS의 인기는 높다. 앵귤라JS는 제이쿼리나 자바스크립트 UI 컴포넌트를 쉽게 재사용할 수 있다. 양방향 데이터 바인딩을 통해 불필요한 코드를 제거해 향후 유지보수를 쉽게 할 수 있는 장점도 지녔다.
인터페이스"
(1) 두 가지 시스템 또는 장치(equipment)가 결합해 있는 경계(boundary)이며, 하드웨어적으로도 소프트웨어적으로도 사용되는 용어이다. 하드웨어적인 것만을 가리킨다든지 소프트웨어적인 것만을 가리킨다든지 또는 그들 모두를 규정하고 있는 것이 있다. 여기서 말하는 하드웨어적인 것이란 물리적 조건, 회로의 조건, 전기적 조건 등을 말하며, 소프트웨어적인 것이란 논리적 혹은 프로그램 간의 조건을 말한다.
(2) 복수의 구성 요소. 예를 들면, 중앙 처리 장치(CPU)와 입출력 장치(input-output unit)를 결합하여 공유할 수 있도록 한 장치 또는 복수의 프로그램이 공유하고 있는 레지스터(register) 등이다. 여러 가지의 컴포넌트를 조합하여 하나를 구축할 때 접속하는 상호의 컴포넌트 간에서는 미리 접속 조건을 정하지 않으면 잘 접속할 수 없고, 때로는 오동작을 한다. 인터페이스란 컴포넌트를 잘 접속 하기 위한 규격을 말한다. 인터페이스는 장치뿐만 아니라 LSI를 사용한 인터페이스 회로(interface circuit)도 있고, 여러 가지 기기와 접속할 수 있도록 설계되어 있는 범용형과 어떤 특정 기기밖에 접속할 수 없는 전용의 것이 있다. 인터페이스의 기본적 기능은 동작 타이밍(timing ofoperation), 신호 전압 (signal voltage), 데이터 표현 형식 등의 차이를 제어하는 것이다. 동일한 기능을 갖거나 다른 기능을 갖고 있는 두 개의 시스템 또는 구성 요소 사이의 상호 연결을 위한 장치이다. 인터페이스에서는 위와 같은 장치의 논리적, 전기적, 물리적 특성이 정의되어야 한다.
두 개 이상의 프로그램에 의하여 액세스(access)되는 기억 장치 부분이나 레지스터(register)를 인터페이스라고도 한다. 게이트웨이" 복수의 컴퓨터와 근거리 통신망(LAN ; local area network) 등을 상호 접속할 때 컴퓨터와 공중 통신망, LAN과 공중 통신망 등을 접속하는 장치를 가리킨다. 실제로는 미니컴퓨터 등이 사용되고 있으며, 게이트웨이 프로세서(gateway processor)라고도 불린다. 일반적으로 컴퓨터와 단말기를 공중 통신망을 경유하여 접속할 경우에는 게이트웨이로서는 대규모 장치를 필요로 하지 않는다. 그러나 네트워크 간 통신을 행할 때에는 통신 속도의 제어, 트래픽 제어, 네트워크 사이에서의 컴퓨터 어드레스의 변환 등 복잡한 처리를 행하기 때문에 게이트웨이 프로세서로서는 적지 않게 미니컴퓨터 정도의 능력을 갖는 장치가 필요하게 된다.
요즘은 원래의 정의 대신에 「라우터(router)」라는 용어가 대신 사용된다. 게이트웨이는 자체 프로세서와 메모리를 가지고 있으며,프로토콜 변환이나 대역폭 변환을 하기도 한다. 일반적으로 게이트웨이는 근거리 통신망 프로토콜이 하나 이상 설치되어 있는 큰 규모의 네트워크에서 볼 수 있는데, 예를 들어 키네틱 사의 패스트패스(fastpath)라는 애플토크(AppleTalk)와 이더넷(Ethernet) 네트워크를 연결할 수 있다. 증강현실" 실세계에 3차원의 가상물체를 겹쳐서 보여주는 기술을 활용해 현실과 가상환경을 융합하는 복합형 가상 현실. 묘듈" ⑴ 이미 알고 있는 특성을 갖는 기능 단위로서 부품 집합이고, 그대로 모듈」이라고 해석된다. 하드웨어에서는 메모리 보드나 각종 인터페이스 보드, 보조 입출력 장치(auxiliary input/output devices), 다중 중앙 처리 장치(multi-CPU)처럼 기능 단위로 되어 있기 때문에 용이하게 교환할 수 있도록 된 구조를 말한다.
소프트웨어에서도 하드웨어와 마찬가지로 하나로 일괄되어 다른 프로그램으로도 재이용(reusable)할 수 있는 형으로 되어 있는 것을 말하며, 복수(複數)의 모듈을 취급하기 쉽도록 하나로 일괄시킨 것을 라이브러리(library)라고 한다. 이와 같이 블록화, 모듈화하여 프로그램을 작성해두면 프로그램의 명세에 변경이 있어도 관계가 있는 모듈의 변경만으로 끝나고, 프로그램 개발의 생산성이 향상된다. ⑵ 컴 파일러(compiler)의 실행에 따라 얻어진 출력으로, 연결기(linker)의 입력이 되는 중간 프로그램을 목적 모듈(object module)이라고 한다. 복수의 제어 세션(session)과 외부 심벌(external symbols)표로 구성되어 있다. 연결기의 실행에 따라 얻어진 실행 모듈을 로드 모듈(load module)이라고 한다.
수속(절차)이나 데이터의 선언으로부터 이루어진 언어 구성 요소이고, 다른 구성 요소와 상호적으로 작용할 수 있는 것. 예를 들면, Ada의 패키지, FORTRAN의 프로그램 단위, PL/I의 외부 절차. 플립플롭" 트리거 회로라 불리는 회로의 일종이며, 두 개의 안정 상태(stable state) 중 어느 쪽이든지 한쪽을 보존한다. 이것을 논리 회로로 사용할 경우에는 이 두 개의 상태를 0과 1에 대응시킨다. 즉, 최초의 상태가 1이라 하면, 반대 상태의 입력이 없는 한 1의 상태를 계속하고 입력이 있으면 0의 상태가 된다. 이와 같이 두 개의 상태를 갖는 회로를 쌍안정 회로(bistable-circuit)라고 한다. 스위치로 말하면 토글 스위치이다. 가장 간단한 플립플롭은 NAND 게이트(NAND gate)를 사용한 것이다. 영문으로 쓰는 경우에는 flip-flop이 아니고, 바이스터블 트리거 회로(bistable trigger circuit)라든가, 바이스터블 회로라고 하는 쪽이 일반적이다. 또 단안정 회로(monostable circuit)의 의미로 쓰이는 경우도 있으나 용어 사용상 금지하고 있다. 플립플롭의 종류에는 R-S, J-K, D, T 등이 있다.
웹" 의 원래 의미는 「거미집」으로 하나의 사이트나 또는 다른 사이트와의 관계가 거미집처럼 복잡하게 얽혀 있기 때문에 웹이라고 부른다.
어떤 문제를 해결하기 위해 명확히 정의된(well-defined) 유한 개의 규칙과 절차의 모임. 명확히 정의된 한정된 개수의 규제나 명령의 집합이며, 한정된 규칙을 적용함으로써 문제를 해결하는 것. 이 용어 자체는 1957년 이전의 웹스터(webster) 사전에는 실려 있지 않다. 아라비아 숫자를 사용하여 연산을 행하는 수순을 의미한다. 알고리즘은 부여된 문자가 수학적인지 비수학적인지, 또 사람의 손으로 문제를 해결할 것인지, 컴퓨터로 해결할 것인지에 관계없이 적용된다. 특히 컴퓨터로 문제를 푸는 경우에는 알고리즘을 형식적으로 표현하는 것이프로그램을 작성하는 데 중요한 요소가 된다. 이 알고리즘의 좋고 나쁨에 따라 같은 결과를 구하는 처리에서도 시간이나 조작성에 큰 차이가 날 수가 있다.
알고리즘은 다음 조건을 만족해야 한다.
① 입력:외부에서 제공되는 자료가 있을 수 있다.
② 출력:적어도 한 가지 결과가 생긴다.
③ 명백성:각 명령들은 명백해야 한다.
④ 유한성:알고리즘의 명령대로 수행하면 한정된 단계를 처리한 후에 종료된다.
⑤ 효과성:모든 명령들은 명백하고 실행 가능한 것이어야 한다.
어원은 9세기의 과학자 al Khorezmi의 이름에서 유래한다. 개발자들의 대표 커뮤니티인 스택오버플로우는 2015년 157개국에 있는 사용자 2만6천여명에게 다양한 기술 관련 설문조사를 실시했다. 그 결과 자바스크립트는 ‘스위프트’와 함께 개발자들이 가장 많이 관심을 가지는 언어로 뽑혔다. 스택오버플로우는 설문조사 결과를 발표하면서 “자바스크립트는 가장 많이 사용하고 있는 프로그래밍 언어이며, 노드JS와 앵귤라JS가 눈에 띄게 성장하고 있다”라고 밝혔다. 오픈소스 개발자들이 많이 모이는 깃허브에서도 “자바스크립트가 소스코드 저장소에서 가장 많이 활용되고 있다”라는 통계를 공개했다. 그만큼 자바스크립트가 눈에 띄게 성장하고 있다는 뜻이다. 오픈소스 커뮤니티처럼 개인 개발자가 만든 기술도 많지만, 기업이 직접 자바스크립트 기술을 배포해 사용자를 모으는 경우도 적잖다. 최근에는 자바스크립트 관련 라이브러리나 프레임워크가 개발자들 사이에서 큰 화제다. 위키피디아에 올라온 ‘자바스크립트 라이브러리 목록’을 보면 관련된 기술이 90여개인데다 데이터과학, 이용자조작화면(UI), 서버 등 활용 분야도 다양하다.
다음은 최근 큰 인기를 끄는 자바스크립트 기술들이다. D3.JS" D3는 ‘DataDrivenedDocument’(데이터 기반 문서)의 약자로, 자바스크립트 라이브러리다. 데이터와 이미지를 함께 묶어 표현해줘 데이터 시각화를 웹페이지에서 표현할 때 많이 사용된다. 노드JS" (Node.js)는 자바스크립트 엔진 ‘V8’ 위에서 동작하는 이벤트 처리 I/O 프레임워크다. 서버 환경에서 자바스크립트로 애플리케이션을 작성할 수 있게 돕는다. 노드JS의 장점은 비동기 프로그래밍이다. 동기 프로그래밍은 무엇인가 요청하면 결과를 즉시 받는 것을 의미한다. 비동기는 이벤트를 요청하고 바로 결과를 받지 않아도 된다. 따라서 결과값을 기다리지 않고 보다 다양한 요청을 처리할 수 있다. 웹 분야에서는 비동기 프로그래밍을 쓰는 경우가 드물었는데, 노드JS로 비동기 프로그래밍을 비교적 쉽게 할 수 있게 됐다.
리액트JS"
리액트 JS(React.js)는 사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리다. 페이스북이 만든 기술로, 2013년에 공개됐다. 커스텀 태그, 가상 DOM, 단방향 데이터 바인딩 기능을 제공해 주목을 받고 있다. 실제로 워드프레스, 넷플릭스가 리액트JS를 사용하고 있다고 밝히기도 했다. 리액트JS기술 중 일부는 모바일 쪽에서 활용되고 있다.
앵귤라.JS" (Angular.js)
웹 애플리케이션 프레임워크로, 개발과 테스트 환경을 단순화시킨 기술이다. 구글이 직접 만들었으며, 현재 버전은 2.0까지 나왔다.
해외에는 ‘앵귤라JS잡닷컴’이라는 구직 웹사이트가 있을 정도로 앵귤라JS의 인기는 높다. 앵귤라JS는 제이쿼리나 자바스크립트 UI 컴포넌트를 쉽게 재사용할 수 있다. 양방향 데이터 바인딩을 통해 불필요한 코드를 제거해 향후 유지보수를 쉽게 할 수 있는 장점도 지녔다.
인터페이스"
(1) 두 가지 시스템 또는 장치(equipment)가 결합해 있는 경계(boundary)이며, 하드웨어적으로도 소프트웨어적으로도 사용되는 용어이다. 하드웨어적인 것만을 가리킨다든지 소프트웨어적인 것만을 가리킨다든지 또는 그들 모두를 규정하고 있는 것이 있다. 여기서 말하는 하드웨어적인 것이란 물리적 조건, 회로의 조건, 전기적 조건 등을 말하며, 소프트웨어적인 것이란 논리적 혹은 프로그램 간의 조건을 말한다.
(2) 복수의 구성 요소. 예를 들면, 중앙 처리 장치(CPU)와 입출력 장치(input-output unit)를 결합하여 공유할 수 있도록 한 장치 또는 복수의 프로그램이 공유하고 있는 레지스터(register) 등이다. 여러 가지의 컴포넌트를 조합하여 하나를 구축할 때 접속하는 상호의 컴포넌트 간에서는 미리 접속 조건을 정하지 않으면 잘 접속할 수 없고, 때로는 오동작을 한다. 인터페이스란 컴포넌트를 잘 접속 하기 위한 규격을 말한다. 인터페이스는 장치뿐만 아니라 LSI를 사용한 인터페이스 회로(interface circuit)도 있고, 여러 가지 기기와 접속할 수 있도록 설계되어 있는 범용형과 어떤 특정 기기밖에 접속할 수 없는 전용의 것이 있다. 인터페이스의 기본적 기능은 동작 타이밍(timing ofoperation), 신호 전압 (signal voltage), 데이터 표현 형식 등의 차이를 제어하는 것이다. 동일한 기능을 갖거나 다른 기능을 갖고 있는 두 개의 시스템 또는 구성 요소 사이의 상호 연결을 위한 장치이다. 인터페이스에서는 위와 같은 장치의 논리적, 전기적, 물리적 특성이 정의되어야 한다.
두 개 이상의 프로그램에 의하여 액세스(access)되는 기억 장치 부분이나 레지스터(register)를 인터페이스라고도 한다. 게이트웨이" 복수의 컴퓨터와 근거리 통신망(LAN ; local area network) 등을 상호 접속할 때 컴퓨터와 공중 통신망, LAN과 공중 통신망 등을 접속하는 장치를 가리킨다. 실제로는 미니컴퓨터 등이 사용되고 있으며, 게이트웨이 프로세서(gateway processor)라고도 불린다. 일반적으로 컴퓨터와 단말기를 공중 통신망을 경유하여 접속할 경우에는 게이트웨이로서는 대규모 장치를 필요로 하지 않는다. 그러나 네트워크 간 통신을 행할 때에는 통신 속도의 제어, 트래픽 제어, 네트워크 사이에서의 컴퓨터 어드레스의 변환 등 복잡한 처리를 행하기 때문에 게이트웨이 프로세서로서는 적지 않게 미니컴퓨터 정도의 능력을 갖는 장치가 필요하게 된다.
요즘은 원래의 정의 대신에 「라우터(router)」라는 용어가 대신 사용된다. 게이트웨이는 자체 프로세서와 메모리를 가지고 있으며,프로토콜 변환이나 대역폭 변환을 하기도 한다. 일반적으로 게이트웨이는 근거리 통신망 프로토콜이 하나 이상 설치되어 있는 큰 규모의 네트워크에서 볼 수 있는데, 예를 들어 키네틱 사의 패스트패스(fastpath)라는 애플토크(AppleTalk)와 이더넷(Ethernet) 네트워크를 연결할 수 있다. 증강현실" 실세계에 3차원의 가상물체를 겹쳐서 보여주는 기술을 활용해 현실과 가상환경을 융합하는 복합형 가상 현실. 묘듈" ⑴ 이미 알고 있는 특성을 갖는 기능 단위로서 부품 집합이고, 그대로 모듈」이라고 해석된다. 하드웨어에서는 메모리 보드나 각종 인터페이스 보드, 보조 입출력 장치(auxiliary input/output devices), 다중 중앙 처리 장치(multi-CPU)처럼 기능 단위로 되어 있기 때문에 용이하게 교환할 수 있도록 된 구조를 말한다.
소프트웨어에서도 하드웨어와 마찬가지로 하나로 일괄되어 다른 프로그램으로도 재이용(reusable)할 수 있는 형으로 되어 있는 것을 말하며, 복수(複數)의 모듈을 취급하기 쉽도록 하나로 일괄시킨 것을 라이브러리(library)라고 한다. 이와 같이 블록화, 모듈화하여 프로그램을 작성해두면 프로그램의 명세에 변경이 있어도 관계가 있는 모듈의 변경만으로 끝나고, 프로그램 개발의 생산성이 향상된다. ⑵ 컴 파일러(compiler)의 실행에 따라 얻어진 출력으로, 연결기(linker)의 입력이 되는 중간 프로그램을 목적 모듈(object module)이라고 한다. 복수의 제어 세션(session)과 외부 심벌(external symbols)표로 구성되어 있다. 연결기의 실행에 따라 얻어진 실행 모듈을 로드 모듈(load module)이라고 한다.
수속(절차)이나 데이터의 선언으로부터 이루어진 언어 구성 요소이고, 다른 구성 요소와 상호적으로 작용할 수 있는 것. 예를 들면, Ada의 패키지, FORTRAN의 프로그램 단위, PL/I의 외부 절차. 플립플롭" 트리거 회로라 불리는 회로의 일종이며, 두 개의 안정 상태(stable state) 중 어느 쪽이든지 한쪽을 보존한다. 이것을 논리 회로로 사용할 경우에는 이 두 개의 상태를 0과 1에 대응시킨다. 즉, 최초의 상태가 1이라 하면, 반대 상태의 입력이 없는 한 1의 상태를 계속하고 입력이 있으면 0의 상태가 된다. 이와 같이 두 개의 상태를 갖는 회로를 쌍안정 회로(bistable-circuit)라고 한다. 스위치로 말하면 토글 스위치이다. 가장 간단한 플립플롭은 NAND 게이트(NAND gate)를 사용한 것이다. 영문으로 쓰는 경우에는 flip-flop이 아니고, 바이스터블 트리거 회로(bistable trigger circuit)라든가, 바이스터블 회로라고 하는 쪽이 일반적이다. 또 단안정 회로(monostable circuit)의 의미로 쓰이는 경우도 있으나 용어 사용상 금지하고 있다. 플립플롭의 종류에는 R-S, J-K, D, T 등이 있다.
웹" 의 원래 의미는 「거미집」으로 하나의 사이트나 또는 다른 사이트와의 관계가 거미집처럼 복잡하게 얽혀 있기 때문에 웹이라고 부른다.
- 유닉스" 미국 벨(Bell) 연구소에서 개발된 소프트웨어 개발용의 운영 체제(OS). 유닉스는 1969년에 그 원형이 완성되었지만 1973년에 프로그램 대부분이 C 언어로 수정되었다. 이 때문에 이식성이 높아졌으며, 동시에 다중 사용자/다중 태스크의 실행을 지원할 수 있는 것을 특징으로 하는 대화형의 운영 체제이며, 텍스트 조작 툴, 문서 처리, 전자 메일 외에 취급이 쉬운 파일 시스템을 갖추고 있다. 당초에는 미니컴퓨터용이었지만 최근에는 퍼스널 컴퓨터나 범용 컴퓨터용의 유닉스도 개발되어 일반에게도 보급되기 시작했다. 최근에도 이러한 유닉스에 준한 기능을 갖춘 OS가 출현하였으며 이것을 유닉스라이크 OS(UNIX-like operating system)라고 한다. 에이전트"에이전트에 대한 정의는 에이전트를 보는 시각에 따라 매우 다양하지만 일반적으로 다음과 같이 정의할 수 있다.
- ① 에이전트는 특정 목적에 대해 사용자를 대신하여 작업을 수행하는 자율적 프로세스(autonomous process)이다.
- ② 에이전트는 독자적으로 존재하지 않고 어떤 환경(운영 체제, 네트워크 등)의 일부이거나 그 안에서 동작하는 시스템이다.
- ③ 에이전트는 지식 기반(knowledge base)과 추론 기능을 가지며, 자원 또는 다른 에이전트와의 정보 교환과 통신을 통해 문제를 해결한다.
- ④ 에이전트는 스스로 환경의 변화를 인지하고 그에 대응하는 행동을 취하며, 경험을 바탕으로 학습하는 기능을 가진다.
- 국제 표준 기구" ISO, International Organization for Standardization, International Standardization Organization의 약어. 표준화(standardization)를 위한 국제 위원회이며, 각종 분야의 제품/서비스의 국제적 교류를 용이하게 하고, 상호 협력을 증진시키는 것을 목적으로 하고 있다. 공업 상품이나 서비스의 국제 교류를 원활히 하기 위하여 이들의 표준화를 도모하는 세계적인 기구로서 스위스 제네바에 본부를 두고 있다. 각국 표준 단체로서 구성되며 각 참가국의 유일한 조직이 멤버로 구성된다. 참가 멤버는 기술 위원회의 업무에 공헌하고, 새로운 표준화의 제안에 대하여 찬반 투표를 한다. 옵서버 멤버는 위원회에 출석할 수 있으나 투표할 수는 없다. 1946년에 설립된 단체. 3년마다 총회를 개최하며, 여기서 이사회의 심의를 거쳐 ISO 권고가 규격으로서 공표된다. 기구의 가입은 한 나라당 하나의 기관에 한하여 허용하고 있다. 국제 전신 전화 자문 위원회(CCITT)와 같은 멤버는 연락을 위한 멤버로서 참가하도록 되어 있다. 노드" 변과 함께 그래프를 구성하는 요소의 하나. 그래프 이론적으로는 결절(結節), 정점(頂點), 점이라고 한다. 그래프는 점과 선으로 구성되는데, 이 점을 노드 또는 절점이라 한다.
- 선은 두 개의 노드를 연결한 것이다. 그래프는 현실 문제를 추상화한 것이기 때문에 실제로 노드는 하나의 기능 단위를, 변은 그 사이의 정보 흐름이나 관계를 나타낸다. 통신망을 나타내는 그래프에서의 노드는 단말 장치나 통신 처리 장치 등에 해당한다. 「이음매」또는 「마디」의 의미로 네트워크 아키텍처의 이론 구조의 하나이다. 컴퓨터 네트워크는 컴퓨터, 데이터 통신망, 단말 장치 등으로 구성되는데 이들 구성 요소를 통신 기능면에서 모델화하고, 그 구조나 기능 분담, 인터페이스 등을 결정하지만 논리 구조로 불리고 있으며, 이와 같은 논리 구조를 이용함으로써 여러 가지 네트워크를 통일적으로 사용할 수 있다. 노드란 이 논리 구조 중 호스트 컴퓨터, 전처리 장치, 단말 제어 장치, 원격 처리 장치, 단말 장치 등 정보나 통신의 처리 기능을 갖는 요소를 모델화한 것을 말한다. 정보 통신 분야에서는 네트워크에 접속할 수 있는 장치를 의미한다. 또한 중계 지점에 두는 장치를 포함한 어드레스가 가능한 지점을 가리킨다. 인터넷에서는 수많은 호스트 컴퓨터가 연결되어 호스트 컴퓨터가 중계 지점을 겸하고 있는 경우가 많으며, 호스트 컴퓨터를 의미하는 경우가 많다.
- 클라이언트" 클라이언트/서버(client/server) 구성에서 사용자측. 사용자가 서버에 접속했을 때 클라이언트는 사용자 자신을 지칭할 수도 있고, 사용자의 컴퓨터를 가리키기도 하며, 컴퓨터에서 동작하고 있는 프로그램이 될 수도 있다. 컴퓨터 시스템의 프로세스는 또 다른 컴퓨터 시스템의 프로세스를 요청할 수 있다. 네트워크에서는 네트워크 서버에 정보나 응용 프로그램을 요구할 수 있는 PC 등의 처리 기능이 있는 워크스테이션을 말하며 객체 연결 및 포함(OLE)에서는 서버 응용 프로그램이라는 다른 응용 프로그램에 데이터를 포함시켜 놓은 응용 프로그램을 말한다. 파일 서버로부터 파일의 내용을 요청하는 워크스테이션을 파일 서버의 클라이언트라 한다. 각각의 클라이언트 프로그램은 하나 또는 그 이상의 서버 프로그램에 의하여 자동 실행될 수 있도록 디자인되며, 또한 각각의 서버 프로그램은 특별한 종류의 클라이언트 프로그램이 필요하다.
- 캐시"
- 주기억 장치에 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치. 주기억 장치와 중앙 처리 장치(central processing unit)와의 사이에 설치되어 있는 고속 버퍼메모리이다. 캐시 메모리(cachememory) 또는 로컬 메모리(local memory)라고도 한다. 기억 용량(memory capacity)은 적지만 주기억 장치에 비해 고속이며 액세스할 수 있는 장점이 있다. 따라서 중앙 처리 장치가 명령이 필요하게 되면, 맨 먼저 액세스하는 것은 주기억 장치가 아니라 캐시 메모리인 셈이다. 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다.또한 각각의 서버 프로그램은 특별한 종류의 클라이언트 프로그램이 필요하다.
- 레지스터"
- 극히 소량의 데이터나 처리중인 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역을 레지스터라고 한다. 한 단어 또는 여러 단어, 때로는 수의 자릿수의 정보를 기억하는 장치이며 특정 목적에 사용되고, 수시로 그 내용을 이용할 수 있도록 되어 있다. (1) 컴퓨터의 주기억 장치는 데이터와 명령을 기억하고 있을 뿐이다. 그래서 산술 연산, 논리 연산, 전송 조작을 행할 때 데이터나 명령을 일시적으로 기억해둘 장소가 필요하게 되고, 용도에 따라서 여러 가지 레지스터가 있다. 주요한 레지스터에는 누산기(accumulator), 연산 레지스터(arithmetic register), 명령 레지스터(instruction register), 자리 이동 레지스터(shift register), 지표 레지스터(index register) 등이 있고, 또한 이들 레지스터는 보통 중앙 처리 장치 안에 있다. (2) 데이터 통신 분야에서는 가입자로부터 신호를 수신하여 축적하고, 어떤 부호로 변환하여 전송하는 장치를 레지스터라고 부르는 경우가 있다. (3) 비트, 바이트, 기계어와 같이 지정된 기억 용량을 가지며, 통상 특정한 목적에 이용되는 기억 장치.
- 세그먼트"
- (1) 프로그램 실행시에 주기억 장치 상에 적재되는 프로그램의 분할 가능한 기본 단위. 프로그램을 한 번에 내부 기억 장치에 저장할 수 없는 경우, 그것을 몇 개의 짧은 단위로 분할하고, 실행시에 필요한 세그먼트만을 주기억 장치 상에 저장해두며, 그 부분의 실행이 종료하는 시점에서 다음에 실행하는 세그먼트를 호출한다. 이와 같이 세그먼트를 치환하여 적재하는 것을 오버레이(overlay)한다고 한다.
- (2) 데이터 베이스 시스템에 있어서 데이터를 기억할 때의 최소 단위이며, 하나 또는 여러 개의 필드(field)에 의해 구성된다. 업무 프로그램과 데이터 베이스와의 사이에 전송되는 데이터 단위가 된다.
- (3) 가상 기억 장치에 있어서 가상 어드레스(virtual address) 구조를 실현하기 위해 운영 체제에 의해서 어떤바이트 수 단위로 분할되는 가상 기억 영역. 각 세그먼트는 몇 개의 페이지로 분할된다. 각 페이지 내에서의 특정 위치를 표시하는 것은 가상 어드레스이며, 이것을 지정하는 데는 페이지의 맨 처음에서 그 위치까지의 사이에 있는 바이트 수로 지정한다. 세그먼트는 각각 점, 몇 개의 선분 또는 다른 표시 요소로부터 구한다.
- 프록시"
- 데이터를 가져올 때 해당 사이트에서 바로 자신의 PC로 가져오는 것이 아니라 임시 저장소를 거쳐서 가져오는 것. 프록시를 설정하면 수 초의 빠른 속도를 느낄 수 있다. 프록시 서버에는 다수의 사용자들이 들르는 사이트에 대한 데이터가 저장되어 있어 경우에 따라 해당 사이트에 들르지 않고 바로 이 서버에 있는 데이터를 이용하기도 한다. 하지만 프록시 서버에 문제가 생겼거나 과부하가 걸렸을 경우 오히려 더 느려지는 경우도 있다. (사이트 → 프록시 서버 → PC)
- 소프트웨어"
- 물리적 실체인 하드웨어의 반대어로 만들어진 용어. 컴퓨터 프로그램과 같은 뜻으로 해석되는 경우도 있으나프로그램 자신 외에 그 프로그램 자신의 설명서, 그 프로그램에 의해 업무를 수행할 때의 사무 상의 규정이나 절차, 이들을 문서화한 설명서나 색인서도 모두 포함한 전체를 가리킨다. 컴퓨터 시스템을 가동시키는 데 필수가 되는 시스템 소프트웨어(system software)와 이용자 측의 업무에 특유한 응용 프로그램(applications program)을 구별해 왔으나 현재는 양자를 포함하여 소프트웨어라고 하며,시스템 개발(system development)과 소프트웨어 개발(software development)은 동의어로 취급되고 있다.
- 나노(nano)란?
- 그리스어 '난장이'라는 의미에서 유래한 말로 10억분의 1을 가리키는 미세단위. 즉 1 나노미터는 머리카락 굵기의 10만분에 1 정도에 해당한다. nano의 약자. 10-9를 의미하는 접두어. 주기억 장치의 접근 시간이나 중앙 처리 장치(CPU)의 연산 속도를 나타내는데 흔히 쓰인다. 예를 들면 나노초, 10-9을 의미하는 접두어. 주기억 장치의 액세스 시간이나 중앙 처리 장치(CPU)의 연산 속도를 나타내는 데 자주 사용된다. 예를 들면, 나노초(nanosecond). 컴퓨터의 하드웨어, 특히 「기억 소자」의 초고속화로 인해 일반화되어 온 단위의 하나이다.
- 미터법의 여러 단위 앞에 붙이는 10-9(10억분의 1)배의 뜻을 가진 접두어. 기호는 n. 1956년 9월에 리스본에서 열렸던 제14회 국제 순수 및 응용 화학 연합회(IUPAC)와 제2회 분석 화학 국제 회의에서는 단위명의 접두어로서 12가지를 결정하였다. 나노는 그중의 하나이다.
- 인공 지능, 사물 인터넷, 빅데이터," 모바일 등 첨단 정보통신기술이 경제·사회 전반에 융합되어 혁신적인 변화가 나타나는 차세대 산업혁명. 제4차 산업혁명은 초연결(hyperconnectivity)과 초지능(superintelligence)을 특징으로 하기 때문에 기존 산업혁명에 비해 더 넓은 범위(scope)에 더 빠른 속도(velocity)로 크게 영향(impact)을 끼친다.
- 제4차 산업혁명" 용어는 2016년 세계 경제 포럼(WEF: World Economic Forum)에서 언급되었으며, 정보 통신 기술(ICT) 기반의 새로운 산업 시대를 대표하는 용어가 되었다. 컴퓨터, 인터넷으로 대표되는 제3차 산업혁명(정보 혁명)에서 한 단계 더 진화한 혁명으로도 일컬어진다. 인공 지능(AI), 사물 인터넷(IoT), 클라우드 컴퓨팅, 빅데이터, 모바일 등 지능정보기술이 기존 산업과 서비스에 융합되거나 3D 프린팅, 로봇공학, 생명공학, 나노기술 등 여러 분야의 신기술과 결합되어 실세계 모든 제품·서비스를 네트워크로 연결하고 사물을 지능화한다.
- 사물인터넷" 정보 통신 기술을 기반으로 실세계(physical world)와 가상 세계(virtual world)의 다양한 사물들을 연결하여 진보된 서비스를 제공하기 위한 서비스 기반 시설(※ 관련: ITU-T Y.2060). 유비쿼터스 공간을 구현하기 위한 인프라 컴퓨팅 기기들이 환경과 사물에 심겨 환경이나 사물 그 자체가 지능화되는 것부터 사람과 사물, 사물과 사물 간에 지능 통신을 할 수 있는 사물 통신(M2M: MachinetoMachine)의 개념을 인터넷으로 확장하여 사물은 물론, 현실과 가상 세계의 모든 정보와 상호 작용하는 개념으로 진화했다. 사물 인터넷(IoT)의 주요 기술로는 센싱 기술, 유무선 통신 및 네트워크 인프라 기술, 사물 인터넷 인터페이스 기술, 사물 인터넷을 통한 서비스 기술 등이 있다.