SBCS, MBCS์ WBCS / ์ ๋์ฝ๋ ํ๋ก๊ทธ๋๋ฐ์ด ์ค์ํ ์ด์
์ด๋ฒ ํฌ์คํ ์์๋ Charset์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. Charset ๋ถ๋ถ์ ์กฐ๊ธ ๋ด์ฉ์ด ๋ง์ผ๋ฉด์๋ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ด ๋ง๊ธฐ ๋๋ฌธ์, ์ ์์งํ์๊ณ , ๋ชธ์ ๋ฒ ์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ์ด๋ฒ ํฌ์คํ ์์ MBCS์ WBCS๋ฅผ ์ด๋ป๊ฒ ์ ์ ํ ์กฐํฉํด์ ์ฌ์ฉํ ์ ์๋์ง๋ฅผ ์์๋ด ์๋ค.
๋ณดํต ์ฌ๋ฌ๋ถ๋ค์ด ์ฝ๋ฉ์ํ๊ฑฐ๋ ๋ฌธ์๋ฅผ ์์ฑํ๋ค๋ณด๋ฉด, "์ธ์ฝ๋ฉ"์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ง์ด ๋ฃ๊ฒ๋ ๊ฒ์ ๋๋ค. ๋ฌธ์ ์์ฑ์์์ ์ธ์ฝ๋ฉ์ Charset(์บ๋ฆญํฐ์ )์ ์๋ฏธํ๋ ๊ฒ์ด๊ณ , ๋์์ ์์ ์์๋ ์์ ํฌ๋งท ๋ฑ์ ์๋งํ๋ ๊ฒ์ด์ง์.
์ฝ๋ฉ์์ ๋ํ Charset์ด ์กด์ฌํฉ๋๋ค. ๊ณผ๊ฑฐ์๋ ASCII ์ฝ๋๋ฅผ ์ฌ์ฉํ์๊ณ , ์ง๊ธ์ ๊ฐํ๋๊ณ , ํธํ ์ ๋์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ง์. ํ์ง๋ง Linux์ ์์์ ๋๋ ์ ๋ชฐ๋์๋๋ฐ, Windows์์ ์๋ณด๋ฉด ์ต๊ทผ ๋ฌธ์์ด ์ธ์ฝ๋ฉ์ ๋ง์ง ์๊ฒ ์์ง๊น์ง๋ ์์คํค ์ฝ๋๋ก ์ฝ๋ฉํ๊ณ ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์ด์์ต๋๋ค. ๊ทธ ์ด์ ์ ๋ํด์ ์์๋ณด๊ณ , ์ ์ ๋์ฝ๋๋ฅผ ๋ ์ ํธํ๋์ง์ ๋ํด์ ์์๋ณด๋ ์๊ฐ์ ๊ฐ์ง๋๋ก ํ๊ฒ ์ต๋๋ค.
์์คํค ์ฝ๋
์์คํค ์ฝ๋๋ผ๋ ๊ฒ์ ์ ํํ๊ฒ ๋ฌด์์ผ๊น์? ์ฌ๋ฌ๋ถ๋ค์ ๊ทธ์ ๋จ์ด๋ง ๋ค์ผ์ จ์ ์๋ ์์ต๋๋ค. ์์ธํ๊ฒ ์ค๋ช ์ ๋๋ ค๋ณด์๋ฉด, ์์คํค ์ฝ๋๋ ANSI๋ผ๊ณ ํ๋ ๋ฏธ๊ตญ ๊ท๊ฒฉ ํํ์์ ์ง์ ํ ํ์ค ์ฝ๋ ์ฒด๊ณ์ ๋๋ค. ์ฌ๋ฌ๋ถ๋ค์ ์ด ์ฝ๋ ์ฒด๊ณ๋ฅผ ํตํด์ C ์ธ์ด ์ฝ๋๋ฅผ ์์ฑํ ๋, ๋ฌธ์๋ฅผ ํ์ํ๊ณ , ์ซ์๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
์์คํค ์ฝ๋๋ ์ด๋ ์ด์์ฒด์ ์์๋ ์ง ์ง์ํ๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ๋ถ๋ค์ด C ์ธ์ด์์๋ ๊ฐ๋จํ ์ ํด๋ณผ ์ ์์ต๋๋ค.
#include <stdio.h>
int main()
{
char ch= 'a';
printf("character number: %o \n", ch);
printf("Character number: %d \n", ch);
printf("Character number: %x \n", ch);
return 0;
}
์๋ฌด ๋ฌธ์ ํ ๊ฐ๋ฅผ ์ ์ด์ 8์ง์, 10์ง์, 16์ง์๋ก ์ถ๋ ฅํด๋ณด๋ฉด, ์์คํค ์ฝ๋ ๋ฌธ์ํ์ ์๋ ์ซ์๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์์คํค ์ฝ๋๋ 7๋นํธ ์ธ์ฝ๋ฉ์ผ๋ก ์ด 2^7 = 128๊ฐ์ ๋ฌธ์๋ฅผ ํํํ ์ ์์ต๋๋ค. ๊ทธ ์ค, 33๊ฐ๋ฅผ ์ ์ธํ๊ณ , ๊ณต๋ฐฑ์ ํฌํจํ์ฌ 95๊ฐ์ ์ถ๋ ฅ ๊ฐ๋ฅํ ๋ฌธ์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๋ํ์ ์ธ ๋ฌธ์์ ์ผ๋ก SBCS๊ฐ ์์ต๋๋ค.
์ ๊ฐ ์ฌ๊ธฐ์ ์ซ์๋ ํ์ํ ์ ์๋ค. ๋ผ๊ณ ๋ง์์ ๋๋ ธ๋๋ฐ, ์ฌ๊ธฐ์ ์ซ์๋ Integer๋ long๊ณผ ๊ฐ์ ์ ์ํ ํ์ ์ ์ซ์๋ฅผ ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ค์ ์ซ์๋ 4 Byte๋ก ํํํ์ง๋ง ์์คํค ์ฝ๋์์ ์ซ์๋ฅผ ํํํ ๊ฒฝ์ฐ, ๋ค๋ฅธ ๋ฌธ์์ ๋์ผํ๊ฒ 1 Byte๋ฅผ ์ฌ์ฉํ์ฌ ํํํ๋ค๋ ์ ์ ๊ผญ ์์๋๋๋ก ํฉ์๋ค.
SBCS, MBCS
๊ณผ๊ฑฐ, ์ฒ์ ๋ฌธ์์ด์ด ์ปดํจํฐ์ ํ๊ธฐ๋์์ ๋๋ ์๋ฌธ๊ณผ ์ซ์ ๋ฟ์ด์์ต๋๋ค. ์ต์ด ๊ธฐ๊ณ์ด๊ฐ ์ซ์, BIOS๋ ๊ทธ๊ฒ์ ์ข ๋ ๊ตฌ์ฒดํ ํ ์ด์ ๋ธ๋ฆฌ์ด, ๋ชจ๋ ์์ด ์๋๋ฉด ์ซ์์ ๋๋ค. ์ข ๋ ๋ฐ์ ํด์ B ์ธ์ด, C ์ธ์ด ๋ฑ ๋ํ ์์ด์ ์ซ์๋ก ํ๊ธฐ๋์ด์์ต๋๋ค. ๊ทธ ๋ ๋น์ ์ปดํจํฐ๋ SBCS๋ฅผ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค.
SBCS๋ Single Byte Character Set์ ์ฝ์๋ก, ๋จ์ผ ๋ฌธ์ ์งํฉ์ ๋งํฉ๋๋ค. ๋จ์ผ ๋ฌธ์ ์งํฉ์ด๋ผ๋ ๊ฒ์ ๋ฌธ์๋ฅผ ํํํ๋ ๋ฐ, 1 Byte๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ์งํฉ์ ์ด์ผ๊ธฐํฉ๋๋ค. ์ด์ฐฝ๊ธฐ Unix ์ด์์ฒด์ ์์๋ ํด๋น ๋ฌธ์์ ์ ์ฌ์ฉํ์์ผ๋ฉฐ ์ด charset์ ASCII ์ฝ๋์ ์ํฉ๋๋ค.
MBCS๋ Multi Byte Character Set์ ์ฝ์๋ก, ๋ณต์ ๋ฌธ์ ์งํฉ์ด๋ผ๋ ๋ป์ด์ง๋ง, ์๋ฌธ์์ ์ซ์๋ฅผ ํํํ๋ ๋ฐ๋ SBCS์ฒ๋ผ 1 Byte๋ก ํ์ํ ๋, ํ๊ธ๊ณผ ํน์๋ฌธ์ ๋ฑ์ 2 Byte๋ก ํํํ๋ ๋ฌธ์ ์งํฉ์ด๋ฉฐ ํ์ฌ Windows ๋ฑ์ ์ด์์ฒด์ ์์ ์ด ๋ฐฉ๋ฒ์ ์ฑํํ๊ณ ์์ต๋๋ค. ํ๊ธ Windows๋ ์์ง๊น์ง๋ MBCS๋ฅผ ์ฑํํฉ๋๋ค. ํ๊ธ์ ํํํ๊ธฐ ์ํด ๋ํ์ ์ผ๋ก MBCS์์ ์ฌ์ฉํ๋ ์ธ์ฝ๋ฉ ๊ธฐ๋ฒ์๋ EUC-KR, CP949๊ฐ ์์ต๋๋ค.
์ ๋์ฝ๋
์์คํค ์ฝ๋ ๋ค์์ผ๋ก ๋ํ๋ธ Charset์ ๋ฐ๋ก ์ ๋์ฝ๋์ ๋๋ค. ์ฌ๋ฌ๋ถ๋ค์ด ์๊ณ ์๋ ์ ๋์ฝ๋๋ ํ๊ธ๊ณผ ์๋ฌธ์, ์ซ์๋ฅผ ์๊ดํ์ง ์๊ณ ๋ชจ๋ 2 Byte๋ก ํํํ๋ค๋ ๊ฒ๋ง์ ์๊ณ ๊ณ์ค ๊ฒ์ ๋๋ค. ์ ๋์ฝ๋๋ ์์คํค ์ฝ๋๋ณด๋ค ๋ ํ์ฅ๋ ๋ฌธ์์ ์ผ๋ก, ์ ์ธ๊ณ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ค๋ฃฐ ์ ์๋ค๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์์คํค ์ฝ๋๋ ์๋ฌธ์, ์ซ์ ๋ฑ์ ํํ ์ ํ, ํ๊ธ์ด๋ ์๋์ด ๋ฑ์ 2 Byte ์ด์์ ๋ฌธ์ ํํ ์ ํ ๋ฑ์ด ์์์ง๋ง, ์ ๋์ฝ๋๋ ์ด ๋ชจ๋ ๋ฌธ์๋ค์ ํฌ๊ธฐ๋ฅผ ํต์ผํ๋ฉด์ ์ ์ธ๊ณ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ปดํจํฐ์์ ์ผ๊ด๋๊ฒ ํํํ๊ณ ๋ค๋ฃฐ ์ ์๋๋ก ์ค๊ณ๋ ์ฐ์ ํ์ค ๋ฌธ์์ ์ ๋๋ค.
๊ตญ๋ด์์ ๋ํ์ ์ผ๋ก ์ฐ๋ ์ ๋์ฝ๋ ๊ธฐ๋ฐ ๋ฐฉ์์ ๋ฌธ์ ์ธ์ฝ๋ฉ์๋ UTF-8์ด ์์ต๋๋ค. ์๋ง Linux๋ Android์์ ๊ฐ๋ฐ์ ํด๋ณด์ ๋ถ๋ค์ด๋ผ๋ฉด, UTF-8์ด๋ผ๋ ์ธ์ฝ๋ฉ์ ์ต์ํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์์ง Windows์์๋ ์ด ์ธ์ฝ๋ฉ ๋ฐฉ์์ 100% ์ฌ์ฉํ์ง๋ ์์ต๋๋ค.
๊ทธ ์ด์ ์ค์ ํ๋๋ ์ฌ๋ฌ๋ถ๋ค์ด ์ฌ์ฉํ๊ณ ์๋ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ๋ค์ด ์ ๋์ฝ๋ ์์ ํ๋ก๊ทธ๋จ์ด ์๋, ์์คํค ์ฝ๋ ์์ ์ ๊ฐ๋ฐ๋ ํ๋ก๊ทธ๋จ์ด๊ฑฐ๋ ์์ง๊น์ง๋ Visual Studio์์ ์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ํ์ง ์๊ณ , ์์คํค ์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ณ ์๋ค๋ ์ ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ, ํฌ์ํ๊ฒ๋ ์ด์ ๋ง ๊ฐ๋ฐ๋๊ณ , ์ฌ์ฉํ๊ธฐ ์์ํ Windows Universal App ๋ง์ ๋, ๊ธฐ๋ณธ ๊ฐ์ ์์คํค ์ฝ๋๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค..
WBCS
WBCS๋ Wide Byte Character Set์ ์ฝ์๋ก, ํ์ฅํ ๋ฌธ์ ์งํฉ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ ๋์ฝ๋ ๊ธฐ๋ฐ์ WBCS๋ ์์คํค ์ฝ๋์ฒ๋ผ ์ด๋ค ๋ฌธ์์ ์ ์ฝ์ ๋ฐ์ง ์๊ณ , ์ ์ธ๊ณ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ปดํจํฐ์ ํํํ ์ ์์ต๋๋ค. ๊ทธ๋์ Windows ๋ฟ๋ง์ด ์๋๋ผ, Linux, OS X, Android, iOS ๋ฑ์ ์ค๋งํธํฐ ์ด์์ฒด์ ์์๋ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ, ๋ํ์ ์ธ ์ธ์ฝ๋ฉ ๋ฐฉ๋ฒ์ผ๋ก UTF-8์ด ์์ต๋๋ค.
์์ฑํ ๋ฐฉ์๊ณผ ์กฐํฉํ ๋ฐฉ์
์์คํค ์ฝ๋์ ์ ๋์ฝ๋ ์ค ์ด๋ ๊ฒ์ด ๋ ์ข์๊น? ์ฌ๋ฌ๋ถ๋ค์ด ์ด๋ ๊ฒ ๊ธ๋ก๋ง ์ฐ๊ธฐ์๋ ์ด๋ ค์์ด ์๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฆผ์ผ๋ก ํ ๋ฒ ํํ์ ํด๋ณด๊ฒ ์ต๋๋ค.
์ถ์ฒ: http://blog.ohmynews.com/q9447/tag/%EC%99%84%EC%84%B1%ED%98%95%20%EC%BD%94%EB%93%9C ์ธ์ฉ.
์กฐํฉํ ๋ฐฉ์์ ์์๊ณผ ๋ชจ์์ ์ด์ฑ, ์ค์ฑ, ์ข
์ฑ์ผ๋ก ์ผ์ผ์ด ๋ชจ๋ ๊ฒ์ ๊ตฌ๋ถํ์ฌ ์์ฑํ๋ ๋ฐฉ์์ผ๋ก, ๊ทธ๊ฒ๋ค์ ํ๋์ ๋ฐ์ดํธ๋ก ์ธ์ํฉ๋๋ค. ์ด 3๋ฐ์ดํธ๋ฅผ ์ธ์ํ๊ฒ ๋๋ ์
์ธ๋ฐ, ๋ํ์ ์ผ๋ก UTF-8 ์ธ์ฝ๋ฉ์ด ์ฌ๊ธฐ์ ํด๋น ๋๊ณ , ์ด ๋ฐฉ์์ ์ ๋์ฝ๋ ๋ฐฉ์์ด๊ธฐ๋ ํฉ๋๋ค. ์ ๋์ฝ๋ ์กฐํฉํ์ด ์ด์ ํด๋น๋ฉ๋๋ค.
์์ฑํ ๋ฐฉ์์ ํ๋์ ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ ํ๊ธ ๋ฌธ์๋ฅผ ์ธ์ํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ๋ น, ํ๊ธ์ ํ๊ธฐํ ๋, ๊ฐ์ฅ ์ฌ์ฉ ๋น๋๊ฐ ๋์ 2,360๊ฐ์ ๋ฌธ์๋ค๋ง ์ฝ๋์ ๋ฐ์ํ๊ณ , ๋๋จธ์ง๋ ์ฌ์ฉํ ์ ์๋ค. ์ฌ๊ธฐ์ ์๋ 2,360๋ฌธ์ ์ค์ ์ฐ๋ฆฌ ํ๊ตญ์ด์ ์๋ ๋ท, ์ํํ, ๋ฑ์ ์์ด๋ค์ ์ฌ์ฉํ ์๊ฐ ์๋ ์ด์ ๊ฐ ๋ฐ๋ก ์ฌ๊ธฐ์ ์์ต๋๋ค. ์ค์ ๋ก ์ํํ ๋ฑ์ ์์ด๋ CP949์ ์์คํค ์ฝ๋์ UTF-8์ ์ ๋์ฝ๋์์ ์์ฑํ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ฐ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ์ด์ ๋ ๋์ค์ ์๋์ฐ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ฒ ๋๋ฉด, ์ฌ๋ฌ๋ถ๋ค์ด ์ง์ ์ ๋์ฝ๋๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ ๊ฒ์ธ์ง, ์์คํค ์ฝ๋๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๊ฒ ๋๋๋ฐ, ๊ทธ๊ฒ์ ๊ด๋ จํ ๊ฒ๊ณผ ์ ๋์ฝ๋ ํ๋ก๊ทธ๋๋ฐ์ด ์ ์ค์ํ์ง์์ ๋ค๋ฃจ๊ธฐ ์ํด ์ผ๋จ Base๋ก ๋ชจ๋ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ค๋ณด๋๋ก ํ ๊ฒ์ ๋๋ค.
์ก๋ด์ ํ๋ ํ์๋ฉด, ์ฌ๋ฌ๋ถ๋ค์ด ์ฌ์ฉํ๋ ํ๊ธ๊ณผ์ปดํจํฐ์ ํ๊ธ ์๋ฆฌ์ฆ๋ ํ์ฌ, ์์ฑํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์กฐํฉํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง๋ง, ํ๊ธ 2002๊ฐ ๋์ค๊ธฐ ์ด์ ๊น์ง๋ ์์ฑํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์๊ณ , ์ผ์ฑ์์ ๊ฐ๋ฐํ ํ๋ฏผ์ ์ ๋ํ, ์์ฑํ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด์ ์ ์์คํค ์ฝ๋๊ฐ ์๋ UTF-8์ ์์ฑํ ์ ๋์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ ๊ทธ๋ผ ์ ๋์ฝ๋์ ์์คํค ์ฝ๋ ์ค ์ด๋ค๊ฒ ๋ ์ข์๊น์? ๋น์ฐํ ์ ๋์ฝ๋๊ฐ ๋ ์ข๊ฒ ์ฃ . ์๋๊ตฌ์? ํ์ฅ์ฑ์ด ์ข๊ณ , ๋ชจ๋ ๊ธ์๋ค์ ๋ค ์ธ ์ ์์ผ๋๊น์. ์ผ์ฑ์ ํ๋ฏผ์ ์ ํ๋ก๊ทธ๋จ์์ ํ๋ฏผ์ ์์ ๊ถญ๋ค์ ๊ธ์จ๋ฅผ ๋ชป์ด๋ค๋ ๊ฒ์ ํฐ ์น๋ช ํ์์ฃ ...
์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ
์๋์ฐ์์ ์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ์๋ค. ๊ทธ ์ ์, ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด๋ ์ด๋ค ์ฐจ์ด๊ฐ ์๊ณ , ์์ ๋ด์ฉ๊ณผ ์ด๋ค ์ฐ๊ด์ด ์๋์ง์ ๋ํด ์์๋ณด๊ธฐ ์ํด, ๋ช ๊ฐ์ง ์ฝ๋๋ฅผ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค
#include <stdio.h>
int main()
{
char str[] = "๋ํ๋ฏผ๊ตญ2016";
printf("Character Length: %d \n", sizeof(str));
return 0;
}
์ ์ ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ถ๋ค์ด ์์ฑํด์ ์ถ๋ ฅํด๋ณด๋ฉด, 13์ด ๋์ค๊ฒ ๋ฉ๋๋ค. ์กฐ๊ธ ๋ถ์ฐ ์ค๋ช ์ ํด๋ณด์๋ฉด, ์ ๋ str์ด๋ผ๊ณ ํ๋ ๋ฐฐ์ด ๋ณ์์ "๋ํ๋ฏผ๊ตญ2016"์ด๋ผ๋ ๊ธ์๋ฅผ ์ ์ฅํ์๊ณ , sizeof ํจ์๋ฅผ ์ฌ์ฉํ์ฌ, ๋ํ๋ฏผ๊ตญ์ ๋ฐ์ดํธ ๊ธธ์ด๋ฅผ ๊ณ์ฐํ์ฌ ์ถ๋ ฅํ์์ต๋๋ค.
MBCS์์ ํ๊ธ์ 2๋ฐ์ดํธ, ์ซ์/์๋ฌธ์๋ 1๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ณด์๋ค์ํผ ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์์คํค ์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ํ๊ธ์ ์ฌ์ฉํ ๋๋, ์์ฑํ์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ๋๋ค. ํ๊ธ Windows์ ๊ฒฝ์ฐ, EUC-KR๋ณด๋ค ๋ ๋ง์ ํ ์ด๋ธ์ ์ ๊ณตํ๋ CP949๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์, '๋ท'์ด๋ '์ํํ' ๋ฑ์ ๊ธ์๋ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ฌ์ค, CP949์ EUC-KR์ ๊ฑฐ์ ๊ฐ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ๋ค๋ง ์ด ๋ ๊ฐ๋ฅผ ์ด ํฌ์คํธ์์ ๋ฐ๋ก ๊ตฌ๋ถํ๋ ์ด์ ๋ ๊ทธ๋๋, CP949๊ฐ ๋ ํํํ ์ ์๋ ํ๊ธ์ ๊ฐฏ์๊ฐ ๋ ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์์ ์ ๊ฐ ์ธ์ฉํ ์ค๋ช ๊ณผ ํผ๋์ด ์๊ฒ๋ ํ๊ธฐ ์ํด์ ๋ฐ๋ก ์ค๋ช ํ๋ ๊ฒ์ผ๋ก ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, Visual Studio์์ ์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
Microsoft์์๋ ๊ธฐ์กด์ ์์คํค ์ฝ๋๋ฅผ ์ ์งํ๋ฉด์, ์ ๋์ฝ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๊ธฐ ์ํด, MBCS์ WBCS์ ์๋ฃํ์ ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋๋ก Visual Studio๋ฅผ ์ค๊ณํ์์ต๋๋ค. ๋ฐ๋ผ์, ์ฌ๋ฌ๋ถ๋ค์ด ์ ๋์ฝ๋ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ Visual Studio์์ ํ๋ ค๋ฉด, ์ ๋์ฝ๋ํ์ ๋ง๋ ์๋ฃํ์ ์จ์ผ ํฉ๋๋ค.
#include <stdio.h>
#include <string.h>
int wmain()
{
wchar_t str[] = L"๋ํ๋ฏผ๊ตญ2016";;
wprintf(L"Character Length: %d \n", sizeof(str));
return 0;
}
์ ๋์ฝ๋ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์์ค ์ฝ๋๋ฅผ ํ ๋ฒ ์์ฑํด๋ณด์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์คํํด๋ณด๋ฉด, ์์คํค ์ฝ๋๋ฅผ ์ฌ์ฉํ์ ๋์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ ๋์ฝ๋๋ ๋ชจ๋ ๋ฌธ์๋ฅผ 2 ๋ฐ์ดํธ์ฉ ๊ณ์ฐํฉ๋๋ค. ์ฌ์ง์ด ๋ฐฐ์ด์์ ๋ ๋ฌธ์๋ฅผ ํ์ธํ๋ NULL ์กฐ์ฐจ๋ 2 ๋ฐ์ดํธ๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์, 2 * 9 = 18 Byte๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค.
์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ์๋ฃํ๊ณผ ๋ฌธ๋ฒ
์์์ ๋ดค๋ฏ, ์ฌ๋ฌ๋ถ๋ค์ด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ์์คํค ์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ฌ์ค, Windows์์๋ง ์์คํค ์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด๋ผ ํฉ๋๋ค. ์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์์ ์ผ๋ wchar_t์ ๊ฒฝ์ฐ๋, ์ฌ์ค, Windows์์๋ง ์ ๋์ฝ๋ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด๋ผ ํ๋ ๊ฒ์ ๋๋ค. FreeBSD์ ๊ฒฝ์ฐ, wchar_t๋ ์ ๋์ฝ๋๊ฐ ์๋๋๋ค. locale๋ง๋ค wchar_t๊ฐ ์ ๋์ฝ๋๊ฐ ๋ ์ง, ๋ค๋ฅธ ์ฝ๋๊ฐ ๋๋์ง๊ฐ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์, (์ฌ์ง์ด Linux์์ wchar_t๋ฅผ ์คํํ๋ฉด, 4 ๋ฐ์ดํธ๊ฐ ๋ฉ๋๋ค) ์ฌ์ค์ ์ด ๋ถ๋ถ์ ์ผ๋จ, ์๋์ฐ ํ๋ก๊ทธ๋๋ฐ์ ํ์ ๊ฒฝ์ฐ์๋ง ์ด๋ผ๊ณ ๊ฐ์ ์ ํ๊ณ , ํฌ์คํธ๋ฅผ ์ฝ์ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ ์ด๋ ๊ฒ ๋ค๋ฅธ์ง ์กฐ๊ธ ์ค๋ช ํด๋ณด์๋ฉด...
#include <stdio.h>
#include <string.h>
#include <locale.h>
int wmain()
{
_wsetlocale(0, L"korean");
wchar_t str[] = L"๋ํ๋ฏผ๊ตญ2016";
wprintf(L"Character Length: %d \n", sizeof(str));
wprintf(L"%s \n", str);
return 0;
}
์ฌ์ค, ์ฌ๋ฌ๋ถ๋ค์ด ์๊น ์์์ ์ฌ์ฉํ๋ ์ฝ๋๋ ๊ทธ์ ์ผ๋ถ์ผ ๋ฟ์ด๊ณ , ์ ๋ถ๋ฅผ ํํํ์๋ฉด, ์์ ๊ฐ์ ์ฝ๋๊ฐ ๋ฉ๋๋ค. ์ฐจ์ด๊ฐ ์๋ค๊ณ ํ๋ค๋ฉด, setlocale ๋ถ๋ถ์ธ๋ฐ, setlocale ํจ์์ ์ ๋์ฝ๋ํ์ _wsetlocale์ด๊ณ , ์ด ํจ์๋ฅผ ํตํด, ์ฌ๋ฌ๋ถ๋ค์ locale์ CP949๋ก ์ค์ ๋ ์ํ์ด์ด์ผํฉ๋๋ค. ์ ๊ฐ์ด ์๋ฌธ Windows๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ด ํ๊ธ์ ์ถ๋ ฅํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋งค์ฐ ๊ท์ฐฎ์ ์ง์ด๊ธฐ๋ ํฉ๋๋ค.
ํ์ง๋ง Linux์์๋ ์ฝ๋๋ฅผ ์์ฑํ ๋, ๊ธฐ๋ณธ locale์ด setlocale(0, "ko_KR.utf8")์ด๊ธฐ ๋๋ฌธ์, ์๋์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ ๋์ฝ๋๋ก ์์ฑ์ด ๋๊ณ , ํ๊ธ์ ์ถ๋ ฅํ ๋๋ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์์ต๋๋ค. ๋ฐ๋ผ์, ์ฌ๋ฌ๋ถ๋ค์ด wchar_t ๋ฑ์ ์ ๋์ฝ๋ ์๋ฃํ์ด๋ ํจ์๋ฅผ ์ฌ์ฉํ ๋, ์ด ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํ๋ ๊ฒฝ์ฐ, ๋ฐ๋์ Windows์์๋ง ์ฌ์ฉํ์๊ธฐ๋ฅผ ๊ถ๊ณ ํฉ๋๋ค.
์ ๋์ฝ๋ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ด ์ค์ํ ์ด์
Microsoft์์๋ ๊ธฐ์กด์ ๊ฐ๋ฐ๋ ์๋์ฐ ํ๋ก๊ทธ๋จ๋ค์ด ๋๋ถ๋ถ ์์คํค ์ฝ๋๋ฅผ ๊ธฐ๋ฐํ๊ณ ์๊ณ , ์ด๋ค์ ํธํ์ฑ์ ์ํด Windows ์ด์์ฒด์ ๋ฅผ 100% ์ ๋์ฝ๋๋ก ์ ํํ ์ ์๋ค๋ ์ ์ฅ์ ๋ฐํ๊ณ ์์ต๋๋ค. ๊ฒ์ ํ๋ก๊ทธ๋จ ์ค์์๋ ์์คํค ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก๊ทธ๋จ์ด ๊ฝค ์๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ค์ด ํ ๋ฒ ์ฏค ํด๋ณด์ ๊ฒ์ ์ค์ ํ๋, ๋ฐ๋ก ์คํํฌ๋ํํธ1 ์๋ฆฌ์ฆ๋ ์์คํค ์ฝ๋ ๊ธฐ๋ฐ์ ๋๋ค. ์ฌ๋ฌ๋ถ๋ค์ด ์ง๊ธ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ Windows 7์ด๋ Windows 10 ์ด์์ฒด์ ์์ ์คํํฌ๋ํํธ์ ํ๊ธ ์ ๋ ฅ์ด ์ํํ ๋๋ ์ด์ ๋ ๋ฐ๋ก ์ด ๋๋ฌธ์ ๋๋ค.
ํ์ง๋ง, ์ด์ ์ ์ ์ด์์ฒด์ ๋ค์ด ์ ๋์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ์ถ์ธ๋ก ์์ง์ด๊ณ ์๊ณ , ์์ง๊น์ง ์ ์ผํ๊ฒ Windows ์ด์์ฒด์ ๋ง ๊ธฐ์กด ํธํ์ฑ ์ ์ง๋ฅผ ์ํด, ์์คํค ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ ๋ฟ์ ๋๋ค.
์, ์ ๋์ฝ๋๋ก ๊ฐ์ํ๊น์? ์ฌ์ค, ์ ๋์ฝ๋๊ฐ ์กฐํฉํ์ด๋ผ์, ๋ ๋ง์ ๊ฒ์ ํํํ ์ ์์ง๋ง ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๋ฉด, ์์คํค ์ฝ๋๋ ๋ด๊ฐ ํํํ๋ ๊ธ์๋๋ก ๋ฐ์ดํธ ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋จ์ด ๊ฐ๋ณ๊ณ , ์ ๋์ฝ๋๋ ๋ชจ๋ ๋ฌธ์๊ฐ 2 Byte ~ 4 Byte์ด๊ธฐ ๋๋ฌธ์, ํ๋ก๊ทธ๋จ์ด ๋ ๋ฌด๊ฑฐ์์ง๋ ๊ฒ์ด ๋์ง ์๋? ๋ผ๋ ์๋ฌธ์ ๊ฐ์ง ์ ์๋ค. ๋ฌผ๋ก ์ด ๋ง์ ํ์คํ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๊ฐ ๋์ด๋ ์๋ ์๊ฒ ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํ๋ก๊ทธ๋จ์ด ๋๋ ค์ง๊ฑฐ๋ ๋ฌด๊ฑฐ์์ง๊ธฐ ๊น์ง๋ ํ์ง ์๋๋ค.
์คํ๋ ค, ์ด๋ฐ ํํ๋ ฅ์ด์ผ ๋ง๋ก, ์ฌ๋ฌ๋ถ๋ค์ ํ๋ก๊ทธ๋จ์ด ๋ค๊ตญ์ด ์ธ์ด๋ฅผ ์ง์ํ๋ ๋ฐ, ์ ๋ฆฌํด์ง ์ ์๊ณ , ์๋ก์ด ๊ฐ๋ฐ๋๋ ํ๋ก๊ทธ๋จ๊ณผ ํธํ์ฑ์ ์ ์งํ ์ ์๋ ์ข์ ์ ์ ์ด ๋ ์๋ ์๋ค. ํ์ง๋ง ์์ง๊น์ง๋ ๋ง์ ๊ฐ๋ฐ์๋ค์ด๋ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ํ์๋ค์ด ์ ๋์ฝ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ค์์ฑ์ ๋ง์ด ์์ง ๋ชปํ๋ค๋๊ฒ ํ์ค์ด๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ฐ๋ฆฌ๊ฐ ํ๊ธ์ ์ง์ํ๋ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด, ์ ๋์ฝ๋์ ์์คํค ์ฝ๋๋ฅผ ๋ฐ๋ก ๊ฐ๋ฐํด์ผํ ๊น? ๊ทธ๋ฌ๋ฉด ์๊ฐ๊ณผ ์ธ๋ ฅ ์๋ชจ๊ฐ ์ฅ๋์๋ํ ๋ฐ.. ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์คํค ์ฝ๋์ ์ ๋์ฝ๋๋ฅผ ๋์์ ์ง์ํ๊ธฐ ์ํด ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ๊ฒ์ผ๊น?
์ ๋์ฝ๋์ ์์คํค ์ฝ๋๋ฅผ ๋์์ ์ง์ํ๋ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ
์ฌ์ค, ์ ๋ชฉ์ด ์กฐ๊ธ ์ฐ์ต์ง๋ง, ๋์์ ์ง์ํ๋ค๊ธฐ ๋ณด๋ค๋ ์ฌ๋ฌ๋ถ๋ค์ด ๋๊ฐ์ ์๋ฃํ์ ์ฐ๊ณ , ์ ๋์ฝ๋์ ์์คํค ์ฝ๋ ๊ธฐ๋ฐ์ ์๋์ฐ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์ ๋จ๊ธฐ๊ณ ์ ํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ Microsoft์์ ์ฑํํ๊ณ ์๋ ๋ฐฉ๋ฒ์ด์, MSDN์์ ์ด๋ ๊ฒ ๊ถ์ฅํ๊ณ ์๊ณ , ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์ํด ์๋ก์ด ํค๋ ํ์ผ๊ณผ ๋ ๋ค๋ฅธ ์๋ก์ด ์๋ฃํ์ ๋ฐฐ์์ผ ํฉ๋๋ค.
#include <tchar.h>
์ ๋ Visual Studio 2015 Update 2 ๋ฒ์ ์ ๊ธฐ์ค์ผ๋ก, ์ค๋ช ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋ํด์๋ Visual Studio ๋ฒ์ ๋ง๋ค ๋ค๋ฅผ ์ ์์์ ๋ฐ๋์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
tchar.h ํค๋ ํ์ผ์ ์ฌ๋ฌ๋ถ๋ค์ด ์์คํค ์ฝ๋์ ์ ๋์ฝ๋์ ๋์ ์ง์ํ ์ ์๋ ์ฌ์ด ๊ฐ๋ฐ์ ์ํด ๋ง๋ค์ด์ง Visual Studio ๋ ์์ ์ธ ํค๋ ํ์ผ๋ก ์ค์ง Windows์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
#include <stdio.h>
#include <locale.h>
#include <tchar.h>
int _tmain()
{
_tsetlocale(0, _T("korean"));
_TCHAR str[] = _T("๋ํ๋ฏผ๊ตญ2016");
_tprintf(_T("Character Length: %d \n"), sizeof(str));
_tprintf(_T("%s \n"), str);
return 0;
}
๊ธฐ์กด ํจ์์ ๋ค๋ฅธ ์ ์ด ์๋ค๋ฉด, ์์ "_t"๊ฐ ๋ถ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ ํ ๊ฐ์ง๊ฐ ์๋ค๋ฉด, ๋ฌธ์์ด์ ๊ฐ๊ฐ _T๊ฐ ์กด์ฌํฉ๋๋ค. _T๋ ์ ๋์ฝ๋์ผ ๋, L์ด ๋ถ๊ณ , ์์คํค ์ฝ๋์ผ ๋๋ ๋ถ์ด์ง ์๋ ์์ฝ์ด๋ก tchar.h์์ ์ ๊ณตํ๋ ๋งคํฌ๋ก ์ ๋๋ค.
์ฌ๊ธฐ์ ์ฌ๋ฌ๋ถ๋ค์ด ์์คํค ์ฝ๋๋ก ๋น๋ํ๊ณ ์ถ๋ค๋ฉด, ํ๋ก์ ํธ์ ์์ฑ์์ Multi byte Character Set์ ์ค์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
Multi-Byte ์ค์ ์ดํ, ํ๋ก๊ทธ๋จ์ ์คํํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2 * 4 = 8 Byte + 1 * 5 = 5 Byte ํ์ฌ, 13์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐ๋๋ก ์ ๋์ฝ๋๋ฅผ ์ฌ์ฉํ ๋๋, ํ๋ก์ ํธ ์์ฑ์์ Chracter Set์ Unicode Character Set์ผ๋ก ์ค์ ํด์ฃผ๊ณ , ์ปดํ์ผ ํ์๋ฉด ๋ฉ๋๋ค.
์ ๋์ฝ๋๋ก Character Set์ ๋ณ๊ฒฝํด์ฃผ๊ณ , ์ปดํ์ผํ์ฌ, ํ๋ก๊ทธ๋จ์ ์คํํด๋ด ์๋ค.
2 * 9 = 18 ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋์ผ๋ก....
์ฌ๊ธฐ๊น์ง, ์ ๋์ฝ๋ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด์ ์์๋ดค์ต๋๋ค. ์ฌ์ค, ์ด ๋ถ๋ถ์ ์ ๊ฐ ํ๋ก๊ทธ๋๋ฐํ๋ฉด์ ๊ต์ฅํ ์ซ์ดํ๋ ๋ถ๋ถ์ด๊ธฐ๋ ํฉ๋๋ค. ์ผ๋จ, ์ค๋ช ํ๊ธฐ๊ฐ ๊ต์ฅํ ๋ณต์กํ๊ณ , ์ด ๋ถ๋ถ์ ๋ํด์ ์ค๋ช ํ๋ ค๋ฉด ๋๋ฌด๋ ๋ง์ ๊ธ์ ์จ๋ด๋ ค๊ฐ์ผ ํ๋๋ฐ, ๊ทธ๋ฌ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค. ๋ฌด์๋ณด๋ค ์๋ฌธ Windows์ ํธํ์ฑ์ด ๋จ์ด์ ธ์, ์ด๋์ ๋ ์ค์ ํด์ผํ ๊ฒ๋ ๋ง๊ณ , ๋, ์ ์ผํ๊ฒ Windows๋ง ์์ง๊น์ง ์์คํค ์ฝ๋๋ฅผ ๊ณ ์งํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์จ์ผํ๋ค๋ ๊ฒ๋ ๊ต์ฅํ ๋ฒ๊ฑฐ๋กญ๊ธฐ๋ ํฉ๋๋ค.
Ps: (2018. 4. 10): ์ด ๊ธ์ ํฌ์คํ ํ์ง๊ฐ ๊ต์ฅํ ์ค๋๋์์์๋ ๋ถ๊ตฌํ๊ณ ์ด ๊ธ์ ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์๋ ๋ถ๋ค์ด ๋ง์ผ์ ๊ฒ ๊ฐ์ต๋๋ค. ์คํ, ์ง์ ์ ๋ํ ๋ถ๋ถ์ ์ธ์ ๋ ์ง ํ์ํฉ๋๋ค. ์ด ๋ธ๋ก๊ทธ๋ ์ฌ๋ฌ๋ถ๋ค์๊ฒ ์ ์ตํ ๊ธ๊ณผ ์ ์ ๊ฐ๋ฐ์ฝ์ง๊ธฐ๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด ์ด์ํ๊ณ ์๋ ๋ธ๋ก๊ทธ์ด๋ฉฐ ์ ๋ํ ๋ชจ๋ ๊ฒ์ ์๋ฒฝํ๊ฒ ์ํํด๋ด์ง ๋ชปํฉ๋๋ค. ์๋ชป๋ ๊ฒ์ด ์๋ค๋ฉด ๊ทธ๊ฒ์ ๋ฐ๋ก ์๋ฉด์ ๊ณต๋ถํ๊ฒ ๋๋ ๊ฒ์ด๊ณ ์ ๋ ๊ทธ๋ฐ ๊ธฐํ๋ฅผ ๋ฐํ์ผ์ ๋์๊ฐ๊ณ ์ ์ฌ๋ฐ๋ฅธ ์ง์ (์ถ์ฒ๊ฐ ๋ช ํํ๊ณ ๊ทผ๊ฑฐ์๋ ์ ์) ์ ๋ํด์๋ ๊ฐ๋ฅํํ ์์ฉํ๋ ค ํฉ๋๋ค.
์ฌ๊ธฐ๊น์ง ๊ธ ์ฝ์ด์ฃผ์ ๋ชจ๋ ๋ถ๋ค ์๊ณ ๋ง์ผ์ จ์ต๋๋ค.
์ฐธ๊ณ : http://blog.ohmynews.com/q9447/tag/%EC%99%84%EC%84%B1%ED%98%95%20%EC%BD%94%EB%93%9C ์ผ๋ถ ์ธ์ฉ.
'Programming > WinAPI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Windows API๋ก ์์ํด๋ณด๋ ์์ผ ํ๋ก๊ทธ๋๋ฐ (0) | 2017.04.10 |
---|---|
HANDLE ๊ตฌ์กฐ์ฒด์ Kernel Object๋ฅผ ์ด์ฉํ ์๋์ฐ ํ๋ก๊ทธ๋๋ฐ (0) | 2016.08.31 |
HANDLE ๊ตฌ์กฐ์ฒด์ Kernel Object (0) | 2016.08.29 |
Win32 API์ ์๋ฃํ (0) | 2016.06.14 |
Windows API ์์ ๋ง๋จ (0) | 2016.06.12 |