[Comporison] PreparedStatement 와 Statement


PreparedStatement 와 Statement


PreparedStatement 와 Statement의 가장 큰 차이점은 캐시(cache) 사용여부이다.

1) 쿼리 문장 분석

2) 컴파일

3) 실행


Statement를 사용하면 매번 쿼리를 수행할 때마다 1) ~ 3) 단계를 거치게 되고, PreparedStatement는 처음 한 번만 세 단계를 거친 후 캐시에 담아 재사용을 한다는 것이다. 만약 동일한 쿼리를 반복적으로 수행한다면 PreparedStatment가 DB에 훨씬 적은 부하를 주며, 성능도 좋다.



1. Statement 

String sqlstr = "SELECT name, memo FROM TABLE WHERE num = " + num 

Statement stmt = conn.credateStatement(); 

ResultSet rst = stmt.executeQuerey(sqlstr); 

sqlstr를 실행시 결과값을 생성

Statement  executeQuery() 나 executeUpdate() 를 실행하는 시점에 파라미터로 SQL문을 전달하는데, 이 때 전달되는 SQL 문은 완성된 형태로 한눈에 무슨 SQL 문인지 파악하기 쉽다. 하지만, 이 녀석은 SQL문을 수행하는 과정에서 매번 컴파일을 하기 때문에 성능상 이슈가 있다. 


2. PreparedStatement 

String sqlstr = "SELECT name, memo FROM TABLE WHERE num = ? " 

PreparedStatement stmt = conn.prepareStatement(sqlstr); 

pstmt.setInt(1, num);

ResultSet rst = pstmt.executeQuerey(); 

sqlstr 은 생성시에 실행

PreparedStatement 은 이름에서부터 알 수 있듯이 준비된 Statement 이다. 이 준비는 컴파일(Parsing) 을 이야기하며, 컴파일이 미리 되어있는 녀석이기에 Statement 에 비해 성능상 이점이 있다. 요 녀석은 보통 조건절과 함께 사용되며 재사용이 되는데, ? 부분에만 변화를 주어 지속적으로 SQL을 수행하기 때문에 한눈에 무슨 SQL 문인지 파악하기는 어렵다.


2.와 같이 이용할 경우 해당 인자만 받아서 처리하는 구조로 갈 수 있는것입니다.내부적으로 상세하게 뜯어 보지는 않았지만, 2.는 생성시 메모리에 올라가게 되므로 동일한 쿼리의 경우 인자만 달라지게 되므로, 매번 컴파일 되지 않아도 된다는 결론이 날듯 합니다. 


3. API

(1) Preparedstatement

public interface PreparedStatement extends Statement 

프리컴파일 된 SQL 문을 나타내는 오브젝트입니다. PreparedStatement 는 Statement를 상속받고 있습니다. 

SQL 문은 프리컴파일 되어 PreparedStatement 오브젝트에 저장됩니다. 거기서, 이 오브젝트는 이 문장을 여러 차례 효율적으로 실행하는 목적으로 사용할 수 있습니다. 


(2) Statement

public interface Statement 

정적 SQL 문을 실행해, 작성된 결과를 돌려주기 위해서(때문에) 사용되는 오브젝트입니다. 

디폴트에서는 Statement 오브젝트 마다 1 개의 ResultSet 오브젝트만이 동시에 오픈할 수 있습니다. 따라서, 1 개의 ResultSet 오브젝트의 read가, 다른 read에 의해 끼어들어지면(자), 각각은 다른 Statement 오브젝트에 의해 생성된 것이 됩니다. Statement 인터페이스의 모든 execution 메소드는 문장의 현재의 ResultSet 오브젝트로 오픈되고 있는 것이 존재하면, 그것을 암묵에 클로우즈 합니다. 

그리고 FOR 문등을 통하여 동일한 SELECT 를 여러번 실행해야 하는 경우에는, 그 사용성에 볼때 2번이 훨씬 효과적이라고 볼 수 있습니다. 


(3) 예제

1) Statement 

String sqlstr = null; 

Statement stmt = null; 

ResultSet rst = null; 


FOR(int i=0; i< 100 ; i++){ 

sqlstr = "SELECT name, memo FROM TABLE WHERE num = " + i 

stmt = conn.credateStatement(); 

rst = stmt.executeQuerey(sqlstr); 


2) PreparedStatement

String sqlstr = null; 

PreparedStatement pstmt = null; 

ResultSet rst = null; 


sqlstr = "SELECT name, memo FROM TABLE WHERE num = ? " 

pstmt = conn.prepareStatement(sqlstr); 


FOR(int i=0; i< 100 ; i++){ 

pstmt.setInt(1, i); 

rst = pstmt.executeQuerey(); 

}


4. PreparedStatement를 사용해야 하는 경우

(1) 사용자 입력값으로 쿼리를 생성하는 경우 

사용자에의해 입력되는 값을 가지고 SQL 작업을 할 경우 statement를 사용한다면 다음과 같이 될 것이다.

String content = request.getParameter("content");

stmt= conn.createStatement();

stmt.executeUpdate("INSERT INTO TEST_TABLE (CONTENT) VALUES('"+content+"');


사용자가 제대로 입력 하였다면 상관 없지만 content값에 "AA'AA"를 입력하였다면?

stmt.executeUpdate("INSERT INTO TEST_TABLE (CONTENT) VALUES('"+content+"'); 에서 에러가 발생할 것이다.

즉 SQL문은 다음과 같이 되는 것이다. INSERT INTO TEST_TABLE (CONTENT) VALUES('AA'AA');


이를 다음과 같이 수정한다면 위와같은 에러나 장애를 원천적으로 봉쇄할 수 있다

pstmt = conn.preapreStatement("SELECT * FROM TEST_TABLE WHERE CONTENT = :content");

pstmt.setString(1, content);

pstmt.executeUpdate();

이는 content값이 "'"가 들어왔다 하더라도 알아서 파싱 해주기 때문이다.

고로 사용자 입력 값으로 쿼리를 바인딩 할 경우에는 필히 pstmt를 사용하도록 하자! :)


(2) 쿼리 반복수행 작업일 경우

일반적으로 반복 수행 작업을 할 경우 아래와 같이 코딩 하게 된다.

1) Statement 사용

for (int i = 0; i < 100000; i++) {

stmt.executeUpdate("INSERT INTO TEST_TABLE VALUES('"+content+"');

}


2) PreparedStatement 사용

pstmt = conn.preapreStatement("INSERT INTO TEST_TABLE VALUES(?)"); <--- ⓐ

for (int i = 0; i < 10000; i++) {

pstmt.setString(1, content+i);

pstmt.executeUpdate();

}

종종 실수로 ⓐ번 문장이 for문으로 들어가는것을 보게된다! 주의!


cf.) DB의 종류에 따라 상황이 달라진다.

일반적으로 위와같은 코딩을 할 경우 2)경우가 1)보다 더 낳은 성능을 보인다고 알려져 있다. 즉 자바의 PreparedStatement의 사용은 오라클 DB에서 bind변수를 사용하도록 함으로 해서 DB서버에 미리 준비된 SQL을 사용하게 되고 파싱과정을 생략하기 때문에 결국 DB리소스를 효율적으로 사용하도록 하는 방법이 된다.

하지만 이것이 DB서버에 따라 다르다. MySql같은 경우는 1)과2)의 성능차이가 거의 나지 않는다.


--> 적당한 PreparedStatement의 사용

위와같은 이유로 PreparedStatement가 좋다! 모든 쿼리를 PreparedStatement로 하자! 만약 이와 같이 된다면 또다른 문제가 생긴다. 각 DB마다 SQL캐싱할 수 있는 한계가 있기 때문에 정작 성능상 캐싱되어야 할 쿼리가 그렇지 않은 쿼리 때문에 캐싱이 안 될 수 있기때문에 꼭 필요한 문장만 PreparedStatement를 쓰는것을 권고한다.


5. Statement를 받드시 사용해야 하는 경우

(1) Dynamic SQL을 사용할 경우

Dynamic SQL을 사용한다면 매번 조건절이 틀려지게 됨으로 statement가 낳다. 즉 캐싱의 장점을 잃어버립니다. 또한 Dynamic SQL일 경우 코딩도 Statement가 훨신 편하다.




[Comparison] 웹 서버와 웹 어플리케이션 서버


웹 서버와 웹 컨테이너 서버


웹서버와 JSP컨테이너는 별개라고 할수도 아니라고 할수도 있다. 대부분 JSP로 만들어진 사이트는 웹서버와 JSP컨테이너를 탑재하고 있는 WAS를 연동해 사용하기 때문이다.


쉽게 말하면 웹서버가 하는 일은 html,img등 일반 웹문서를 사용자에게 보여주는 역할만을 하지만, JSP컨테이너를 탑재하고 있는 WAS(Web Application Server)는 JSP를 컴파일하여 실행한 결과를 html으로 만들어 보여준다.웹서버만 구축되어 있는 서버는 웹페이지,이미지,영상등을 전달해 줄수는 있지만, JSP페이지를 컴파일해 동적인 페이지를 생성하지는 못한다. 이를 위해서는 JSP컨테이너가 탑재되어 있는 WAS가 필요한 것이다. 웹 서버는 웹문서를, WAS는 JSP 페이지를, 이런식으로 양분하여 역할분담을 함으로 서버에 부담되는 양을 줄이고자 함이다. 


웹 서버 : 정적인 처리 담당 html, 이미지등     ex)아파치

웹 어플리케이션 서버  (WAS) : jsp, 서블릿 담당(동적처리)   ex)톰켓

톰켓은 was의 기능 뿐만아니라 일반적인 html 이미지 처리도 가능, 굳이 둘을 분리해서 쓰는 이유는 속도면에서 분리하는게 조금더 빠르고 프록시를 이용하여 보안을 강화할 수 있음


1. 웹 서버

인터넷 웹브라우저의 요청이 들어오면 그에 해당하는 웹페이지를 찾아서 보내주는 일을 하는 컴퓨터를 지칭한다.

정확히 표현하면 인터넷 사용자의 URL요청을 받아서 그에 해당하는 웹페이지(HTML문서나 이미지)를 찾아서 다시 웹브라우저로 보내주는 것이다.


2. 웹어플리케이션 서버(WAS)

웹어플리케이션 서버는 웹서버에 웹어플리케이션을 합친 것이다.

우리가 웹페이지를 볼때 화면이 동적일 때가 있을 것이다. 동적이란 말은 이를테면 특정 URL을 요청했을 때 뉴스페이지 같은 곳에서는 각각의 기사에 대하여 다른 기사제목과 내용들이 표시 되는일들을 말하는데 정적인 웹 서버로는 이것을 처리가 불가능하다. 웹 서버가 웹어플리케이션 프로그램을 호출해야 가능한 일이다. JSP같은 기술이 웹어플리케이션의 역할을 담당한다.


3. 웹 컨테이너

웹어플리케이션을 실행해주는 도구이다. 웹어플리케이션이 JSP나 서블릿인데 이것을 실행 가능하게끔 해주는 것을 말한다. JSP를 해본 개발자라면 알 것이다. 톰캣이 웹컨테이너의 역할을 한다. 웹 어플리케이션을 실행할 수 있는 컨테이너. JSP, 서블릿을 해석할 수 있는 웹 서버


cp.) 웹 컨테이너란?

JSP와 서블릿을 사용한 웹 서버는 크게 URL 주소의 해석을 맡아 주는 HTTP 서버와 서블릿 클래스 또는 JSP 파일의 실행 요청을 처리해주는 웹 컨테이너(Web Container)로 구성된다. HTTP 서버는 단순히 어떤 주소(URL) 요청이 들어왔을 경우 그 주소에 미리 매핑되어 있는 콘텐츠(HTML 파일이나 이미지 등)를 사용자의 브라우저에 응답 형태로 전송하는 역할을 한다. 이 때 만일 요청된 URL이 서블릿 클래스 또는 JSP파일(ex. http://www.sevlet.com/servlet 또는 http://www.wervlet.com/home.jsp)일 경우 HTTP 서버는 이를 웹 컨테이너에서 처리하도록 클라이언트의 요청을 넘겨준다. 웹 컨테이너에서는 요청된 URL에 맞는(미리 설정된) 서블릿 클래스 또는 JSP 파일을 실행하여 그 결과를 HTTP 서버에 넘겨주게 되고 이는 응답 메시지의 형태로 사용자의 브라우저에 전성된다. 

즉 웹 컨테이너란 웹 서버의 내부에서 서블릿 클래스 또는 JSP 파일을 실행하기 위한 실행 환경을 제공하는 역할을 하며 특히 서블릿 클래스에 대한 웹 컨테이너를 서블릿 컨테이너, JSP 파일에 대한 웹 컨테이너를 JSP 컨테이너라고 한다. 다만 실제적으로 이 둘을 혼용하여 웹 컨테이너(서블릿 컨테이너)로 통칭하는 경우가 많다. 대표적인 웹 컨테이너로 자카르타 톰캣, 웹로직, Resin 등이 있다.


[Comparison] 윈도우 32비트와 64비트


윈도우 32비트와 64비트


윈도우 비스타나, 세븐(7)의 경우 32비트(86x)와 64비트(64x)를 지원합니다. 그런데 왜 이렇게 둘로 나뉘어 있을까?

32비트와 64비트를 의미하는것은 한번에 데이터를 처리하는량을 말합니다. 

32비트운영체제는 32비트만큼 데이터를 전송하고 64비트는 한번에 64비트를 전송한다는것입니다. 32비트는 수학으로따지자면 2의 32제곱, 64비트는 2의 64제곱만큼의 데이터가 전송됩니다. 그래서 데이터 처리능력, 속도, 동작등이 32비트보다 64비트가 훨씬빠를수밖에없는 것 입니다.

32비트와 64비트를 나누는 이유는 램사용량입니다. 자기가가지고있는 램이 4GB이상이면 64비트를 써야할것이고 4GB이하이시면 32비트를 써야할것입니다.(구지 4GB아니더라도 64비트는 구동가능합니다)


1. 속도가빠른 64비트를 쓰지 왜 구지 32비트를 쓰는것인가?

이문제의 답은 호환성에 따라 달라집니다. 현재 나와있는 대부분의 프로그램들은 32비트 위주로 개발되어있기때문에 64비트 운영체제에서는 32비트프로그램이 실행이 안되죠, 32비트가 64비트보다 처리속도과 동작속도가 느리지만 안정적으로 사용할수있기때문에 32비트를 쓰는것입니다.


2. 64비트를 쓰는 이유는 무엇인가?

여러가지 이유가 있을수있지만 대부분 이유는 메모리 용량때문입니다. 32비트 운영체제에서는 램을 3.9GB정도까지 인식을 하기 때문에 4GB이상의 램을끼워도 4GB전체를 읽지못하기때문에 별필요가 없는것입니다. 하지만! 64비트운영체제에서는 약100GB정도까지 인식이가능합니다 그렇기 때문에 4GB이상이신분들이 64비트를 쓰는이유입니다!


3. 64비트 운영체제를 사용하기위한 기본사양

Windows 7의 기준으로 하자면 64비트를 지원하는 3.0Ghz듀얼코어이상 프로세서 CPU, 3GB이상의 램, 10GB정도의 하드디스크 여유공간, DVD읽기와 쓰기를 지원하는 드라이브, Windows Aero사용가능한 그래픽카드와 64비트전용 드라이버가 필요합니다.


4. 64비트를 쓰면 32비트프로그램을 못쓰는가?

Windows 7 64비트의경우 WOW64라는 프로그래밍기술이 적용되었기때문에 32비트에서 사용하던 프로그램을 64비트에서도 실행가능합니다. Windows 7 64비트를 설치하시면 Program Files폴더가 두개있습니다.

하나는 'Program Files' 또다른 하나는 'Program Files(86x)' 86x가 붙여져 있지 않은것은 64비트 프로그램 설치공간이고 86x라고 되어있는 것은 32비트프로그램 설치공간입니다. 

만약 64비트만 지원하는 프로그램이면 Program Files에 설치가되고 32비트만 구동되는프로그램이라면 Program FIles(86x)에 저장됩니다. 32비트와 64비트 모두지원한다면 두개의폴더중 아무곳에 설치가 됩니다.


5. 조언글

왕복4차선과 8차선은 동시에 소화할 수 있는 교통량의 차이가 있습니다. 이론상으로는 두배의 차이가 나지만, 실제적으로는 그렇게 많은 차이는 아니고 약 50%정도 더 많이 소화할 수 있지요. 32비트와 64비트도 마찬가지라고 보시면 됩니다. 4차선도로에 맞는 신호체계를 8차선 도로에 그대로 적용하면 문제가 발생하지요. 따라서 8차선 도로에는 신호체계도 바꿔야합니다. 

보행자 신호도 더 길어져야하고, 차량 신호도 더 길어져야 합니다.

마찬가지로 32비트에서 64비트로 넘어가면서 하드웨어의 구조가 바뀌었으므로 소프트웨어도 바뀌어야합니다. 일례로 하드웨어가 잘 작동하도록 하는 드라이버도 32비트와 64비트는 달라야합니다. 그래서 32비트 드라이버를 64비트 환경에 설치할 수 없습니다.

뿐만 아니라 소프트웨어도 변경이 되어야합니다. 문제는 32비트에서 64비트로 넘어갈때의 시간이 오래 걸리고 있다는 것이지요. 32비트 환경이 10년이 넘은 상황에서 IT 환경도 엄청나게 바뀌었습니다. 그리고 거의 대부분이 32비트에 맞춰진 지금 "64비트가 좋으니 64비트로 다 바꾸자!"라고 해도 그 시간과 비용이 많이 필요하기 때문에 손바닥 뒤집듯히 휙하고 바꾸지 못하는 것이지요.

그래서 운영체제인 윈도우도 32비트와 64비트가 따로 나오고 있으며, 하드웨어도 두가지를 동시에 지원하도록 설계되고 있습니다. 물론 64비트 운영체제를 설치한다고 해서 32비트 소프트웨어를 사용할 수 없는 것은 아닙니다. 하위호환을 보장해서 현재의 환경에서 사용해도 문제가 없도록 하고 있지요. 

그럼 구태여 32비트에서 64비트로 넘어갈 필요가 없는거냐고 물으실 분들이 많습니다. 여기에 대한 제 답변은 "네. 넘어갈 필요 없습니다"입니다.

현재의 32비트와 64비트의 컴퓨팅 속도 차이는 거의 없습니다. 단 일례적으로 64비트 전용 소프트웨어에서는 더 속도가 빠르지요.

예를 들어서 이번에 새로 나온 어도비 CS5의 제품들중 일부는 64비트 전용으로 개발된 것이 있습니다. 이들 프로그램은 64비트 환경에서 제대로 그 성능을 발휘합니다.

64비트 환경은 더 많은 물리적 메모리를 지원하며, 더 많은 동시처리능력을 갖춥니다. 사진이나 동영상 편집등 많은 물리메모리를 필요로 하는 작업에서 64비트 환경은 더 나은 컴퓨팅을 보장합니다.따라서 강력한 컴퓨팅 환경을 필요로 하는 전문가들에게는 64비트 환경이 더 좋은 것입니다. 반면 그렇게까지 강력한 컴퓨팅을 필요로 하지 않는 분들에게는 32비트 환경으로도 충분한 것 입니다. 단순히 32비트에서는 3GB이상의 메모리를 지원 안하니까 64비트를 쓴다는 것은 어찌보면 낭비입니다. 중요한 것은 "자신이 무엇을 할 것이냐"입니다.


[IT용어] OS 관련 용어


OS 관련 용어


BIOS

컴퓨터에 접속된 기기를 제어하는 프로그램군을 말한다. 

OS를 기동시키기 전에 메모리나 하드웨어 등을 체크한다. 컴퓨터의 전원을 넣은 후에 특정 키를 누르면 BIOS 화면이 나타난다.

cf.) BIOS의 기능

1) 시스템 파라미터 설정

2) 전원 관리

3) CPU/메모리 설정

4) 주변 기기 설정


마더보드(Mother board)

메인보드라고도 하며, 컴퓨터를 작동하기 위한 부품 등을 꽂는 회로기판이다.

CPU나 메모리, 하드디스크 등 컴퓨터를 구성하는 부품을 접속하고 데이터 처리와 부품의 제어를 수행하는 기판이다.


CPU

CPU라고 하며, 외부에서 정보를 입력받아 기억하고 명령을 해석하여 외부로 출력한다.

컴퓨터의 작동을 제어하거나 연산 처리를 수행하는 장치로, 중앙연산처리 장치라고 하며 인간의 최에 해당한다. 열이 발생하므로 냉각용 쿨러 밑에 장착한다.


메모리

입력된 명령이나 프로그램, 데이터, 처리한 결과 등을 일시적으로 기억하는 장치로, 메인 메모리 또는 주기억 장치라고도 하며 메모리에 기억된 정보는 컴퓨터의 전원을 끄면 사라진다.


하드디스크

대용량 기억 장치로, 보조 기억 장치 또는 외부 기억 장치라고도 한다. 메인 메모리와 달리 컴퓨터의 전원을 꺼도 정보가 사라지지 않는다.


컴퓨터 아키텍처

주로 CPU의 종류를 가리키는 것으로, x86이나 x64등을 말한다.

OS는 컴퓨터의 아키텍처별로 만들어집니다. 여기서 말하는 아키텍처란, 주로 CPU의 종류를 가리키는 것으로, 그 종류에는 x86 x64 등이 있다.

cp.) x86이나 x64는 컴퓨터의 두뇌인 CPU의 시리즈명이다. x86은 주로 32비트 CPU x64는 x86을 확장한 64비트 CPU를 가리키는 것으로 컴퓨터의 구조(아키텍처)를 크게 구분한다.


커널(Kernel)

사용자의 조작을 처리하여 OS가 움직일 수 있도록 OS의 핵심 부분이다. . 커널은 사용자에게 보이지 않는다.(커널은 하드웨어에게 지시를 한다.)

CPU에게 계산을 시키거나 메모리 할당을 관리하는 역할은 커널이 담당한다.


쉘(Shell)

사용자의 지시를 해석해서 커널에게 전달하는 것으로 화면에 보이는 사용자 인터페이스 부분이다.(쉘은 사용자의 지시를 해석한다.)

쉘은 키보드 입력과 같은 사용자 조작을 커널에 전달한다. 쉘은 화면에 보이는 부분이다.

cf.) Windows나 Mac OS, Linux와 같은 OS는 다양한 모습과 조작감을 갖고 있는데, 중요한 것은 그 안의 내용이다. 이런 OS의 핵심 부분을 담당하고 있는 부분을 커널이라고 하며, 커널을 둘러 싸듯이 사용자에게 ‘모양’을 제공하는 부분을 쉘(shell:껍질)이라고 한다.

사용자 명령-> 쉘이 사용자의 지시 해석-> 커널이 하드웨어에 지시-> 결과 출력


쉘 인터페이스

- CUI(Character User Interface)

키보드의 입력 내용이나 계산 결과를 디스플레이상에 ‘문자’로 표시한다. 쉘은 OS조작을 하기 위해 명령이라고 하는 영숫자 문자열을 사용한다.

- GUI(Graphic User Interface)

디스플레이상의 ‘창’, ‘메뉴’, ‘버튼’과 같은 그래픽을 키보드나 마우스로 조작한다.


미들웨어(Middleware)

OS와 애플리케이션 사이에서 데이터를 주고받을 수 있도록 중개하는 소프트웨어이다.


API(Application Programing Interface)

OS나 프로그래밍 언어가 제공하는 기능을 애플리케이션에서 사용할 수 있도록 만든 인터페이스이다.


부팅(Booting)

컴퓨터의 전원을 넣은 후부터 운영제제가 기동되기까지 자동으로 처리되는 것을 부팅이라고 한다.


로드(Load)

하드디스크와 같은 기억 장치로부터 데이터를 메모리로 읽어들이는 것을 로드라고 한다.


부팅로더(Booting Loader)

부팅로더는 하드디스크상에 있는 OS를 기동시키기 위한 프로그램으로, 하드디스크에 있는 MBR(Master Boot Record)이라는 특별한 영역으로부터 실행된다. 부팅로더가 기종되면 OS를 기동 시켜준다.


디바이스

디바이스는 CPU나 메모리, 하드디스크와 같은 각종 기기를 총칭하는 말이다.

OS는 각 디바이스를 관리하는 기능을 가지고 있다. 디바이스는 크게 입력 장치와 출력 장치로 나눌 수 있다.

- 입력장치: 사용자가 컴퓨터를 움직이게 하기 위한 지시나 입력한 데이터를 컴퓨터에게 보개기 위한 장치이다. 

ex.) 마우스, 스캐너, 키보드 등

- 출력장치: OS 또는 실행하고 있는 프로그램으로부터 데이터를 받아 사용자가 인식할 수 있도록 인식할 수 있도록 표시하는 장치이다.

ex.) 액정 디스플레이, 프린터 등


디바이스 드라이버

디바이스 드라이버는 디바이스를 제어하는 프로그램이다. 컴퓨터에 접속되어 있는 디바이스를 OS에서 이용하려면 디바이스 드라이버가 필요하다.

디바이스의 사양은 제조업체나 기종에 따라 다르기 때문에 각 디바이스용 디바이스 드라이버를 OS에 설치한다.

ex.) 마우스 드라이버, 프린터 드라이버, 디스플레이 드라이버 등


플러그 앤 플레이

디바이스를 컴퓨터에 접속시켰을 때 디바이스 드라이버의 시스템 설치나 시스템 설정을 자동으로 수행하는 기능이다. 플러그 앤 플레이를 처리하는 기기와 드라이버가 필요하다.


레지스터

CPU안에는 레지스터라 불리는 일시적인 기억장치가 있어서 CPU가 연산한 결과를 저장한다. 메인 메모리와 비교하면 용량은 적지만 상당히 고속으로 작동한다.


내부 기억

CPU가 직접 제어할 수 있는 메모리에 프로그램이나 데이터를 저장한다. 컴퓨터의 전원을 끄면 저장된 데이터는 사라진다.


외부 기억

하드디스크나 미디어와 같이 데이터를 저장해 두는 장치를 말한다. 컴퓨터의 전원을 꺼도 데이터는 사라지지 않는다.


캐시

자주 사용하는 명령은 CPU안에 넣어두고 고속으로 처리하는데, 이것을 캐시라고 한다.


미디어

디바이스와 함께 이용하는 데이터를 기록해 두는 매체를 미디어라고 한다.

ex.) CD, USB 메모리, SD 메모리 카드 등


프로세스

프로그램의 실행 단위로, 메모리상에 할당된 프로그램을 말한다.

cp.) 메모리상에 할당된 프로그램을 ‘프로세스’라고 한다. 프로세스에는 ‘실행 상태’, ‘실행 가능 상태’, ‘대기 상태’가 있으며, 상황은 시시각각으로 변한다.

cp2.) 사용자가 프로그램을 실행하며 OS는 그 내용을 메모리상으로 읽어들여 처리를 실행한다.

이 메모리상에 할당된 프로그램을 ‘프로세스’라고 한다.


인터럽트(interrupt)

실행 중인 프로그램을 중단하고 우선순위가 높은 다른 프로그램에게 CPU를 할당하여 실행하는 것을 말한다.


- 내부 인터럽트

1) 프로그램 인터럽트: 오버플로어(Overflow: 계산 시 자리 넘침)로 인해 쓰기가 허가되지 않은 메모리 영역에 액세스했을 때 프로그램 인터럽트가 발생한다

-> 오버플로우가 발생한 것을 OS에게 알린다.

- 외부 인터럽트: 외부 인터럽트는 주변기기의 입출력 동작이나 하드웨어 고장, 오작동으로 인해 일어나는 인터럽트이다. 

1) 기계 체크 인터럽트: 전원 이상이나 하드웨어에 장애가 발생했을 때 기계 체크 인터럽트가 발생한다. 인터럽트 중에서 가장 우선된다.

-> 하드웨어에 장애가 발생한 것을 OS에게 알린다.

2) 타이머 인터럽트: 일정 시간 또는 일정 시간마다 하드웨어로부터 발생하는 인터럽트를 타이머 인터럽트라고 한다.

-> 시간이 경과했다는 것을 OS에게 알린다.

3) 입출력 인터럽트: 주변 기기의 입출력 동작이 완료되었을 때와 같이 상태가 변화했을 때 입출력 인터럽트가 발생한다.

-> 입출력 동작의 상태가 바뀌었다는 것을 OS에게 알린다.

4) 콘솔 인터럽트: 사용자가 키보드와 같은 입출력 장치를 조작하면 콘솔 인터럽트가 발생한다.

-> 사용자로부터 입력이 있었다는 것을 OS에게 알린다.


멀티태스킹

OS 관리하에서 여러 개의 태스크(프로세스)가 병행하여 작동하는 것으로 태스크를 순서대로 CPU에 할당하고 있기 때문에 여러 개의 태스크가 동시에 작동하고 있는 것처럼 보인다.


스케줄링

OS가 여러 개의 프로세스를 처리할 때 CPU에게 할당할 순서를 정하는 것이다.


데드락(Dead Lock)

2개의 프로세스가 공유 자원을 잠근 채 서로의 공유 자원을 액세스할 때 양쪽 프로세스가 둘 다 영구적으로 대기상태가 되는 것을 말한다.

즉, 두 쓰레드가 자원을 점유한 상태에서 서로 상대편이 점유한 자원을 사용하려고 기다리느라 진행이 멈춰있는 상태를 말한다.


스풀(Spool)

CPU로부터 입출력 장치로 가는 명령을 메모리와 같이 비교적 고속인 기억 장치에 일시적으로 저장하는 것을 ‘스풀’이라고 한다. 예를 들어 프린터는 CPU와 비교해서 처리 속도가 느리므로 스풀을 사용하여 CPU의 처리와 입출력 종작의 처리의 차이를 완화시킬 수 있다.


디스패치(dispath)

OS가 가장 우선순위가 높은 실행 가능 상태의 프로세스에 대해 CPU의 사용 권한을 할당하는 것을 ‘디스패치’라고 한다.


프리엠션(Preemption)

인터럽트에 의해 CPU의 할당을 해제하는 것을 말한다.


트랙(Track)

하드디스크의 기록면으로, 동심원 형태로 분할된 영역을 말한다.


섹터(Sector)

트랙을 다시 분할한 영역으로, 자기 디스크의 경우 섹터는 보통 512byte의 영역을 가진다.


파일 시스템 

기억 장치에 파일이나 디렉터리를 기록하는 방법으로, OS에 따라 다양한 파일 시스템이 있다.


스레드

프로세스 안의 프로그램 실행의 흐름을 스레드라고 한다. 스레드는 분기가 가능해서 여러 개의 스레드를 동시에 실행할 수 있다.


RAM(Random Acess Memory)

데이터의 읽기 쓰기가 가능한 메모리로, 컴퓨터의 전원을 끄면 기록한 내용이 사라진다.


ROM(Read Only Memory)

기본적으로 데이터 읽기 전용 메모리로, 컴퓨터의 전원을 꺼도 기록한 내요이 사라지지 않는다.


보조기억장치

하드디스크와 같이 프로그램이나 데이터를 저장하는 외부 기억 장치로, 메모리에 비해 속도가 느리다.


캐시 메모리

속도가 느린 하드디스크의 결점을 보완하기 위해 자주 참조하는 프로그램이나 데이터를 일시적으로 읽어들이기 위한 메모리를 말한다.


가상 메모리

하드디스크 안에 페이징 파일을 작성한 후 이 파일과 메인 메모리를 합쳐 가상의 메모리 영역으로 간주하는 것을 말한다.


힙(Heap)은 파일로부터 읽어들인 테이터나 네트워크상에서 수신한 데이터를  저장할 때와 같이 필요한 만큼만 확보하여 사용하는 메모리 영역이다. 필요가 없어지면 해제한다.


스택

스택은 프로그램 실행 중에 이용하는 변수의 내용을 일시적으로 저장하는 메모리 영역이다. 스택은 프로그램의 한 단위가 시작될 때 자동적으로 확보되고 처리가 종료되면 자동으로 해제된다.


가비지 컬렉션

힙 영역이 가득 차서 액세스 할 수 없을 때는 불필요한 메모리 영역을 자동으로 해제하는데, 이를 가비지 컬렉션이라고 한다.

'IT용어' 카테고리의 다른 글

[IT용어] 네트워크 관련 용어  (0) 2014.12.20
[IT용어] ㅎ  (0) 2014.12.20
[IT용어] ㅍ  (0) 2014.12.20
[IT용어] ㅌ  (0) 2014.12.20
[IT용어] ㅋ  (0) 2014.12.20

[IT용어] 네트워크 관련 용어


네트워크 관련 용어


LAN(Local Area Network)

한 건물 내 또는 학교나 회사 등 비교적 좁은 범위에 한정된 지역 내에 있는 컴퓨터를 통신선으로 연결한 네트워크로, 근거리 통신망이라고도 한다.


WAN(Wide Area Network)

광역 통신망으로, 먼 거리의 지역을 하나로 묶는 컴퓨터 네트워크를 말한다.

공중 통신 사업자가 제공하는 전용선이나 ISDN 등을 이용하여 위치적으로 떨어진 지역 내에 있는 컴퓨터를 광범위하게 연결한 네트워크로, 관역 통신망이라고도 한다.


방화벽(Firewall)

인터넷 접속 시 외부 네트워크로부터의 액세스에 대해 보안을 확보하기 위해 특정한 액세스를 제한하는 소프트웨어를 말한다.


프로토콜

컴퓨터끼리 통신을 할 때는 데이터 송수신 방법이나 데이터 구성 등이 양쪽 모두 통일 되어야 하기 때문에 프로토콜이라는 공통된 약속에 따라 통신을 수행한다.

컴퓨터 간에 데이터를 주고 받을 때 필요한 통신 장비 간에 서로 정해 놓은 규칙과 약속을 말한다. 인터넷에서는 TCP/IP 프로토콜이 사용된다. 


TCP/IP 프로토콜

TCP는 데이터를 일정한 크기로 분할하고, IP는 TCP가 분할한 데이터에 송신처를 붙여서 네트워크로 보낸다.

엄밀히는 TCP와 IP라는 프로토콜을 가리키는 말이지만, 일반적으로 인터넷에서 사용되는 통신 프로토콜군을 총칭하여 TCP/IP라고 한다.


HTTP 프로토콜

웹브라우저로부터의 요청에 따라 HTML 파일이나 그림을 보내고 받는다. 각 애플리케이션 레벨에서 지원한다.

인터넷에서 하이퍼텍스트 문서를 전송하기 위해 사용되는 통신 규약이다. 인터넷에서 http://www..로 되어 있는 것은 www 주소에서 문서 전송을 HTTP 통신 규약으로 처리하는 것이다.


FTP 프로토콜

컴퓨터끼리 파일을 전송한다.


telnet 프로토콜

네트워크상의 컴퓨터에 접속하여 명령 입력으로 컴퓨터를 조작한다.


SMTP 프로토콜

전자메일을 보내는데 사용되는 TCP/IP 프로토콜이다. SMTP에 메일을 받는 기능도 있지만 거의 사용되지 않고 , 주로 POP가 처리한다.


POP (Post Office Protocol)

Post Office Protocol의 약자로, 메일 서버로부터 전자메일을 받는 데 사용되는 TCP/IP 프로토콜이다.


TCP&UDP

TCP/IP 5계층 중 트랜스포트층에서 사용되는 프로토콜로, TCP는 데이터 전송의 정확성을 UDP는 데이터 전송의 속도를 강조한 프로토콜이다.


IP 전화

정확히 말하면 VoIP(Voice over Internet Protocol) 기술을 말하며, IP 망에서 음성 데이터를 실어서 전송하는 것이다. IP망은 기존의 전화선과는 달리 여러 데이터의 전송이 가능하며 비용이 저렴하고 확장성 뛰어나다.


IP 주소

인터넷 상의 컴퓨터들을 식별하기 위해 인터넷에 연결된 컴퓨터에 주어지는 숫자로, 일반적으로 32비트로 나타낸다. 인터넷 접속 시마다 바뀌는 유동 IP와 ISP로부터 부여받은 고정 IP가 있다.

숫자로 된 IP주소를 www.cyber.co.kr과 같이 알기 쉽게 만든 것이 도메인이다.


IP 헤더

데이터를 누가 누구에게 보내는지 또한 어떤 경로로 보내는지 등과 같은 정보를 모아 둔 것으로, 송신 측 IP주소와 수신측 IP 주소 등이 들어간다.


IPv4

IP version 4를 말하는 것으로 현재 인터넷 공인 IP 주소 체계이다. IP주소를 32비트로 나타내며, 약 42억개를 표현할 수 있다. IP주소는 전세계 컴퓨터마다 고유해야 하므로 IPv4로 표현할 수 있는 IP 주소가 고갈될 것을 대비해, 128비트를 사용하여 거의 무한대의 IP주소를 가질 수 있는 IPv6의 사용을 검토하고 있다.


서브넷 마스크

IP 주소에서 네트워크와 호스트부의 경계를 나타내기 위해 사용되는 32비트의 숫자다. 서브넷

마스크 설정에 따라 네트워크를 보다 효율적으로 활용할 수 있다.


ICMP

목적지로 가는 경로를 찾아 주는 기능밖에 없는 IP 프로토콜을 도와서 목적지에 제대로 도착했는지 등과 같은 오류 메시지를 알려주는 역할을 하는 프로토콜이다. ICMP 메시지는 IP 패킷안에 삽입되어 보내지는데, 이것을 캡슐화라고 한다.


메일러(mailer)

전자메일을 주고 받는 데 사용하는 애플리케이션 프로그램을 말한다. MUA(Mail User Agent)

라고도 한다. 아룻룩이란 유도라 등이 있다.


웹 서버

웹 정보의 발신을 목적으로 한 서버이다. HTML 문서나 그림, 음성, 동영상 등의 정보를 저장해두고, 웹 브라우저로부터 요청이 있을 EO 필요한 정보를 송신한다.


NIC(Network Interface Card)

흔히 랜 카드라고 불리는 것으로, 네트워크에 접속하기 위해 컴퓨터 내에 설치되는 확장 카드다.

메인보드의 형태에 따라 ISA용과 EISA용이 있다.


MAC 주소

Media Access Control Address의 약자로, 랜 카드마다 할당되어 있는 고유한 물리 주소를 말한다. 길이는 48비트이며, 네트워크 상의 다른 장치들은 이 주소를 사용하여 네트워크 내의 특정한 포트를 찾는다. 네트워크 상에서 설정된 논리 주소인 IP 주소와는 달리 변경할 수 없다.


데이터베이스 서버

데이터베이스 관리를 전문으로 하는 서버이다. 데이터베이스는 사용자나 다른 서버로부터 명령을 처리하여 결과를 반환한다.


라이선스

스프트웨어 제품을 이용하기 전에 이용 허가를 받는 것으로, 라이선스 인증을 하면 모든 기능을 사용할 수 있다.


통신 프로토콜

통신 프로토콜은 서로 다른 기종의 컴퓨터의 사이에 주고 받기 위한 약속된 규약이다. 가장 대표적인 것이 TCP/IP이다. 갑과 을의 컴퓨터가 서로 자료를 주고 받을 때 어떠한 형식으로 주고 받을 것인지를 사전에 약속하는 것이다. 무엇을, 어떻게, 언제 통신할 지를 서로 약속할 수 있다.


포트

한 대의 컴퓨터에 여러 개의 서버 프로그램이 실행될 수 있다. 예를 들어 하나의 호스트에서 웹서버와 FTP서버가 실행될 수 있다. 동일한 호스트에 여러 서버 프로그램이 실행되고 있기 때문에 클라이언트는 호스트 주소 만으로는 원하는 서버 프로그램에 접속할 수 없게 된다. 따라서 각 서버는 고유의 포트 번호를 이용해서 서비스를 제공하게 되며, 클라이언트는 이 포트 번호를 이용해서 원하는 서버에 연결할 수 있게 된다.

일반적으로 컴퓨터나 통신 장비에서 다른 장치와 물리적으로 접속되는 부분을 말하며, 특히 TCP/IP에서는 클라이언트 프로그램이 네트워크 상의 특정 프로그램을 지정하는 방법으로 사용된다.

(통신에 사용하는 프로토콜이 데이터를 주고 받을 때 사용하는 출입구로, 포트 번호에 따라 데이터의 행선지가 정해진다.)


패킷(packet)

데이터 전송시에 데이터를 일정한 크키로 잘라서 보내는데, 패킷이란 이때 사용되는 정보의 전송 단위이다. 한 패킷은 보통 1024비트이다. 각 패킷에는 데이터뿐만 아니라 데이터의 수신처, 주소, 제어 부호 등의 제어 정보가 담겨 있다.


MIME(Mutipurpose Internet Mail Extension)

인터넷 메일 교환을 위한 멀티미디어 문서 타입을 정의한 것이다. MIME 타입으로는 text, application, image, audio, video 등 7개가 있으며, 모두 원할한 문서 교환을 위해 사용되는 것이다.


스트리밍(streaming)

멀티미디어 파일을 다운로드와 동시에 재생 가능하도록 하는 서비스를 말한다.

stream은 ‘물이 흐른다’는 뜻으로, 멀티미디어 파일을 다운로드와 동시에 재생이 가능하도록하는 서비스를 말한다.


프로바이더(provider)

일반적으로 ISP(Internet Service Provider)

개인이난 기업체에게 인터넷 접속 서비스, 웹사이트 구축 및 웹호스팅 서비스 등을 제공하는 회사를 말한다. 


라우터(router)

목적지까지 가장 빠른 길을 찾아 주면서 네트워크 간을 연결하는 장비로, 인터넷은 수많은 라우터들이 서로 연결되어 만들어진 거대한 네트워크이다.


라우팅(routing)
라우터는 들어오는 모든 패킷을 목적지로 보내는 역할 가지고 있는데, 이 과정, 즉 목적지로 패킷을 전송하는 과정을 라우팅이라고 한다. 라우팅에는 정적 라우팅과 동적 라우팅 두 종류가 있다.

라우팅 테이블
라우팅을 하기 위해 필요한 정보를 모아 놓은 테이블로, 수신 네트워크 주소와 다음 홉(hop) 주소, 경과 시간 등이 들어간퀱os(Denial of Service) 공격
한 사용자가 시스템의 리소스를 독점하거나 모두 사용 또는 파괴함으로써 다른 사용자들이 이 시스템의 서비스를 올바르게 사용할 수 없도록 만드는 것을 말한다.

Dos(Denial of Service) 공격
한 사용자가 시스템의 리소스를 독점하거나 모두 사용 또는 파괴함으로써 다른 사용자들이 이 시스템의 서비스를 올바르게 사용할 수 없도록 만드는 것을 말한다.

인터넷
전 세계의 컴퓨터가 서로 연결되어 정보를 주고 받을 수 있는 거대한 통신망으로, TCP/IP 프로토콜을 이용한다.

www 
인터넷으로 연결된 컴퓨터들이 서로 정보를 주고 받는 공간을 말한다.

cp.) WWW의 구조 
웹 페이지를 네트워크서 이용하기 위한 구조를 'WWW'라고 한다. WWW에서 정보를 제공하는 컴퓨터를 ‘웹 서버’라고 한다. 또한 컴퓨터에서 정보를 제공하는 프로그램을 ‘웹서버’라고도 한다.
- WWW를 지지하는 기술 -HTML,CSS
요소란 시작태그부터 종료태그까지를 말한다.(요소=태그)
웹 브라우저에서는 HTML 태그는 표시되지 않고, HTML 태그 사이에 있는 요소의 내용만 표시된다.
cf.) Element 오브젝트: form 오브젝트의 각 부품에 해당
    배열요소: 하나의 배열에 들어간 각각의 값을 말한다.(첨자로 구분한다.) JavaScript에서는 배열 요소에 따른 다른 데이터형의 값을 저장할 수 있다.

URL(Uniform Resource Lacator)
네트워크에서 자원이 어디에 알려주기 위한 식별자를 말한다. 흔히 URL을 웹 사이트 주소라고 한다.

도메인
1. 도메인이란
- IP: 인터넷에 연결되어 있는 장치들은 각각의 장치를 식별할 수 있는 주소이다.
- 네임 서버: 도메인 요청을 고유 IP로 변경해준다. → 요청 컴퓨터에 전달하여 해당 IP로 접속한다.
- 도메인 구성요소
ex.) daum.co.kr
daum: 컴퓨터의 이름
- URL의 이해
opentutorials.org/course/234/2345 → URL
도메인: 서비스가 운영되고 있는 서버를 식별하는 단위
URL: 서버에서 운영하고 있는 다양한 컨텐츠를 식별하기 위한 것
cf.) 도메인 검색 업체: whoisdomain.kr, 카페 24
blognaver.0002.org(155.68.234.22)
www.0002.org(123.234.12.34) (www 생략시 www자동포함 → default)        
 → 호스트 2개에 도메인이 한 개, 하나의 도메인으로 여러개의 호스트에 연결
- 호스트: 데이터에 의해 실제 서비스하는 컴퓨터
www와 blognaver가 호스트에 해당한다.


포워딩(forwarding)

도메인으로 접근한 사용자를 다른 도메인으로 보내는 행위

ex) 0002.org로 접근시 → opentutorials.org로 보냄

고정포워딩: 도메인이 바뀐 것이나 브라우저 상에서 ooo2.org가 그대로 유지

유동포워딩: ooo2.org로 접근시 주소가 opentutorials.org로 변경하여 이동


네임 서버 

도메인에 해당하는 ip를 알려주는 서비스

cf.) DNS server

웹 기반 도메인 관리 서비스


SSH(Secure Sell)- 통신 프로토콜

원격지 컴퓨터: 멀리 떨어져 있는 컴퓨터

SSH 서버가 설치 되어 있는 컴퓨터를 SSH Client 컴퓨터로 쉘로 제어한다.

cf.) 쉘: 명령어를 이용해서 컴퓨터를 제어하는 방식- 명령어 방식으로 원격지의 컴퓨터를 제어하는 방식이 SSH이다.

cf.) 예전에는 telnet으로 원격지 제어했다. 그러나 보안 취약(평문으로 데이터를 주고 받기[클라이언트와 서버간]에 중요한 문장에는 SSH라는 암호화된 방식으로 데이터를 주고 받는다. 따라서

데이터를 중간에 가로 채도 암호화 문장 취득하므로 소용없다.

cf.) 윈도우 운영체제에는 기본적으로 SSH Client 설치 -> 따로 설치 요한다.(putty, xshell)

    SHH server: 리눅스에서 따로 설치 요한다.


host 파일

host를 이용하면 특정 ip에 해당하는 ip를 직접 자신의 컴퓨터에 셋팅할 수 있다.

tip) cmd에서 "ping daum.net" → 어떤 ip를 가지고 있는지 알 수 있다.

cf.) hosts 파일 변경 후 관리자의 권한으로 실행해야 한다.(hosts 파일은 중요한 파일이므로 관리자만 수정 가능)

cf.) 브라우저가 도메인에 해당하는 IP를 찾는 순서

1 local cache를 검색한다. ipconfig /renew → locacache 내용 삭제

2 hosts 파일을 검색한다.

3 도메인 네임서버를 검색한다.


Header

송신측의 각 계층에서는 수신측의 동일한 계층에서 필요한 정보를 공통된 서식으로 데이터에 추가해 간다.

헤더란 데이터를 처리하는 데 필요한 정보를 데이터 앞에 추가한 것을 말한다.

데이터 뒤에 추가하는 것을 트레일러라고 한다.



'IT용어' 카테고리의 다른 글

[IT용어] OS 관련 용어  (0) 2014.12.20
[IT용어] ㅎ  (0) 2014.12.20
[IT용어] ㅍ  (0) 2014.12.20
[IT용어] ㅌ  (0) 2014.12.20
[IT용어] ㅋ  (0) 2014.12.20

[IT용어] ㅎ



HTTP [hypertext transfer protocol] 

인터넷에서, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약을 말한다.

인터넷에서 하이퍼텍스트(hypertext) 문서를 교환하기 위하여 사용되는 통신규약이다. 하이퍼텍스트는 문서 중간중간에 특정 키워드를 두고 문자나 그림을 상호 유기적으로 결합하여 연결시킴으로써, 서로 다른 문서라 할지라도 하나의 문서인 것처럼 보이면서 참조하기 쉽도록 하는 방식을 의미한다.

http는 1989년 팀 버너스 리(Tim Berners Lee)에 의하여 처음 설계되어 인터넷을 통한 월드 와이드 웹(World-Wide Web) 기반에서 전 세계적인 정보공유를 이루는데 큰 역할을 하였다. http의 첫번째 버전은 인터넷을 통하여 가공되지 않은 데이터를 전송하기 위한 단순한 프로토콜이었으나, 데이터에 대한 전송과 요구·응답에 대한 수정 등 가공된 정보를 포함하는 프로토콜로 개선되었다. 

인터넷 주소를 지정할 때 'http://www....'와 같이 하는 것은 www로 시작되는 인터넷 주소에서 하이퍼텍스트 문서의 교환을 http 통신규약으로 처리하라는 뜻이다. 


HTTPS [hypertext transfer protocol over Secure Sockets Layer, HTTP over SSL]

하이퍼텍스트 전송 규약(HTTP) 계층 아래의 SSL 서브 계층에서 사용자 페이지 요청을 암호화, 

복호화하는 브라우저에 설치된 넷스케이프 웹 프로토콜. TCP/IP에서 HTTP 포트 80 대신에 포트 443을 사용하고, SSL은 RC4 스트림 암호 알고리즘용으로 40비트 키 크기를 사용한다. 

넷스케이프 브라우저에서 https://URL로 페이지를 지정하면 HTTPS는 그것을 암호화하고, 도착된 https://URL은 HTTPS 서브 계층에서 복호화된다.

HTTPS와 SSL은 사용자의 송신자 인증을 위해 서버로부터 X.509 디지털 인증서 사용을 지원한다.


하이퍼텍스트 [hypertext] 

하이퍼링크(hyper link)와 쌍방향성이라는 컴퓨터의 특성을 결합한 것으로 1960년대에 테오도르 넬슨이 만든 컴퓨터 관련용어.파생텍스트라고도 한다. 1960년대 컴퓨터 개척자 테오도르 넬슨(Theodore Nelson)가 'hyper(건너 편의, 초월, 과도한)'와 'text'를 합성하여 만든 컴퓨터 및 인터넷 관련 용어이다.

일반 문서나 텍스트는 사용자의 필요나 사고의 흐름과는 무관하게 계속 일정한 정보를 순차적으로 얻을 수 있지만, 하이퍼텍스트는 사용자가 연상하는 순서에 따라 원하는 정보를 얻을 수 있는 시스템이다. 즉, 문장 중의 어구나 단어, 그리고 표제어를 모은 목차 등이 서로 관련된 문자데이터 파일로서, 각 노드(node)들이 연결된 네트워크로 구성되어 효율적인 정보검색에 적당하다. 여기서 노드는 하이퍼텍스트의 가장 기초적인 정보단위를 말한다.

하이퍼링크(hyper link)와 쌍방향성이라는 컴퓨터의 특성을 결합한 것으로 독자들이 기존 텍스트의 선형성(線形性)·고정성·유한성의 제약에서 벗어날 수 있는 개념이다.

실제로 독자들은 한 텍스트 안에서 건너뛰어 읽거나 각주(脚註)로 옮겨가거나 다른 텍스트를 참고하려고 읽기를 멈추거나 아니면 다른 텍스트가 더 좋을 듯 싶어 읽기를 포기하는 일 등을 언제나 할 수 있다. 그러나 컴퓨터와 현대적인 소프트웨어가 많이 도입되면서 텍스트의 이동능력, 즉 한 블록에서 다른 블록으로 옮겨가는 능력이 크게 향상되었다. 

미국 작가 조지 P. 랜도(George P. Landow)는 저서 《하이퍼텍스트 Hypertext》(1992)에서 탈중심화(decentering)의 기획, 상호텍스트성(intertextuality)의 개념, 쓰기 좋은 텍스트(writerly text), 선형적·고정적 텍스트의 탈피 등과 같은 이론적 개념을 기술적으로 보완한다고 보았다. 


하이퍼링크[hyperlink] 

인터넷 웹상에 나타나는 내용 중 다른 사이트와 연결돼 있는 단어는 본문글씨와 다른 색깔로 표시된다. 이 글씨를 클릭하면 바로 관련 사이트로 연결된다. 예를 들어 신문기사 사이트에 관련 인물 이름이 나 오는데, 이 글씨가 다른 색 글씨로 표기돼 있어 클릭하면 인물정보사이트와 연결되는 것이다. 


호스트 [host] 

컴퓨터 네트워크와 원거리 통신에서 프로그램이나 데이터 파일을 다른 컴퓨터에서 사용할 수 있도록 하는 등 중앙 집중적인 기능을 수행하는 컴퓨터. 호스트 컴퓨터에 연결한 사용자는 전자 우편과 텔넷, 그리고 FTP와 같은 응용 프로그램을 사용하여 원하는 서비스를 요청할 수 있다. 이 말의 원래의 의미 「주인」과 같이 하드웨어, 소프트웨어 분야를 가리지 않고 「상위」, 「친(親)」, 「주(主)」, 「호스트」로 번역한다. 호스트 컴퓨터(host computer), 호스트 CPU(host CPU), 호스트 프로세서(host processor) 등의 복합어가 있다. host와 대조적으로 사용되는 것은 새틀라이트(satelite)이다. 분산 데이터 처리(distributed data processing)에도 관련된 용어이다.

cp.) 인터넷에서 호스트는, 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터를 말한다. 호스트는 특정한 호스트번호를 갖는데, 이는 네트웍 번호와 합해져서, 고유의 IP 주소를 이루게된다. 인터넷 서비스 제공업체를 통한 PPP 사용자의 경우에는, 접속되어있는 동안에만 고유한 IP 주소를 갖게되며, 그 시간동안은 해당 사용자의 컴퓨터도 하나의 호스트가 되는 것이다. 이러한 맥락에서 보면, 호스트란 네트웍의 하나의 노드라고 볼 수도 있다.


Hot Spot [핫스팟]

무선 LAN 환경이 지원되는 제한된 장소를 가리킨다. AP(Access Point)가 설치된 곳으로 무선 LAN이 장착된 노트북 PC에서 인터넷을 사용할 수 있게 지원해준다.

cf.) AP(Access Point)

무선 LAN 카드를 이용하여 인터넷 서비스를 받을 수 있도록 지원해 주는 장비이다. 유선 네트워크의 끝단에 장착된다.


'IT용어' 카테고리의 다른 글

[IT용어] OS 관련 용어  (0) 2014.12.20
[IT용어] 네트워크 관련 용어  (0) 2014.12.20
[IT용어] ㅍ  (0) 2014.12.20
[IT용어] ㅌ  (0) 2014.12.20
[IT용어] ㅋ  (0) 2014.12.20

[IT용어] ㅍ



프로세스 [process] 

컴퓨터 내에서 실행중인 프로그램을 일컫는 용어.

여러 분야에서 과정(過程) 또는 처리(處理)라는 뜻으로 사용되는 용어로, 컴퓨터 분야에서는 ‘실행중인 프로그램’이라는 뜻으로 쓰인다. 1960년대 중반 멀틱스(Multics:multiplexed information and computing service) 시스템을 설계한 벨전화연구소의 연구원들이 처음 사용했다고 알려져 있다. 프로그램 또는 그 일부를 뜻하기도 하고, 데이터의 입력이나 출력 등을 조작하거나 처리하는 것을 말하기도 한다.

부모프로세스(parent process)라는 상위계층과 자식프로세스(child process)라는 하위계층이 존재한다. 부모프로세스는 프로그램이나 명령어에 의해 시작되며, 자식프로세스는 부모프로세스에 의해 만들어지는 것을 말한다. 하나의 부모프로세스는 여러 개의 자식프로세스를 관리하는데, 여러 개의 자식프로세스가 하나의 CPU에서 동시에 처리되는 것처럼 보이는 것을 멀티태스킹(multitasking)이라고 한다.

리엔지니어링에서는 과업이 아닌 연속적 업무의 묶음을 말한다. 예를 들며, 주문프로세스는 소비자의 주문이 접수되는 단계에서 주문 품목이 소비자에게 전달되기까지의 모든 과정을 의미한다. ISO9000시리즈 개정2000판에서는 ‘입력을 출력으로 변환시키는, 상호관련되거나 상호작용하는 활동의 집합’이라고 정의하였다. 


FTP [file transfer protocol] 

인터넷을 통해 한 컴퓨터에서 다른 컴퓨터로 파일을 전송할 수 있도록 하는 방법과, 그런 프로그램을 모두 일컫는 말이다.인터넷을 통하여 어떤 한 컴퓨터에서 다른 컴퓨터로 파일을 송수신할 수 있도록 지원하는 방법과 그런 프로그램을 통칭하기도 한다. FTP를 이용하면 자신이 원하는 프로그램이나 각종 데이터를 무료나 저렴한 가격에 살 수 있다. 또 용량이 큰 파일도 빠르게 송수신할 수 있다. 파일을 송수신할 때에는 정당한 자격, 즉 원격 호스트 컴퓨터를 이용할 수 있는 사용자 ID와 패스워드(password)가 있어야 원하는 원격 호스트 컴퓨터에 접속할 수 있다. 

그러나 인터넷상에는 패스워드가 없어도 접속할 수 있는 공개 FTP 호스트가 있다. 이러한 FTP 호스트를 Anonymous FTP라고 하는데 전세계적으로 이러한 Anonymous FTP는 수천 개에 이른다. 사용자로 등록하지 않고서도 anonymous라는 ID와 패스워드로 자신의 E-mail 주소를 설정하면 원격지 호스트에 접속하여 파일을 쉽게 송수신할 수 있다. 


프로토콜 [protocol] 

컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 통신규약. 

컴퓨터 간에 서로 통하는 언어로 컴퓨터 간에 자료를 주고받을 때 사용되는 기본 언어다. 원래는 조약 원안ㆍ의정서 등을 뜻하는 외교용어지만 컴퓨터 용어로는 통신회선을 이용하여 컴퓨터와 컴퓨터, 컴퓨터와 단말기끼리 데이터를 주고받을 경우의 상호약속, 즉 통신규약을 뜻한다. 일반적으로 기종이 다른 컴퓨터는 통신규약도 다르므로 기종이 다른 컴퓨터 간에 정보통신을 하려면 표준 프로토콜을 설정하여 각각 이를 채택하여 통신망을 구축해야 한다. 인터넷에서 기본으로 사용되는 통신 규약은 TCP/IP 프로토콜이다. 프로토콜을 최초로 상용화한 것은 1974년 발표된 IBM사의 SNA(systems network architecture)다.

cf.) 인터넷 통신 프로토콜에는 TCP/IP, FTP, SMTP, HTTP 등 수없이 많은 종류의 프로토콜이 있다.

cp.) 사람들이 소식을 주고 받는 방법은 전화, 전보, 편지등 여러 가지가 있다. 마찬가지로 네트워크 상에서도 다양한 방법을 통해서 데이터를 주고 받을수 있다. 데이터를 주고 받으려먼 규칙이 존재해야 한다. 한 사람은 전화를 사용하고 또 한사람은 편지를 사용한다면 서로간에 원활한 소통을 할 수가 없기 때문이다. 따라서 기본적으로 두 사람이 데이터를 주고 받는 방법을 약속할 필요가 있는데, 이것이 바로 프로토콜이다. 한마디로 프로토콜이란 ‘컴퓨터 상호간의 대화에 필요한 통신 규약’을 의미한다.


포트 [port] 

모뎀과 컴퓨터 사이에 데이터를 주고받을 수 있는 통로.컴퓨터에서 포트는 크게 두 가지 의미를 지닌다. 첫째는 컴퓨터의 주변장치를 접속하기 위해 사용되는 연결 부분을 의미한다. 대개 소켓이나 플러그 등의 형태로 되어 있다. 정보가 드나드는 출입구로, 주로 프린터를 접속하기 위한 센트로닉스 등의 병렬포트와 기타 주변장치를 접속하기 위한 RS-232C 등의 직렬포트가 있다.

둘째, 프로그래밍에서는 논리적인 접속장소를 뜻한다. 특히 TCP/IP를 사용할 때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용된다. TCP/IP의 상위 프로토콜을 사용하는 응용프로그램에서는 인터넷번호 할당 허가위원회(IANA)에 의해 미리 지정된 포트번호들을 가지고 있다. 이런 포트번호들은 '잘 알려진 포트들'이라고 불린다. 다른 응용프로그램 프로세스들은 접속할 때마다 포트번호가 새로 부여된다. 포트번호는 0부터 65535까지이며, 0부터 1023까지는 어떤 특권을 가진 서비스에 의해 사용될 수 있도록 예약되어 있다. HTTP서비스를 위해서는 대개 80번 포트가 지정된다. 

포트번호는 1) 잘 알려진 포트(Well known ports): 0~1023, 2) 등록된 포트(Registered ports): 1024~49151, 3) 다이나믹 포트(Dynamic or Private ports): 49152~65535 으로 지정되어 있다.

cf.) 80번 포트 [port]

웹 서버나 HTTPD(hypertext transport protocol daemon)에서, 80번 포트는(서버를 설치 할 때 기본 설정을 취했다고 가정하면) 웹 클라이언트로부터의 요구가 들어오기를 기대하는 포트이다. 이 포트는 NCSA 서버에서는 0~65536번의 범위 내에서 설정될 수 있다. 그러나 서버 관리자는 그 서버를 단 하나의 포트 번호만이 인식되도록 설정한다. 기본적으로 웹 서버의 포트 번호는 80번이다. 실험적으로 하는 서비스는 대개 8080번 포트에서 실행될 수 있다.


방화벽 [firewall] 

기업이나 조직의 모든 정보가 컴퓨터에 저장되면서, 컴퓨터의 정보 보안을 위해 외부에서 내부, 내부에서 외부의 정보통신망에 불법으로 접근하는 것을 차단하는 시스템이다.기업이나 조직 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 능력을 가진 보안 시스템을 말한다. 외부 인터넷과 조직 내부의 전용통신망 경계에 건물의 방화벽과 같은 기능을 가진 시스템, 즉 라우터나 응용 게이트웨이 등을 설치하여 모든 정보의 흐름이 이들을 통해서만 이루어진다.

전용통신망에 불법 사용자들이 접근하여 컴퓨터 자원을 사용 또는 교란하거나 중요한 정보들을 불법으로 외부에 유출하는 행위를 방지하는 것이 목적이다. 모든 정보가 컴퓨터에 저장되고 컴퓨팅 환경 또한 다양하고 복잡해지면서 정보를 보호하는 일이 급선무로 떠오르자 이에 대한 대책으로 개발하였다. 

원리는 허가된 사용자 외에는 접근자체를 차단하는 것으로, 현재까지 정보통신망의 불법접근을 차단할 수 있는 가장 효과적인 대책이다. 그것은 다양한 컴퓨터 시스템들이 각기 다른 운영체제에서 움직이며, 각 시스템이 안고 있는 보안의 문제점도 서로 다르기 때문에 호스트 컴퓨터마다 일정한 수준의 보안 능력을 부여하기는 어렵기 때문이다.

방화벽의 등장은 인트라넷과 긴밀히 관련되어 있다. 방화벽과 인트라넷의 관계를 흔히 공생관계라고 한다. 즉, 방화벽이 없는 인트라넷이란 대문없는 집과 같고, 인트라넷이 구현되지 않는 네트워크에서 방화벽의 존재 또한 의미가 없기 때문이다. 따라서 인트라넷의 열풍은 방화벽 시장을 활성화시키는 촉매제 역할을 하고 있다.

개념에 따른 종류로는 패킷 필터링 방화벽(packet filtering firewall), 이중 홈 게이트웨이 방화벽(dual-homed gateway firewall), 차폐 호스트 방화벽(screened host firewall) 등이 있다.


프록시 [proxy] 

데이터를 가져올 때 해당 사이트에서 바로 자신의 PC로 가져오는 것이 아니라 임시 저장소를 거쳐서 가져오는 것. 프록시를 설정하면 수 초의 빠른 속도를 느낄 수 있다. 프록시 서버에는 다수의 사용자들이 들르는 사이트에 대한 데이터가 저장되어 있어 경우에 따라 해당 사이트에 들르지 않고 바로 이 서버에 있는 데이터를 이용하기도 한다. 하지만 프록시 서버에 문제가 생겼거나 과부하가 걸렸을 경우 오히려 더 느려지는 경우도 있다. (사이트 → 프록시 서버 → PC)


포팅 [poring]

이식(移植) 또는 포팅(porting)은 컴퓨터 과학에서 실행 가능한 프로그램이 원래 설계된 바와 다른 컴퓨팅 환경 (이를테면 CPU, 운영 체제, 서드 파티 라이브러리 등)에서 동작할 수 있도록 하는 과정을 가리킨다. 

이 용어는 소프트웨어나 하드웨어가 다른 환경에서 사용할 수 있게 변경되는 것에도 해당한다. 

소스 하나로 여러 플랫폼에서 사용할 수 있는 것을 크로스 플랫폼으로 부른다.

cf.) 포워드세팅의 줄임말입니다. 즉 다른곳에 맞게 설치하는 것을 의미하지요.. 

윈도우에서 돌아가는 프로그램을 리눅스에서도 돌아가게 만드는 일련의 작업을 포팅이라고 생각하시면 쉬우실 겁니다.

cf.) 프로그래머가 프로그램을 하면 어떠한 언어로 어떠한 플랫폼에 맞게 언어를 짜게 된다.

예를 들면 프로그래머가 윈도우용 플레이어를 만들때 C++로 윈도우 플랫폼에 맞게 프로그램을 짜게 되는데 이때 포팅을 한다는 말은  이 윈도우 플랫폼을 다른 것을로 바꾼다는 이야기이다.

윈도우에서 돌아가는 플래이어를 리눅스나, 다른 기타운영체제에 돌릴려면 기존의 프로그램을 변경해야 하는데 이것을 포팅이라고 한다.


플러그인 [plug-in] 

어떤 프로그램에 없던 새 기능을 추가하기 위해 「끼워넣는」부가 프로그램. 자체적으로는 실행능력은 없지만 특정한 프로그램 속에서 함께 실행되어 기능을 발휘한다. 원래는 하드웨어 분야에서 컴퓨터가 기본적으로 제공하지 않거나 부족한 기능을 보강하기 위한 장치란 뜻으로 사용되었으나 요즘에는 부가 소프트웨어라는 뜻으로 주로 사용된다. 예를 들어 인터넷 브라우저인 「넷스케이프」의 플러그인 프로그램인「리얼오디오」나 「엑티브X」등을 사용하면 원래 넷스케이프에서 지원하지 않는 음성이나 동영상, 3차원 영상도 즐길 수 있다.

cf.) config 

영어의 'configuration'에서 앞에 여섯개의 알파벳만을 따서 쓴 것 입니다.

컴퓨터에서 쓰일 때는 시스템의 환경설정을 해주는 파일을 말 합니다.


파라미터 [parameter] 

서브루틴, 매크로 명령 등에 주어지는 변수이다. 파라미터를 변경하여 서브루틴 등의 처리를 반복함으로써 동일한 과정에서 여러 가지의 결과를 얻을 수 있다.

(1) 어떤 처리를 할 때 상수(constant)를 할당(assign)하는 변수(variable)의 의미가 있다. 예를 들면 y = ax2 + bx + c 라는 일반식의 a, b, c 에는 여러 가지 값이 할당되기 때문에 이것을 매개변수라고 한다.

(2) 프로그램에 있어서 절차의 내용을 정의하고 그것을 사용할 때 필요한 값을 부여하는 데 사용되는 문법 단위이다. 인수(argument)와 동의어로 사용되는 경우가 있다.

(3) 프로그램 언어에서 파라미터는 가인수(dummy argument)라고도 일컫 는다. 어느 프로그램에서 별도의 프로그램을 호출할(call) 때, 「인도되는 값」을 말한다. 명령의 세부 기능과 처리를 결정하는 정보로 콤마(,)로 구분하여 입력하는데, 보통 5개까지 입력할 수 있다. 그러나 증설시에 사용하는 국(局) 데이터 변경 명령(TCA)이나 SOD 명령 등은 동시에 다량의 파라미터를 필요로 하는데, 파라미터 수를 제한하지 않는다. 이 경우의 입력 형식은 Pt, Pt+1, ···Pt+n/···/PEND/로 파라미터군(群)을 「/」로 구분하고, 모든 파라미터의 종료시에는 PEND를 입력한다. 개개의 파라미터군 중의 파라미터는 콤마(,)로 구분하여 입력한다. 입력 방법은 플로피 디스크, 종이 테이프, MT로 가능하다. FORTRAN, PL/Ⅰ에서는 가인수(dummy argument)를 사용하고, ALGOL, BASIC, C 언어에서는 parameter를 사용한다. 이 용어는COBOL 에는 없다.

[주] 1. 특정 용도를 위해서 어느 일정한 값이 주어지는 변수이고, 또 그 용도를 나타낼 수 있는 것. 2. 절차 입구에 나타내는 식별자이고, 절차 실행을 일으키는 절차 호출 중에 대응하는 실인수와 결합된 것.


POJO [Plain Old Java Object]

Plain Old Java Object 혹은 POJO는 처음에 javax.ejb 인터페이스를 상속받지 않은, 무거운 EJB와는 반대로 경량의 자바 객체를 지칭하는 말로 소개되었다. 

즉, POJO라는 이름은 특별하지도 않고, 특히 Enterprise JavaBean이 아닌 자바 객체를 강조한다. 이 이름은 Martin Fowler, Rebecca Parsons와 Josh MacKenzie에 의해 2000년 9월에 만들어졌다. 

프레임워크에 종속된 복잡한 객체에 반대되는 간단한 객체를 설명하기 위한 용어의 필요성이 많아짐에 따라 POJO라는 이름은 점점 널리 쓰이게 되었다. 

POJO 대표적인 예로, JavaBean을 들 수 있는데, JavaBean은 기본 생성자와 멤버 필드에 접근할 수 있는 getter/setter 메소드를 가진 serializable(직렬화가 가능한)한 객체를 의미한다. 

POJO를 이용한 디자인이 널리 쓰임에 따라 POJO를 기본으로 하는 스프링이나 하이버네이트와 같은 프레임워크에서도 생겼다. 

요즘에는 POJO는 (EJB 뿐만 아니라) 별도로 종속되지 않는 자바 객체를 통칭하여 의미한다.

'IT용어' 카테고리의 다른 글

[IT용어] 네트워크 관련 용어  (0) 2014.12.20
[IT용어] ㅎ  (0) 2014.12.20
[IT용어] ㅌ  (0) 2014.12.20
[IT용어] ㅋ  (0) 2014.12.20
[IT용어] ㅊ  (0) 2014.12.20

[IT용어] ㅌ



트리 [tree] 

트리 회로. 나무가 하나의 뿌리(root)에서 줄기(trunk)가 나와 가지(branch)로 나누어지는 것처럼, 어떤 하나의 집합(레코드나 디렉토리 등)으로부터 하위 레벨(lower level)로 가지가 나오는 집합 관계를 갖는 계층 구조(hierarchic structure)를 말한다. 부분적으로도 결코 루트를 형성하는 경우는 없다. 따라서 처음에 가지가 나오기 시작되고 있는 집합으로부터 차례대로 「가지」를 더듬어가면 목적의 집합을 찾을 수 있다. 정보 처리 분야에는 이 같은 트리 구조(tree structure)를 가진 개념이 많이 있고, 이 트리 구조에는 순서 트리(ordered tree)나 2진 트리(binary tree) 등이 있다.


태그 [tag] 

어떤 언어의 요소 기술자를 가리키는 용어로서, 하나의 문서 또는 정보 단위에 사용되는 태그모음을 마크업이라고 부르는데, 이 용어는 컴퓨터가 생기기 전의 시대에 필자나 편집자가 문서요소들에 편집용 부호나 속기용 부호 등을 적어 넣던 것으로부터 생겨났다. HTML이 마크업용 태그 모음의 대표적인 예이다. 

cf.) SGML 또는 HTML문서에서 사용하는 편집용 코드. tag로 둘러싸인 부분이 문서의 어떤 부분에 해당하는 것인지를 나타내는 것으로 HTML문서의 경우 웹 브라우저는 tag를 해석해 화면에서 문서 그림 테이블 등을 표시한다. 


TCP-IP [transmission control protocol-internet protocol] 

인터넷에서, 서로 다른 시스템을 가진 컴퓨터들을 서로 연결하고, 데이터를 전송하는데 사용하는 통신 프로토콜이다. 

기종이 서로 다른 컴퓨터 시스템을 서로 연결해 데이터를 전송하기 위한 통신 프로토콜으로서 1980년 초 미국 국방부가 제정하였다. 유닉스(UNIX) 운영체제 내에 채용되었으며 인터넷에도 사용되었고, 유닉스와 인터넷 사용이 늘어나면서 TCP-IP는 네트워크상에서 데이터를 전송하는 표준이 되었다. 

미국 국방부에서 구축한 전산망인 알파넷(ARPAT)에서 개발된 프로토콜으로서 1983년 1월 알파넷에서 NCP 대신에 이 표준을 사용하였다. 그 후에 알파넷에서 Milnet를 독립시키고, 이 두 네트워크 사이의 통신으로 인터넷을 이용할 무렵 미국 방위통신청(DCA;Defense Communication Agency)이 모든 알파넷을 이용하는 호스트 컴퓨터를 TCP-IP로 사용하도록 한 것이 시초가 되었다. 

TCP-IP의 기본 서비스에는 원격 로그인, 파일전송 및 전자우편이 있다. 이 밖에도 TCP-IP에 의해 연결된 네트워크 장치는 LAN 노드(node)의 물리적인 주소를 살핀다든지, 기기의 영문자를 숫자명으로 매핑한다든지, 네트워크를 관리한다든지 하는 등의 작업을 할 수 있다. 독립적인 개방형 구조로서 이들 일련의 프로토콜은 호스트의 하드웨어·운영체제·접속매체의 차이와 관계없이 동작되도록 설계되어 있다. 


텔넷 [telecommunication network] 

인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때 지원되는 인터넷 표준 프로토콜.인터넷 사용자는 텔넷을 이용하여 전세계의 다양한 온라인 서비스를 제공받을 수 있다. 물론 다른 컴퓨터에 접속하려면 그 컴퓨터를 사용할 수 있는 사용자 번호와 비밀번호를 알고 있어야 한다. 

이 텔넷 응용서비스가 매우 효과적인 이유는 거리에 관계없이 쉽게 원격시스템에 접속할 수 있기 때문이다. 텔넷도 다른 TCP/IP 프로토콜의 인터넷 응용서비스들과 마찬가지로 모두 고유의 포트번호를 가지고 있는데 텔넷은 23번이라는 고유 포트번호를 가진다. 일반적으로는 이 번호를 사용하지만 특별한 게임이나 채팅 등의 서비스 제공이나 문제 해결을 위한 디버깅을 위해서 별도의 포트번호를 사용할 수도 있다. 


템플릿 [template] 

①어떤 도식이나 서식에서 자주 사용되는 기본 골격. 스프레드시트에서 각종 데이터 처리를 위해 표의 일정한 구조를 만들어 놓고 사용자가 데이터를 입력만 하면 되도록 해 놓은 것이 한 예이다. 

②그래픽 프로그램에서 자주 사용하기 위해 미리 정해 놓은 그림이나 이미지의 일정한 패턴. 

③시스템 플로차트에 사용되는 기호들을 표현하기 쉽도록 기호의 표준 모양을 파 놓은 자. 

④자주 사용되는 명령어를 따로 저장해 놓은 목록.


토렌트 [Torrent]

개인들 간(peer to peer) 파일 공유 프로그램의 일종

하나의 파일을 여러 조각으로 쪼개 프로그램 사용자끼리 인터넷상에서 직접 공유하는 프로그램으로, 송수신되는 파일용량의 제한이 없다. 개봉 전 영화, 최신 음악, 드라마 등 불법복제물 다운로드를 가능하게 해 주는 씨앗파일(seed file) 공유를 주 목적으로 운영된다. 우선 사용자가 토렌트 소프트웨어를 PC에 설치하고, 다운로드받은 파일(씨앗 파일)을 실행하면, 전 세계 여러 곳에서 동시에 파일을 가져올 수 있어 다운로드 속도가 매우 빠를 뿐 아니라, 무료로 내려받을 수 있다는 장점이 있다.

한편 토렌트는 본래 빠른 속도로 원하는 파일을 확보하기 위해 만들어진 방식이지만, 별도의 성인인증 및 결제절차가 없어 누구나 손쉽게 음란물을 접할 수 있는 통로가 돼 문제가 되고 있다. 토렌트는 웹하드 등 국내 소재 서버가 별도로 존재하지 않아 추적이 어렵기 때문에 그동안 음란물 단속 사각지대로 인식돼 왔다. 한편 특정 파일의 코드는 마그넷 주소라 불리며 이 주소를 확보하면 원하는 파일에 접근하여 다운로드받을 수 있다.

'IT용어' 카테고리의 다른 글

[IT용어] ㅎ  (0) 2014.12.20
[IT용어] ㅍ  (0) 2014.12.20
[IT용어] ㅋ  (0) 2014.12.20
[IT용어] ㅊ  (0) 2014.12.20
[IT용어] ㅈ  (0) 2014.12.20

[IT용어] ㅋ



클라이언트 [client] 

클라이언트/서버(client/server) 구성에서 사용자측. 사용자가 서버에 접속했을 때 클라이언트는 사용자 자신을 지칭할 수도 있고, 사용자의 컴퓨터를 가리키기도 하며, 컴퓨터에서 동작하고 있는 프로그램이 될 수도 있다. 컴퓨터 시스템의 프로세스는 또 다른 컴퓨터 시스템의 프로세스를 요청할 수 있다. 네트워크에서는 네트워크 서버에 정보나 응용 프로그램을 요구할 수 있는 PC 등의 처리 기능이 있는 워크스테이션을 말하며 객체 연결 및 포함(OLE)에서는 서버 응용 프로그램이라는 다른 응용 프로그램에 데이터를 포함시켜 놓은 응용 프로그램을 말한다. 파일 서버로부터 파일의 내용을 요청하는 워크스테이션을 파일 서버의 클라이언트라 한다. 각각의 클라이언트 프로그램은 하나 또는 그 이상의 서버 프로그램에 의하여 자동 실행될 수 있도록 디자인되며, 또한 각각의 서버 프로그램은 특별한 종류의 클라이언트 프로그램이 필요하다.


쿠키 [cookie] 

인터넷 웹사이트의 방문기록을 남겨 사용자와 웹사이트 사이를 매개해 주는 정보.고객이 특정 홈페이지를 접속할 때 생성되는 정보를 담은 임시 파일로 크기는 4KB 이하로 작다. 쿠키는 애초 인터넷 사용자들의 홈페이지 접속을 돕기 위해 만들어졌다. 특정 사이트를 처음 방문하면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 다음에 접속했을 때 별도 절차 없이 사이트에 빠르게 연결할 수 있다.

쿠키는 사용하는 웹브라우저가 자동으로 만들기도 하고 갱신하기도 하며 웹사이트로 기록을 전달하기도 한다. 따라서 개인의 사생활을 침해할 소지가 있다. 이용자가 인터넷에서 어떤 내용을 봤는지, 어떤 상품을 샀는지 등 모든 정보가 기록되기 때문이다. 온라인 광고업체들은 쿠키를 이용해서 인터넷 사용자의 기호 등을 수집·분석해 광고전략을 짜는 데 유용하게 활용해왔다. 

또 보안문제를 유발하기도 한다. 회원번호나 비밀번호 등이 유출될 가능성이 있기 때문이다. 그래서 마이크로소프트는 인터넷 익스플로러 5.0 이상에서는 쿠키 거부 기능을 첨가했다. 


클라우드 컴퓨팅 [Cloud Computing]

인터넷 기반(Cloud)의 컴퓨터기술(Computing)을 의미하는 것으로, 여기에서 구름(Cloud)은 컴퓨터 네트워크 상에 숨겨진 복잡한 인프라 구조, 인터넷을 뜻한다. 클라우드 컴퓨팅은 사용자가 필요한 소프트웨어를 자신의 컴퓨터에 설치하지 않고도 인터넷 접속을 통해 언제든 사용할 수 있고 동시에 각종 정보통신 기기로 데이터를 손쉽게 공유할 수 있는 사용 환경이다. 즉, 개인이 웹에 접속해서 포토샵, 오피스 같은 프로그램을 작업할 수 있고 그 작업에 대한 저장도 웹에서 하게 된다. 결국 가상 공간에 한 서버(컴퓨터)만을 놓고 이 한 컴퓨터를 통해 여러 사람이 개인 작업을 할 수 있는 것이다. 은행의 ATM이나 항공기ㆍ열차의 실시간 좌석 예약 시스템이 대표적이다. 또한 Google Apps의 경우 웹 브라우저로 이용할 수 있는 일반적인 비즈니스 응용 프로그램들을 온라인으로 제공하고 소프트웨어와 데이터는 서버에 저장한다. 클라우드라는 용어는 1990년대에 거대한 규모의 ATM을 지칭하는 데서 쓰이다가, 소비자 중심의 웹 기반이 형성되는 21세기에 들어서야 클라우드 컴퓨팅이라는 용어가 널리 퍼지기 시작했다. 클라우드 컴퓨팅의 장점은, 사용자의 데이터를 신뢰성 높은 서버에 안전하게 보관할 수 있고, 기기를 가지지 못한 소외 계층도 공용 컴퓨터나 인터넷에 연결되기만 한다면 개인 컴퓨팅 환경을 누릴 수 있으며, 개인이 가지고 다녀야 하는 장비나 저장 공간의 제약이 사라진다는 점이다. 그러나 서버가 공격 당하면 개인 정보가 유출될 수 있고, 재해로 서버의 데이터 손상되면 미리 백업하지 않은 정보를 되살리지 못한다는 문제점도 있다.


콘솔 [console] 

①컴퓨터 시스템의 관리자가 시스템의 상태를 알아보거나, 각종 업무를 처리하기 위해 사용하는 특수한 기능의 단말 장치. 이는 보통의 단말기와 유사하나 중앙 처리 장치(CPU)에 직결되어 여러 특수 기능을 수행하며, 대개 컴퓨터의 본체와 가까운 곳에 설치된다. 시스템 관리자는 이러한 단말기를 통하여 현재 시스템의 동작 상태를 확인하고 작업을 조작하거나, 시스템을 재시동하는 작업 등을 수행한다. 

②개인용 컴퓨터(PC)에서 표준 입출력 장치를 일컫는 용어. 키보드와 모니터가 콘솔에 속한다.


커스터 마이징 [Customizing] 

생산업체나 수공업자들이 고객의 요구에 따라 제품을 만들어주는 일종의 맞춤제작 서비스를 말하는 것으로, ‘주문 제작하다’라는 뜻의 customize에서 나온 말이다. 최근에는 IT산업의 발전으로 개발된 솔루션이나 기타 서비스를 소비자의 요구에 따라 원하는 형태로 재구성∙재설계하여 판매하는 것으로 그 의미가 확장되었다. 역으로 타사의 솔루션을 가져와 자사의 제품에 결합하여 서비스하는 것 역시 커스터마이징이라고 한다.


컴포넌트 [Component] 

소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 쉽게 할 수 있도록 하는 기술을 말한다.

cf.) 작고 개별적인 동작의 단위를 말한다. 원래 단어의 의미는 ‘구성 요소, 부품’이라는 뜻이다. 

즉, 기존의 코딩 방식에 의한 개발에서 벗어나 소프트웨어 구성단위(module)를 미리 만든 뒤 필요한 응용 기술을 개발할 때 이 모듈을 조립하는 기술을 말한다. 컴포넌트 기술을 활용하면 복잡한 정보 시스템을 신속하게 구축할 수 있으며, 유사한 정보 시스템을 구축할 때 재사용이 가능한 장점이 있다. 특히, 급속도로 변하는 인터넷 환경에서 표준화된 소프트웨어를 만드는 것이 필요하기 때문에 컴포넌트는 매우 중요하다. 이미 국가 차원에서 소프트웨어의 컴포넌트화를 추진하고 있는 미국은 소프트웨어의 컴포넌트화로 개발생산성이 10배, 품질보증이 16배씩이나 증가했다는 보고가 있다. 국내에서는 한국소프트웨어 컴포넌트 컨소시엄(KCSC)이 발족돼 2002년까지 3,000개의 공용 컴포넌트를 개발하기로 하였으며, 정부는 표준화를 통해 연평균 약 100%의 고성장이 예상되는 소프트웨어 컴포넌트 산업을 적극 육성하기로 했다.


컴파일[compile] 

인간이 보기 편하게 만든 소스코드를 컴퓨터가 이해 할 수 있는 기계어 구조로 변환하는 일련의 과정을 말합니다. 

(1) 프로그래머가 CHILL, FORTRAN, COBOL 등의 고급 언어(high level language)로 작성한 프로그램을 번역하고, 컴퓨터가 실행(execute)할 수 있는 형식인 기계어(machine language)의 (목적)프로그램으로 변환하는 동작. 기계어와 거의 일대일에 대응한 기호를 쓰는 어셈블리 언어로 쓰여진 프로그램을 번역하는 어셈블(assemble)과 대비된다.

(2) 컴파일을 실제로 행하는 프로그램(소프트웨어)을 컴파일러(compiler)라고 한다. COBOL 컴파일러, FORTRAN 컴파일러 등으로 부른다. 전자 교환기의 교환국 파일 작성 과정에서는 CHILL 언어로 작성된 교환용 프로그램의 소스 모듈을 컴파일러에 입력시켜 기계어로 번역된 오브젝트 모듈을 출력시킨다. 컴파일러는 언어 프로세서(language processor)의 하나이다.


캐시[cache]

주기억 장치에 읽어들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치. 주기억 장치와 중앙 처리 장치(central processing unit)와의 사이에 설치되어 있는 고속 버퍼메모리이다. 

캐시 메모리(cache memory) 또는 로컬 메모리(local memory)라고도 한다. 기억 용량(memory capacity)은 적지만 주기억 장치에 비해 고속이며 액세스할 수 있는 장점이 있다. 

따라서 중앙 처리 장치가 명령이 필요하게 되면, 맨 먼저 액세스하는 것은 주기억 장치가 아니라 캐시 메모리인 셈이다. 자주 액세스하는 데이터나 프로그램 명령을 반복해서 검색하지 않고도 즉각 사용할 수 있도록 저장해두는 영역이다.





컴퓨터의 성능을 향상시키기 위해 사용되는 전용의 소형 고속 기억 장치, 또는 같은 목적으로 사용되는 주기억 장치의 일부분(섹션). 

캐시는 고속의 중앙 처리 장치(CPU)와 CPU에 비해 속도가 느린 주기억 장치 사이에 데이터와 명령어들을 일시적으로 저장하는 기억 장소를 제공하여, 

CPU가 주기억 장치로부터 읽고 주기억 장치에 기록할 때보다 몇 배 빠른 속도 또는 CPU에 가까운 속도로 접근할 수 있게 한다. 캐시의 기억 용량이 클수록 요구되는 데이터가 이미 캐시에 저장되어 있을 확률이 크기 때문에 그만큼 성능이 향상된다.


컴퓨터 시스템에 사용되는 캐시에는 전용의 고속 기억 장치인 캐시 기억 장치(cache memory)와 주기억 장치의 일부분을 사용한 디스크 캐시(disk cache)의 2종류가 있다.


㉠일반적으로 캐시라고 하면 캐시 기억 장치를 가리킨다. CPU가 주기억 장치에 접근하여 데이터를 읽거나 기록하면, 그 내용의 사본이 주기억 장치 주소와 함께 캐시에 저장된다. 

CPU가 어떤 주기억 장치 주소를 참조하면, 캐시는 그 주소가 캐시 내에 있는지를 점검하여 그 주소가 있으면 해당되는 데이터를 즉시 CPU에 전달한다. 따라서 주기억 장치에 접근할 필요가 없게 된다. 

그 주소가 캐시에 없으면 캐시는 해당되는 데이터를 주기억 장치로부터 읽어 와 CPU에 전달하고 캐시 내에 저장한다.


또 캐시는 CPU가 다음 명령이나 프로그램을 실행하는데 필요한 데이터와 명령어를 미리 예측 알고리듬을 통해서 예측하여 주기억 장치로부터 큰 블록 단위로 읽어 와 저장한다. 

그럼으로써 CPU가 필요할 때마다 주기억 장치로부터 인출해야 하는 시간을 단축하여 실행을 고속화한다. CPU에 내장되는 캐시를 주 캐시(primary cache) 또는 1차 캐시라고 하고, 

컴퓨터 본체 기판에 탑재되는 캐시를 보조 캐시 또는 2차 캐시라고 한다. 펜티엄과 같은 최근의 CPU에는 캐시 충돌(cache conflict) 방지와 성능 향상을 위해 명령어 캐시와 데이터 캐시로 분리된 2개의 캐시가 내장되어 있다.


㉡디스크 캐시는 디스크로부터 읽어 온 데이터를 디스크와 CPU 사이에 일시적으로 저장하기 위해 특별히 할당되어 있는 주기억 장치의 일부분(섹션)이다. 최근에 디스크로부터 읽어 온 데이터 또는 디스크에 기록된 데이터가 여기에 저장된다. 

요구되는 데이터가 디스크 캐시에 있으면, 그 데이터를 디스크 장치가 디스크로부터 인출해 오는 것을 프로그램이 기다리지 않아도 되기 때문에 접근 시간이 상당히 단축되고 실행이 고속화된다.


cf.) 캐시[In JSP]

웹 브라우저가 WAS에 a.jsp의 실행을 요청하고 잠시 뒤에 한 번 더 a.jsp의 실행을 요청했다고 하자 첫 번째 요청과 두 번째 요청 사이에 a.jsp가 출력한 결과에 차이가 없는 경우 웹 브라우저는 불필요하게 동일한 응답 결과를 두 번 요청한 셈이다. 캐시는 이렇게 동일한 데이터를 중복해서 로딩하지 않도록 할 때 사용된다. 웹 브라우저는 첫 번째 요청 시 응답 결과를 로컬 PC의 임시 보관소인 캐시에 저장한다. 이후, 동일한 자원에 대한 요청이 있으면 WAS에 접근하지 않고 로컬 PC의 임시 보관소인 캐시에 저장한다. 이후, 동일한 자원에 대한 요청이 있으면 

WAS에 접근하지 않기 때문에 훨씬 빠르게 응답 결과를 웹 브라우저에 출력할 수 있게 된다.

따라서 변경이 발생하지 않는 JSP의 응답 결과나 이미지, 정직인 HTML 등은 캐시에 보관함으로써 응답 속도를 향상시킬 수 있게 된다


코덱 [CODEC]

음성, 영상 등의 멀티미디어 데이터를 컴퓨터용 디지털 신호로 변환(코딩)하여 주거나 다시 원래의 상태로 복원(디코딩)하여 주는 프로그램이다. 코딩(Cording)에는 압축과 암호화 기술이 사용되는데, 멀티미디어 데이터를 재생하려면 코덱에 의하여 디코딩과정을 거쳐야 한다.


cf.) MPEG-21

광범위한 계층의 멀티미디어 자원을 투명하고 호환적으로 사용할 수 있도록 지원해주기 위해서, 디지털 멀티미디어 콘텐츠의 생성, 거래, 전달, 관리, 소비 등의 제반 과정에서 사용하는 멀티미디어 프레임워크 표준 규격을 말한다. 디지털 콘텐츠의 제작, 유통 등의 전 과정을 MPEG 기술과 통합하여 관리하는 기술이기도 하다.



'IT용어' 카테고리의 다른 글

[IT용어] ㅍ  (0) 2014.12.20
[IT용어] ㅌ  (0) 2014.12.20
[IT용어] ㅊ  (0) 2014.12.20
[IT용어] ㅈ  (0) 2014.12.20
[IT용어] ㅇ  (0) 2014.12.20

[IT용어] ㅊ


'IT용어' 카테고리의 다른 글

[IT용어] ㅌ  (0) 2014.12.20
[IT용어] ㅋ  (0) 2014.12.20
[IT용어] ㅈ  (0) 2014.12.20
[IT용어] ㅇ  (0) 2014.12.20
[IT용어] ㅅ  (0) 2014.12.20