์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
http://www.unicode.org/charts/


ํŒ€์žฅ๋‹˜ ๋ง์”€.

์ดํ›„ ์•ฝ 2์ฃผ๊ฐ„(1์›” 16์ผ)์— ๊ฑธ์ณ ํ•ด์•ผ ํ•  ์ฃผ์š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค

์šฐ์„  ์ฒจ๋ถ€๋œ ๋ฌธ์„œ์˜ ์™„์„ฑ๋ณธ์„ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ง€๋‚œ๋ฒˆ์— ์–˜๊ธฐ ํ–ˆ์—ˆ๋Š”๋ฐ์š”

๋ฌธ์ž์—ด์˜ ๋น„๊ตํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.(์šฐ์„ ์€ ์ดˆ์„ฑ๊ฐ’์œผ๋กœ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.)

์šฐ์„  ํ•ด๋‹น ๋ฌธ์ž์—ด์€ unicode๋กœ(utf16/ucs2)๋“ค์–ด ์˜ค๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ณ ๋ คํ•˜๊ณ  ์ดํ›„

Utf8์ด๋‚˜ ksc5601 ํ™•์žฅํ˜•๋“ฑ์— ๋Œ€ํ•ด ๊ณ ๋ ค๋ฅผ ํ•˜๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด ์ผ๋‹จ Unicode ๋ฒ„์ „์„ ๋จผ์ € ํ•˜๊ณ  ์™„์„ฑ ํ›„์— ์ ์ฐจ ํ™•์žฅํ•ด๊ฐ€์ž๋Š” ์–˜๊ธฐ์ž…๋‹ˆ๋‹ค.

 

์ด ์ž‘์—…์„ ์œ„ํ•ด Unicode์— ๋Œ€ํ•ด ์–ด๋Š ์ •๋„ ์ง€์‹์„ ํ™•๋ณด ํ•ด์•ผํ•˜๊ฒ ์ฃ ?

1์›” 8์ผ๊นŒ์ง€ ์ž๋ฃŒ๋ฅผ ์ˆ˜์ง‘์ •๋ฆฌํ•ด์„œ ๊ฐ„๋‹จํ•œ ๋ธŒ๋ฆฌํ•‘์„ ์ง„ํ–‰ํ•ด ์ฃผ์‹œ๊ณ  ์ดํ›„ ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ•ด์„œ

(์ฝ”๋“œ๋Š” ํ•จ์ˆ˜์˜ ํ˜•ํƒœ์ด๋ฉด ๋ฉ๋‹ˆ๋‹ค.)ํ…Œ์ŠคํŠธ ์ง„ํ–‰์„ ํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ 8์ผ ๋ธŒ๋ฆฌํ•‘์‹œ ํ•จ์ˆ˜์˜prototype๊ณผ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๋™์ž‘์ด ์–ด๋–ป๊ฒŒ ๋˜์–ด์•ผ ํ•  ๊ฒƒ์ธ์ง€

๋˜ํ•œ, ์˜ˆ์™ธ์ ์ธ ๊ฒฝ์šฐ์˜ ์ข…๋ฅ˜ ๋ฐ ๋Œ€์‘ ๋ฐฉ์•ˆ ๋“ฑ์— ๋Œ€ํ•ด์„œ๋„ ํ•จ๊ป˜ ์–˜๊ธฐํ•˜๋ฉด๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ดํ›„ ์™„์„ฑ ํ›„์— ์ตœ์ข… ์„ธ๋ฏธ๋‚˜๋ฅผ ํ•  ์˜ˆ์ •์ด๋‹ˆ ๋ฏธ๋น„์ ์€ ๊ทธ๋•Œ๊นŒ์ง€ ๋ณด์™„ํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค.

์ž˜ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ด์„œ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ์‹œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฝ”๋“œ ์ž‘์„ฑ์€ C๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€๊ธ‰์  ์ฒจ๋ถ€๋œ ์ฝ”๋”ฉ ๊ทœ์•ฝ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ์ฐธ์กฐํ•˜์„ธ์š”






http://www.kristalinfo.com/K-Lab/unicode/Unicode_intro-kr.html


http://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_A000~AFFF



์ถœ์ฒ˜: http://blog.empas.com/palazzo/read.html?a=11547141


L" " ์‚ฌ์šฉ
๋˜๋Š”
MultiByteToWideChar ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ
------------------------------------------------------------------------
---ex-----
 
function(L"์•„์•ผ์–ด์—ฌ");
 
char *mychar = "์•„์•ผ์–ด์—ฌ";
WCHAR myWCHAR[256];
MultiByteToWideChar( CP_ACP, 0, mychar  , strlen(mychar)+1,
  myWCHAR, sizeof(myWCHAR)/sizeof(myWCHAR[0]));
 
์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ char*๋กœ ๋ณ€๊ฒฝ์€
WideCharToMultiByte()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•




ํ† ํ† ๋กœ๊ฐ€์‚ฌ_ํ”„๋ฆฐํŠธ์šฉ.hwp
ํ† ํ† ๋กœ ์•ค๋”ฉ ๊ณก

ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใ ใ‚Œใ‹ใŒ ใ“ใฃใใ‚Š
๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์‚ด๋ฉฐ์‹œ
ใ”ใฟใกใซ ใ“ใฎใฟ ใ†ใšใ‚ใฆ
์˜ค์†”๊ธธ์— ๋‚˜๋ฌด์—ด๋งค ๋ฌป๊ณ 
ใกใฃใ•ใช ใ‚ ใฏใˆใŸใ‚‰ ใฒใฟใคใฎ ใ‚ใ‚“ใ”ใ†
์ž‘์€ ์‹น์€
ใ‚‚ใ‚Šใธใฎ ใƒ‘ใ‚นใƒ-ใƒˆ
์ˆฒ์œผ๋กœ์˜ ์—ฌ๊ถŒ
ใ™ใฆใใช ใผใ†ใ‘ใ‚“ ใฏใ˜ใพใ‚‹
์•„์ฃผ๋ฉ‹์ง„ ๋ชจํ—˜ ์‹œ์ž‘๋œ๋‹ค.
ใจใชใ‚Šใฎ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
์ด์›ƒ์˜ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใ‚‚ใ‚Šใฎใชใ‹ใซ ใ‚€ใ‹ใ—ใ‹ใ‚‰ ใ™ใ‚“ใงใ‚‹
์ˆฒ์˜ ์•ˆ์—์„œ ์˜›๋‚ ๋ถ€ํ„ฐ ์‚ด๊ณ ์žˆ๋Š”
ใจใชใ‚Šใฎ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
์ด์›ƒ์˜ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใ“ใฉใ‚‚ใฎ ใจใใซใ ใ‘ ใ‚ใชใŸใซ ใŠใจใšใ‚Œใ‚‹
์–ด๋ฆฐ์•„์ด์˜ ์‹œ์ ˆ์—๋งŒ ๋‹น์‹ ์—๊ฒŒ ์ฐพ์•„์˜ค๋Š”
ใตใ—ใŽใช ใงใ‚ใ„
์ด์ƒํ•œ ๋งŒ๋‚จ.
ใ‚ใ‚ใตใ‚Š ใƒใ‚นใฆใ„
๋น„๊ฐ€ ๋‚ด๋ฆฌ๋Š” ๋ฒ„์Šค์ •๋ฅ˜์žฅ.
ใ‚บใƒ–ใƒŒใƒฌ ใ‚ชใƒใ‚ฑใŒ ใ„ใŸใ‚‰
ํ ๋ป‘ ์ –์€ ๋„๊นจ๋น„๊ฐ€ ์žˆ๋‹ค๋ฉด
ใ‚ใชใŸใฎ ใ‚ใพใ‚ฌใ‚ต ใ•ใ—ใฆใ‚ใ’ใพใ—ใ‚‡
๋‹น์‹ ์˜ ์šฐ์‚ฐ
ใ‚‚ใ‚Šใธใฎ ใƒ‘ใ‚นใƒ-ใƒˆ
์ˆฒ์œผ๋กœ์˜ ์—ฌ๊ถŒ
ใพใปใ†ใฎใจใณใ‚‰ ใ‚ใใพใ™
๋งˆ๋ฒ•์˜ ๋ฌธ ์—ด๋ฆฐ๋‹ค.
ใจใชใ‚Šใฎ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
์ด์›ƒ์˜ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใคใใ‚ˆใฎ ใฐใ‚“ใซ ใ‚ชใ‚ซใƒชใƒŠ ใตใ„ใฆใ‚‹
๋‹ฌ๋ฐค์— ์˜ค์นด๋ฆฌ๋‚˜ ๋ถˆ๊ณ ์žˆ๋Š”
ใจใชใ‚Šใฎ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
์ด์›ƒ์˜ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใ‚‚ใ—ใ‚‚ ใ‚ใˆใŸใชใ‚‰ ใ™ใฆใใช ใ—ใ‚ใ‚ใ›ใŒ

ใ‚ใชใŸใซใใ‚‹ใ‚
๋‹น์‹ ์—๊ฒŒ ์˜ฌ๊บผ์—์š”
ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใ‚‚ใ‚Šใฎใชใ‹ใซ ใ‚€ใ‹ใ—ใ‹ใ‚‰ ใ™ใ‚“ใงใ‚‹
์ˆฒ์˜ ์•ˆ์—์„œ ์˜›๋‚ ๋ถ€ํ„ฐ ์‚ด๊ณ ์žˆ๋Š”
ใจใชใ‚Šใฎ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ ใƒˆใƒˆใƒญ
์ด์›ƒ์˜ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ ํ† ํ† ๋กœ
ใ“ใฉใ‚‚ใฎ ใจใใซใ ใ‘ ใ‚ใชใŸใซ ใŠใจใšใ‚Œใ‚‹
์–ด๋ฆฐ์•„์ด์˜ ๋•Œ๋งŒ ๋‹น์‹ ์—๊ฒŒ ์ฐพ์•„์˜ค๋Š”
ใตใ—ใŽใช ใงใ‚ใ„
์ด์ƒํ•œ ๋งŒ๋‚จ.
==========================================================================
ใ“ใฃใใ‚Š :~ใจ์˜ ๊ผด๋กœ ์”€/ ๋‚จ๋ชฐ๋ž˜. ์‚ด์ง.
ใ‹ : ๋ถˆํ™•์‹คํ•œ ์ง์ž‘์„ ๋‚˜ํƒ€๋ƒ„. โ€ฆใ„ด์ง€. ...
ใ”ใฟใก :์˜ค์†”๊ธธ, ์ข์€๊ธธ.
ใ“ใฎใฟ :๋‚˜๋ฌด์—ด๋งค
ใ†ใšใ‚ใ‚‹ :๋ฌป๋‹ค
ใ‚ :์‹น
ใ‚‚ใ‚Š :์ˆฒ
ใธ :ใธใฎ์˜ ํ˜•ํƒœ๋กœ๋„ ์“ฐ์ž„//~๋กœ,~ ์œผ๋กœ
ใ™ใฆใ :์ฃผ๋กœ ์—ฌ์„ฑ์ด ์”€ //๋งค์šฐ ๊ทผ์‚ฌํ•จ. ๋งค์šฐ ํ›Œ๋ฅญํ•จ. ์•„์ฃผ ๋ฉ‹์ง.
ใผใ†ใ‘ใ‚“ :๋ชจํ—˜
ใฏใ˜ใพใ‚‹ :์‹œ์ž‘๋˜๋‹ค
ใชใ‹ใซ :์•ˆ,์†,๋‚ด๋ถ€.
ใ™ใ‚€ :์‚ด๋‹ค. -> ใ™ใ‚€ + ~ใงใ‚‹
ใจใ :๋•Œ,์‹œ์ ˆ.
ใ ใ‘ :ํ•œ์ •ยทํ•œ๋„๋ฅผ ๋‚˜ํƒ€๋ƒ„// โ€ฆ๋งŒ. โ€ฆ๋ฟ.
ใŠใจใšใ‚Œใ‚‹ :์ฐพ์•„์˜ค๋‹ค,๋ฐฉ๋ฌธํ•˜๋‹ค.
ใตใ—ใŽใช :์ด์ƒํ•œ,๋ถˆ๊ฐ€์‚ฌ์˜ํ•œ.
ใงใ‚ใ„ :๋งŒ๋‚จ,๋งˆ์ฃผ์นจ.
ใƒใ‚นใฆใ„ :ใƒใ‚นใ‚นใƒˆใƒƒใƒ—. //๋ฒ„์Šค ์ •๋ฅ˜์žฅ.
ใ‚บใƒ–ใƒŒใƒฌ :ํ ๋ป‘์ –๋‹ค
ใ‚ชใƒใ‚ฑ :๋„๊นจ๋น„
ใ„ใŸใ‚‰ -> ใ„ใ‚‹ + ~ใŸใ‚‰
ใ‚ใพใ‚ฌใ‚ต :ใ‚ใพ-ใŒใ•//์‚ฟ๊ฐ“,์šฐ์‚ฐ.
ใพใปใ† :๋งˆ๋ฒ•,์š”์ˆ ,๋งˆ์ˆ .
ใจใณใ‚‰ :๋ฌธ.
ใ‚ใ :์—ด๋ฆฌ๋‹ค.
ใคใใ‚ˆ :ใคใ-ใ‚ˆ//์›”์•ผ,๋‹ฌ๋ฐค.
ใฐใ‚“ :์ €๋…,์ €๋…๋•Œ,๋ฐค.
ใ‚ชใ‚ซใƒชใƒŠ :์˜ค์นด๋ฆฌ๋‚˜
ใตใ :๋ถˆ๋‹ค. -> ใตใ+ ~ ใฆใ‚‹
ใใ‚‹ :์˜ค๋‹ค




๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•


http://hyeonseok.com/ ์‹ ํ˜„์„๋‹˜๊ป˜์„œ ์šด์˜์ค‘์ธ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ฆฐ ๊ธ€์ž…๋‹ˆ๋‹ค.
์›๋ฌธ์„ ๋ณด์‹œ๋ ค๋ฉด http://hyeonseok.com/docs/accessible-javascript/ ๋กœ ์ ‘์†ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.







์ ‘๊ทผ์„ฑ์„ ํ•ด์น˜์ง€ ์•Š๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฌ์šฉ



์‹ ํ˜„์„

2006๋…„ 5์›”

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ์ƒ๊ฐ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด๋Š” ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋‹ค?

๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—†์ด๋Š” ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋งŒํผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ผ์ƒ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด์„œ ์ž˜๋ชป ์˜คํ•ดํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ๋กœ์ง์— ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ํ•ต์‹ฌ์ ์ธ ๋กœ์ง์€ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์–ธ์–ด๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ทธ ์˜†์—์„œ UI๊ตฌ์„ฑ์„ ์œ„ํ•ด์„œ ๋„์™€์ฃผ๊ธฐ๋งŒ ํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ”๊ฟ” ๋งํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—†์–ด๋„ ํ•ต์‹ฌ ๋กœ์ง์€ ์ž‘๋™์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋จผ์ € ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—†์ด HTML๊ณผ ์„œ๋ฒ„์‚ฌ์ด๋“œ ์–ธ์–ด๋งŒ์œผ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐœ๋ฐœ์„ ๋๋‚ธ ํ›„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ข‹์€ UI๋‚˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ์„ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”๊ฐ€ ํ•˜๋Š” ์ˆœ์„œ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ด๋ฅผ ์–ด๊ธฐ๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘๊ทผ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ณด์•ˆ๋„ ๋–จ์–ด์ง€๊ณ  ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ๋„ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ๋„ ๊ณ ๋ ค๋ฅผ ํ•ด ์ค˜์•ผ ํ•˜๋Š”๊ฐ€?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์ด ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์€ ์•„๋‹ˆ์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ณ ๋ ค๋Š” ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. ์‹ค์ œ๋กœ ๋ธŒ๋ผ์šฐ์ ธ์— ๋”ฐ๋ผ์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ ผ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๋˜ ๊ธฐ๋Šฅ์ด ์–ด๋–ค ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ์ค‘์—์„œ๋„ ์—ฌ๋Ÿฌ ์ด์œ ๋กœ ์Šค์Šค๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ์„ ์ค‘์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํŽ˜์ด์ง€ ์ œ์ž‘ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋‹ค.

์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ๋งŒ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ•œ๋‹ค?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ–‰ํ•จ์œผ๋กœ์„œ ๋„คํŠธ์›์ด๋‚˜ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์ด๊ฒƒ์„ ์ž˜๋ชป ์ดํ•ดํ•˜์—ฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ ์œ ํšจ์„ฑ์„ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๊ฒฐ๊ณผ๋ฌผ์„ ๊ทธ๋Œ€๋กœ ๋ฏฟ์œผ๋ฉด ์•ˆ๋œ๋‹ค. ์‚ฌ์šฉ์ž์ธก์œผ๋กœ ๋ถ€ํ„ฐ ๋„˜์˜ค์˜จ ๋ชจ๋“  ๊ฐ’์€ ๊ทธ ๊ฐ’์˜ ์œ ํšจ์„ฑ์„ ์™„์ „ํžˆ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์ธก์—์„œ๋„ ์œ ํšจ์„ฑ ์ฒดํฌ๋ฅผ ํ•ด ์ค˜์•ผ๋งŒ ํ•œ๋‹ค. ์ด๊ฒƒ์€ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋†’์ด๋Š” ๊ฒƒ ์ด์ „์— ์ž๋ฃŒ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์ค‘์š”ํ•œ ๊ณผ์ •์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„์— ์ž„์˜๋กœ ๋ณ€์กฐ๋œ ๊ฐ’์„ ๋ณด๋‚ด๋Š” ์ผ์€ ์•„์ฃผ ์‰ฌ์šด ์ผ์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด UI๊ฐ€ ๋ถˆํŽธํ•ด ์ง„๋‹ค?

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ RIA๋‚˜ ์ข‹์€ UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ด์ง€๋งŒ ์›นํ™˜๊ฒฝ์„ ์ดํ•ดํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋” ์ข‹์€ UI๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ UI์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•ด์•ผ์ง€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ์ข‹์€ UI๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์‹ค์ œ์ ์œผ๋กœ ๊ฐ€์žฅ ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด UI๋Š” ์‚ฌ์šฉ์ž OS๋‚˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ปจํŠธ๋กค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ  ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด๋„ ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋‚ด๋ ค๋ณด๋‚ด์ง€๊ณ  ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ ธ์—์„œ ์‹คํ–‰์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ์˜์กดํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๋ณด์•ˆ, ์ ‘๊ทผ์„ฑ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ธฐ ์‰ฝ๋‹ค. ์ด๋Ÿฌํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง•์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ž˜๋ชป๋œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด๋‚˜ ์ƒ์‹๋“ค ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์˜ค์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋””๊นŒ์ง€๋‚˜ ๋ณด์กฐ์ ์ธ ์ˆ˜๋‹จ์ด๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ์„ ํ•ด์น˜์ง€ ์•Š๋Š” ํ•œ๋„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•˜๋‹ค.


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์„ ์–ธ

<script language="Javascript">
//code
</script>


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” <script> ์—˜๋ฆฌ๋จผํŠธ๋กœ ์„ ์–ธ์„ ํ•œ๋‹ค. ๋ชจ๋“  <script>์—˜๋ฆฌ๋จผํŠธ๋Š” type์„ ๋ช…์‹œํ•ด ์ฃผ์–ด์•ผ ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ type์€ "text/javascript" ์ด๋‹ค. ๋งŽ์€ ๊ฒฝ์šฐ language ๋งŒ์„ ์„ ์–ธํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฒ„์ ผ์„ ๋ช…์‹œํ•˜๋Š”๋ฐ ๋ฐ˜๋“œ์‹œ type๋„ ๊ฐ™์ด ๋ช…์‹œ๋ฅผ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

<script type="text/javascript">
//code
</script>



<a>์˜ href ์†์„ฑ๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฌ์šฉ

href๋Š” Hypertext REFerence์˜ ์•ฝ์ž์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด์„œ hypertext์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” uri๋ฅผ ๊ทธ ๊ฐ’์œผ๋กœ ๊ฐ–๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ๊ฒฝ์šฐ ์ด href์•ˆ์— "javascript:myFunction()"๊ณผ ๊ฐ™์ด ์ž˜๋ชป๋œ ๊ตฌ๋ฌธ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์ด href์•ˆ์— ์ž˜๋ชป๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋  ๊ฒฝ์šฐ, ๋ถ๋งˆํฌ๋‚˜ ์ƒˆ์ฐฝ, ์ƒˆํƒญ์œผ๋กœ ์—ด๊ธฐ ๋“ฑ์˜ href ๊ด€๋ จ๋œ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋Šฅ๋“ค์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ href์•ˆ์—๋Š” ํ•ญ์ƒ uri๊ฐ€ ๋“ค์–ด๊ฐ€๋„๋ก ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ ์šฉ์€ onclick๊ณผ ๊ฐ™์€ ์ด๋ฒคํŠธ ์†์„ฑ์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

์˜๋ฏธ ์—†๋Š” href ๊ฐ’์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ

์‚ฌ์šฉ์ž์˜ ๋งํฌ ํด๋ฆญ์ด ๋งํฌ์™€ ๊ด€๋ จ์ด ์žˆ๊ณ  ์ด๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์šฐ์„ ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋นผ๊ณ ๋„ ํŽ˜์ด์ง€์˜ ์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ href์— ์ ์ ˆํ•œ ๊ฐ’์„ ๋„ฃ์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋กœ ํƒญ๋ฉ”๋‰ด๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํƒญ๋ฉ”๋‰ด์˜ ๊ฒฝ์šฐ ํƒญ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํƒญ๊ณผ ๊ด€๋ จ์žˆ๋Š” ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‹์œผ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค. javasript๊ฐ€ ์—†๋‹ค๋ฉด ํƒญ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ•ด๋‹น ์ปจํ…์ธ ๋กœ ์ด๋™์„ ํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌํ˜„ ๋˜๋ฉด ๋œ๋‹ค. href ์•ˆ์˜ ๊ฐ’์œผ๋กœ ํŽ˜์ด์ง€ ์•ˆ์—์„œ์˜ ํ•ด๋‹น ์ปจํ…์ธ  ์•ต์ปค ์ฃผ์†Œ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ ๋œ๋‹ค.

<a href="#notice-list"><img src="notice-tab.gif" alt="Notice" /></a>


๊ทธ๋ฆฌ๊ณ  ์ด ๋งˆํฌ์—…์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜์—ฌ ์ด๋ฒคํŠธ ์†์„ฑ์œผ๋กœ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

<a href="#notice-list" onclick="showNoticeTab(); return false;"><img src="notice-tab.gif" alt="Notice" /></a>


onclick์œผ๋กœ ํƒญ์„ ๋ณด์—ฌ์ค€ ํ›„ false๋ฅผ ๋ฆฌํ„ดํ•˜์—ฌ ํ•ด๋‹น ์•ต์ปค๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌ ํ•œ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™์„ ํ•  ๋•Œ์—๋Š” ํด๋ฆญํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ํƒญ์œผ๋กœ ์ž‘๋™์„ ํ•  ๊ฒƒ์ด๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์ปจํ…์ธ ๋กœ ์ด๋™์„ ํ•˜์—ฌ ๋†’์€ ์ ‘๊ทผ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋งํฌ์™€ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” <a>ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๋ณดํ†ต ํŠน์ • ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ๊ฒƒ์ด ์ด๋Ÿฌํ•œ ๊ฒƒ์— ํ•ด๋‹คํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™์„ ํ•˜์ง€ ์•Š์•„๋„ ์ปจํ…์ธ  ์ดํ•ด์— ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

<img src="button.gif" style="cursor: pointer;" onclick="myAction()" />


ํšจ๊ณผ๋ฅผ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹จ์ˆœํžˆ onclick์„ ์ด์šฉํ•ด์„œ ์ ์šฉ์„ ํ•˜๊ณ  <a>๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค ํฌ์ธํ„ฐ๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ์†๋ชจ์–‘์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์€ ์Šคํƒ€์ผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.

ํŒ์—…์ฐฝ์„ ์—ด ๋•Œ(window.open)

<img src="openWindow.gif" onclick="window.open('popup.html', '', 'widht=300,height=200')">


<a href="#"><img src="openWindow.gif" onclick="window.open('popup.html', '', 'widht=300,height=200')"></a>


href์— #๊ณผ ๊ฐ™์€ ์˜๋ฏธ ์—†๋Š” ๊ฐ’์„ ๋„ฃ๊ฑฐ๋‚˜ onclick ์•ˆ์— ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ํŒ์—…์ฐฝ์€ ๋งํฌ์ด๊ณ  ํŽ˜์ด์ง€๊ฐ€ ๋ณ„๋„๋กœ ์กด์žฌ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— <a>๋ฅผ ์ด์šฉํ•ด์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  href์—”๋Š ํ•ด๋‹น ํŒ์—…์˜ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.

<a href="popup.html" onclick="window.open(this.href, 'popupName', 'width=300,height=200'); return false;"><img src="openWindow.gif"></a>


์ด๋Ÿด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์˜๋„ ๋Œ€๋กœ ํŒ์—…์ฐฝ์„ ์ƒˆ์ฐฝ, ์ƒˆํƒญ ๋“ฑ์œผ๋กœ ์—ด ์ˆ˜ ์žˆ๊ณ  ์‹ฌ์ง€์–ด ์ฆ๊ฒจ ์ฐพ๊ธฐ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•œ ํŽ˜์ด์ง€ ์ด๋™

์›น์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•˜๋‹ค ๋ณด๋ฉด ํผ์—์„œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  ์„œ๋ฐ‹์„ ํ•˜๋Š” ์ˆœ๊ฐ„ "๋”ฐ๋‹ค๋‹ค๋‹ฅ" ํ•˜๋Š” ์‹์œผ๋กœ ํด๋ฆญ์„ ์—ฌ๋Ÿฌ๋ฒˆ ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์†Œ๋ฆฌ๊ฐ€ ๋‚˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋ŸฌํŽ˜์ด์ง€์— ๊ฑธ์ณ์„œ ์ผ์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ์ฒ˜๋ฆฌ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์„œ ์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด ๋ฐœ์ƒ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

<script type="text/javascript">document.location.href="redirection.html";</script>


์œ„์™€ ๊ฐ™์ด ํŽ˜์ด์ง€๋ฅผ ์ด๋™ ํ•˜๊ฑฐ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์ด <form>์„ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ๋„˜๊ธฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์ด๋‹ค.

<form name="login_form">
    <input type="hidden" name="user_id" value="myid" />
    <input type="hidden" name="user_pwd" value="mypassword" />
    <input type="hidden" name="redirect_url" value="http://mysite.com/login/" />
    <input type="hidden" name="somevalue" value="blahblah" />
    ...
</form>
<script type="text/javascript">
f = document.forms.login_form;
f.action = "http://login.oursite.com/login/";
...
f.submit();
</script>


์‹ฌํ•œ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ „ํ˜€ ์˜๋ฏธ ์—†๋Š” ํผ์„ ์ด์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

<form method="post" name="sg_form" action="http://www.qubi.com/" target="_top">
</form>
<script> sg_form.submit(); //3</script>


์œ„์™€ ๊ฐ™์€ ํŽ˜์ด์ง€๋“ค์€ html ๋ฌธ๋ฒ•์ƒ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€ ๋“ค์ด๊ณ  ์ด ๋•Œ๋ฌธ์— ์ž‘๋™์ด ์•ˆ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. <form>์—˜๋ฆฌ๋จผํŠธ๋‚˜ <script>์—˜๋ฆฌ๋จผํŠธ๋Š” ์ƒ์œ„์— <body>๋‚˜ <head>์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ ์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— html๋กœ ํ•ด์„์ด ์•ˆ๋˜์–ด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฐ’์ด ๋„˜์–ด๊ฐ€์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  <form>์— submit <input>์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ submit์ด ์ผ์–ด๋‚˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

์ด์™€ ๊ฐ™์ด ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๊ฐ’์„ ๋„˜๊ธธ ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์˜์กดํ•ด์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ์„œ ๋™์ž‘์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฒ˜๋ฆฌ ํ•˜์ง€ ๋ง๊ณ  ์„œ๋ฒ„ ์ธก์—์„œ httpํ—ค๋” ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ค‘๊ฐ„๊ณผ์ •์—์„œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ์„œ๋ฒ„์ธก์—์„œ ๋ชจ๋‘ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋ฐ”๋žŒ์ง ํ•˜์ง€๋งŒ ์–ด์ฉ” ์ˆ˜ ์—†์ด ์‚ฌ์šฉ์„ ํ•ด์•ผํ•  ๊ฒฝ์šฐ์—๋Š” - ๊ทธ๋Ÿด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ๊ธฐ์กด์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด์„œ - DTD์„ ์–ธ์ด๋‚˜ <html> ๋ฃจํŠธ ์—˜๋ฆฌ๋จผํŠธ, <head>, <body>์™€ ๊ฐ™์ด ํ•„์ˆ˜ ์—˜๋ฆฌ๋จผํŠธ๋“ค์ด ์กด์žฌํ•˜๋Š” ์™„๊ฒฐ๋œ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ ํ•˜๋„๋ก ํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด์„œ <form>์— submit๋ฒ„ํŠผ๋„ ์ œ๊ณต์„ ํ•˜๊ณ , ๊ฒฐ๊ณผ ๋ฉ”์„ธ์ง€๋„ alert์™ธ์— ์ผ๋ฐ˜ text์™€ <a>๋ฅผ ์ด์šฉํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>Redirect</title>
</head>
<body>
<script type="text/javascript">
/*
 some processes...
*/
alert('์ด๋ž˜์ €๋ž˜ํ•œ ์ด์œ ๋กœ ๋‹ค์‹œ ๋Œ์•„ ๊ฐ‘๋‹ˆ๋‹ค.');
document.location.href="redirection.html";
</script>
<p><a href="redirection.html">์ด๋ž˜์ €๋ž˜ํ•œ ์ด์œ ๋กœ ๋‹ค์‹œ ๋Œ์•„ ๊ฐ‘๋‹ˆ๋‹ค.</a></p>
</body>
</html>


charset์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ ธ์˜ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ alert์ด ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ ธ์˜ ๊ธฐ๋ณธ ์„ค์ •์ด ko-kr์ด ์•„๋‹Œ ๊ฒฝ์šฐ ํ•œ๊ธ€์ด ๊นจ์ง€๊ฒŒ ๋œ๋‹ค. ๋ฌธ์„œ์˜ mime-type๋„ text/html์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.


<form>์—์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ

์ผ๋ฐ˜์ ์œผ๋กœ <form>์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์„œ๋ฒ„์ธก์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ณ  ๊ทธ ์ „๋‹ฌ์€ <form>์˜ submit ๊ธฐ๋Šฅ์„ ํ†ตํ•ด์„œ ์ด๋ฃจ์–ด ์ง„๋‹ค. ์ด๋Ÿฌํ•œ ํผ์„ ๊ตฌํ˜„ ํ•  ๋•Œ์— ์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

submit

ํผ์€ ๊ทธ ์ž์ฒด์ ์œผ๋กœ ๊ฐ’์„ ๋ณด๋‚ด๋Š” ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. <input type="submit" />์ด๋‚˜ <input type="image" />์ด ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ปจํŠธ๋กค์ธ๋ฐ ํผ์˜ ๊ฐ’ ์œ ํšจ์„ฑ ์ฒดํฌ๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ด๋Ÿฌํ•œ ํผ์˜ ์ž์ฒด์ ์ธ ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํผ ์„œ๋ฐ‹์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

<script type="text/javascript">
function submitForm() {
    loginForm.submit();
}
</script>
<form id="loginForm" name="loginForm" action="">
    User Id <input type="text" name="loginId">
    User Password <input type="password" name="loginPassword"><br>
    <img src="login.gif" onclick="submitForm()">
</form>


์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ํผ์— ์„œ๋ฐ‹๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ ธ์— ๋”ฐ๋ผ์„œ script๋กœ ์„œ๋ฐ‹์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  ์„œ๋ฐ‹ ๋Œ€์‹ ์— ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ์ ์œผ๋กœ๋„ ๋งž์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํผ์„ ์ œ์ž‘ํ•  ๋•Œ์—๋Š” ๋ฐ˜๋“œ์‹œ ์„œ๋ฐ‹๊ธฐ๋Šฅ์„ <input>์„ ์ด์šฉํ•ด์„œ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

<form id="loginForm" name="loginForm" action="">
    <p>
        <label for="loginId">User Id</label>
        <input type="text" id="loginId" name="loginId" /><br />
        <label for="loginPassword">User Password</label>
        <input type="password" id="loginPassword" name="loginPassword" />
    </p>
    <p>
        <input type="image" src="login.gif" alt="Login" />
    </p>
</form>


๋งŽ์€ ๊ฒฝ์šฐ <html>์ œ์ž‘ ๊ณผ์ •์—์„œ ์„œ๋ฐ‹์„ <img>๋กœ ๋„ฃ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ๊ฒฝ์šฐ ์ด๋ฅผ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๊ณ  ์ ์ ˆํ•œ <input>์œผ๋กœ ๋ฐ”๊พธ์–ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

validation

ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์€ <form>์˜ ์„œ๋ฐ‹ ์ด๋ฒคํŠธ๋ฅผ ์บ์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํผ์„ ์„œ๋ฐ‹ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

<script type="text/javascript">
function submitForm() {
    if (!loginForm.loginId.value) {
        alert("์•„์ด๋””๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.");
        loginForm.loginId.focus();
    } else if (!loginForm.loginPassword.value) {
        alert("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.");
        loginForm.loginPassword.focus();
    } else {
        loginForm.submit();
    }
}
</script>
<form id="loginForm" name="loginForm" action="">
    ์•„์ด๋”” <input type="text" name="loginId">
    ๋น„๋ฐ€๋ฒˆํ˜ธ <input type="password" name="loginPassword"><br>
    <img src="login.gif" onclick="submitForm()">
</form>


์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์„ ์ด์šฉํ•ด์„œ ํผ์„ ์„œ๋ฐ‹ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—†์ด HTML๋งŒ์œผ๋กœ๋Š” ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.

<script type="text/javascript">
function submitForm(formEl) {
    //TrimAll(formEl);

    var errorMessage = null;
    var objFocus = null;

    if (formEl.loginId.value.length == 0) {
        errorMessage = "์•„์ด๋””๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.";
        objFocus = formEl.loginId;
    } else if (formEl.loginPassword.value.length == 0) {
        errorMessage = "๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”.";
        objFocus = formEl.loginPassword;
    }

    if(errorMessage != null) {
        alert(errorMessage);
        objFocus.focus();
        return false;
    }
    return true;
}
</script>

<form id="loginForm" name="loginForm" action="" onsubmit="return submitForm(this)">
    <label for="loginId">์•„์ด๋””</label> <input type="text" id="loginId" name="loginId" />
    <label for="loginPassword">๋น„๋ฐ€๋ฒˆํ˜ธ</label> <input type="password" id="loginPassword" name="loginPassword" /><br />
    <input type="image" src="login.gif" alt="Login" />
</form>


์ด์™€ ๊ฐ™์ด onsubmit ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํผ์˜ ์œ ํšจ์„ฑ์„ ์ฒดํฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ true๋‚˜ false๋กœ ๋ณด๋‚ด์คŒ์œผ๋กœ์จ ํผ์ด ์Šคํฌ๋ฆฝํŠธ์— ๋”ฐ๋ผ์„œ ์„œ๋ฐ‹์„ ์ง„ํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๊ณ , onsubmit ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ์ž๋Š” ํผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ์„ฑ์ด ๋†’์•„์ง€๊ฒŒ ๋œ๋‹ค.


๊ฒŒ์‹œํŒ ๋“ฑ์—์„œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ

๊ฒŒ์‹œํŒ์—์„œ ํŽ˜์ด์ง€์˜ ์ด๋™์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์„ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ž ์ธํ’‹์ด ์—†๋Š” ๋นˆ <form>์„ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ์ด๊ฒƒ๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ธ€์„ ์ฝ๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

<form method="post" name="vars">
    <input type="hidden" name="articleId" value="23" />
    <input type="hidden" name="page" value="3" />
    <input type="hidden" name="keysord" value="" />
    <input type="hidden" name="searchType" value="" />
    <!-- ๋“ฑ๋“ฑ -->
</form>

...

<a href="javascript:ArticleRead()">๊ธ€์ฝ๊ธฐ</a>
<a href="javascript:GoList()">๋ฆฌ์ŠคํŠธ ๋ณด๊ธฐ</a>


url์ด ๊ฐ„๋‹จํ•ด ์ง€๊ณ  ๋‹ค๋ฃจ๊ธฐ ์‰ฝ๋‹ค๋Š” ์ด์œ ๋กœ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™์€๋ฐ ์ ˆ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์šฐ์„  ์œ„์™€ ๊ฐ™์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ํ•ธ๋“œํฐ๊ณผ ๊ฐ™์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ ํ•˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ post๋ฅผ ํ†ตํ•ด์„œ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— url์— ํ‘œ์‹œ๊ฐ€ ๋˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋”ฐ๋กœ ๋ถ๋งˆํฌ ํ•œ๋‹ค๋“ ์ง€ ์ €์žฅ์„ ํ•  ์ˆ˜๊ฐ€ ์—†๊ฒŒ๋œ๋‹ค. ๊ฒŒ์‹œํŒ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ๋กœ์˜ ์ ‘๊ทผ์„ ์‰ฝ๊ฒŒ ํ•ด ์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ url์„ ์•Œ ์ˆ˜ ์—†๊ฒŒ ํ•จ์œผ๋กœ์จ ์ ‘๊ทผ์„ ์›์ฒœ์ ์œผ๋กœ ๋ง‰๊ฒŒ ๋œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ ๋„ <a>์™€ url๋งŒ์œผ๋กœ๋„ ์ž‘๋™ ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  QueryString์„ ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.


๋งˆ์น˜๋ฉฐ

๋ณธ์ธ์ด ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ ‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ช‡๋ช‡ ์ž˜๋ชป๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‚ฌ์šฉ ์˜ˆ๋ฅผ ์ ์–ด ๋ณด์•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋†€๋ผ์šด ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์ดˆ๋ณด๋ถ€ํ„ฐ ์–ด๋Š์ •๋„ ๊ฒฝ๋ ฅ์ด ๋œ ๊ฐœ๋ฐœ์ž๋“ค ๊นŒ์ง€ ์•„๋ฌด๋Ÿฐ ๊ณ ๋ฏผ ์—†์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฑ…์ด ์ž˜๋ชป๋œ ๊ฒƒ์ธ์ง€ ๊ต์œก์ด ์ž˜๋ชป ๋œ ๊ฒƒ์ธ์ง€ ์ •ํ™•ํžˆ ๊ทผ์›์„ ์•Œ ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์›น์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ์ ์€ ํŠน์„ฑ์„ ๋ฌด์‹œํ•œ์ฑ„ ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋“ค์€ HTML์„ ์ž˜ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์•„๋ฌด ๊ณ ๋ฏผ ์—†์ด ๊ทธ๋ƒฅ ๋ฐ›์•„๋“ค์ด๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ ‘๊ทผ์„ฑ์„ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋‚ฎ์ถ”๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ด ์ž˜๋ชป๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‚ฌ์šฉ์ด๋‹ค. ๋ถ€๋”” ์กฐ๊ธˆ์ด๋ผ๋„ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งํฌ์— ๊ธฐ์ดˆํ•œ ์›น์˜ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ์ ‘๊ทผ์„ฑ ๋†’์€ ์›น์‚ฌ์ดํŠธ, ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ• ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๋ฐ”์ด๋‹ค.

๋‹ค์šด๋กœ๋“œ : accessible-javascript.pdf(pdf 225KB)
๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
Here is someone's question.

I have been asked recently to code some pages to pull data from a SQL database. I know little scripting but I have been given time to learn. My client is a company that is actually bidding the job and then contracting to me. This company prefers I script jsp pages but said asp was alright. I have experience with asp but none jsp what are the pros and cons if any when comparing the two? Also can anyone recommend some good tutorial sites for either type of page that I could use as a reference?

Thanks
pcguru



Answer

OK, big topic here and one I am thick in the middle of right now, so I will share my experience, and will welcome the discussion.

First the similarities:
Both require good programming skills and logical thought.
Both are essentially platform independent these days.
Both can provide full SQL database functionality.
You can code the same simple page in both languages and the user won't be able to tell the difference.

Some differences:
ASP (classic) is interpreted, which means the code has to be read each time a page is called. jsp is compiled into java classes which makes for a much faster page generation.

ASP can be coded in a variety of languages including javascript, VBScript. jsp is coded in Java.

Classic ASP (not the new .NET) has to rely on Active X, COM or other microsoft technologies to really enhance functionality of the code. jsp can bring in every java capability.

Handling email in ASP requires external components such as CDONTS or ASPMail and was tricky to implement. JavaMail for jsp was a 10 minute download and was much easier to use.

Personally, I find jsp to be much more robust than ASP. You have more tools available to you. But both will get the job done.

I just "finished" (are they really ever finished?) a major ASP site over mySQL that has close to 2500 pages of code with some pretty impressive stuff. I'm starting on a similar project using jsp now, and have the books at the ready and get frustrated with the different syntax and calls, etc. but plow through.

I wrote another pretty involved ASP site in about 72 hours once, because I was so fluent in it.

Which is better is really subjective.

A good ASP tutorial is available at www.w3schools.com
A good jsp tutorial is available from java.sun.com

There is a good article from March 2001 comparing the two technologies at sdmagazine.com, but I can't give the full URL here. You need to register and sign in, etc. It's by Jim Farley so you can search for it.

Let's here more about this one.

๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

์ถœ์ฒ˜ : Fazz's archive

 http://fazz.tistory.com/entry/s06 

 

์ง€๊ธˆ ๊ทธ๋ž˜ํ”ฝ์Šค ๊ณต๋ถ€์ค‘์ธ๋ฐ ๊ธ€์ด ๋„ˆ๋ฌด ๊ดœ์ฐฎ์€๊ฑฐ ๊ฐ™์•„์„œ ํ—ˆ๋ฝ๋„ ์•ˆ๋ฐ›๊ณ  ๋งˆ๊ตฌ ํผ์™”์Šต๋‹ˆ๋‹ค. ใ…‹

์›๋ฌธ ์ฐธ์กฐ ๋ฐ ์—ฌ๊ธฐ์— ์—ฎ์ธ ๋‹ค๋ฅธ ์ข‹์€ ๊ธ€๋“ค์„ ๋ณด์‹œ๋ ค๋ฉด ์œ„ ์ถœ์ฒ˜๋กœ ๋ฐฉ๋ฌธํ•ด์ฃผ์„ธ์š” ~

 

1. 3D ๊ธฐ์ดˆ์ƒ์‹ : POLYGON์— ๊ด€ํ•ด
NURBS ๋Š” Non-Uniform Rational B-Spline์˜ ์•ฝ์ž๋กœ์จ ์ผ์ข…์˜ ์ปดํ“จํ„ฐ์—์„œ ๊ณก๋ฅ ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ์„ (SPLINE) ์ข…๋ฅ˜์ค‘ ํ•˜๋‚˜์ธ๋ฐ ์ด NURBS๋ฅผ ์„ค๋ช…ํ•˜๋ ค๋ฉด ๋จผ์ € SPLINE์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋จผ์ € ๊ฐ SPLINE์˜ ์ข…๋ฅ˜์™€ ๊ทธ์— ๋”ฐ๋ฅธ ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ํ•œ ๋‹ค์Œ NURBS์— ๋Œ€ํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ์— ์ด๋ฒˆ์—๋Š” NURBS ๋ชจ๋ธ๋ง์— ๊ด€ํ•œ ์ „๋ฐ˜์ ์ธ ์„ค๋ช…์„ ๋‹ค๋ฃจ์ง€ ๋ชปํ•˜๊ณ  ๋‹ค์Œ ํฌ์ŠคํŒ…์œผ๋กœ ๋„˜๊ฒจ์•ผ๊ฒ ๊ตฐ์š”.(์ƒ๊ฐ์ง€๋„ ์•Š๊ฒŒ ๋” ์ž์„ธํ•˜๊ฒŒ ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. -_-)
์ฐธ ๊ณ ๋กœ ์ปดํ“จํ„ฐ์—์„œ ๊ตฌํ˜„๋˜๋Š” ๊ณก์„ ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ํ•„์—ฐ์ ์œผ๋กœ ์ˆ˜ํ•™์  ํ•จ์ˆ˜ ๊ณต์‹์ด ์ˆ˜๋ฐ˜๋ฉ๋‹ˆ๋‹ค. ์ €๋„ ์ „๊ณต์ž๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ ์ด์ชฝ ์ „๋ฌธ์ ์ธ ์ง€์‹์€ ๋ฐฐ์ œํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๋ ค๊ณ  ์ธํ„ฐ๋„ท ๋ฐ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์— ๊ด€๋ จ๋œ ์„œ์ ์„ ๋’ค์ ธ์„œ ์ •๋ฆฌ๋ฅผ ํ–ˆ์ง€๋งŒ......... ๊ทธ๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ์‰ฝ๊ฒŒ ๋˜๋Š” ์„ฑ์งˆ์˜ ๊ฒƒ์ด ์•„๋‹ˆ๋”๊ตฐ์š”. ๊ฒฐ๊ตญ ์ด์ชฝ ์ „๊ณต์ด ์•„๋‹ˆ์‹  ๋ถ„์€ ๋ญ” ์†Œ๋ฆฌํ•˜๋Š”๊ฒจ? ํ•˜๊ณ  ์ „ํ˜€ ์ดํ•ด ํ•  ์ˆ˜ ์—†์œผ์‹ค์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๊ทธ๋ƒฅ ์ด๋Ÿฐ ๊ฒƒ์ด ์žˆ๊ณ  ๊ฐ ๊ณก์„ ์˜ ํŠน์ง•์ด ๊ทธ๋ ‡๊ตฌ๋‚˜ ๊ทธ๋ž˜์„œ NURBS๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ด๋Š”๊ตฌ๋‚˜๋งŒ ์•„์‹œ๋ฉด ๋  ๋“ฏํ•ฉ๋‹ˆ๋‹ค.
๊ทน๋‹จ์ ์œผ๋กœ ๋งํ•ด์„œ๋Š” ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๊ณ  ๋‹ค์Œ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ ๋ณด์…”๋„ ๋ฌด๋ฐฉํ• ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ์•”ํŠผ ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š” 3D ๊ด€๋ จ ํฌ์ŠคํŒ…์ค‘์—์„œ ์ด ํฌ์ŠคํŒ…๋งŒ ์–ด๋ ค์šด ๊ฒƒ์ด๋‹ˆ ๋‹ค์Œ ํฌ์ŠคํŒ…์€ ์ƒ์‹ ์ˆ˜์ค€์—์„œ ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. -_-;;
์ž๋ฃŒ์ถœ์ฒ˜:
GRAPHICS LIVE 2001๋…„ 8์›”ํ˜ธ
http://www.copyeditor.co.kr/reference/char-font/bezier.htm
http://210.94.177.75/laser/lecture/cadcam1/ch3.html
http://fiadot.com/wiki/home/moin.cgi/3D_bf_eb_be_ee_c1_a4_b8_ae
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/aboutGDIPlus/linescurvesandshapes/cardinalsplines.asp

 

1. SPILNE์ด๋ž€?
์™œ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ•™์  ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๊ทธ๋ ค์ง€๋Š” ์„ ์„ ๋‹จ์ˆœํžˆ LINE์ด๋ผ ํ•˜์ง€ ์•Š๊ณ  SPLINE์ด๋ผ ํ•˜๋Š” ์ด์œ ๋Š” ๊ณก๋ฅ ํ‘œํ˜„ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์— ์„ ์˜ ๊ณก๋ฅ ์ด ๋งค์šฐ ์ค‘์š”ํ•œ ๋ฐฐ์˜ ์„ ์ฒด๋‚˜ ๊ฑด๋ฌผ์˜ ๋”์„ ๋””์ž์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ œ๋„์‚ฌ๋“ค์€ ๊ฐ€๋Š˜๊ณ  ๊ธด ์ฒ ์‚ฌ๋‚˜ ๋‚˜๋ฌด๋กœ ๊ทธ ๊ณก๋ฅ ์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์šดํ˜•(้›ฒๅฝข)์˜ ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๊ทธ๊ฒƒ์„ SPLINE์ด๋ผ ๋ถˆ๋ €์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๊ณณ์— ๋‚ฉ๋ฉ์ด๋ฅผ ๋‹ฌ์•„์„œ ๊ทธ ๋ฌด๊ฒŒ ์ •๋„์— ๋”ฐ๋ผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๊ณก๋ฅ ์„ ์กฐ์ ˆํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ์ฐฉ์•ˆํ•ด์„œ ํ˜„์žฌ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ๊ณก๋ฅ ์„ ์‚ฌ์šฉํ•˜๋Š” ์„ ์„ ๊ทธ๋ฆฌ๋Š” ํˆด๋กœ ํ”„๋กœ๊ทธ๋žจํ™”์‹œ์ผฐ์ง€์š”. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ณก๋ฅ ์ด ๊ตฌํ˜„๋˜๋Š” ์„ ์„ ๋‹จ์ˆœํžˆ LINE์ด๋ผ ํ•˜์ง€ ์•Š๊ณ  SPLINE์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฒ ์ง€์–ด ์ปค๋ธŒ๋‚˜ CARDIANL SPLINE์ด๋‚˜ NURBS๋‚˜ ์‹ค์ œ ๋์ ์„ ๊ฐ€์ง€๊ณ  ์„ ๋ถ„์˜ ๊ณก๋ฅ ์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์กฐ์ ˆ์ ์„ ๊ฐ€์ง€๊ณ  ๊ณก๋ฅ ์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ, ์˜›๋‚  SPLINE์— ๋‹ฌ๋ฆฐ ๋‚ฉ์„ ๊ฐ€์ง€๊ณ  ๊ณก๋ฅ ์„ ์กฐ์ •ํ•œ ์ œ๋„์‚ฌ๋“ค์ด ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด์น˜๋ผ์„œ ๋”๋”์šฑ SPLINE์ด๋ผ ๋ถ€๋ฅด๋Š” ๊ฒƒ์ด์ง€์š”. ๋ณด๋ฉด ์„œ์–‘์• ๋“ค ์˜›๋‚  ์กฐ์ƒ๋“ค์ด ์“ฐ๊ณ  ๋ฐœ์ „ ์‹œํ‚จ ๊ฒƒ์— ๋Œ€ํ•œ ์กด๊ฒฝ์˜ ์˜๋ฏธ๋กœ ์šฉ์–ด๋ฅผ ์ฑ„ํƒํ•ด ์“ฐ๋Š” ๊ฒฝํ–ฅ์ด ๋งŽ์€ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2. ์ปดํ“จํ„ฐ์˜ ๊ณก์„  ํ‘œํ˜„ ๋ฐฉ๋ฒ•
1960๋…„ ๋ณด์ž‰ ํ•ญ๊ณต์‚ฌ์˜ J. C. ํผ๊ฑฐ์Šจ์ด ์ž์œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฒ˜์Œ ๋‚ด๋†“์Œ์œผ๋กœ์จ ์ปดํ“จํ„ฐ์—์„œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์ฒ˜์Œ ์ œ์‹œ๋˜์—ˆ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ๋„๋ฆฌ ์“ฐ๊ณ  ์žˆ๋Š” BEZIER CURVE๊ฐ€ ๋‚˜์˜จ ๊ฒƒ์€ 1971๋…„ ๋ฅด๋…ธ ์ž๋™์ฐจ์˜ P. ๋ฒ ์ง€์–ด์— ์˜ํ•ด์„œ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ปดํ“จํ„ฐ์—์„œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ์€ 35๋…„ ์ •๋„ ๋˜์—ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฐ ๊ณก์„  ํ‘œํ˜„ ๋ฌธ์ œ๋Š” ์„ค๊ณ„ ๊ด€๋ จ ์˜์—ญ์—์„œ ๋จผ์ € ์—ฐ๊ตฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ํผ๊ฑฐ์Šจ ๊ณก์„ ์ด๋‚˜ ๋ฒ ์ง€์–ด ๊ณก์„ ์„ ๊ณ ์•ˆํ•ด ๋‚ธ ์‚ฌ๋žŒ๋“ค์„ ์‚ดํŽด๋ฉด ํ•ญ๊ณต์‚ฌ์™€ ์ž๋™์ฐจ ํšŒ์‚ฌ ์†Œ์†์ด๋ผ๋Š” ์‚ฌ์‹ค์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์ปดํ“จํ„ฐ๋กœ ์ด๋Ÿฌํ•œ ๊ธฐ๊ณ„๋“ค์„ ์„ค๊ณ„ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‚˜ํƒ€๋‚  ์ˆ˜๋ฐ–์— ์—†๋Š” ๊ณก์„  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ตฌ๋œ ๊ฒฐ๊ณผ์˜€๋‹ค๋Š” ๊ฒƒ์ด์ฃ .
์™œ ๊ณก์„  ํ‘œํ˜„์ด ๋ฌธ์ œ์ธ๊ฐ€? ์ปดํ“จํ„ฐ๋Š” ๊ณก์„ ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์ฃผ๊ณ , ์—ฌ๊ธฐ์— ์—ฐ์†๋˜๋Š” x ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๊ทธ์— ๋Œ€์‘๋˜๋Š” y ๊ฐ’์ด ๋‚˜์˜ด์œผ๋กœ์จ ๊ณก์„ ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.
์šฐ ๋ฆฌ๊ฐ€ ํ™”๋ฉด์—์„œ ๋ณด๋Š” ๊ณก์„ ์€ ์‚ฌ์‹ค ๊ณก์„ ์ด ์•„๋‹ˆ๋ผ ์ ๋“ค์ด ์ด˜์ด˜ํ•˜๊ฒŒ ๋ชจ์—ฌ ์žˆ๋Š” ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์–ด๋–ค ๊ณก์„ ์„ x ์ขŒํ‘œ๊ฐ€ 1๋ถ€ํ„ฐ 5๊นŒ์ง€์ธ ๋ฒ”์œ„ ์•ˆ์—์„œ ๊ทธ๋ฆฐ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์ ์ ˆํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด x ๊ฐ’์œผ๋กœ 1, 2, 3, 4, 5๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋„ฃ์–ด ์ฃผ๋ฉด ๊ทธ์— ๋”ฐ๋ฅด๋Š” y ๊ฐ’์ด ๊ณ„์‚ฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์–ป์–ด์ง„ ์ ๋“ค์„ ํ™”๋ฉด์— ์ฐ์–ด ์ฃผ๋ฉด ๊ณก์„ ๊ณผ ๊ฐ™์€ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ1. ์ปดํ“จํ„ฐ์—์„œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•)

์ด๋ ‡๊ธฐ ๋•Œ๋ฌธ์— SPLINE์˜ ์ข…๋ฅ˜๋Š” ๊ณก์„  ํ‘œํ˜„์„ ์–ด๋–ค ํ•จ์ˆ˜๋กœ ๊ฐ€์ง€๊ณ  ๋‚˜ํƒ€๋‚ด๋Š๋ƒ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋˜๋Š”๋ฐ ํ˜„์žฌ ์ƒ์šฉํ™” ๋˜์–ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” SPLINE์˜ ์ข…๋ฅ˜๋ฅผ ๋ณด๋ฉด ํฌ๊ฒŒ LINEAR SPLINE, CARDINAL SPLINE, B-SPLINE, BEZIER CURVE, NURBS ์ •๋„ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

3. LINEAR SPLINE : ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” SPLINE
๋ง ๊ทธ๋Œ€๋กœ ์ง์„ ์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ์ขŒํ‘œ ๊ฐ’์„ ๊ฐ„๋‹จํžˆ ์ด์€ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋กœ์จ ๋ฒ ์ง€์–ด ์ปค๋ธŒ๋“ฑ์˜ ๊ณก๋ฅ ์„ ๊ธ‹๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐœ๋ฐœ๋˜๊ธฐ ์ „์— ์“ฐ์˜€๋˜ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ง๋กœ ํ•˜๋ฉด ๊ทธ ์œ ๋ช…ํ•œ ํด๋ฆฌ๊ณค(polygon) ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์›๋ฆฌ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ณก์„  ์œ„์— ์žˆ๋Š” ๋ช‡ ๊ฐœ์˜ ์ ์„ ์ง‘์–ด๋‚ด๊ณ , ์ด ์ ์„ ๊ทธ๋ƒฅ ์ง์„ ์œผ๋กœ ์ด์–ด์„œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๋„ 3์ฐจ์› ๊ทธ๋ž˜ํ”ฝ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ CAD์—์„œ๋Š” ์ด ๋ฐฉ๋ฒ•์„ ๋งŽ์ด ์“ฐ๊ณ  ์žˆ์œผ๋ฉฐ, ์™ธ๊ณฝ์„  ๊ธ€๊ผด์˜ ์ดˆ๊ธฐ ํ˜•์‹์—์„œ๋„ ์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ2. LINEAR SPLINE์˜ ๊ณก์„ ํ‘œ์‹œ ๋ฐฉ๋ฒ•)

ํšŒ์ƒ‰ ์‹ค์„ ์œผ๋กœ ๋œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•  ๋•Œ ํด๋ฆฌ๊ณค ๋ฐฉ์‹์€ ์ด ๊ณก์„  ์œ„์— ์žˆ๋Š” ๋ช‡ ๊ฐœ์˜ ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ฐ€, ๊ณก์„ ์„ ๊ทธ๋ ค์•ผ ํ•  ๋•Œ์—๋Š” ๊ทธ๋ƒฅ ์ด ์ ๋“ค์„ ์ด์–ด์„œ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐ”์™€ ๊ฐ™์ด, 4๊ฐœ์˜ ์ ์„ ์‚ฌ์šฉํ•œ ํšŒ์ƒ‰ ์ ์„ ๋ณด๋‹ค๋Š” 9๊ฐœ์˜ ์ ์„ ์‚ฌ์šฉํ•œ ๊ฒ€์€์ƒ‰ ์ ์„ ์ด ์›๋ž˜ ๊ณก์„ ์— ๋” ๊ฐ€๊นŒ์šด ๋ชจ์Šต์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ ์ธ๊ฐ„์˜ ๋ˆˆ์œผ๋กœ ๋ดค์„ ๋•Œ ๊ณก์„ ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๋ ค๋ฉด? ํ•จ์ˆ˜ ์ขŒํ‘œ๊ฐ’, ์ฆ‰ ์ ์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ˆ˜๋ฐฑ๊ฐœ์˜ ์ ์„ ์ด˜์ด˜ํžˆ ๋ฐฐ์—ดํ•ด์„œ ์ด๊ฒƒ์„ ์—ฐ๊ฒฐํ•˜๋ฉด? ๋น„๋ก ์™„์ „ํ•œ ๊ณก์„ ์€ ์•„๋‹์ง€๋ผ๋„ ๊ณก์„ ์ฒ˜๋Ÿผ ์šฐ๋ฆฌ ๋ˆˆ์— ๋ณด์ด๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์‘์šฉํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ 3D์—์„œ POLYGON GEOMETRY๋ฐฉ์‹์ด๋ฉฐ ๋‹จ์œ„ ๋ฉด์ ๋‹น ๋ฉด์ˆ˜๋ฅผ ๋งŽ์ด ์ค˜์„œ ๊ณก๋ฉด์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๋Š” MESH SMOOTH ๋ช…๋ น๋„ ๋‹ค ์—ฌ๊ธฐ์„œ ์‘์šฉ๋˜๊ณ  ์‹œ์ž‘๋œ ๋ฐฉ๋ฒ•์ด๋ž€ ์†Œ๋ฆฌ์ž…๋‹ˆ๋‹ค.
์ด ๋ฐฉ๋ฒ•์ด ๊ฐ€์ง„ ์ข‹์€ ์ ์€ ์ง์„ ์„ ๊ณ„์† ์ด์–ด์„œ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐ์ด ๊ฐ„๋‹จํ•ด์„œ ๋น ๋ฅด๊ฒŒ ๊ณก์„ ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— 1์ดˆ์— ์ˆ˜์‹ญ ์žฅ์”ฉ, ์—„์ฒญ๋‚œ ์–‘ ๊ทธ๋ ค๋‚ด์•ผ ํ•˜๋Š” 3์ฐจ์› ๊ทธ๋ž˜ํ”ฝ์—์„œ๋Š” ์•„์ง๋„ ์ด ํด๋ฆฌ๊ณค ๋ฐฉ์‹์„ ๋„๋ฆฌ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ™•๋Œ€๋ฅผ ํ•˜๋ฉด ํ• ์ˆ˜๋ก ๊ฐ์ง„ ๋ชจ์–‘์ด ๋šœ๋ ทํ•ด์ง€๋ฉฐ, ๋งค๋ˆํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณก์„ ์—์„œ ๋งŽ์€ ์ ์„ ๋ฝ‘์•„์„œ ๋ณด๊ด€ํ•ด์•ผ ํ•˜๊ณ  ๊ทธ๋Ÿด์ˆ˜๋ก ์ปดํ“จํ„ฐ์— ๋ถ€ํ•˜๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค๋Š” ์•ฝ์ ์„ ์•ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

4. ํผ๊ฑฐ์Šจ ๊ณก์„ 
์ปดํ“จํ„ฐ์—์„œ ๊ณก์„ ์„ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค๋ฉด, ๊ณก์„  ์œ„์— ์žˆ๋Š” ๋ช‡ ๊ฐœ์˜ ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๋‚˜๋จธ์ง€ ๋น ์ง„ ๋ถ€๋ถ„, ๊ณง ์ ๊ณผ ์  ์‚ฌ์ด๋ฅผ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํ”ํžˆ ๋ณด๊ฐ„๋ฒ•(INTERPOLATION)์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์œ„์—์„œ ์‚ดํŽด๋ณธ ํด๋ฆฌ๊ณค์€ ๊ทธ๋ƒฅ ์ง์„ ์„ ๊ฐ€์ง€๊ณ  ์ ๊ณผ ์  ์‚ฌ์ด๋ฅผ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต ์„ ํ˜• ๋ณด๊ฐ„์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ž์œ  ๊ณก์„ ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ˆ˜ํ•™์ž๋“ค์ด ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ๋˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•๋“ค์ด ๋‚˜์™”๋Š”๋ฐ, ๊ทธ ๊ฐ€์šด๋ฐ 1960๋…„๋Œ€ ์ดˆ์— ๋ณด์ž‰ ํ•ญ๊ณต์‚ฌ์˜ J. C. ํผ๊ฑฐ์Šจ(J. C. Ferguson)์ด ๊ณ ์•ˆํ•œ ๋ฐฉ๋ฒ•์ด ์ดˆ์ฐฝ๊ธฐ์— ๋„๋ฆฌ ์“ฐ์ด๋˜ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ณด์ž‰ ํ•ญ๊ณต์‚ฌ์—์„œ๋Š” ์ด ๋ฐฉ์‹์„ FMILL์ด๋ผ๋Š” ์‹œ์Šคํ…œ์— ์ ์šฉํ–ˆ์œผ๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์  ๋•๋ถ„์— ๋งŽ์€ ์ฃผ๋ชฉ์„ ๋ฐ›๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
I)ํ‰๋ฉด์— ์žˆ๋Š” ๊ณก์„ ๋งŒ ์•„๋‹ˆ๋ผ 3์ฐจ์› ๊ณต๊ฐ„์— ์žˆ๋Š” ํ˜•์ƒ๋„ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
II)๊ณก์„ ์ด๋‚˜ ๊ณก๋ฉด์˜ ์ผ๋ถ€์— ๋Œ€ํ•œ ํ‘œํ˜„๋„ ๊ฐ„๋‹จํžˆ ํ•  ์ˆ˜ ์žˆ๋‹ค.
III)๊ณก์„ ์ด๋‚˜ ๊ณก๋ฉด์ด ์ขŒํ‘œ ์œ„์—์„œ ์กด์žฌํ•˜๋Š” ์ž๋ฆฌ๋ฅผ ์˜ฎ๊ธฐ๊ณ ์ž ํ•˜๋ฉด ๋‹จ์ˆœํžˆ ์ฃผ์–ด์ง„ ๋ฒกํ„ฐ๋งŒ์„ ์˜ฎ๊ฒจ์„œ ๋ณ€ํ™˜ํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
ํผ ๊ฑฐ์Šจ ๊ณก์„ ์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์š”์ฆ˜ ๋„๋ฆฌ ์“ฐ์ด๊ณ  ์žˆ๋Š” ๋ฒ ์ง€์–ด ๊ณก์„ ์ด๋‚˜ B-์Šคํ”Œ๋ผ์ธ ๊ณก์„ ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ณก์„ ์„ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์–ด (์ด๊ฒƒ์„ pach๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค) ์ด ๋‹จ์œ„ ๊ฐ๊ฐ๋งˆ๋‹ค ์‹œ์ž‘์ ๊ณผ ๋์ , ๊ทธ๋ฆฌ๊ณ  ์ด ์‚ฌ์ด๋ฅผ ์ž‡๋Š” ๊ณก์„ ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฒกํ„ฐ ๊ฐ’์„ ์ง€์ •ํ•˜๊ณ  ์ด ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ๊ณก์„ ์„ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋‹จ์œ„ ๊ณก์„ ์„ ๊ณ„์† ์ด์–ด๋‚˜๊ฐ€๋ฉด ์›ํ•˜๋Š” ๊ณก์„ ์ด ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
ํ•˜ ์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋‹จ์œ„ ๊ณก์„ ๋“ค์„ ์ด์–ด์„œ ๋ณตํ•ฉ ๊ณก์„ ์„ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ, ๊ฐ ๋‹จ์œ„์˜ ๋ชจ์„œ๋ฆฌ ๋ถ€๋ถ„์ด ์›๋ž˜ ๋œปํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ํ‰ํ‰ํ•ด์ ธ ๋ฒ„๋ฆฌ๋Š” ํ˜„์ƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ˆˆ์— ํ™• ๋œจ์ผ ์ •๋„๋กœ ์‹ฌํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ์„ค๊ณ„์™€ ๊ฐ™์ด ๋ฏธ์„ธํ•œ ๊ณก์„  ๋ณ€ํ™”๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ ฏ๊ฑฐ๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
5. Hermite interpolation
์—ฌ๊ธฐ์„œ ์ž ๊น ํ•œ๊ฐ€์ง€ ๋ณต์žกํ•œ ๊ณต์‹์„ ์†Œ๊ฐœํ•˜์ž๋ฉด
p=p(u)= p0 (1- 3u2 + 2u3 )+ p1(3u2 - 2u3 )+ p0' (u- 2u2 + u3 )+ p1' (- u2 + u3 )
์ด ๊ฒƒ์ด ๋ฐ”๋กœ The solution of cubic polynomial curves (3์ฐจ ๊ณก์„ ์‹์˜ ํ•ด)๋กœ์จ ์ด ๊ณต์‹์„ HERMITE INTERPOLATION(ํ—ˆ๋งˆ์ดํŠธ ๋ณด๊ฐ„๋ฒ•)์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹์„ ์•„์ฃผ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด ๋‘ ์ ๊ณผ ๊ทธ ์ ์—์„œ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์‚ผ์ฐจ๊ณก์„ ์— ๊ด€ํ•œ ํ•ด๋ฒ•์ด๋ฉฐ, ์—ฌ๊ธฐ์—์„œ u์˜ ๊ฐ’์€ 0๊ณผ 1 ์‚ฌ์ด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ p0, p1, p0', p1' ๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋˜๋Š”๊ฐ€์— ๋”ฐ๋ผ์„œ ์ด ๊ณต์‹์œผ๋กœ ์–ด๋–ค ๊ณก์„ ์ด ๋งŒ๋“ค์–ด์ง€๋Š”๊ฐ€๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ๋ธ”๋ Œ๋”ฉ ํ•จ์ˆ˜(blending function)๋ผ๊ณ  ํ•˜๊ณ  ์ด๊ฒƒ์„ ์‘์šฉํ•˜์—ฌ ์–ด๋–ค ๊ณก์„ ๋„ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ด ์กŒ์Šต๋‹ˆ๋‹ค.
์•Œ ๋‹ค์‹ถ์ด ์ด๋Ÿฐ ๊ณก๋ฉด์— ๋Œ€ํ•œ ํ•จ์ˆ˜๋Š” ๋ฐฉ์ •์‹์œผ๋กœ ํ‘œํ˜„์ด ๋˜๋Š”๋ฐ 1์ฐจ ๋ฐฉ์ •์‹์œผ๋กœ๋Š” ์ง์„ ์ด ํ‘œํ˜„๋˜๋ฉฐ, 2์ฐจ ๋ฐฉ์ •์‹์œผ๋กœ๋Š” ํฌ๋ฌผ์„ ์ด ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. 3์ฐจ ๋ฐฉ์ •์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ํฌ๋ฌผ์„ ์˜ ๋ฐ˜์ชฝ์„ ๊บพ์–ด ๋‚ด๋ฆฐ ๋“ฏํ•œ ๋ชจ์–‘์ด ๋˜๋Š”๋ฐ, ์ด 3์ฐจ ๋ฐฉ์ •์‹์—์„œ ๋‚˜์˜ค๋Š” ๊ณก์„  ๋ชจ์–‘์ด ๋ณดํ†ต BEZIER๋‚˜ B-์Šคํ”Œ๋ผ์ธ์—์„œ ํ‘œํ˜„ํ•˜๋Š” ๊ณก์„  ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ๊ณง, ์ด๋Ÿฐ ํ˜•ํƒœ์˜ ๊ณก์„ ์„ ๊ธฐ๋ณธ ๋‹จ์œ„์ธ ํŒจ์น˜(pach)๋กœ ๋ณด๊ณ  ํŒจ์น˜๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ด์–ด์„œ ์›ํ•˜๋Š” ๊ณก์„ ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•จ์ˆ˜๋Š” x๊ฐ’ ํ•˜๋‚˜์— ๋Œ€ํ•˜์—ฌ y๊ฐ’์ด ํ•˜๋‚˜๋ฐ–์— ์กด์žฌํ•  ์ˆ˜ ์—†๋Š” ๋ฐ ๋น„ํ•˜์—ฌ ๊ณก์„ ์€ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณก์„ ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์ •์‹์—์„œ๋Š” ๋ณดํ†ต ์ˆซ์ž๊ฐ€ ์•„๋‹Œ, ๋ฐฉํ–ฅ์ด ์žˆ๋Š” ๋ฒกํ„ฐ ๊ฐ’์„ ์”๋‹ˆ๋‹ค.
์—ฌํƒœ๊นŒ์ง€ ์„ค๋ช…ํ•œ ๋‚ด์šฉ์€ ์ „๊ณต์ž๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ฌด์Šจ ์†Œ๋ฆฌํ•˜๋Š”์ง€ ๋ชจ๋ฅด์‹ค ๊ฒ๋‹ˆ๋‹ค.(๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ฐํžˆ์ง€๋งŒ ์ €๋„ ์ž˜ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. -_-) ๊ทธ๋ž˜์„œ ์•„์ฃผ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌ๋ฅผ ํ•˜์ž๋ฉด, 3์ฐจ์› ๋ชจ๋ธ๋ง์—์„œ๋Š” ๋‹จ์ผ ํ‰๋ฉด์ƒ์— ์žˆ์ง€ ์•Š์€ ๊ณก์„ ์„ ๋‚˜ํƒ€๋‚ด๋ฉด์„œ๋„ ๊ณ„์‚ฐํ•˜๊ธฐ ์–ด๋ ต์ง€ ์•Š๊ณ  ๋˜ ๊ณ ์ฐจ ๋‹คํ•ญ์‹์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์›์น˜ ์•Š๋Š” ์ง„๋™(undulations)์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Š” ์‚ผ์ฐจ ๋‹คํ•ญ์‹(cubic polynomial, ๋™์ผ ํ‰๋ฉด์ƒ์— ์žˆ์ง€ ์•Š๋Š” ๊ณก์„ ์˜ ํ‘œํ˜„์„ ์œ„ํ•œ ์ตœ์†Œ ์ฐจ์ˆ˜)์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๊ฒฐ์ด ๋˜๋Š”๋ฐ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ณต์‹์ด ๋ฐ”๋กœ HERMITE INTERPOLATION์ด๋ฉฐ ์ด๋ฅผ ์ด์šฉํ•ด ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์—์„œ ์“ฐ์ด๋Š” ๊ฐ์ข… CURVE๋“ค์ด ๋งŒ๋“ค์–ด์กŒ๋‹ค....๋ผ๊ณ ๋งŒ ์•„์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์™œ ๊ณจ์น˜ ์•„ํ”„๊ฒŒ ์ด๋Ÿฐ๊ฑฐ ํ•˜๋‚˜ ํ•˜๋‚˜ ์–ธ๊ธ‰ํ•˜๋ƒ๋ฉด ์ด๊ฒƒ์„ ํ† ๋Œ€๋กœ ๊ฐ์ข… ๊ณก์„ ์ด ๋‚˜์™”์œผ๋ฉฐ ๊ทธ ๊ณก์„ ์˜ ์ตœ์‹ ํ˜•์ด์ž ์™„๊ฒฐํ˜•์ด ๋ฐ”๋กœ NURBS์ด๊ธฐ ๋•Œ๋ฌธ์ด์ง€์š”. ์•”ํŠผ ์ด๊ฒƒ์„ ํ† ๋Œ€๋กœ ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” BEZIER CURVE, CARDINAL SPLINE, B-SPLINE, NURBS๊ฐ€ ํƒ„์ƒํ•˜์˜€์œผ๋‹ˆ ์ด์ œ ์ด๊ฒƒ๋“ค์— ๋Œ€ํ•ด ํ•˜๋‚˜์”ฉ ๋˜ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

6. BEZIER CURVE
HERMITE INTERPOLATION์„ ์‘์šฉํ•œ ์ฒซ SPLINE์ด ๋ฐ”๋กœ BEZIER CURVE์ž…๋‹ˆ๋‹ค. ์•ž์— ์†Œ๊ฐœํ•œ Hermite Interpolation์€ ์‚ฌ์‹ค ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€ํ™”ํ˜• ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์€๋ฐ, ๊ทธ ์ด์œ ๋Š”
(i)์›ํ•˜๋Š” ํ˜•์ƒ์„ ์ž์œ ์ž์žฌ๋กœ ์ƒ์„ฑํ•˜๋Š”๋ฐ๋Š” ๋ถ€์ ์ ˆํ•˜๋ฉฐ,
(ii) P0', P1'์˜ ํฌ๊ธฐ๋ณ€ํ™”์— ์˜ํ•œ ๊ณก์„ ํ˜•์ƒ์˜ ๋ณ€ํ™”๊ฐ€ ์ผ๋ฐ˜์ธ์˜ ์ง๊ด€๊ณผ ์™„์ „ํžˆ ์ผ์น˜ํ•˜์ง€๋Š” ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค
์ด ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๊ฒƒ์ด Bezier ๊ณก์„ ์œผ๋กœ, 60๋…„๋Œ€์ดˆ ํ”„๋ž‘์Šค ๋ฅด๋…ธ ์ž๋™์ฐจ์˜ Bezier๊ฐ€ ์ œ์•ˆ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์ด๋ฆ„์„ ๋”ด Bezier ์ปค๋ธŒ๋Š” ๋ชจ๋“  ์ปจํŠธ๋กค ํฌ์ธํŠธ๋“ค์„ ํ†ต๊ณผํ•˜์ง€๋งŒ ๊ฐ๊ฐ์˜ ์ปจํŠธ๋กค ํฌ์ธํŠธ๋งˆ๋‹ค tangent vector๋ผ๊ณ  ํ•˜๋Š” ๋ฐฉํ–ฅ๊ณผ ๊ธธ์ด๋ฅผ ๋™์‹œ์— ํ‘œ์‹œํ•˜๋Š” ์กฐ์ ˆ์„ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํŠน์ •ํ•œ ์ปจํŠธ๋กค ํฌ์ธํŠธ์—์„œ ๊ทธ ์ปค๋ธŒ๋ฅผ ์Šค์น˜๊ณ  ์ง€๋‚˜๊ฐ€๋Š” ์ด ์ ‘์„ (tangent)์˜ ๋ฐฉํ–ฅ๊ณผ ๊ธธ์ด(vector)๋Š” ๊ฐ๊ฐ ๊ทธ ์Šคํ”Œ๋ผ์ธ ์ปค๋ธŒ์˜ "๊ณก๋ฅ  ๋ฐฉํ–ฅ" ๋ฐ tangent vector์— ์˜ํ•ด "์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ฒ”์œ„"๋ฅผ ๋‚˜ํƒ€๋‚ด์ง€์š”. ํ”ํžˆ ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” 2D ๋ฒกํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด์ธ ADOBE ILLUSTRATOR์—์„œ ์“ฐ์ด๋Š” ์ปค๋ธŒ๊ฐ€ ๋ฐ”๋กœ ์ด ๋ฒ ์ง€์–ด ์ปค๋ธŒ์ด๋ฉฐ 3D์—์„œ๋„ ์“ฐ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ3. BEZIER CURVE์˜ ๊ตฌ์„ฑ)

์ด ๊ณก์„ ์˜ ํŠน์ง•์€ ์ฒซ ์ ๊ณผ ๋์ ์ด ๋ฐ˜๋“œ์‹œ ๊ณก์„  ์•ˆ์— ์žˆ์œผ๋ฉฐ, ๋‘ ์ปจํŠธ๋กค ํฌ์ธํŠธ๋Š” ์–ธ์ œ๋‚˜ ์ด ๊ณก์„ ์„ ๋งค๋„๋Ÿฝ๊ฒŒ ํ•ด์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ–๋Š”๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•˜์—ฌ ์‰ฝ๊ฒŒ ๊ณก์„ ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•ญ์ƒ ๋งค๋„๋Ÿฝ๊ณ  ์ •ํ™•ํ•œ ๊ณก์„ ์„ ๊ทธ๋ ค๋‚ด๋Š” ์žฅ์ ์„ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

7. Cubic spline curves (์‚ผ์ฐจ ์Šคํ”Œ๋ผ์ธ ๊ณก์„ )
์  ๋“ค์„ ๋ณด๊ฐ„ํ•˜๋Š” ๊ฒฝ์šฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ณก์„  segment(์กฐ๊ฐ)์„ ์ด์–ด์„œ ๋ณตํ•ฉ๊ณก์„ (composite curve)์„ ํ˜•์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐ„์ƒ์˜ ๊ณก์„ ์„ ์ •์˜ํ•˜๋Š” ์ตœ์†Œ ์ฐจ์ˆ˜์˜ ๋‹คํ•ญ์‹์€ 3์ฐจ๊ณก์„ ์ด๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ Hermite curve๋ฅผ ์ด์–ด์„œ ์ ์ ˆํ•œ ๋ณตํ•ฉ ๊ณก์„ ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ ์ ์˜ ์ ‘์„  ๋ฒกํ„ฐ๊ฐ’์„ ์ž…๋ ฅํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์€ ์‹ค์ œ๋กœ๋Š” ๋„ˆ๋ฌด ๋ถˆํŽธํ•˜๋ฏ€๋กœ ๊ณก์„ ์˜ ์ค‘๊ฐ„ ์ ์—์„œ 1์ฐจ ๋ฐ 2์ฐจ ๋ฏธ๋ถ„ ์—ฐ์†์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ณดํŽธ์ ์ด๋ผ ํ•˜๋Š”๊ตฐ์š”. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ๊ณก์„ ์„ 2์ฐจ ๋ฏธ๋ถ„ ์—ฐ์†์˜ Cubic spline curves(3์ฐจ ์Šคํ”Œ๋ผ์ธ ๊ณก์„ )๋ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ4. Cubic spline curves)

8. CARDINAL SPLINE
Cardinal spline์€ ๊ฐ curves๋“ค์ด ํ•ฉ์ณ์ ธ ํฐ curve๋ฅผ ์ด๋ฃฌ ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด Cardinal spline์€ ๊ฐ points์™€ tension parameter์— ์˜ํ•ด ํŠนํ™”๋˜๋Š”๋ฐ ์„ ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์ปจํŠธ๋กค ํฌ์ธํŠธ๋“ค์„ ํ†ต๊ณผํ•˜๋Š” SPLINE CURVE์ธ ๊ฒƒ์ด์ฃ .
์นด๋””๋„ ์Šคํ”Œ๋ผ์ธ์˜ ์žฅ์ ์€ ์ปจํŠธ๋กคํฌ์ธํŠธ์˜ ์œ„์น˜์™€ ์ปค๋ธŒ๊ฐ€ ๊ทธ๋ฆฌ๋Š” ๊ถค์ ์˜ ์ง์ ‘์ ์ธ ์ƒ๊ด€๊ด€๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ •ํ•œ ์ง€์ ์„ ์ง€๋‚˜๋Š” ์ปค๋ธŒ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ปจํŠธ๋กคํฌ์ธํŠธ๋ฅผ ๊ฐ„๋‹จํžˆ "๊ทธ๊ณณ"์— ์œ„์น˜์‹œํ‚ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ5. CARDINAL SPLINE๊ณผ TENSION๊ฐ’์— ์˜ํ•œ ๊ณก๋ฅ  ํ‘œํ˜„ ๋ฐฉ๋ฒ•)

ํ•˜์ง€๋งŒ ์ปจํŠธ๋กคํฌ์ธํŠธ์˜ ์œ„์น˜๊ฐ€ ์˜๋„ํ•˜๋Š” ๊ณก๋ฅ ์—์„œ ์กฐ๊ธˆ์ด๋ผ๋„ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋˜๋ฉด ์ด๋Ÿฌํ•œ ์ง์ ‘์ ์ธ ์ƒ๊ด€๊ด€๊ณ„๋Š” ๋ถ€๋“œ๋Ÿฝ๊ณ  ์™„๋งŒํ•œ ๊ณก์„ ์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜คํžˆ๋ ค ๋ถˆํŽธํ•จ์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” SPLINE์ž…๋‹ˆ๋‹ค.
ALIAS 1.0์—์„œ๋Š” ์ด CARDINAL SPLINE์„ ๊ฐ€์ง€๊ณ  ๋ชจ๋ธ๋ง์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
9. B- SPLINE
BEZIER CURVE๊ฐ€ ๊ฐ–๋Š” ๊ฐ€์žฅ ํฐ ์•ฝ์ ์€ ํŒจ์น˜ ํ•˜๋‚˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์  ๊ฐ€์šด๋ฐ ์–ด๋–ค ๊ฒƒ์„ ์›€์ง์—ฌ๋„ ๊ณก์„ ์ด ์ „์ฒด์ ์œผ๋กœ ๋ณ€ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” Cubic spline curves๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ผ๋Ÿฌ์ŠคํŠธ๋ ˆ์ดํ„ฐ์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ณก์„  ํ•œ ์กฐ๊ฐ์„ ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ จ๋œ ๋„ค ์  ๊ฐ€์šด๋ฐ ์–ด๋–ค ๊ฒƒ์„ ์›€์ง์—ฌ๋„ ์ „์ฒด ๋ชจ์–‘์ด ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. ๊ณง, ํŽธ์ง‘ ๊ณผ์ •์—์„œ ๊ณก์„  ๊ฐ€์šด๋ฐ ์ผ๋ถ€ ํ˜•์ƒ๋งŒ ๋ฐ”๊พธ๊ณ  ์‹ถ์–ด๋„ ์ „์ฒด์ ์œผ๋กœ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋งค๋งŒ์ ธ ์ค˜์•ผ ํ•œ๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ์ง€์š”.
๊ฑฐ๊ธฐ์—๋‹ค๊ฐ€ ์กฐ์ •์ ์˜ ๊ฐœ์ˆ˜์™€ ๊ณก์„ ์‹์˜ ์ฐจ์ˆ˜๊ฐ€ ์ง๊ฒฐ๋˜์–ด ๊ทผ์‚ฌ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ ์˜ ์ˆ˜์— ์–ด๋Š ์ •๋„ ์ œ์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋“œ๋ณด์–ด(de Boor), ์ฝ•์Šค(Cox)๊ฐ€ ์ œ์•ˆํ•œ ๋ฐฉ๋ฒ•์ด B-์Šคํ”Œ๋ผ์ธ(๋ฒ ์ง€์–ด-์Šคํ”Œ๋ผ์ธ) ๊ณก์„ ์ž…๋‹ˆ๋‹ค. B-์Šคํ”Œ๋ผ์ธ ๊ณก์„ ์€ ๊ฐ ์ ์ด ์ผ์ •ํ•œ ๋ฒ”์œ„์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด์ ์œผ๋กœ ๋ชจ์–‘์„ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ์›ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ์กฐ์ ˆํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ6. B-SPLINE์˜ ๋„์‹)

์œ„ ๊ทธ๋ฆผ6์„ ์‚ดํŽด ๋ด…์‹œ๋‹ค. ์ด ๊ทธ๋ฆผ์€ ์‹œ์ž‘์ ๊ณผ ๋์ , ๋„ค ๊ฐœ์˜ ์กฐ์ •์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ B-SPLINE ๊ณก์„ ์ธ๋ฐ, ๋ฒ ์ง€์–ด ์—ญ์‹œ๋„ ์ด๋ก ๋งŒ ๊ฐ€์ง€๊ณ  ๋”ฐ์ ธ ๋ณด๋ฉด ์กฐ์ •์ ์„ ๋‘ ๊ฐœ๋ณด๋‹ค ๋งŽ์ด ๊ฐ€์งˆ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์•ž์—์„œ ๋งํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๊ทธ ๊ฐ€์šด๋ฐ ๋‹จ ํ•œ ๊ฐœ์˜ ์ ๋งŒ ์›€์ง์—ฌ๋„ ๊ณก์„  ์ „์ฒด๊ฐ€ ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์†Œ ์ˆซ์ž์ธ ๋‘ ๊ฐœ๋งŒ์„ ์“ฐ๋Š”๋ฐ ๋ฐ˜ํ•ด B-SPLINE์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์กฐ์ •์ ์„ ๊ฐ€์ ธ๋„ ๊ฐ๊ฐ์ด ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ตฌ๊ฐ„์ด ์ œํ•œ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ์กฐ์ •์ ์„ ํ•œ ํŒจ์น˜์— ํ•œ๊บผ๋ฒˆ์— ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹œ์ž‘์ ๊ณผ ๋์ ์ด ๊ณก์„  ์œ„์— ์žˆ๋Š” ๋ฒ ์ง€์–ด์™€๋Š” ๋‹ฌ๋ฆฌ B-SPLINE์€ V0์™€ V5๊ฐ€ ์  ์œ„์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ๋ฐ˜๋“œ์‹œ ๋–จ์–ด์ ธ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์ž‘์ ๊ณผ ๋์ ์ด ๊ณก์„  ์œ„์— ์žˆ๋„๋ก ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด B-SPLINE์€ ๋ฒ ์ง€์–ด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, B-SPLINE ๊ณก์„ ์„ ํŠน์ •ํ•œ ํ˜•ํƒœ๋กœ ์ œํ•œํ•ด ๋ณด๋ฉด ๋ฒ ์ง€์–ด์™€ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ฐ–๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด B-SPLINE์€ NURBS๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ด์ „์— CG์—์„œ๊ตฌํ˜„๋˜๋Š” ์ตœ๊ฐ•์˜ SPLINE์ด์—ˆ์Šต๋‹ˆ๋‹ค.

10. NURBS
์ž ๋“œ๋””์–ด ๋„™์Šค๊นŒ์ง€ ์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์•ž์— ์—ฌ๋Ÿฌ ๊ณก์„ ๊ณผ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋ฌด์ฒ™ ๋จธ๋ฆฌ ์•„ํ”ˆ ๊ณต์‹์ด ์„ค๋ช…๋˜์—ˆ์–ด์•ผ ํ–ˆ์ง€์š”. ๊ทธ๋ž˜์•ผ ํ–ˆ๋˜ ์ด์œ ๋Š”? NURBS๊ฐ€ ๊ทธ ์–ด๋–ค SPILINE๋ณด๋‹ค ์ƒ์œ„ ๊ฐœ๋…์— ์žˆ์œผ๋ฉฐ NURBS ํ•˜๋‚˜๋ฅผ ๊ฐ€์ง€๊ณ  ๊ทธ ์ดํ•˜ ๊ณก์„ ์—์„œ ์ถ”๊ตฌํ•˜๊ณ  ๊ตฌํ˜„๋˜์—ˆ๋˜ ๊ฒƒ์ด ๋‹ค ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ผ์„ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, NURBS๋Š” ์•ž์—์„œ ๋งํ–ˆ๋“ฏ์ด Non-Uniform Rational B-Spline, ์ฆ‰ NURBS ๊ณก์„ ์ด๋ฉฐ ๋น„๊ท ์ผ ๋งค๋“ญ ๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. NURBS ๊ณก์„ ์€ Non-Rational B-Spline๊ณผ BEZIER ๊ณก์„ ๋ฟ ์•„๋‹ˆ๋ผ ์ง์„ ๊ณผ 2์ฐจ์˜ ํ•ด์„์  ๊ณก์„ ์„ ํ•˜๋‚˜์˜ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทผ์‚ฌ์ ์ธ ๋ชจ๋“œ๋‚˜ ๋ณด๊ฐ„์ ์ธ ํ˜•ํƒœ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰ NURBS๋Š” ๋ชจ๋“  ๊ณก์„ ์„ ํฌ์šฉํ•˜๋Š” ํŠน์„ฑ์ด ์žˆ์–ด ๊ณก์„ ์˜ ํ‘œ์ค€์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Linear, Bezier, Cardinal, B-Splines ๊ณก์„ ์€ NURBS์˜ ํ•˜์œ„ ๊ฐœ๋…์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณก์„ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋ฉด ๋ชจ๋‘ NURBS๋กœ๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€์š”.
์ด๋ฅผ ๋‹ค์‹œ ๊ฑฐ๊พธ๋กœ ์ƒ๊ฐํ•˜๋ฉด, ๋„™์Šค์ปค๋ธŒ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰๋œ ์Šคํ”Œ๋ผ์ธ ์ปค๋ธŒ๋“ค์˜ ์žฅ์ ์„ ๊ณ ๋ฃจ ๊ฐ–๊ณ  ์žˆ๋‹ค๋Š” ์†Œ๋ฆฌ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์นด๋””๋„ ์Šคํ”Œ๋ผ์ธ์ฒ˜๋Ÿผ ์ปค๋ธŒ์˜ ์‹œ์ž‘์ ๊ณผ ๋์ ์—์„œ๋Š” ์ปจํŠธ๋กค ํฌ์ธํŠธ๋ฅผ ์ง€๋‚˜๋ฉด์„œ๋„ ์ค‘๊ฐ„ ์ ๋“ค์—์„œ๋Š” Approximating spline์ฒ˜๋Ÿผ ์ปจํŠธ๋กค ํฌ์ธํŠธ "์ฃผ๋ณ€"์„ ์ง€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก๋ฅ ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋„™์Šค์ปค๋ธŒ๋Š” ์ปจํŠธ๋กค ํฌ์ธํŠธ ์™ธ์— ์ปค๋ธŒ์œ„์— ์กด์žฌํ•˜๋Š” edit point๋ผ๊ณ ํ•˜๋Š” ๋ณ„๋„์˜ ์กฐ์ ˆ ์ ๋“ค์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ •ํ™•๋„๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์นด๋””๋„ ์Šคํ”Œ๋ผ์ธ์ฒ˜๋Ÿผ ์ง์ ‘ ์ปค๋ธŒ๊ฐ€ ์ง€๋‚˜๋Š” ์œ„์น˜๋ฅผ ์กฐ์ ˆ์„ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„™์Šค์ปค๋ธŒ๊ฐ€ ๊ฐ€์ง€๋Š” ๋˜ ํ•˜๋‚˜์˜ ์ค‘์š”ํ•œ ํŠน์ง•์€, ๊ฐ๊ฐ์˜ ์ปจํŠธ๋กค ํฌ์ธํŠธ๋งˆ๋‹ค weight๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ธ๋ฐ ์ด weight๊ฐ’์ด ํด์ˆ˜๋ก ์ปค๋ธŒ๋Š” ๊ทธ ์ปจํŠธ๋กค ํฌ์ธํŠธ ์ชฝ์œผ๋กœ ์น˜์šฐ์น˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ปจํŠธ๋กค ํฌ์ธํŠธ์˜ ์œ„์น˜์ด๋™ ์—†์ด ์ปค๋ธŒ์˜ ๋ฏธ์„ธํ•œ ๊ณก๋ฅ ๊นŒ์ง€ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ weight๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ๋•Œ๋ฌธ์— NURBS๋Š” ๋‹ค๋ฅธ ์—ฌํƒ€ ๊ณก์„ ์— ๋น„ํ•ด ๋งŽ์€ ์ž์œ ๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋Ÿฐ ํŠน์ง• ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๊ณก์„ ์—์„œ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ๋ถˆ๊ทœ์น™ ๊ณก์„ ๊นŒ์ง€๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(๊ทธ๋ž˜์„œ NON-RATIONAL์ด์ง€์š”) ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ CG์—์„œ ๋‹ค๋ฅธ SPLINE์„ ์ œ์น˜๊ณ  ์ด NURBS ๊ณก์„ ์ด ์ฑ„ํƒ๋˜๊ณ  ์ถ”์•™๋ฐ›๋Š” ์ด์œ ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.(์ด ๋ง ์„ค๋ช…ํ•˜๋ ค๊ณ  ์•ž์— ์ €๋ ‡๊ฒŒ ์‚ฝ์งˆ?์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ตฐ์š” ^^;;)

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ 7. NURBS์˜ ๋„ํ•ด)

์‚ฌ์šฉ์ž ์‚ฝ์ž… ์ด๋ฏธ์ง€

(๊ทธ๋ฆผ 8. ๊ฐ SPLINE์˜ ํŠน์ง•์„ ๋‹ค์ด์ œ์ŠคํŠธ ํ•œ ๊ทธ๋ฆผ)

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด ์ง€์‹์„ ๊ฐ€์ง€๊ณ  NURBS ๋ชจ๋ธ๋ง์˜ ํŠน์ง•๊ณผ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.(์›๋ž˜ ๊ทธ๊ฒƒ์ด 2๋ฒˆ์งธ ํฌ์ŠคํŒ…์ด ๋˜์–ด์•ผ ํ–ˆ๋Š”๋ฐ....... ๊ณ ๋กœ ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ์•ž์—์„œ๋„ ๋งํ–ˆ์ง€๋งŒ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๋„ ๋ฌด๋ฐฉํ• ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ^-^;; (๊ทธ๋Ÿด ๋ฐ”์—๋Š” ์™œ ์ผ์–ด?)
๋ฑ€๋ฐœ) ์–ธ์ œ๋‚˜ ์ž˜๋ชป๋œ ์  ๋ฆฌํ”Œ๋กœ ์ง€์ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
ใ‚ใฎใฒใจใฏใ—ใ‚‰ใชใ„ใฒใจใ 

์•„๋…ธํžˆ๋˜ํ•˜ ์‹œ๋ผ๋‚˜์ดํžˆ๋˜๋‹ค

TTS

์ € ์‚ฌ๋žŒ์€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์ด๋‹ค.~

๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
์œˆ๋„์šฐ์—์„œ ์ €์žฅํ• ๋•Œ ANSI๊ฐ€ ์•„๋‹Œ, UTF-8๋กœ ํ•˜๋ฉด ๋ฆฌ๋ˆ…์Šค์—์„œ๋„ ํ•œ๊ธ€์ด ์ œ๋Œ€๋กœ ๋‚˜์˜ต๋‹ˆ๋‹น~ :)

๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
์ฒ˜์Œ ๋งŒ๋‚œ ๋‚  : ย  ๋…„ ย  ์›” ย  ์ผ

ย  ย  ์ผ

๋งŒ๋‚œ ํ›„๋กœ ์ผ์งธ ๋˜๋Š” ๋‚ ์€...ย  ย 

๋…„ย  ์›”ย  ์ผย ย  ์š”์ผ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

+ Recent posts