16. Internationalization
16์ฅ: ๊ตญ์ ํ
1) ๊ตญ์ ์ ์ธ ์ฝํ
์ธ ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ํ์ํ HTTP ์ง์
HTTP ๋ฉ์์ง๋ ์ด๋ฏธ์ง, ์ํ ๋๋ ๋ค๋ฅธ ์ข ๋ฅ์ ๋ฏธ๋์ด๋ฅผ ์ ๋ฌํ ์ ์๋ ๊ฒ ์ฒ๋ผ,
๋ชจ๋ ์ธ์ด๋ก ์ฝํ ์ธ ๋ฅผ ์ ๋ฌํ ์ ์๋ค.
HTTP์์ ์ํฐํฐ ๋ณธ๋ฌธ์ ๋นํธ๋ค๋ก ๊ฐ๋์ฐฌ ์์์ ๋ถ๊ณผํ๋ค.
๊ตญ์ ์ปจํ ์ธ ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ ๋ฌธ์์ ๋ฌธ์์ ์ธ์ด๋ฅผ ์๋ ค์ค์
ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฌธ์๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๋นํธ๋ค์ ๋ฌธ์๋ค๋ก ํ์ด๋ด๊ณ ,
์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ ์ฌ์ฉ์์๊ฒ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํด์ค ์ ์๋๋ก ํ ํ์๊ฐ ์๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฌธ์์ ๋ฌธ์์ ์ธ์ด๋ฅผ HTTP
**Content-Type charse
๋งค๊ฐ๋ณ์**์,**Conent-Language
ํค๋**๋ฅผ ํตํด์ ์๋ ค์ค๋ค. ์ด ํค๋๋ค์ ์ํฐํฐ๋ณธ๋ฌธ์ ์๋ 3๊ฐ์ง๋ฅผ ์์ ํ๋ค.๋ฌด์์ด ๋ค์ด์๋์ง
์ด๋ป๊ฒ ์ฝํ ์ธ ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅ๋ ์ฌ๋ฐ๋ฅธ ๊ธ์๋ค๋ก ๋ฐ๊พธ๋์ง
๊ทธ ํ ์คํธ๊ฐ ์ด๋ค ์ธ์ด์ ํด๋นํ๋์ง
๋์์ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ฌ์ฉ์๊ฐ ์ดํดํ๋ ์ธ์ด ๋ฐ ๋ธ๋ผ์ฐ์ ์ ์ค์น๋ ์ํ๋ฒณ ์ฝ๋ฉ ์๊ณ ๋ฆฌ์ฆ์ ์๋ ค์ค ํ์๊ฐ ์๋ค.
Accept-Charset
Accept-Language
```markdown [ํค๋ ์ฌ์ฉ ์์] Accept-Language: fr, en;q=0.8 Accept-Charset: iso-8859-1, utf-8
[์ค๋ช ]
q ๋ ๊ธฐ๋ณธ๊ฐ์ด 1.0, ๋ฐ๋ผ์ ํ๋์ค์ ์ฐ์ ์์๊ฐ ์์ด๋ณด๋ค ๋๋ค.
์์ ๋ฝ์ด(iso-8859-1) ์ฐจ์ ์ธ์ฝ๋ฉ๊ณผ UTF-8 ์ ๋์ฝ๋ ์ฐจ์ ์ธ์ฝ๋ฉ์ ์ง์ํ๋ค.
```
2) ๋ฌธ์์งํฉ(charset) ๊ณผ HTTP
โ ์ฐจ์
(charset)์ ๊ธ์๋ฅผ ๋นํธ๋ก ๋ณํํ๋ ์ธ์ฝ๋ฉ์ด๋ค.
HTTP charset ๊ฐ์ ์ด๋ป๊ฒ ์ํฐํฐ ์ฝํ ์ธ ๋นํธ๋ค์ ํน์ ๋ฌธ์ ์ฒด๊ณ์ ๊ธ์๋ค๋ก ๋ฐ๊พธ๋์ง ๋งํด์ค๋ค.
๊ฐ charset ํ๊ทธ๋
๋นํธ๋ค์ ๊ธ์๋ก ๋ณํํ๊ฑฐ๋(๋์ฝ๋ฉ)
ํน์ ๊ทธ ๋ฐ๋์ ์ผ์ ํด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ(์ธ์ฝ๋ฉ)์ ๋ช ๋ช ํ๋ค.
charset ํ๊ทธ๋ ๋ฑ๋ก๋ MIME ๋ฌธ์์งํฉ์ ํ์คํ๋์ด์๊ณ , IANA๊ฐ ๊ด๋ฆฌ: ๋งํฌ
์
charset=iso-8859-6
: ์์ ์์๊ฒ ๋นํธ๋ค์ ๊ธ์๋ค๋ก ๋์ฝ๋ฉํ๊ธฐ ์ํด iso-8859-6 (์๋ ๋ฌธ์ ์งํฉ) ๋์ฝ๋ฉ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ผ๊ณ ๋งํด์ค๋ค. 8bit ๊ฐ(2^8=256๊ฐ์ ์ ์ผํ ๊ฐ ์ ๊ณต) ์ ์ซ์์ ๊ตฌ๋์ ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ๊ธฐํธ๋ค์ ํฌํจํ ๋ผํด๋ฌธ์์ ์๋๋ฌธ์๋ก ๋งคํ.๋ช๋ช ๋ฌธ์ ์ธ์ฝ๋ฉ(
UTF-8
,iso-2022-jp
)์ ๊ธ์๋น ๋นํธ ์๊ฐ ์ผ์ ํ์ง ์์ ๋ ๋ณต์กํ ๊ฐ๋ณ๊ธธ์ด ์ฝ๋๋ค.์ค๊ตญ์ด, ์ผ๋ณธ์ด์ ๊ฐ์ด ๋ง์ ๊ธ์๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ฒด๊ณ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ๋นํธ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ์ผ ํ๋ค.
โก ๋ฌธ์ ์งํฉ(character sets) ์ ์ธ์ฝ๋ฉ ๋์๋ฐฉ์
๋ฌธ์๋ฅผ ์ด๋ฃจ๋ ๋นํธ๋ค์ ํ๋ฉด์ ๋ณด์ฌ์ค ์ ์๋ ๊ธ์๋ค๋ก ๋ณํ๊ธฐ๋ฅผ ์ํ๋ค.
์ธ์์๋ ์ฌ๋ฌ์ข ๋ฅ์ ๋ฌธ์๊ฐ ์๊ณ ,
๊ธ์๋ฅผ ๋นํธ๋ก ์ธ์ฝ๋ฉํ๋ ์ฌ๋ฌ ๋ค๋ฅธ ๋ฐฉ๋ฒ(์ ๊ฐ๊ธฐ ์ฅ๋จ์ ์ ๊ฐ์ง)์ด ์๊ธฐ ๋๋ฌธ์,
๋นํธ๋ค์ ๋ฌธ์๋ก ๋ณํํ๋ ๋์ฝ๋ฉ ์๊ณ ๋ฆฌ์ฆ์ ์ง์นญํ๊ณ ์ ์ฉํ๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค.
๋นํธ๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๋ 2๊ฐ์ง ๋จ๊ณ (MIME charset tag๋ฅผ ํตํด ๊ฒฐ์ )
๋ฌธ์๋ฅผ ์ด๋ฃจ๋ ๋นํธ๋ค์ '๋ฌธ์์ฝ๋'๋ก ๋ณํ๋๋ค.(โ ์ธ์ฝ๋ฉ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ ๋์ฝ๋ฉํ๋ค.)
[๋ฌธ์์ฝ๋: ํน์ charset์์ ํน์ ๋ฒํธ๊ฐ ์ง์ ๋, ๋ฌธ์๋ฅผ ์๋ณํ๋ ์ฝ๋ ์: 255]
'๋ฌธ์์ฝ๋(์255)'๋ ์ฝ๋ฉ๋ ๋ฌธ์์งํฉ์ ํน์ ์์๋ฅผ ์ ํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
[iso-8859-6์์ 255๋ 'ARABIC LETTER FEH'๋ฅผ ์๋ฏธํ๋ค.]
HTTP์ '๋ฌธ์์งํฉ'์ ์ธ์ฝ๋ฉ๊ตฌ์กฐ์ ์ฝ๋ฉ๋ ๋ฌธ์์งํฉ์ ๊ฒฐํฉํ ๊ฒ์ ๋ปํ๋ค.
๊ตญ์ ํ๋ ๋ฌธ์ ์์คํ ์ ํต์ฌ๋ชฉํ๋ ํํ(์๊ฐ์ ํํ๋ฐฉ์)์์ ์๋ฏธ(๊ธ์๋ค)์ ๋ถ๋ฆฌํ๋ ๊ฒ.
๋ฐ๋ผ์ HTTP๋ ๋ฌธ์ ๋ฐ์ดํฐ ๋ฐ ๊ทธ์ ๊ด๋ จ๋ ์ธ์ด์ ์ฐจ์ ๋ผ๋ฒจ์ ์ ์ก์๋ง ๊ด์ฌ์ ๋๋ค.
๊ธ์์ ๋ชจ์์ ์ด๋ป๊ฒ ํํํ ๊ฒ์ธ๊ฐํ๋ ๊ฑด ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ,์ด์์ฒด์ , ๊ธ๊ผด์ด ๊ฒฐ์ ํ๋ค.
โข ์๋ชป๋ ์ฐจ์
์ ์๋ชป๋ ๊ธ์๋ฅผ ๋ณ๋๋ค.
๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ charset ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ํด๋ผ์ด์ธํธ๋ ์ด์ํ ๊นจ์ง ๊ธ์๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ๋๋ค.
โฃํ์คํ๋ MIME ์ฐจ์
๊ฐ
ํน์ ๋ฌธ์ ์ธ์ฝ๋ฉ๊ณผํน์ ์ฝ๋ฉ๋ ๋ฌธ์์งํฉ์ ๊ฒฐํฉ์ MIME ์ฐจ์ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
HTTP๋ ํ์คํ๋ MIME ์ฐจ์ ํ๊ทธ๋ฅผ
Content-Type
๊ณผAccept-Charset
ํค๋์ ์ฌ์ฉํ๋ค.๋ฌธ์์ ๋ธ๋ผ์ฐ์ ์ ์ํด ์ฌ์ฉ๋๋ MIME ์ฐจ์ ์ธ์ฝ๋ฉ ๊ตฌ์กฐ(p.432์ฐธ์กฐ)
ํ๊ธ ๋ฌธ์ ์งํฉ ๋ฐ ์ธ์ฝ๋ฉ ์ฐธ์กฐ: http://forensic-proof.com/archives/615
cahracter set(euc-kr, utf8)์ ๋ํด ์์๋ณด์: ์ฐธ์กฐ๋งํฌ
```markdown
์ปดํจํฐ๋ ์ํ๋ฒณ๊ถ์์ ์ฒ์ ๋ง๋ค์ด์ก๊ณ , ์ํ๋ฒณ๋ง ํ์ํ๋ฉด ๋ฌ์๋ค.
์ํ๋ฒณ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ํฌํจํด๋ 52(๋์๋ฌธ์ ํฌํจ)๊ฐ ๋ฐ์ ์๋๋ค.
1byte(8bit, 2^8 = 256๊ฐ์ง)๋ก ๋ชจ๋ ํํ์ด ๊ฐ๋ฅํ๋ค. (ASCII)
๊ฐ ๋๋ผ๋ณ๋ก ๋ฌธ์์ธํธ๋ค์ด ์๊ฒผ๊ณ , ํ๊ตญ์ ๊ฒฝ์ฐ์ euc-kr์ ์ฌ์ฉํ๋ค.
๋ค๋ง ๋ค๋ฅธ ๋๋ผ๋ค๊ณผ ํธํ์ด ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ , ํธํ๋๋ ๊ฒ์ ๋ง๋ค์๋ ์ทจ์ง๋ก ์ ๋์ฝ๋๋ฅผ ๋ง๋ฌ
์ฒ์ ๊ณ ์๋๊ฑด utf-16 (๊ฐ๋ณ๊ธธ์ด ์ธ์ฝ๋ฉ)์ด์์ผ๋, ์์ด๊ถ์์๋ ์ฉ๋์ 2๋ฐฐ๋ ์ฆ๊ฐ์ํค๋ ๊ฒ์ด ๋๋ค.
๊ทธ๋์ ๊ธฐ์กด ์ ๋ฝ๊ถ์ 1byte๋ฅผ ํํํ๊ณ ๊ฒฝ์ฐ์๋ฐ๋ผ 2~4byte๋ก ํํ๊ฐ๋ฅํ ์ ๋์ฝ๋(utf-8) ์ฑํ.
(๋ํ, ์ ์ก์ ํฉ๋ฆฌ์ ์ธ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ์ฑํ๋์๋ค.)
```
โค Content-Type charset ํค๋์ Meta ํ๊ทธ
์์
์น ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ MIME ์ฐจ์ ํ๊ทธ๋ฅผ charset ๋งค๊ฐ๋ณ์์ ํจ๊ป Content-Type ํค๋์ ๋ด์ ๋ณด๋ธ๋ค.
๋ง์ฝ ๋ฌธ์์งํฉ(charset) ์ด ๋ช ์์ ์ด์ง ์์ผ๋ฉด, ์์ ์๋ ๋ฌธ์์ ์ฝํ ์ธ ๋ก๋ถํฐ charset์ ์ถ์ธก ํ๋ คํ๋ค.
๋ง์ฝ ํด๋ผ์ด์ธํธ๊ฐ ๋ฌธ์์ธ์ฝ๋ฉ์ ์ถ์ธกํ์ง ๋ชปํ ๊ฒฝ์ฐ,
iso-8859-1
๋ก ๊ฐ์ (=์์ ๋ฝ ๋ฌธ์ ์์คํ , asciiํ์ฅ)
โฅAccept-Charset ํค๋
HTTP ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ ์ ํํ ์ด๋ค ๋ฌธ์์ฒด๊ณ๋ฅผ ์ง์ํ๋์ง
Accept-Charset
ํค๋๋ก ์๋ฆฐ๋ค.ํด๋ผ์ด์ธํธ๊ฐ ์ง์ํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๋ชฉ๋ก์ ์ ๊ณตํ๋ค.
๋ฌธ์ ์ธ์ฝ๋ฉ ๊ตฌ์กฐ์ค ์ด๋ค ๊ฒ์ผ๋ก ์ฝํ ์ธ ๋ฅผ ๋ฐํํ ์ง๋ ์๋ฒ์ ์์ .
์ฃผ์:
Accept-Charset
์์ฒญ ํค๋์ ๋์ํ๋Content-Charset
์ ์๋ค!! (๋จ,Content-Type
์ charset ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์๋ฒ๋ก๋ถํฐ ๋๋ ค๋ฐ๊ณ , ๋์นญ์ ์ด์ง ์์ง๋ง ํ์ํ ์ ๋ณด๋ ์ ๊ณตํ๋ค.)
3) ๋ค์ค ์ธ์ด ๋ฌธ์ ์ธ์ฝ๋ฉ์ ๋ํ ์ง์นจ
โ ๋ฌธ์์งํฉ ์ฉ์ด
Character(๋ฌธ์): ๊ธ์ฐ๊ธฐ์ ์ต์๋จ์. (์ํ๋ฒณ ๊ธ์, ์ซ์, ๊ตฌ๋์ , ๊ธฐํธ, ํ์๋ฌธ์ ๋ฑ)
Glyph(๊ธ๋ฆฌํ, ์์ฒด(ๅญ้ซ)): ๊ธ์จ ์์ฒด (ํ๋์ ๊ธ์จ์ ๋ํ ์ ์ผํ ์๊ฐ์ ํํ)
Coded character(์ฝ๋ฉ๋ ๋ฌธ์): ๊ธ์๋ฅผ ๋ค๋ฃฐ์ ์๋๋ก ๊ธ์์ ํ ๋น๋ ์ ์ผํ ์ซ์.
Coding Space(์ฝ๋ ๊ณต๊ฐ): ๋ฌธ์ ์ฝ๋ ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ค๊ณ ๊ณํํด๋ ์ ์ ๋ฒ์.
Code width(์ฝ๋ ๋๋น): ๊ฐ ๋ฌธ์ ์ฝ๋์ (๊ณ ์ ๋ ํฌ๊ธฐ์) ๋นํธ ๊ฐฏ์
Character repertoire(์ฌ์ฉ๊ฐ๋ฅํ ๋ฌธ์์งํฉ): ์ธ์์ ์กด์ฌํ๋ ๋ชจ๋ ๊ธ์์ ๋ถ๋ถ์งํฉ
Coded character set(์ฝ๋ฉ๋ ๋ฌธ์์งํฉ): ์ค์ ๊ธ์๋ค์ ์ซ์๋ก๋ ๋ฌธ์์ฝ๋๋ฅผ ๋์์ํจ ๊ฒ
US-ASCII
: ์ ๋ณด๊ตํ์ ์ํ ๋ฏธ๊ตญ ํ์ค ์ฝ๋.(ascii code ๊ฐ์ ์ค์ง 0-127๋ง ์ฌ์ฉ).๋ฐ๋ผ์, ์ฝ๋ ๊ณต๊ฐ ์ ์ฒด๋ฅผ ํํํ๋๋ฐ 7bit๋ง ํ์.
iso-8859
: ๊ตญ์ ์ ์ธ ๊ธ์ค๊ธฐ๋ฅผ ์ํด ํ์ํ ๊ธ์๋ค์ ์ถ๊ฐํ US-ASCII์ 8bit ํ๋์งํฉ.
Character encoding scheme(๋ฌธ์ ์ธ์ฝ๋ฉ ๊ตฌ์กฐ): ์ซ์๋ก ๋ ๋ฌธ์ ์ฝ๋๋ค์ ์ฝํ ์ธ ๋นํธ์ ์ฐ์์ผ๋ก ์ธ์ฝ๋ฉํ๊ณ , ์๋๋๋ก ๋์ฝ๋ฉํ๋ ์๊ณ ๋ฆฌ์ฆ.
Fixed width(๊ณ ์ ํญ)
๊ฐ ์ฝ๋ฉ๋ ๋ฌธ์๋ฅผ ๊ณ ์ ๋ ๊ธธ์ด์ ๋นํธ๋ก ํํํ๋ค. ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋, ๊ณต๊ฐ ๋ญ๋น ๋ฐ์ ๊ฐ๋ฅ.
Variable width(non modal) (๊ฐ๋ณํญ(๋น๋ชจ๋ฌ))
๋ค๋ฅธ ๋ฌธ์ ์ฝ๋ ๋ฒํธ์ ๋ค๋ฅธ ๊ธธ์ด์ ๋นํธ๋ฅผ ์ฌ์ฉํ๋ค.
์์ฃผ ์ฌ์ฉํ๋ ๊ธ์์ ๋นํธ๊ธธ์ด๋ฅผ ์ค์ด๊ณ , ๊ตญ์ ๋ฌธ์์ ๋ํด ์ฌ๋ฌ ๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ด์ 8bit ๋ฌธ์์งํฉ๊ณผ์ ํธํ์ฑ๋ ์ ์ง๊ฐ๋ฅํ๋ค.
Variable width(modal) (๊ฐ๋ณํญ(๋ชจ๋ฌ))
๋ค๋ฅธ ๋ชจ๋๋ก์ ์ ํ์ ์ํด ํน๋ณํ 'escape' ํจํด์ ์ฌ์ฉํ๋ค.
โก ๋ช๊ฐ์ง ์ธ์ฝ๋ฉ ๊ตฌ์กฐ
8bit
8๋นํธ ๊ณ ์ ํญ ์์ด๋ดํฐํฐ ์ธ์ฝ๋ฉ์ ๊ฐ๋จํ ๊ฐ ๋ฌธ์ ์ฝ๋๋ฅผ ๊ทธ์ ๋์ํ๋ 8bit ๊ฐ์ผ๋ก ์ธ์ฝ๋ฉํ๋ค.
256๊ฐ ๋ฌธ์์ ์ฝ๋ ๋ฒ์์ ๋ํ ๋ฌธ์์งํฉ๋ง์ ์ง์ํ๋ค.
iso-8859
๋ฌธ์ ์งํฉ๊ตฐ์ 8 ๋นํธ ์์ด๋ดํฐํฐ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ค.
UTF-8
๋น๋ชจ๋ฌ ๊ฐ๋ณ๊ธธ์ด ์ธ์ฝ๋ฉ์ ์ฌ์ฉ.
์ฒซ ๋ฐ์ดํธ(=ํ์ด๋นํธ)์ ์ ๋ ๋นํธ๋ค์ ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ ๊ธธ์ด๋ฅผ ๋ฐ์ดํธ๋จ์๋ก ๋ํ๋ด๊ณ
์ดํ์ ๋ฐ์ดํธ๋ค์ ๊ฐ๊ฐ 6๋นํธ์ ์ฝ๋๊ฐ์ ๋ด๋๋ค.
์์คํค์์ ํธํ์ฑ์ด ํ๋ณด๋๋ค.
iso-8859
์ ํธํ๋๋๊ฑด ์๋.
euc-kr
euc: extended unix code์ ์ฝ์๋ก, ์ ๋์ค ์ด์์ฒด์ ์์ ์์์ ๋ฌธ์๋ค์ ์ง์ํ๊ธฐ์ํด ๊ฐ๋ฐ๋์ด์ง.(๊ฐ๋ณํญ, ๋น๋ชจ๋ฌ) ๋ชจ๋๊ฐ์ ์ ํ์ ์ํ ์ด์ค์ผ์ดํ ๋ฌธ์์ด์ด ์กด์ฌํ์ง ์๋๋ค.
KSX1003, KSX1001 ๋๊ฐ์ง ๋ฌธ์์งํฉ ์ง์ํ๋ค.
4) ์ธ์ด ํ๊ทธ์ HTTP
์ธ์ดํ๊ทธ๋, ์ธ์ด์ ์ด๋ฆ์ ๋ถ์ด๊ธฐ ์ํ ์งง๊ณ ํ์คํ๋ ๋ฌธ์์ด์ด๋ค.
์์ด(en), ๋ ์ผ์ด(de), ํ๊ตญ์ด(ko), ๊ทธ๋ฆฌ๊ณ ๋ง์ ๋ค๋ฅธ ์ธ์ด์ ๋ํ ์ธ์ด ํ๊ทธ๊ฐ ์กด์ฌํ๋ค.
์ง์ญ์ ๋ฐ๋ผ ๋ณํ๋ ์ธ์ด๋ ๋ฐฉ์ธ์ ํํํ ์๋ ์๋ค.
โ Content-Language ํค๋
์ํฐํฐ๊ฐ ์ด๋ค ์ธ์ด ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๊ณ ์๋์ง ์์ ํ๋ค. (์๋ฒ โ ํด๋ผ์ด์ธํธ)
์ฃผ๋ก ํ๋์ค์ด ์ฌ์ฉ์ ๋์์ผ ๊ฒฝ์ฐ :
Content-Language: fr
Content-Language
ํค๋๋ ํ ์คํธ ๋ฌธ์๋ง์ ์ํ๊ฒ ์๋๋ค.์ค๋์ค ํด๋ฆฝ, ๋์์, ์ ํ๋ฆฌ์ผ์ด์ ๋ ํน์ ์ธ์ด ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ์ ์๋ค.
๋ง์ฝ ์ฝํ ์ธ ๊ฐ ์ฌ๋ฌ ์ธ์ด ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ค๋ฉด ์ฌ๋ฌ ์ธ์ด๋ฅผ ๋์ดํ ์ ์๋ค.
ํ๊ตญ์ด, ์์ด๊ฐ ๋ชจ๋ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ?:
Content-Language: ko, en
๋จ, ์ฌ๋ฌ ์ธ์ด๊ฐ ํ๋์ ์ํฐํฐ์ ๋์ ์ฌ์ฉ๋์๋ค ํด์ ์ฌ๋ฌ ์ธ์ด ์ฌ์ฉ์๋ค์ ๋์์ผ๋ก ํ๋ ์๋ฏธ๋ ์๋๋ค.
โก Accept-Language ํค๋
HTTP๋ ์ธ์ด์ ์ฝ๊ณผ ์ ํธ๋๋ฅผ ์น์๋ฒ์ ์ ๋ฌํ ์ ์๊ฒ ํด์ค๋ค.
๋ง์ฝ ์น ์๋ฒ๊ฐ ์ด๋ค ์์์ ๋ํด ์ฌ๋ฌ ์ธ์ด๋ก ๋ ๋ฒ์ ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ์น ์๋ฒ๋ ์ฐ๋ฆฌ๊ฐ ์ ํธํ๋ ์ธ์ด๋ก ๋ ์ฝํ ์ธ ๋ฅผ ์ค ์ ์๋ค.
๋ํ, ์ฌ์ฉ์์ ์ธ์ด๋ก ๋ ๋์ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ฑฐ๋, ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ฑฐ๋, ๋์ ์ธ์ด์ ๋ง๋ ์ํ ๊ด๊ณ ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด Accept-Language ํค๋์ ๊ฐ์ ์ฝ์ ์ ์๋ค.
โข ์ธ์ด ํ๊ทธ์ ์ข
๋ฅ ([RFC 3066] ๊ธฐ์ค)
์ธ์ดํ๊ทธ๋ ๋ค์์ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์ ์๋ค.
์ผ๋ฐ์ ์ธ ์ธ์ด์ ์ข ๋ฅ ex_
es
(์คํ์ธ์ด)ํน์ ๊ตญ๊ฐ์ ์ธ์ด ex_
en-GB
(์๊ตญ ์์ด)๋ฐฉ์ธ ex_
no-bok
(๋ ธ๋ฅด์จ์ด์ด์ Book Language๋ฅผ ์๋ฏธ)์ง๋ฐฉ์ด ex_
sgn-US-MA
(๋ง์์ค ๋น๋์ด๋ ์ฌ์ ์ํ)๊ทธ์ธ์ ๋ค๋ฅธ ์ธ์ด์ ๋ณํ์ด ์๋ ํ์ค์ธ์ด (ex_
i-navajo
)๋นํ์ค ์ธ์ด ex_
x-snowboarder-slang
(์ค๋ ธ์ฐ๋ณด๋ ํ๋ ์ฌ๋..)
โฃ ์๋ธํ๊ทธ
์ธ์ด ํ๊ทธ๋ ํ์ดํ์ผ๋ก ๋ถ๋ฆฌ๋ ํ๋ ์ด์์ ์๋ธํ๊ทธ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
[์์]
์ฃผ ์๋ธํ๊ทธ(sgn) : ํ์คํ๋์ด ์๋ค. - ์ํ๋ฒณ๋ง
sgn(sign language): ์ํ
ํ์ค ์ธ์ด ์งํฉ์์ ์ ํ๋ ํ์คํ๋ ์ธ์ด ํ ํฐ
๋๊ธ์์ ๊ฒฝ์ฐ(ISO639, 639-1 ํ์ค ์ธ์ด์ฝ๋)
์ธ๊ธ์์ ๊ฒฝ์ฐ(ISO 639-2 ํ์ค๊ณผ ํ์ฅ)
๊ธ์ 'i' ์ด๋ฉด IANA์ ๋ฑ๋ก๋๊ฒ. ๊ธ์ 'x'๋ฉด ํน์ ๊ฐ์ธ์ด๋ ์ง๋จ ์ ์ฉ์ ๋นํ์คํ์ฅ ์๋ธํ๊ทธ
๋๋ฒ์งธ ์๋ธํ๊ทธ(US): ์์ ๋ง์ ์ด๋ฆ ํ์ค์ ๋ฐ๋ฆ (์ ํ์ ) - ์ํ๋ฒณ + ์ซ์๊ฐ๋ฅ (์ต๋ 8๊ธ์)
US: united state
๋ณดํต ISO3166 ๊ตญ๊ฐ ์ฝ๋์ ์ง์ญ ํ์ค์งํฉ์์ ์ ํ๋ ํ์คํ๋ ๊ตญ๊ฐ ํ ํฐ
๋๊ธ์๋ฉด ISO3166์ ์ ์๋ ๊ตญ๊ฐ/์ง์ญ
3~8๊ธ์๋ฉด IANA์ ๋ฑ๋ก๋๊ฒ
ํ๊ธ์๋ฉด ๋ญ๊ฐ ์๋ชป๋๊ฑฐ
์ธ๋ฒ์งธ ์๋ธํ๊ทธ(MA)๋ ๋ฑ๋ก๋์ด ์์ง ์๋ค.
8์ ์ดํ์ ์ํ๋ฒณ๊ณผ ์ซ์๋ก ์ด๋ค์ ธ์ผํ๋ค๋๊ฒ ์ธ์ ์ ํด์ง ๊ท์น์ ์์.
โค ๋์๋ฌธ์ ๊ตฌ๋ถ ๋ฐ ํํ
๋ชจ๋ ํ๊ทธ๋ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ถ๋์ง ์๋๋ค. (fr=FR=Fr=fR)
๊ด์ฉ์ ์ผ๋ก ์ธ์ด๋ฅผ ์๋ฏธํ ๋๋ ์๋ฌธ์(fr), ๊ตญ๊ฐ๋ฅผ ๋ํ๋ผ๋๋ (FR)
โฅ ์ ํธ ์ธ์ด ์ค์
์น ๋ธ๋ผ์ฐ์ ํ๋กํ์์ ์ ํธ ์ธ์ด๋ฅผ ์ค์ ํ ์ ์๋ค.
5) ๊ตญ์ ํ๋ URI
์ค๋๋ URI์ ๋ํ ์ต์ ๋ช ์ธ(RFC 3986, ์ฑ ์ฐ์ฌ์ง์์ )๋ URI์ UTF-8 ๋ฌธ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ช ์์ ์ผ๋ก ์ ์ํ๊ณ ์์ผ๋ฏ๋ก, ๋ค์ํ ๋ฌธ์๋ค์ ๋ณ ๋ฌธ์ ์์ด ์ฌ์ฉํ ์ ์๋ค. URI๊ฐ ๊ตญ์ ์ ์ผ๋ก ์ง์๋์ง ์์์ ๋์๋ US-ASCII์ ๋ถ๋ถ์งํฉ์ผ๋ก URI๋ฅผ ๊ตฌ์ฑํ๋ค.
โ ๊ตญ์ ์ ๊ฐ๋
์ฑ vs ์๋ฏธ ์๋ ๋ฌธ์๋ค
URI ์ค๊ณ์์ ๋ชฉํ
์ ์ธ๊ณ์ ๋ชจ๋๊ฐ URI๋ฅผ ํตํด ๋ค๋ฅธ์ด๋ค๊ณผ ๊ณต์ ํ ์ ์๊ธฐ๋ฅผ ์ํจ.
URI๊ฐ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ๊ธฐ์ตํ๊ธฐ ์ฝ๊ธธ ๋ฐ๋
์ด 2๊ฐ์ง ๋ชฉํ๋ ์๋ก ์ถฉ๋ํ๋ค.
URI ์ ์๋ค์ ๋ฆฌ์์ค ์ญ๊ฒฐ์์ ๊ฐ๋ ์ฑ๊ณผ, ๊ณต์ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅ์ด ๋๋ถ๋ถ์ ์๋ฏธ์๋ ๋ฌธ์๋ค๋ก ๊ตฌ์ฑ๋ ์ ์๋๋ก ํ๋๊ฒ ๋ณด๋ค ๋ ์ค์ํ๋ค๊ณ ์ฌ๊ฒผ๋ค.
โก URI ์์ ์ฌ์ฉ๋ ์ ์๋ ๋ฌธ์๋ค
โข ์ด์ค์ผ์ดํ๊ณผ ์ญ์ด์ค์ผ์ดํ
URI ์ด์ค์ผ์ดํ๋ ์์ฝ๋ ๋ฌธ์๋ ๋ค๋ฅธ ์ง์ํ์ง ์๋ ๊ธ์๋ค์ ์์ ํ๊ฒ URI์ ์ฝ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
์ด์ค์ผ์ดํ๋ % ํ๋์ ๋ค์ด์ 16์ง์ ๊ธ์ 2๊ฐ๋ก ์ด๋ฃจ์ด์ง ์ธ๊ธ์ ๋ฌธ์์ด์ด๋ค.
16์ง์ 2๊ฐ์ ๊ธ์๋ US-ASCII๋ฌธ์์ ์ฝ๋๋ฅผ ๋ํ๋ธ๋ค.
์
๊ณต๋ฐฑ(์คํ์ด์ค, ์์คํค32)๋ฅผ ์ฝ์ ํ๊ณ ์ถ์ ๋ ์ด์ค์ผ์ดํ '%20' ์ ์ฌ์ฉํ ์ ์๋ค.
๋ด๋ถ์ ์ผ๋ก HTTP ์ ํ๋ฆฌ์ผ์ด์ ์ URI๋ฅผ ๋ฐ์ดํฐ๊ฐ ํ์๋กํ ๋๋ง ์ธ์ด์ค์ผ์ดํ ํด์ผํ๋ค.
๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ค URI๋ ๊ฒฐ์ฝ ๋๋ฒ ์ธ์ด์ค์ผ์ดํ ๋์ง ์๋๋กํด์ผํ๋ค.
์ด์ค์ผ์ดํ๋ ํผ์ผํธ๊ธฐํธ๋ฅผ ํฌํจํ URI๋ฅผ ์ธ์ด์ค์ผ์ดํํ๋ฉด ํผ์ผํธ๊ธฐํธ๊ฐ ํฌํจ๋ URI ๊ฐ ๋ง๋ค์ด์ง๋๋ฐ, ์ฌ๊ธฐ์ ์๋ชปํด์ ํ๋ฒ ๋ ์ธ์ด์ค์ผ์ดํํ๋ฉด ํผ์ผํธ ๊ธฐํธ ๋ค์ ๋ฌธ์๋ค์ด ์ด์ค์ผ์ดํ์ ์ผ๋ถ์ธ๊ฒ์ฒ๋ผ ์ฒ๋ฆฌ๋๋ฉด์ ๋ฐ์ดํฐ ์์ค์ด ์ ๋ฐ๋ ์ ์๋ค.
โฃ ๊ตญ์ ๋ฌธ์ ์ด์ค์ผ์ดํ
์ด์ค์ผ์ดํ๊ฐ์ US-ASCII์ฝ๋๋ฒ์(0-127)์ ์์ด์ผ๋ง ํ๋ค.
Last updated