블록체인이란?

1. 거래에 참여한 모든 구성원에게 분산하여 저장하는 기술을 말한다. '분산 원장 기술(Distributed Ledger Technology)이라고도 부르며 보안성이 좋고, 데이터 보호에 드는 비용을 줄이는 효과가 있습니다.

 

2. 여러 건의 거래내역이 일정 시간마다 하나의 블록(Block)으로 묶여, 기존 생성된 블록에 체인(Chain)처럼 연결하여 기록을 연속적으로 보관하는 것

 

3. 이전에 거래 내역의 검증 데이터를 연계하여 블록을 생성함으로써, 블록이 쌓일수록 보안이 강화되는 구조를 갖습니다.

즉 , 각 블록에는 그 이전 블록의 모든 내역에 대한 검증 기록을 가지고 있게 되며, 한 번 등록되면 변경이 불가능한 구조입니. 

 

블록체인은 중앙 집중형 원장관리합니다. 장부(legdger)가 있습니다. 

 

분산형이며 모든 거래 참여자가 거래 내역을 확인하고 공증 및 관리, 거래내역이 모든 네트워크 참여자에게 공유되고 보관하게 됩니다. 

 

이렇게 되면 비용은 적으며 낮은 유지보수 비용이 들며 , DDOS 공격 불가, 거래 정보 투명성 유지, 거래내역 위조 불가능이 있습니다.

 

하지만, 단점으로는 느린 거래 속도와 제어의 복잡성이 띄웁니다. 

 

2. 블록체인의 구조와 해시 

1) 일정시간 동안 진행된 거래 내역을 블록화 해서 연결하는 것, 이때 블록화의 방법에는 해시 알고리즘이 이용됩니다.

전달된 해시값이 포함된 데이터를 대상으로 넌스(Nonce)값을 추가하여 새로운 해시값을 구합니다. 

 

2) 해시 과정은 미리 합의된 특정 조건을 만족하는 해시값이 도출되도록 넌스 값을 계속 조정하면서 계산합니다. 

만일 조건 해시값이 도출 -> 성공 시 넌스 값 및 해당 거래내역 등을 묶어서 새로운 블록을 생성하고 직전 블록과 연결합니다. 

 

3) 새로 생성된 블록에는 직전 블록의 해시값도 포함됩니다. 만약 직전 블록의 해시값이 조작이 됐을 때 검사를 통해 쉽게 파악됩니다.

 

3. 클라우드 기반의 블록체인(BaaS : Blockchian as a service) 필요성 및 장점

클라우드에서 블록체인을 어떠한 용도로 사용할까?라고 생각했었을 때 클라우드 인프라의 잇점과 서비스 개발 시간 단축, 개발 용이성 등이 있습니다.  

 

 

만약 클라우드 기반 블록체인 서비스를 하게 된다면 장점은 다음과 같습니다.

 

1. 원활한 블록체인 프로비저닝 : Paas환경으로 써 간단한 모델을 제공

2. 탄력적인 확장성 : 노드를 추가하고 제거하는 일을 단순함

3. 글로벌 가용성 : 프로비저닝이 가능함(어디서나) 

4. 단순한 프로그래밍 모델 : 단순한 프로그래밍 모델을 제공합니다.

 

이상 포스터를 마치겠습니다. 

 

제 개인적인 생각으로 블록체인이 속도적인 측면과 보안이 강화된다면 더욱 발전할 수 있을 것 같습니다.

 

감사합니다.

 

 

 

안녕하세요 오늘은 RSA에 대해서 알아보도록 하겠습니다. 매번 RSA에 대해서 보는데 또 까먹고 계속 까먹네요ㅠ

 

 

RSA는 비대칭키 암호입니다. 

 

비대칭키 암호 ? 

비대칭키 암호는 공개키를 이용해 암호화하고 공개키에 해당하는 비밀키를 이용해 복화하는 방식입니다. 

 

절대 공개키만 가지고 데이터를 복호화 할 수 없습니다. 

 

비대칭키의 대표적인 예로는 RSA, 타원 곡선 암호, 전자 서명 등이 있습니다.,

 

그 중에 가장 유명한 RSA 암호는 세 단계로 나누어집니다.

 

1. 키 생성

2. 암호화

3. 복호화

 

순으로 나누어 집니다.

 

 

 

1. 키 생성

 

먼저 각각의 공개키와 개인키를 생성하는 방법이 필요합니다. 

그래서 RSA에서 두 개의 큰 소수인 p와 q를 선택합니다.

ex) p = 13  q = 17

 

 

p = 13 q = 17 

 

p와 q의 곱인 N을 계산합니다

 

N =  p * q = 13 * 17  = 221

 

이제 1부터 N-1까지의 정수 중 N과 서로같은 수(서로소)인 정수의 개수를 구합니다.

 

즉, 서로소는 두 숫자의 최대 공약수가 1이 되는 수를 말합니다. 

 

N이 소수라면 N과 서로소인 정수는 N-1개,

N이 소수의 곱이라면 N과 서로소인 정수는 (p -1) * (q -1)

 

이 값을 N에 대한 오일러 파이(φ) 함수 값입니다. 

 

φ(N) = (p - 1) * (q - 1) = (13 - 1) * (17 - 1) = 192

 

그러면 1 < e < φ(N)이고 φ(N)가 서로소인 공개키 e를 생성합니다.

 

1 < e < 192, e = 7로 생성합니다. 

 

(d*e) mod φ(N) = 1 이고  o <= d <= N인 d를 구합니다.

 

(d*e) mod φ(N) = 1, (d*7) mod 192 = 1, 

d = 55로 선택합니다.

 

 

생성된 값들은 N과 e는 공개키, d는 비밀키로 사용합니다.

 

암호화 

 

M은 평문, C는 암호문, N과 e는 공개키입니다.

 

C = M^e mod N 

 

M = 123, N = 221, e = 7

C = 123^7 mod 221 = 98

 

 

복호화

 

복호화에는 비밀키인 d가 사용됩니다.

 

M = C^d mod N

 

C = 98, N = 221, d = 55

M = 98 ^^ 55 mod 221 = 123 

 

 

즉 결론적으로 N과 e는 공개키 값이며 N을 소인수 분해하면 p와 q를 구할 수 있고, 공개키 e와 두 소수 p, q를 이용하여 개인키 d를 얻을 수 있습니다. 

 

 

이론적으로 봤었을 떄는 단순하지만 소스코드로 사용했을 때나 RSA을 1024 bit 소인수 분해했을 때는 값이 너무 커져서 알아 볼 수가 없습니다. 

 

 

이상 포스터를 마치겠습니다. 감사합니다. 

안녕하세요 오늘은 네트워크 OSI 7계층의 역할에 대해 글을 써보도록 하겠습니다.

 

네트워크 관련한 공부를 한다면 항상 등장하는 것이 OSI(Open System Interconnection)입니다.

 

일단 대략적으로 1~7계층의 특징에 대해 알아보겠습니다.

 

  • 물리 계층(1계층) : 물리 계층(Physical Layer)은 실제 장치를 연결하기 위한 전기적, 물리적 세부 사항을 정의한 계층입니다.

  • 데이터 링크 계층(2계층) : 데이터 링크 계층(data link Layer)은 두 지점 간의 신뢰성 있는 전송을 보장하기 위한 계층입니다.

  • 네트워크 계층(3계층) : 네트워크 계층(network Layer)은 여러 개의 노드를 거칠 때마다 경로를 찾아 주는 역할을 합니다. 다양한 길이의 데이터를 네트워크를 통해 전달하고, 전 송 계층이 요구하는 서비스 품질QoS을 위해 기능적, 절차적 수단을 제공합니다.

  • 전송 계층(4계층) : 전송 계층(transport layer)은 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받게 함으로써 상위 계층이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않게 해줍니다.

  • 세션 계층(5계층) : 세션 계층(session Layer)은 양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공합니다.

  • 표현 계층(6계층) : 표현 계층(presentation Layer)은 코드 간의 번역을 담당하는 계층으로, 사용자 시스템에서 데이터의 구조를 통일하여 응용 프로그램 계층에서 데이터 형식의 차이로 인해 발생하는 부담을 덜어줍니다.

  • 응용 프로그램 계층(7계층) : 응용 프로그램 계층(applicaion Layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행합니다.

 

더 자세하게 이를 설명하기위해 대표적으로 4계층에 대해 설명드리겠습니다. 

 

 

 

1. 물리 계층(1계층) 

 

물리 계층은 시스템 간의 연결을 의미하는 것으로 직관적으로 가장 쉽게 이해할 수 있습니다.

보통 물리계층 하면 LAN선을 생각할 수 있는데요 꼭 그런 것은 아닙니다. 

집에서 인터넷을 할 떄 쓰는 랜 케이블이나 전화선이 될 수도 있고 

동축 케이블, 광케이블이 될 수도 있습니다. 

 

즉, 전자 파장을 전달하는 공간 또는 물질 자체가 물리계층입니다.

 

2. 데이터 링크 계층(2계층)

 

데이터 링크계층은 두 포인트 간(Point to Point)의 신뢰성 있는 전송을 보장하기 위한 것입니다.

CRC 기반의 오류 제어 및 흐름 제어가 필요합니다. 

데이터 링크 계층은 네트워크 위의 개체 간에 데이터를 전달하며, 물리 계층에서 발생할 수 있는 오류를 찾아내고 수정하는 데 필요한 기능적,절차적 수단을 제공합니다.

 

데이터 링크 계층은 상호 통신을 위해 MAC 주소를 할당받습니다. 

MAC계층에서 동작하는 대표적인 프로토콜을 이더넷(Ethernet)입니다.

 

데이터 링크 계층은 스위치의 동작 원리, 패킷의 흐름 등이 있습니다. 하지만 이 장에서는 자세하게는 안 쓰겠습니다. 

 

3. 네트워크 계층(3계층)

 

네트워크 계층은 여러 개의 노드를 거칠 떄마다 경로를 찾아주는 역할을 합니다.

다양한 길이의 데이터를 네트워크를 통해 전달하며 그 과정에서 라우팅, 흐름 제어, 세그먼테이션(segmentation / desegmentation), 오류 제어 등을 수행합니다.

 

네트워크 계층에서의 동작하는 라우터나 스위치가 있는데 스위치의 경우 L3 스위치라고 합니다. 

 

네트워크 계층에는 A, B, C 클래스 등이 있습니다.

A 클래스는 10.0.0.0 ~ 10.255.255.255

B 클래스는 172.16.0.0 ~ 172.31.255.255

C 클래스는 192.168.0.0 ~ 192.168.255.255

 

4. 전송 계층(4계층)

 

양 끝단(end to end)의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있도록 하여 상위 계층이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않게 해줍니다. 

 

전송 계층은 시퀀스 넘버 기반의 오류 제어 방식을 사용하여 특정 연결의 유효성을 제어하며, 일부 프로토콜은 상태 개념이 있고 연결 지향형입니다. 

즉, 전송 계층이 패킷의 전송이 유효한지 확인하고 전송에 실패한 패킷을 다시 전송하는 것을 의미합니다.

 

가장 잘 알려진 전송 프로토콜은 TCP(Transmission Control Protocol)입니다. TCP도 포트라는 주소를 가지고 있습니다. MAC주소가 네트워크 카드의 고유 식별자이고 IP가 시스템의 주소라면 포트는 시스템에 도착한 후 패킷이 찾아갈 응용 프로그램으로 통하는 통로 번호라고 볼 수 있습니다.

 

 

 

5~7계층도 있지만 중요한 부분 1~4 계층만 알아봤습니다. 자세한 내용은 공부를 더 해서 추후에 올리도록 하겠습니다.

 

이상 포스터를 마치겠습니다.

 

보안의 3대 요소


기밀성 : 인가된 사용자만이 정보 자산에 접근할 수 있도록 하는 것
즉, 비인가자가 정보에 접근하는 것을 막는 자물쇠를 떠올려보면 됩니다. 예를 들어 방화벽, 암호, 패스워드 등이 있습니다.

무결성 : 적절한 권한을 가진 사용자가 인가한 방법으로만 정보를 변경할 수 있도록 하는 것
예를 들어 지폐에 빗대어 살펴보면, 오직 정부(적절한 권한을 가진 사용자)만이 한국은행을 통해(인가된 방법으로만) 지폐를 만들거나 바꿀 수 있고, 그렇지 않은 경우(무결성이 훼손된 경우)에는 위조지폐로 취급되어 엄중한 법의 처벌을 받습니다. 

가용성 : 정보 자산에 대해 필요한 시점에 접근이 가능하도록 하는 것
예를 들어 24시간 편의점을 이라고 생각하시면 됩니다. 편의점에서는 밤이든 낮이든 필요한 것을 구할 수 있습니다. 즉, 언제나 가용하기 때문입니다 .


유닉스(리눅스)의 계정 관리


유닉스 계열의 시스템(이후 유닉스)에서는 기본 관리자 계정으로 root가 존재합니다. 
유닉스에서는 /etc/passwd 파일에서 계정 목록을 확인할 수 있습니다. 
/etc/passwd 파일은 다음과 같이 구성됩니다.

 



1. 사용자 계정입니다.
2. 패스워드가 암호화되어 shadow 파일에 저장되어 있음을 나타냅니다.
3. 사용자 번호입니다. 
4. 그룹 번호입니다.
5. 실제 이름입니다. 자신의 이름입니다.
6. 사용자의 홈 디렉터리 설정입니다. 즉, 위의 사진은 관리자 계정이므로 홈 디렉터리가 /root입니다. 일반 사용자는 /home 디렉터리의 하위에 위치합니다.
7. 사용자의 셀 정의로 기본 설정은 bash 셀입니다. bash셀 말고도 zshell 등이 있습니다. 


유닉스에서 관리자 권한은 3번과 4번으로 식별합니다.
관리자가 사용자 번호가 0이고 그룹 번호도 0입니다. 

유닉스에서 일반 사용자 계정도 /etc/passwd 파일에서 확인을 합니다. 이때 /etc/passwd파일 구조에서 2번과 7번을 확해야 합니다. 
초기의 리눅스 및 유닉스는 2번이 공백이면 패스워드 없이 로그인이 가능한 계정으로 처리했으나 지금은 계정을 비활성화 해놓습니다. 

 

 

간단한 설명으로 이상 포스터를 마치겠습니다. 감사합니다 

 

'운영체제' 카테고리의 다른 글

RSA(Rivest, Shamir and Adleman) 암호  (0) 2020.06.12
네트워크 OSI 7계층의 역할  (0) 2020.06.12
HTTP 인증  (0) 2020.05.28
JSP - doGet() 과 doPost()의 차이  (0) 2020.04.25
JSP - 서블릿(Servlet)과 웹(Web)이란?  (0) 2020.04.25

HTTP는 너무 어려운 것 같네요 ㅠㅠ 외울려고 글을 올리겠습니다. 몇 번째 읽는 지 ㅠㅠ 

HTTP인증 프레임워크

RFC 7235는 서버에 의해 클라이언트 요청을 시도하고, 클라이언트에 의해 인증 정보를 제공하기 위해 사용될 수 있는 HTTP 인증 프레임워크를 정의합니다.

이러한 시도와 응답과정은 다음과 같습니다.

서버는 클라이언트에게 401(Unauthorized)응답 코드를 가지고 응답, 최소한 한 번의 시도에 포함된 WWW-Authenticate 응답 헤더로 권한을 부여하는 방법에 대한 정보를 제공합니다.

 

서버와 인증을 하기를 원하는 클라이언트는 Authorization 요청 헤더 필드에 인증 정보를 포함함으로써 인증을 수행할 수 있습니다.

 

클라이언트는 대개 사용자에게 비밀번호 프름프트를 표시할 것이고 정확한 Authorization 헤더를 포함하는 요청을 만듭니다.

 

"Basic"인증의 경우의 교환은 안전을 위해 HTTPS(TLS) 연결 위에서 발생하여야 합니다.

 

 

프록시 인증

동일한 시도 및 응답 메커니즘이 프록시 인증을 위해서도 사용될 수 있습니다. , 인증을 요구하는 중간 프록시입니다. 리소스 인증 및 프록시 인증은 함께 존재할 수 있기 때문에, 헤더와 상태 코드의 다른 세트가 필요합니다. 프록시의 경우, 요청에 대한 상태 코드는 407(Proxy Authentication Required)이며,

Proxy-Authenticate 응답 헤더는 프록시에 적용 가능한 최소한 하나의 요청을 포함합니다.

Proxy_Authorization 요청 헤더는 프록시 서버에 인증 정보를 제공하기 위해 사용합니다.

 

WWW-AuthenticateProxy-Authenticate 헤더

WWW-Authenticate Proxy-Authenticate 응답 헤더는 자원에 대한 액세스를 얻기 위해 사용되어야 할 인증 방법을 정의합니다.

헤더의 문법은 다음과 같습니다.

WWW-Authenticate : <type> realm = <realm>

Proxy-Authenticate : <type> realm = <realm>

<type> : 인증 스킴

realm : 보호 되는 영역을 설명, 보호의 범위를 알리는데 사용

, 어떤 공간에 사용자가 접근하려고 시도하는지를 알리기 위하여, “중간 단계의 사이트에 대한 접근과 같거나 또는 비슷한 메시지가 될 수 있습니다.

 

AuthorizationProxy-Authorization 헤더

요청 헤더는 사용자 에이전트가(프록시) 서버에 인증을 하기 위한 인증 정보를 포함합니다.

이들은 인증을 하려는 클라이언트가 인증 정보를 제공할 방법을 알기 위해, 어떤 인증 스킴이 사용될 것인지를 구체적으로 적을 필요가 있습니다.

WWW-Authenticate : <type> realm =<relam>

Proxy-Authenticate : <type> realm =<relam>

인증 스킴

HTTP 인증 프레임워크는 여러 인증 스킴에 의해 사용됩니다. 스킴은 보안 강도와 클라이언트 , 서버 소프트웨어에서 사용 가능성에 따라 달라질 수 있습니다.

 

일반적인 인증 스킴은 Basic인증 스킴입니다.

이외의 Bearer, Digest, HOBA, Mutual, AWS4-HMAC-SHA256이 있습니다.

 

 

다음 포스터는 인증 스킴에 대해 알아보도록 하겠습니다. 감사합니다. 

 

그 전 장에서 웹과 서블릿에 대해서 알아보았습니다.

 

이 장에서는 doGet()과 doPost()방식의 차이를 알아보도록 하겠습니다.

만약 doGet()과 doPost()방식이 있는데 둘 중 무엇을 써야 될까요?

그 전장에서 말씀드렸지만 추가로 말씀드리겠습니다.

get()방식은 서버로 데이터가 전송될 때 주소 창을 타고 넘어가기 때문에 보안에 약합니다. 그렇기 때문에 get방식을 사용한다면 회원이 입력한 암호가 그대로 노출이 됩니다. 그래서 post()방식을 사용합니다.

 

하지만, 폼이 아닌 <a>태그를 통해서도 페이지를 이동할 수 있는데, 이렇게 하이퍼링크를 통해서 서버가 요청되는 경우에는 무조건 get방식으로 요청이 됩니다.

 

doGet()메소드는 throws 절로 메소드에서 발생하는 IOExcetption, Servlet Exception 예외를 외부에서 처리하도록 정의되어 있고 두 개의 매개 변수를 갖습니다. HttpServletRequest 형으로 선언된 첫 번 째 매개 변수는 클라이언트의 요청(request)을 처리하고, HttpServletResponse형으로 선언된 두 번째 매개 변수는 요청 처리 결과를 클라이언트에게 되돌리기(응답하기, response) 위해 사용됩니다.

즉, 서버가 요청에 대한 처리를 마치고 클라이언트에게 결과를 되돌려주기 위해서는 doGet(), doPost() 두 번째 매개 변수인 HttpServletResponse로 부터 PrintWriter형의 출력 스트림 객체를 얻어 와야 합니다.

public void doGet(HttpServletRequest request, HttpSErvletResponse response)
	throws IOException, ServletException
    {
    	PrintWriter out = response.getWriter();
    }

위의 식으로 써야 됩니다.

 

이상 포스터를 마치겠습니다.

'운영체제' 카테고리의 다른 글

네트워크 OSI 7계층의 역할  (0) 2020.06.12
보안의 3대 요소 및 유닉스(리눅스)의 계정 관리  (0) 2020.06.12
HTTP 인증  (0) 2020.05.28
JSP - 서블릿(Servlet)과 웹(Web)이란?  (0) 2020.04.25
유니코드(Unicode)란?  (0) 2020.04.03

 

서블릿(Servlet)이란?

Server + Applet의 합성어로 서버에서 실행되는 것, Applet이란 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술을 말한다.

 

서블릿은 자바 클래스 형태의 웹 애플리케이션, 브라우저를 통해 자바 클래스가 실행되도록 하기 위해서는 javax.servlet.http 패키지에서 제공하는 httpServlet 클래스를 상속받아 구현해야 한다.

 

JDK에는 웹 애플리케이션을 제작할 수 있는 클래스가 제공되지 않고 톰캣을 설치하고 나면 웹 애플리케이션을 제작할 수 있는 클래스가 제공되는데, 그 그 클래스가 바로 HttpServlet입니다.

 

HttpServlet은 웹 서비스가 가능한 웹 애플리케이션을 제작할 수 있도록 자바를 확장해 놓은 클래스로 톰캣을 설치하면 제공되는데 HttpServlet을 상속받은 클래스를 서블릿이라고 합니다.

즉, 개발자가 편리하게 HttpServlet을 활용하여 새로운 기능의 웹 프로그램을 만들 수 있는 것입니다.

 

 

웹에서는 클라이언트가 어떻게 서버에 요청하는지를 알아야 합니다.

웹에서는 get방식과 post방식이 있습니다.

 

get방식은 주소 창을 넘어가기 때문에 서버로 보내는 데이터를 사용자가 그대로 볼 수 있습니다. 보안에 취약하지만 255자 이하의 적은 양의 데이터를 전송합니다.

 

post방식은 html header를 타고 넘어가기 때문에 보안에 강합니다. 255자 이상의 대용량 데이터를 전송합니다.

 

서블릿 클래스에는 doGet(), doPost()가 있습니다.

get방식으로 요청하면 doGet()이 호출되고 post방식으로 요청하면 doPost()가 호출됩니다.

 

둘의 방식은 HTML으로 설명드리겠습니다.

<form action = "CallServlet">
	<input type = "submit" value= "전송">
</form>

위의 html은 <form> 태그로 서버 측에 존재하는 많은 서블릿 중 하나를 정해서 요청하고 있습니다.

action이라는 속성값에 요청할 서블릿 이름을 기술해야 하며 전송 버튼이 눌리는 순간에 action 속성값에 지정된 서블릿이 요청됩니다.

 

근데 폼 태그 안에 서블릿 이름을 넣어 놓으면 서버에서는 어떻게 해당 서블릿을 찾을 수 있을까요?

-> WAS(톰캣 엔진)가 운영체제오 같은 시스템 프로그램이므로 확장자가 .class인 파일을 톰캣이 가지고 있다가 요청이 들어오면 해당 서블릿 클래스들을 찾아서 실행하는 원리입니다.

 

제가 post 방식으로 쓰고 싶다면 <form> 형태 안에 method="post"방식을 넣어주면 됩니다. 즉 아래같이 넣어주면 됩니다.

<form method="post" action = "CallServlet">
	<input type="submit" value="전송">
</form>

 

다음 장에서는 doGet()과 doPost() 중 둘 중에 무엇을 써야 되는지 말씀드리겠습니다.

 

이상 포스터를 마치겠습니다.

'운영체제' 카테고리의 다른 글

네트워크 OSI 7계층의 역할  (0) 2020.06.12
보안의 3대 요소 및 유닉스(리눅스)의 계정 관리  (0) 2020.06.12
HTTP 인증  (0) 2020.05.28
JSP - doGet() 과 doPost()의 차이  (0) 2020.04.25
유니코드(Unicode)란?  (0) 2020.04.03

UTF-8이란?

각국의 언어를 통인된 방법으로 표현할 수 있게 만든 것이다.  유니코드에서 8비트를 쓰는데 영어, 미국권의 언어를 8비트로 표현할 수 있지만 한국, 일본은 8비트로 표현한다는 것은 제한적이 많다. 

유니코드로 통해서 컴퓨터언어들을 해석해줄 수 있다. 아스키코드는 0x41은 대문자 A이고 이를 유니코드표에서 찾으면 U+0041이 된다. 

 

EUC-KR와 CP949란? 

2바이트로 한글을 표현할 수 있게 만든 방식이다. 즉, 한글을 2바이트로 사용하는 문자집합

하지만. EUC-KR은 오래전부터 쓰였지만 한글을 표현하는데 지장이 있어 MS에서 CP949를 사용하기 시작했다. CP949는 한글을 표현할 수 있으며, 윈도우에서 주로 사용한다. 하지만 한글을 쓰는 데 아직 많은 부족한 점이 많다.

 

 

결론적으로 웹에서 UTF-8을 기본으로 사용하고 있어서 한글 사이트를 만드는 경우에는 인코딩을 EUC-KR로 설정해야 해야 한다. 왜냐하면 윈도우를 사용하는 사람들이 많고 올바르게 사용하기 위해서는 EUC-kR로 인코딩하는 것이 더 적합하다.

 

 

이상포스터를 마치겠습니다.

+ Recent posts