2015๋…„ 2์›” 26์ผ ๋ชฉ์š”์ผ

์œ ๋‹ˆํ‹ฐ - ์นด๋ฉ”๋ผ ์ปดํฌ๋„ŒํŠธ ์„ค๋ช…

๋ชฉ์ฐจ


Clear Flags

ํ™”๋ฉด์˜ ์–ด๋””๋ฅผ ํด๋ฆฌ์–ด ์‹œํ‚ฌ ๊ฒƒ์ธ์ง€๋ฅผ ์ •ํ•œ๋‹ค
๋ผ๊ณ  ์œ ๋‹ˆํ‹ฐ ๊ณต์‹์— ์„ค๋ช…๋˜์–ด ์žˆ๋Š”๋ฐ
์ด๋ฆ„๋„ ๊ฑฐ์ง€๊ฐ™๊ณ  ์„ค๋ช…๋„ ๊ฑฐ์ง€๊ฐ™์•„์„œ ์ •ํ™•ํžˆ ๋ญ˜ ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฑฐ ์ž์ฒด๊ฐ€ ๊ฑฐ์ง€๊ฐ™๋‹ค
ํด๋ฆฌ์–ด๊ฐ€ Skybox์ด๋ฉด Skybox๋ฅผ ํด๋ฆฌ์–ดํ•œ๋‹ค? ์‹ค์ƒ ๋‚˜ํƒ€๋‚˜๋Š”๊ฑด ๊ทธ ๋ฐ˜๋Œ€๋กœ Skybox๋งŒ ๋‚จ๊ธด๋‹ค
๋ฐ˜๋ฉด Depth Only์˜ ๊ฒฝ์šฐ๋Š” ์ง„์งœ๋กœ ๊ทธ Depth๋งŒ ๋‚จ๊ธด๋‹ค.. ์ด๋Ÿฌ๋‹ˆ ๊ฐœํŒ์ด์ง€..
๊ทธ๋Ÿฌ๋‹ˆ ๊ทธ๋ƒฅ์ €๋ƒฅ ์•Œ๊ณ  ๋„˜๊ธฐ์ž

Skybox

์Šค์นด์ด ๋ฐ•์Šค๋ผ ๋ถˆ๋ฆฌ๋Š” ๋ฐฐ๊ฒฝ์ „์šฉ ์…ฐ์ด๋”๋กœ ๋นˆ๊ณต๊ฐ„์„ ์ฑ„์šด๋‹ค

Solid Color

๋นˆ๊ณต๊ฐ„์„ ๋‹จ์ƒ‰์œผ๋กœ ์น ํ•œ๋‹ค

Depth Only

๋นˆ๊ณต๊ฐ„์„ ํˆฌ๋ช…์ฒ˜๋ฆฌํ•œ๋‹ค.
์นด๋ฉ”๋ผ ๋‘ ๋Œ€ ์ด์ƒ์„ ํ•œ ํ™”๋ฉด์— ํ•ฉ์„ฑํ• ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
์•„๋ž˜ ์„ค๋ช…ํ•ด๋†จ์ง€๋งŒ ์นด๋ฉ”๋ผ์˜ Viewport๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์นด๋ฉ”๋ผ๋ฅผ
10๋Œ€๋ฅผ ๋†”๋„ ํ•œํ™”๋ฉด์— ๊ฐ ์นด๋ฉ”๋ผ์˜ ์˜์ƒ์„ ๊ฐ€์ ธ์™€์„œ depth ์ˆœ์„œ๋Œ€๋กœ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“๋Š”๋‹ค
๋‹น์—ฐํžˆ ํ™”๋ฉด์— ํˆฌ๋ช…ํ•œ ๋ถ€๋ถ„์ด ์—†์œผ๋ฉด ๋’ค์˜ ํ™”๋ฉด์€ ์•”๊ฒƒ๋„ ์•ˆ๋ณด์ด๊ฒŒ ๋˜๋ฏ€๋กœ
์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค
์ด๋Š” ๋˜ํ•œ ๋ฐ‘์—์„œ ์„ค๋ช…ํ•  Culling Mask์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค
์‚ฌ์šฉ์˜ˆ๋ฅผ ํ•˜๋‚˜ ๋“ค์–ด๋ณด์ž
์ ์™ธ์„ ๋ชจ๋“œ๋ฅผ ํ‚ค๋ฉด ๋ฒฝ๋„˜์–ด์˜ ์ธ๋ฌผ์„ ๋ณด์ด๊ฒŒ ํ• ๋ ค๊ณ  ํ•œ๋‹ค.
์ด๋•Œ ๋ฒฝ์„ ๋žœ๋”๋ง ์†์„ฑ์„ ๊บผ๋ฒ„๋ฆฐ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์ˆ˜๊ฐ€ ์žˆ์ง€๋งŒ ์ผ์ผ์ด ๋ฒฝ๋“ค์„ ์ฐพ์•„์„œ
๊ทธ๋Ÿฐ ์ง“์„ ํ•˜๊ธฐ๊ฐ€ ๋ฒˆ๊ฑฐ๋กญ๊ธฐ๋„ ํ•˜๊ณ  ์„ฑ๋Šฅ์ƒ์œผ๋กœ๋„ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค
์ด๊ฒƒ์„ ์นด๋ฉ”๋ผ ๋‘ ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋งค์šฐ ๊ฐ„๋‹จํžˆ ์ฒ˜๋ฆฌ๊ฐ€ ๋œ๋‹ค
๋ฉ”์ธ ์นด๋ฉ”๋ผ์™€ ์„œ๋ธŒ์นด๋ฉ”๋ผ๋ฅผ ๋‘๊ณ  ์„œ๋ธŒ๋Š”
๋ชจ๋“  ์‚ฌ๋ฌผ์˜ ๋ชจ์Šต์„ ๋„๊ณ  ๋‹จ์ง€ ์ธ๋ฌผ๋งŒ ๋ณด์ด๋„๋ก ํ•ด๋†“๋Š”๋‹ค
๊ทธ๋Ÿฐ ํ›„ ์„œ๋ธŒ์นด๋ฉ”๋ผ๋ฅผ Depth Only ์„ค์ •์œผ๋กœ ๋‘๊ณ  ์ผœ๋ฒ„๋ฆฌ๋ฉด ๋ฒฝ์•ˆ์— ์žˆ๋“  ๋ง๋“ 
์žฅ์†Œ๋“  ์ƒ๊ด€์—†์ด ํ™”๋ฉด ์ ค ์œ„์— ๋‹ค ๋…ธ์ถœ๋˜๊ฒŒ๋œ๋‹ค. ๊ทธ๋Ÿฐ ์ ์„ ์ด์šฉํ•ด์„œ
์ผ๋‹จ ์„œ๋ธŒ์นด๋ฉ”๋ผ๋ฅผ ๊บผ๋†“๋‹ค๊ฐ€ ์ ์™ธ์„  ๋ชจ๋“œ ์ด๋Ÿฐ ๊ฒƒ์„ ์“ธ๋•Œ๋งŒ ๋”ฑ ํ‚ค๋ฉด
depth only
์œ„์—์„œ์ฒ˜๋Ÿผ ๋ฒฝ๋„˜์–ด์˜ ๋ชจ์Šต์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค

Don’t Clear

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

Background

์œ„์˜ Clear flags์—์„œ solid Color๋ฅผ ์ ์šฉํ• ๋•Œ ๋‚˜์˜ค๋Š” ์ƒ‰

Culling Mask

๋ณด์—ฌ์งˆ ๋ ˆ์ด์–ด๋“ค. ๋””ํดํŠธ๋Š” ๋ชจ๋“  ๋ ˆ์ด์–ด๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ๋Š”๋ฐ ์ฒดํฌ๋ฅผ ๋„๋ฉด
ํ•ด๋‹น ๋ ˆ์ด์–ด์˜ ๋ฌผ์ฒด๋“ค์€ ์นด๋ฉ”๋ผ ํ™”๋ฉด์—์„œ ์•ˆ๋ณด์ด๊ฒŒ๋œ๋‹ค. (๋ชจ์Šต๋งŒ.. ๊ทธ์™ธ๋Š” ๊ทธ๋Œ€๋กœ๋‹ค)

Projection

์›๊ทผ๊ณผ ์ง๊ต ํˆฌ์‚ฌ๋ฐฉ์‹
์›๊ทผ์€ ๊ฐ€๊นŒ์šด ๊ฑด ํฌ๊ฒŒ, ๋ฉ€๋ฆฌ์žˆ๋Š” ๊ฒƒ์€ ์ž‘๊ฒŒ ๋ณด์ด๋Š” ๋ฐฉ์‹์ด๊ณ 
์ง๊ต๋Š” ๊ทธ๋”ด๊ฑฐ ์—†๋‹ค.
ํ™”๋ฉด์ƒ์— ๋ญ”๊ฐ€ ๋ณด์ด๋Š” ๋ฐฉ์‹์€ ์นด๋ฉ”๋ผ์˜ ์‹œ์•ผ๊ฐ์•ˆ์—์„œ ํ‰๋ฉด์œผ๋กœ ์‹น๋š์งค๋ผ์„œ ๋‚˜์˜ค๋Š” ๋ฐฉ์‹์ด๋‹ค
Perspective
Perspective
A๋ถ€๋ถ„์„ ์‹น๋š ์ž˜๋ผ์„œ ๊ฐ€์ ธ์˜ค๋ฉด ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋นจ๊ฐ„ ์‹œ์•ผ๊ฐ์ด ์ข์œผ๋ฏ€๋กœ
ํ™”๋ฉด์ด ์ž‘์•„์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๋ฌผ์ฒด๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋น„์ค‘์ด ํฌ๋‹ค
B๋ถ€๋ถ„์€ ํ™”๋ฉด์ด ์ปค์ ธ์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๋ฌผ์ฒด๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ๋น„์ค‘์ด ์ž‘๋‹ค

Orthographic
Orthographic
์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์•ผ๊ฐ์—„์ฒญ ๋„“์œผ๋ฉด์„œ ๋™์ผํ•œ Orthographic ๋ฐฉ์‹์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์–ด๋„ ํ•ญ์ƒ
๋™์ผํ•œ ๋ฌผ์ฒด ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ๋œ๋‹ค

Orthographic

Clipping Planes

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

Viewport Rect

์œ„์˜ perspective ํ™”๋ฉด์„ ๋ณด๋ฉด
Perspective
์‚ฌ์‹ค์€ ์ด๋ž˜์•ผ ์ •์ƒ์ด๋‹ค. ํ™”๋ฉด ํฌ๊ธฐ ์ž์ฒด๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด๋‹ค
ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒํ•˜๋ฉด ํ™”๋ฉด์ƒ์— ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์˜จ๊ฐ– ์—๋กœ์‚ฌํ•ญ์ด ๊ฝƒํ”ผ๊ฒŒ ๋˜๊ณ ..
์˜๋„์—๋„ ๋งž์ง€ ์•Š๋Š”๋‹ค
๊ทธ๋ž˜์„œ ๋ทฐํฌํŠธ(Viewport )๋ผ๋Š” ๋ชจ๋‘์—๊ฒŒ ์ ์šฉ๋˜๋Š” ๊ฐ€์ƒ์˜ ํ™”๋ฉด์ด ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค
๋ทฐํฌํŠธ๋Š” ๋ชจ๋‘๊ฐ€ ๊ฐ™์€ ํ™”๋ฉด์—์„œ ๋‹จ์ง€ ์˜ค๋ธŒ์ ํŠธ์˜ ๋น„์ค‘์œผ๋กœ ํ™”๋ฉด์„ ์ •ํ•˜๋ฉฐ
๋น„์ค‘์€ ๋ฐฑ๋ถ„์œจ.. ์ฆ‰ 0๋ถ€ํ„ฐ 1๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•œ๋‹ค

  • X : ๊ฐ€๋กœ ์›์ 
  • Y : ์„ธ๋กœ ์›์ 
  • W (Width) : ๊ฐ€๋กœ ๋„“์ด
  • H (Height) : ์„ธ๋กœ ๋†’์ด

์ด๋ ‡๊ฒŒ ๋˜์–ด ์žˆ๋Š”๋ฐ ํ•˜๋‚˜์˜ ์นด๋ฉ”๋ผ๋Š” ํ•˜๋‚˜์˜ ๋ทฐํฌํŠธ๋งŒ์„ ๊ฐ€์ง€๋ฉฐ
๊ธฐ๋ณธ๊ฐ’์€ ํ•ญ์ƒ ํ˜„์žฌ ํ™”๋ฉด์˜ ์ „์ฒดํฌ๊ธฐ์ด๋‹ค.
๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ๋Š” ์นด๋ฉ”๋ผ๊ฐ€ 10๋Œ€๋ผ๋„ ๋‹ค ๊ฒน์น˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค
ํ•˜์ง€๋งŒ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์นด๋ฉ”๋ผ ๊ฐ๊ฐ์˜ ํ™”๋ฉด์„ ๋ณด์ด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค
viewport
xy๋ฅผ 0.7์ •๋„๋กœ wh๋ฅผ 0.2 ์ •๋„๋กœํ•œ ๋ฏธ๋‹ˆ๋งต์šฉ ์นด๋ฉ”๋ผ

Depth

์˜ค๋ธŒ์ ํŠธ๋“ค์ด ์ˆœ์„œ๊ฐ€ ์žˆ๋“ฏ์ด ์นด๋ฉ”๋ผ์˜ ๋ณด์—ฌ์ง€๋Š” ์ˆœ์„œ

Rendering Path

๋žœ๋”๋ง ํŒจ์Šค๋ฅผ ์ง€์ •ํ•œ๋‹ค.

Target Texture (Unity Pro only)

์นด๋ฉ”๋ผ ํ™”๋ฉด์„ ๊ฒŒ์ž„์ƒ ์˜ค๋ธŒ์ ํŠธ์˜ ํ…์Šค์ณ์—๋‹ค๊ฐ€ ๋ถ™์—ฌ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค
์•ผ๊ตฌ์žฅ์—์„œ ์ค‘๊ณ„์Šคํฌ๋ฆฐ์ด ๋ถ™์–ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€ ํšจ๊ณผ

HDR

HDR ๋žœ๋”๋ง์„ ํ•œ๋‹ค.

Written with StackEdit.

2015๋…„ 2์›” 21์ผ ํ† ์š”์ผ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด์˜ ๊ฐœ๋…

๋ชฉ์ฐจ


๋‚ด๊ฐ€ ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ์šฉ์–ด๋ฅผ ์ ‘ํ–ˆ์„๋•Œ์˜ ์ด๋ฏธ์ง€๋Š”
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€
์ด๋žฌ๋‹ค.-ใ……-
๋ญ ๋น„์Šทํ•œ ์ ๋„ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ์—ฌ๊ธฐ์— ๋ฌด์Šจ ์šฐ์ฃผ์  ์‹ ๋น„๊ฐ€ ๊นƒ๋“ค์–ด ์žˆ๋‹ค๊ฑฐ๋‚˜ ํ•˜์ง„ ์•Š๊ณ  ์ถฉ๋ถ„ํžˆ ์ดํ•ด๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค
๊ทธ๋ž˜์„œ ์ดˆ๋ณด์ž…์žฅ์—์„œ ๋„ค์˜ค๋ž‘ ๋งŒ๋‚˜์ง€ ์•Š๊ฒŒ ํ•œ๋ฒˆ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค

ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Programming) ์šฉ์–ด์  ์˜๋ฏธ

๋จผ์ € IT๊ณ„์—ด์€ ํ•ญ์ƒ ๋ฏธ์ฟก์ธ์ด๋‚˜ ์˜์–ด๋ฅผ ์ฃผ์‹์œผ๋กœํ•˜๋Š” ๋‚˜๋ผ๋“ค์ด ๋„ˆ๋ฌด๋„ˆ๋ฌด ๋ถ€๋Ÿฝ๋‹ค
์ด๋“ค์€ ์–ธ์–ด์  ์ด์ ์œผ๋กœ ์ธํ•ด ๋น„์˜์–ด๊ถŒ๋ณด๋‹ค ๋ช‡๋ฐฐ๋‚˜ ์‰ฝ๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค
๊ทธ์— ๊ด€ํ•œ ๊ธ€ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์šฉ์–ด์™€ ์˜์–ด์˜ ์ค‘์š”์„ฑ

Programming : ๊ณ„ํšํ•˜๋Š” ๊ฒƒ, ๋‚จ์ด ํ•  ์ผ์„ ์งœ์ฃผ๊ธฐ

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

๊ธฐ๊ณ„์–ด์™€ ์ปดํ“จํ„ฐ

์ด์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•ด์„œ ๋Œ€์ถฉ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค
๊ทธ๋Ÿผ ์ปดํ“จํ„ฐ์˜ ๊ณ ํ–ฅ์–ธ์–ด๋กœ ์งœ์ฃผ๋ฉด ๊ทธ๋งŒ์ด๋‹ค
์ปดํ“จํ„ฐ์˜ ๊ณ ํ–ฅ์–ธ์–ด๋Š” ๋ญ˜๋กœ ๋˜์–ด ์žˆ์„๊นŒ
๋ฐ”๋กœ ๊ธฐ๊ณ„์–ด์ด๋‹ค
(๊ธฐ๊ณ„์–ด์— ๊ด€ํ•ด์„œ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด
[์–ธ์–ด] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์—ญ์‚ฌ ๋ฅผ ์ฝ์–ด๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค
์•„์ฃผ ์žฌ๋ฐŒ๊ณ  ์œ ์ตํ•˜๋‹ค)

์ด๊ฑด ๋˜ ๋ฌด์Šจ ๊ฑฐ์ฐฝํ•œ ์™ธ๊ณ„์–ธ์–ด์ผ๊นŒ ์ƒ๊ฐ๋  ๊ฒƒ์ด๋‹ค
ํ•˜์ง€๋งŒ ๊ธฐ๊ณ„์–ด๋Š” ์ด๋ฆ„๊ณผ ๋‹ฌ๋ฆฌ ์œ ์น˜์›์ƒ๊ธ‰ ์–ธ์–ด์ด๋‹ค
์•„์ฃผ ์งง์€ ์ง€์‹œ์–ด๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ
๊ฐ€, ๋ฉˆ์ถฐ,
์ด๋Ÿฐ์‹์ด๊ณ  ์ด๋“ค์€ 001, 1010 ์ด๋ ‡๊ฒŒ 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค
์˜ˆ๋ฅผ๋“ค๋ฉด

stop - 000000
go - 000001
threeGo - 000010
Godolii - 111111

์ด๋Ÿฐ์‹์ด๋‹ค. ์™œ ๊ธฐ๊ณ„์–ด๊ฐ€ ์ด๋Ÿฐ์‹์ธ์ง€๋Š”
์ปดํ“จํ„ฐ์™€ ์ด์ง„์ˆ˜ ์—ฌ๊ธฐ์— ๋”ฐ๋กœ ์„ค๋ช…ํ•ด ๋‘์—ˆ๋‹ค
์—ฌํ•˜ํŠผ ์ด๋Ÿฐ ๊ธฐ๊ณ„์˜ ์–ธ์–ด๋กœ ํ•ด์•ผํ•  ์ผ์„ ์ ์–ด ๋†“์œผ๋ฉด
๊ทธ๊ฒŒ ๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ ๊ฒƒ์ด๋‹ค
๊ทธ๋Ÿผ ์ฒซ๋ฒˆ์งธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด๊ฒ ๋‹ค

10 - ์˜ค๋ฅธ๋ฐœ
01 - ์™ผ๋ฐœ
11 - ์•ž์œผ๋กœ

์ด๊ฑธ๋กœ ‘๊ฑธ์–ด๋ผ’ ๋ผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด๊ฒ ๋‹ค

10 11 01 11… ๋ฐ˜๋ณต

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…
๋‚˜ ์ด์งค ๋งจ๋‚  ์จ๋จน๋Š”๋“ฏ

์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋“ฑ์žฅ

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

ํ•˜์ง€๋งŒ ์ปดํ„ฐ์—๊ฒ ์–ด๋ฆผ๋„ ์—†๋‹ค

๋ฐฅ๋จน์ž~ ๋ผ๋Š” ์ง€์‹œ๊ฐ€ ์•„๋‹ˆ๋ผ ์œ„์˜ ๊ฑท๊ธฐ๋กœ ๋ฐฅ๊ทธ๋ฆ‡ ์•ž์—๊นŒ์ง€
๊ฐ€๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ์œ„์˜ ์•ž์œผ๋กœ ๋ผ๋Š” ๊ฒƒ๋„ ์–ด๋Š์ •๋„ ์•ž์œผ๋กœ ๊ฐ€์•ผ๋˜๋Š”์ง€
์ •ํ•ด์•ผํ•˜๊ณ  1cm๋ผ๊ณ  ์น˜๋ฉด 1m ์ „์ง„์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ํŽผ์ณ์ง„๋‹ค

10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ......
... (์กด๋‚ด๋ฐ˜๋ณต) .... 01 11 11 11 11 11 11 11 11 11 11 11.....

๋…ธ๊ฐ€๋‹ค๋„ ๋…ธ๊ฐ€๋‹ค์ง€๋งŒ ์–ด๋Š ์ˆœ๊ฐ„์ด ๋˜๋ฉด ์ด์ œ ๋ญ๊ฐ€๋ญ”์ง€ ์•Œ ์ˆ˜ ์—†๋Š” ๋‹จ๊ณ„์— ์ด๋ฅด๋ฅธ๋‹ค
๊ทธ๋‚˜๋งˆ ์ €๊ธด ๊ผด๋ž‘ 3๊ฐœ์˜ ์ง€์‹œ์–ด๋งŒ ์ผ์„๋ฟ์ด๊ณ  ์ง€์‹œ์–ด์— 2์ž๋ฆฌ๋งŒ ์‚ฌ์šฉํ• ๋ฆฌ๋„ ์—†๋‹ค
0000101010011 ์ด๋Ÿฐ๊ฒŒ ๋ช…๋ น์–ด 1๊ฐœ์ธ ๊ฒฝ์šฐ๊ฐ€ ์ˆ˜๋‘๋ฃฉ ํ•˜๋‹จ๊ฒƒ์ด๋‹ค
์ €๋Ÿฐ๊ฑธ ์œ„์—์ฒ˜๋Ÿผ ์“ด๋‹ค๋ฉด ์ ˆ๋Œ€ ๋ชป์•Œ์•„๋ณด๊ฒŒ ๋œ๋‹ค

๊ทธ๋ž˜์„œ ์ €๋”ด ์ฝ”๋“œ๋ฅผ ์งœ๋˜ ์‚ฌ๋žŒ๋“ค์ด ๋” ์ด์ƒ ๋ชป์‚ด๊ฒ ๋‹ค๋ฉฐ
์ธ๊ฐ„๋‹ต๊ฒŒ ์‚ด์•„๋ณด์ž๋ฉฐ ๋งŒ๋“  ๊ฒƒ์ด ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์ด๋‹ค
๊ทธ๊ฒƒ์€ ์ˆซ์ž๋กœ ํ‘œํ˜„๋˜๋˜ ๊ธฐ๊ณ„์–ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•˜๊ธฐ๋กœ
์•ฝ์†ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ฆ‰ ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์˜ ๋ฌธ๋ฒ•์„ ์ฐฝ์กฐํ–ˆ๋‹ค

011110 011110
mov mov

๊ทผ๋ฐ ๋‹น์—ฐํžˆ mov mov ์ด๋ ‡๊ฒŒ ํ•ด๋†“์œผ๋ฉด ์ปดํ„ฐ๊ฐ€ ์•Œ์•„๋“ค์„๋ฆฌ๊ฐ€ ์—†๋‹ค
๊ทธ๋ž˜์„œ mov๋ผ๊ณ  ํ•ด๋†“์œผ๋ฉด 011110 ์œผ๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์œ ํ‹ธ์„ ๋งŒ๋“ค์—ˆ๊ณ 
์ด์ œ๋Š” ๊ธฐ๊ณ„์–ด๋ฅผ ์“ธ ํ•„์š”๊ฐ€ ์—†์–ด์กŒ๋‹ค2
ํ•œ๋ฐ ์ด ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋„ ์ƒ๋‹นํžˆ ๊ธฐ๊ณ„์–ด์— ๊ฐ€๊นŒ์šด ์›์‹œ์  ์–ธ์–ด๋ผ
๋ฐฅ๋จน์–ด๋ผ ~ ๋ผ๊ณ ํ•˜๋ฉด

mov mov mov mov mov mov mov mov mov mov

์ด์ง“ ํ•˜๊ธฐ๊ฐ€ ์ผ์‘ค๋‹ค (๋ฌผ๋ก  ์ฝ”๋“œ์ž์ฒด๋Š” ์ƒ๋‹นํžˆ ๋‹ค๋ฅด๋‹ค ๊ฑ ๊ฐœ๋…์ ์œผ๋กœ)
๊ทธ๋ž˜์„œ ๋”๋”์šฑ ๊ฐœ๊ณต์ง€๋Šฅ์— ๊ฐ€๊น๊ฒŒ ๋งŒ๋“  ์–ธ์–ด๋“ค์ด ๋‚˜์˜ค๊ณ 
์ด๋“ค์€ ์œ„์˜ ์ฝ”๋“œ๋ฅผ

moveToEat

์ด๋Ÿฐ์‹์œผ๋กœ ๋”์šฑ ๋ฐœ์ „์‹œ์ผฐ๋‹ค.
๋˜ํ•œ ๊ฐ์ž์˜ ๋ฐฉ์‹, ์šฉ๋„์— ๋”ฐ๋ผ ๋”๋”์šฑ ๋ถ„๋ฅ˜๊ฐ€ ๋˜์—ˆ๊ณ 
์˜ค๋Š˜๋‚ ์— ์ด๋ฅด๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๊ทธ ์ˆ˜๋„ ์žฅ๋‚œ์ด ์•„๋‹ˆ๊ฒŒ๋˜์—ˆ๋‹ค

๋‹ค๋งŒ ‘๋ฐฅ๋จน์ž’ ๋ผ๋Š” ๊ฐœ๋…์ด ์ „์„ธ๊ณ„ ์–ด๋””์„œ๋‚˜ ์žˆ๋“ฏ์ด
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋„ ๊ณตํ†ต์ ์ธ ๊ฐœ๋…์—์„œ๋Š” ํฌ๊ฒŒ ๋ฒ—์–ด๋‚˜์ง€ ์•Š์•„
ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ตํžˆ๋ฉด ๋‹ค๋ฅธ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์—๋Š” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค (ํŠนํžˆ C๋ฅผ ์ตํžˆ๋ฉด ์–ด๋–ค ์–ธ์–ด๋“  ์ ‘๊ทผ์ด ์‰ฝ๋‹ค)

Written with StackEdit.


  1. ์ฐธ๊ณ ๋กœ ๋ ˆ์ง€์Šคํ„ฐ๋‹ˆ ๋ฉ”๋ชจ๋ฆฌ๊ด€๋ฆฌ๋‹ˆ ์ด๋Ÿฐ๊ฑด ์ผ๋‹จ ์ œ์™ธํ•œ๋‹ค. ์ด ๊ธ€์„ ์ฝ์„ ์‚ฌ๋žŒ์ด ๊ทธ๋Ÿฐ๊ฑฐ ๋ณด๋ฉด ๋ฉ”ํŠธ๋ฆญ์Šค๋กœ ๋‹ค์ด๋น™ํ•˜๋Š” ์ˆ˜๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ.(์‚ฌ์‹ค ๋‚˜๋„ ๋ชจ๋ฅธ๋‹ค๋Š”๊ฒŒ ๋” ํฐ ์ด์œ )
  2. ๊ทธ๊ฒƒ์„ ์–ด์…ˆ๋ธ”๋Ÿฌ ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๊ทธ ํ›„์˜ ์–ธ์–ด์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ๋กœ ํ‰์นœ๋‹ค - ๋” ์ž์„ธํ•œ๊ฑด ์œ„ํ‚ค์ฐธ์กฐ
2015๋…„ 2์›” 20์ผ ๊ธˆ์š”์ผ

์ปดํ“จํ„ฐ์™€ ์ด์ง„์ˆ˜

๋ชฉ์ฐจ


์ด์ง„์ˆ˜๋ž€

๋‘ ๊ฐ€์ง€์˜ ํ‘œํ˜„๋ฐฉ์‹์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ์ด์ง„๋ฒ•์ด๋ผ ํ•œ๋‹ค
์„ธ ๊ฐ€์ง€๋ผ๋ฉด ์‚ผ์ง„๋ฒ•, ๋„ค ๊ฐ€์ง€๋ผ๋ฉด ์‚ฌ์ง„๋ฒ•์ด๋‹ค

์ˆ˜์—…์‹œ๊ฐ„์— ์งˆ๋ฌธํ•˜๊ธฐ๋ฅผ ์†์„ ๋“ค๊ณ  ๋‚ด๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •์˜ํ•˜๋ฉด
์ด์ง„๋ฒ•์ด๋‹ค. ์†์„ ๋“ ๋‹ค, ๋‚ด๋ฆฐ๋‹ค ๋‘๊ฐ€์ง€์ด๋ฏ€๋กœ..
์ผ์ฃผ์ผ์€ ์š”์ผ์„ ํ‘œํ˜„ํ•˜๋Š” 7์ง„๋ฒ•์ด๋‹ค

๊ทธ๋Ÿฌํ•œ ์ง„๋ฒ•๋“ค์˜ ๊ฐ ํ‘œํ˜„์—๋‹ค๊ฐ€ ์ˆ˜๋กœ ๋Œ€์‘ํ•œ ๊ฒƒ์ด ์ง„์ˆ˜์ด๋‹ค
์ด์ง„์ˆ˜์˜ ๊ฒฝ์šฐ ๋‘ ๊ฐ€์ง€ ํ‘œํ˜„์˜ ๊ฐ๊ฐ์—
0๊ณผ 1์„ ํ• ๋‹นํ–ˆ๋‹ค

์œ„์˜ ์งˆ๋ฌธํ•˜๊ธฐ์— ๋Œ€์ž…ํ•˜๋ฉด

0 - ์†๋‚ด๋ฆฌ๊ธฐ
1 - ์†์˜ฌ๋ฆฌ๊ธฐ

๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค
์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ๋ณด๋ฉด ์ด๋“ค์˜ ๊ฐ€์น˜์— ์˜๋ฌธ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์ง€๋งŒ
์˜ค๋ฅธ์† ์™ผ์†์œผ๋กœ ๋ณด๊ฒŒ ๋˜๋ฉด ํ‘œํ˜„์ˆ˜๊ฐ€ ๊ทน์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ฒŒ ๋œ๋‹ค

00 - ์˜ค๋ฅธ์† ๋‚ด๋ฆฌ๊ณ  ์™ผ์† ๋‚ด๋ฆฌ๊ธฐ
01 - ์˜ค๋ฅธ์† ๋‚ด๋ฆฌ๊ณ  ์™ผ์† ์˜ฌ๋ฆฌ๊ธฐ
10 - ์˜ค๋ฅธ์† ์˜ฌ๋ฆฌ๊ณ  ์™ผ์† ๋‚ด๋ฆฌ๊ธฐ
11 - ์˜ค๋ฅธ์† ์˜ฌ๋ฆฌ๊ณ  ์™ผ์† ์˜ฌ๋ฆฌ๊ธฐ

์–ด๋–ค ํ‘œํ˜„์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ• ๋•Œ๋งˆ๋‹ค
ํ‘œํ˜„ ๊ฐ€์ง“์ˆ˜๋Š” ์ œ๊ณฑ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜์–ด

๋น„๋ก 2์ง„๋ฒ•์ด๋ผ๋„ ๋ชจ์Šค๋ถ€ํ˜ธ ์ฒ˜๋Ÿผ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๊ฒŒ
๋˜๋Š” ๊ฒƒ์ด๋‹ค

์ปดํ“จํ„ฐ์—์„œ์˜ ์ด์ง„์ˆ˜

์ปดํ“จํ„ฐ๋Š” ์ž์‹ ์˜ ์˜์‚ฌํ‘œํ˜„ ๋ฐฉ์‹์ด ์ด์ง„์ˆ˜์ด๋‹ค
์ •ํ™•ํžˆ๋Š” ๋ฐ˜๋„์ฒด ํ•˜๋‚˜์˜ ํ‘œํ˜„๋ฐฉ์‹์ด ์ด์ง„์ˆ˜์ด๋‹ค
์•ž์„œ ๋งํ–ˆ๋“ฏ์ด ๋ชจ์ด๊ณ  ๋ชจ์ด๋ฉด ๋Œ€๊ทœ๋ชจ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค๊ณ  ํ–ˆ๋‹ค
๊ทธ๋ž˜์„œ ๋ฐ˜๋„์ฒด๋ฅผ ์™•์ฐฝ ๋•Œ๋ ค๋ฐ•์•„๋†“์€ ์ปดํ„ฐ๊ฐ€ ๊ฐ์ข… ๋‹ค์–‘ํ•œ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค

๊ทผ๋ฐ ์™œ ์ด์ง„์ˆ˜ ๋ฐฉ์‹์ผ๊นŒ. ์ด์™•์ด๋ฉด 10์ง„์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ถ€ํ’ˆ์„
์™•์ฐฝ ๋•Œ๋ ค๋„ฃ์œผ๋ฉด ์ง€๊ธˆ๊ณผ๋Š” ๋น„๊ต๊ฐ€ ์•ˆ๋  ๊ฒƒ์ด๋‹ค

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

๊ทธ๋ž˜๋„ ํ•œ๊ฐœ ์ž‘๋™ํ•˜๋ฉด 1๋ฒˆ ๋ฒˆํ˜ธํŒ์„ ๋‚ด๋ฆฌ๊ณ  ๋‘๊ฐœ ์ž‘๋™ํ•˜๋ฉด
2๋ฒˆ ๋ฒˆํ˜ธํŒ ๋‚ด๋ฆฌ๊ฒŒ ํ•˜๊ณ .. ์ด๋Ÿฐ์‹์œผ๋กœ ๋ฌด๊ฒŒ์ถ”์™€ ํ†ฑ๋‹ˆ๋ฐ”ํ€ด
์ด์šฉํ•ด์„œ ์–ด์ฐŒ์–ด์ฐŒ ๋งŒ๋“ค๋ฉด ๋ ๊ฒƒ์ด๋‹ค

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

์ „๊ธฐ๊ฐ€ ํ†ตํ•˜๋ฉด 1, ์ „๊ธฐ๊ฐ€ ์•ˆํ†ตํ•˜๋ฉด 0

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

์•„๋ž˜์˜ ๋™์˜์ƒ์ด
์ปดํ“จํ„ฐ์˜ ํ‘œํ˜„๊ณผ 2์ง„๋ฒ•์˜ ๊ด€๊ณ„๋ฅผ ์ž˜ ๋‚˜ํƒ€๋‚ด์ค„ ๊ฒƒ ๊ฐ™๋‹ค ^^

๋ฒจ๋ธŒ(1์ž‘๋™,0์ž ๊ธˆ)๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋ฐฐ์น˜ํ•ด์„œ ํ‘œํ˜„ํ•˜๋Š” ๋ฌผ ๊ทธ๋ž˜ํ”ฝ


Written with StackEdit.

xpath ์˜ ๊ฐœ๋…๊ณผ ๋ฌธ๋ฒ•

๋ชฉ์ฐจ


xpath์˜ ๊ฐœ๋…

์šฐ๋ฆฐ ํŒŒ์ผ์„ ์ฐพ์„๋•Œ ํƒ์ƒ‰๊ธฐ๋ฅผ ์ด์šฉํ•œ๋‹ค
ํƒ์ƒ‰๊ธฐ๋Š” ๋ฏธ์ง€์˜ ์žฅ์†Œ๋ฅผ ๊ทธ๋ƒฅ ํƒํ—˜ํ•˜๋Š”๊ฒŒ์•„๋‹ˆ๋ผ
๊ธธ, ์ฆ‰ path๋ฅผ ๋”ฐ๋ผ๊ฐ€์„œ ์›ํ•˜๋Š” ๊ณณ์„ ์ฐพ์•„๋‚ด๋Š”๋ฐ
C:\windows\System32\important\์™œ๊ฐ€๋ฆฌ
์œ„์™€ ๊ฐ™์€ ํ˜•์‹์ด๊ณ  ์ด๊ฒƒ์ด ์œˆ๋„์˜ path ๋ฌธ๋ฒ•์ด๋‹ค

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ xml๋„ ์›ํ•˜๋Š” ํƒœ๊ทธ๋‚˜ ์†์„ฑ์„ ์‰ฝ๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด
path๋ฌธ๋ฒ•์„ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๊ณ  xpath๋ผ ๋ช…๋ช…ํ•˜๊ฒŒ๋˜์—ˆ๋‹ค

xpath์˜ Node

xml๋„ ์œˆ๋„์ฒ˜๋Ÿผ ๋‹จ์ˆœํžˆ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ๋”ธ๋ž‘ ์žˆ๋‹ค๋ฉด ๋งค์šฐ์ข‹์•˜์„ ๊ฒƒ์ด๋‚˜
๋ถˆํ–‰ํžˆ๋„ <body style="sexy" class="top"> -ใ… - </body> ์ด๋Ÿฐ์‹์œผ๋กœ
์šฐ๋ฆฌ๊ฐ€ ์ฐพ์•„์•ผํ•  ๊ฒƒ์€ body๋ผ๋Š” ํƒœ๊ทธ ํ•˜๋‚˜๋กœ ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค
๊ฐ ํƒœ๊ทธ์—๋Š” ์†์„ฑ๋„ ์žˆ๊ณ  ์†์„ฑ๊ฐ’๋„ ์žˆ๊ณ  ํƒœ๊ทธ์˜ ๋‚ด์šฉ๋ฌผ๋„ ์žˆ๋‹ค
๊ทธ๋ž˜์„œ ์ด๊ฑธ ์–ด์ฐŒํ•ด์•ผํ•˜๋‚˜ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€
๊ทธ๋ƒฅ ๋ชจ์กฐ๋ฆฌ node ๋ผ๋Š” ๋‹จ์œ„๋กœ ํ‰์ณ๋ฒ„๋ ธ๋‹ค
<body style="sexy" class="top"> -ใ… - </body>
์œ„๋Š” 5๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์ด๋ค„์กŒ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค
์ด๋ ‡๊ฒŒ ๋…ธ๋“œ๋กœ ๋งŒ๋“ค๊ณ  ๋‚˜๋‹ˆ ๊ฐ ๋…ธ๋“œ๋“ค ์ค‘์— ๋™์ผํ•œ ํƒ€์ž…๋“ค์ด ์กด์žฌํ–ˆ๋‹ค.
xml์„ ์™„์ „ํžˆ ๋ถ„ํ•ดํ•ด๋ดค์„๋•Œ 6๊ฐ€์ง€ ํƒ€์ž…๋งŒ ์žˆ์œผ๋ฉด xml์€ ์ซ‘์ด์—ˆ๋‹ค
๊ทธ๋ž˜์„œ ๋…ธ๋“œ๋“ค์„ ๋”์šฑ ์ฐพ๊ธฐ์‰ฝ๊ฒŒ ๊ฐ ํƒ€์ž…๋งˆ๋‹ค ์ด๋ฆ„์„ ๋ถ™์—ฌ์ฃผ์—ˆ๋Š”๋ฐ
๊ทธ ๊ณผ์ •์—์„œ ์–˜๋„ค๋“ค์„ ์ „๋ถ€ ํฌํ•จํ•˜๋Š” ๊ฐ€์ƒ์˜ ํƒ€์ž…์ด ํ•˜๋‚˜ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ๊ทธ๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

๋…ธ๋“œ๋ช… ์„ค๋ช…
root node 1 xml ์ž์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ€์ƒ ๋…ธ๋“œ
element node ํƒœ๊ทธ
attribute node ์†์„ฑ
text node ํƒœ๊ทธ ๋‚ด์šฉ
namespace node xmlns: ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํƒœ๊ทธ
processing-instruction node <?xml version="1.0" encoding="UTF-8" ?>
์ด๋ ‡๊ฒŒ <? ํƒœ๊ทธ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์• ๋“ค์„ ๋งํ•œ๋‹ค
comment node ์ฃผ์„๋ฌธ

7๊ณต์ฃผ๋„ ์•„๋‹ˆ๊ณ  ์„ฑ์งˆ๋‚˜๊ฒŒ ๋งŽ์ง€๋งŒ ๋‹คํ–‰์ด
์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ element์™€ attribute ๋…ธ๋“œ์ด๊ณ 
xpath์˜ ์‚ฌ์šฉ๋ฒ•๋„ ์ด๋“ค์— ์ง‘์ค‘๋˜์–ด ์žˆ์œผ๋‹ˆ
element node, attribute node, text node
์š”๋ ‡๊ฒŒ๋งŒ ์•Œ๊ณ  ์žˆ์–ด๋„ ๋์ด๋‹ค

xpath ๋ฌธ๋ฒ•

์ž ์ด์ œ ํ•œ๋ฒˆ xml์˜ ์‹ ๋น„๋กœ์šด ์œก์ฒด๋ฅผ ํƒํ—˜ํ•ด๋ณด์ž..-ใ……-
๋„ˆ๋ฌด ์‹ ๋น„๋กœ์šด ๋‚˜๋จธ์ง€ ์ชผ๋งค ๋ณต์žกํ•œ๋ฐ
๋‹ค ๋•Œ๋ ค์น˜์šฐ๊ณ  ์‰ฌ์šด๊ฒƒ๋งŒ ๋ง›๋ณด์ž
๊ทธ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์™ ๋งŒํ•œ๊ฑด ๋‹ค ํ•ด์น˜์šธ ์ˆ˜ ์žˆ๋‹ค

element node

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

์œ„์—์„œ book ํƒœ๊ทธ๋ฅผ ์ฐพ์•„ ๋“ค์–ด๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด?
์œˆ๋„์ฒ˜๋Ÿผ ์“ฐ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€๋ฐ
/bookstore/book
์œˆ๋„์—์„  book ์ด๋ผ๋Š” ์ด๋ฆ„ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜๋งŒ ์ฐพ๋Š”๋‹ค๋Š” ์†Œ๋ฆฌ์ง€๋งŒ
xpath์—์„œ๋Š” NodeName ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“ (ALL)์„ ๋œปํ•œ๋‹ค.
์™œ๋ƒ.. ์œˆ๋„์—๋Š” ๊ฐ™์€ ์ด๋ฆ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ชป๋งŒ๋“œ๋Š” ๋ฐ˜๋ฉด xml์€
๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ์ค„์ฐฝ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ..-ใ……-;;

ํ•˜์ง€๋งŒ ์›ํ•˜๋Š” ๊ฒƒ๋งŒ ์ฐพ๋Š” ๋ฐฉ๋ฒ•๋„ ํ•„์š”ํ• ํ„ฐ..
๊ทธ๋ž˜์„œ ์กฐ๊ฑด์„ ๊ฑธ๋•Œ๋ฅผ ์œ„ํ•ด [] ๋Œ€๊ด„ํ˜ธ๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค
์•„๋ž˜๋Š” ์ฒซ๋ฒˆ์งธ book๋งŒ ์ฐพ์•„์ค€๋‹ค
/bookstore/book[1]

์ˆ˜์‹๋„ ์“ธ ์ˆ˜ ์žˆ๋‹ค
/bookstore/book[price>35.00]

์ž.. ๋‹ค์‹œ ํ•ด์„ํ•˜๋ฉด
๋ชจ๋“  bookstore ์•„๋ž˜์˜ ๋ชจ๋“  price ์˜ ๊ฐ’์ด 35 ์ด์ƒ์ธ ๋ชจ๋“  book
์ด ๋˜์‹œ๊ฒ ๋‹ค2
๋˜ํ•œ //book ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ๋ชจ๋“  book์„ ์ฐพ์•„์ค€๋‹ค
bookstore//book ์ด๋Ÿด ๊ฒฝ์šฐ๋Š” bookstrore ์•ˆ์ชฝ์˜ ๋ชจ๋“  book์„ ์ฐพ๋Š”๋‹ค
์ฆ‰, ์•„๋ž˜์ชฝ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์ฐพ์„๋• //์„ ์“ด๋‹ค
book ๊ทธ๋ƒฅ ์ด๋ ‡๊ฒŒ ์“ธ ๊ฒฝ์šฐ ํ˜„์žฌ ์žˆ๋Š” ๊ณณ์—์„œ ๋ชจ๋“  book์„ ์ฐพ๋Š”๋‹ค
์ € ์œ„์˜ ์˜ˆ์ œ์—์„œ ์ €๋ ‡๊ฒŒ ์“ฐ๋ฉด ์•”๊ฒƒ๋„ ๋ชป์ฐพ๋Š”๋‹ค
book์€ bookstore ์•„๋ž˜์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

attribute node

์—ฌ๊ธฐ์„œ ๋‚ ์นด๋กœ์šด ์‚ฌ๋žŒ์ด๋ฉด ์˜๋ฌธ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค
์œ„์—์„œ 7๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์ด๋Ÿฐ์‹์ด๋ฉด
์ €๊ฑด Element ๋…ธ๋“œ๋งŒ ์ฐพ๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€.. ๋ผ๊ณ ..
๋งž๋‹ค. ์•ž์„œ ๋งํ–ˆ๋“ฏ์ด xpath๋Š” 7๊ฐœ ๋…ธ๋“œ ๋งŒ๋“ค๊ธด ํ–ˆ๋Š”๋ฐ
๋”ด๊ฑด ์›Œ๋‚™ ์ž˜ ์•ˆ์“ฐ๋‹ˆ๊นŒ ๊ฐ€์žฅ ์ž˜ ์“ฐ๋Š” Element ๋…ธ๋“œ๋Š” ์œ„์—์ฒ˜๋Ÿผ
๊ฑ ์จ๋„ ๋˜๋Š” ํŠน๊ถŒ์„ ์คฌ๊ณ 
๊ทธ ๋‹ค์Œ ์ž˜ ์“ฐ๋Š” Attribute ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ ์•ž์— @๋ฅผ ๋ถ™์ธ๋‹ค
//@lang
์ด๋Ÿด ๊ฒฝ์šฐ๋Š” ๋ชจ๋“  ๊ณณ์—์„œ lang Attribute ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š”๋‹ค
์ฐธ๊ณ ๋กœ lang ์†์„ฑ์„ ๊ฐ€์ง„ Element ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค
์ •ํ™•ํžˆ Atrribute ๋…ธ๋“œ๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค

๊ทธ๋Ÿผ ์ € ์†์„ฑ์„ ๊ฐ€์ง„ Element ์ฆ‰, ํƒœ๊ทธ๋ฅผ ์ฐพ๊ณ  ์‹ถ๋‹ค๋ฉด?
์•ž์„œ์˜ ์กฐ๊ฑด์„ ๊ฑธ๋ ค๋ฉด [] ๋Œ€๊ด„ํ˜ธ๋ฅผ ์“ด๋‹ค๊ณ  ํ–ˆ๋‹ค ๊ทธ๋Œ€๋กœ ํ•˜๋ฉด๋œ๋‹ค
//title[@lang]
์ด๋Ÿฌ๋ฉด lang ์†์„ฑ์„ ๊ฐ€์ง„ title ํƒœ๊ทธ ๋…ธ๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค

text node

๋งˆ์ง€๋ง‰์œผ๋กœ ๋˜ ํ•˜๋‚˜์˜ ์ค‘์š”ํ•œ ๋…ธ๋“œ์ธ Text ๋…ธ๋“œ๋ฅผ ์ฐพ๊ณ  ์‹ถ๋‹ค๋ฉด?
text()
๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. text ๋…ธ๋“œ๋Š” ํƒœ์ƒ ์ž์ฒด๊ฐ€ ์—˜๋ฆฌ๋จผํŠธ ๋…ธ๋“œ์ธ ํƒœ๊ทธ์•ˆ์—๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ๋ฒ•๋„ ์ผ๋‹จ ์ฒ˜์Œ์— ์—˜๋ฆฌ๋จผํŠธ ๋…ธ๋“œ๊ฐ€ ๋‚˜์™€์•ผ๋งŒ ํ•œ๋‹ค
//title/text()
๋ชจ๋“  title ํƒœ๊ทธ ์•ˆ์— ์žˆ๋Š” Text ๋…ธ๋“œ ์ถ”์ถœ

//text()
๋ชจ๋“  ํƒœ๊ทธ์•ˆ์˜ text ์ถ”์ถœ

xpath ํ…Œ์ŠคํŠธ

๊ทธ์™ธ์—๋„ ์„ ํƒ์ž๋กœ ์ฐพ๊ธฐ๋„ ์žˆ๊ณ  ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ๊นŒ์ง€ ์•Œ์•˜์œผ๋ฉด
๊ทธ๊ฒƒ๋“ค์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ํฌ๊ฒŒ ์–ด๋ ต์ง„ ์•Š๋‹ค
๋ฌธ๋ฒ•์„ ์ฐธ๊ณ ํ•œ ํ›„
http://www.w3schools.com/xpath/xpath_syntax.asp

์ด ์‚ฌ์ดํŠธ์—์„œ ์—ฐ์Šตํ•ด๋ณด๋ฉด xpath๋ฅผ ์ž์œ ์ž์žฌ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ฒŒ๋˜๊ณ 
์ด์ œ ์ธ๊ฐ„ XML ํƒ์ƒ‰๊ธฐ๋กœ ๊ฑฐ๋“ญ๋‚˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค +_+
http://www.xpathtester.com/xpath

Written with StackEdit.


  1. w3school์—์„œ๋Š” Document node๋ผ ๋˜์–ด ์žˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ ๋…ธ๋“œ๋Š” ์—†๋‹ค. http://www.w3.org/TR/xpath/ ์ฐธ์กฐ
  2. ์–ด? ์œ„์˜ book[1]์€ ๊ทธ๋Ÿผ book์˜ value๊ฐ€ 1์ธ๊ฑฐ ์•„๋‹Œ๊ฐ€์š”?
    ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ˆซ์ž๋งŒ ์“ฐ์—ฌ์กŒ์œผ๋ฉด ๊ฑ ์ˆœ์„œ๊ณ 
    ์ง์ ‘์ ์œผ๋กœ element๋ž‘ ๋น„๊ต์ˆ˜์‹์ด ์žˆ์œผ๋ฉด ์ž๋™์œผ๋กœ ๊ฐ’๊ณผ ๋น„๊ต๋œ๋‹ค
    ๋จธ๋ฆฌ์•„ํ”„๋‹ˆ ๊ฑ ๊ทธ๋Ÿฐ์ค„ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์ž
2015๋…„ 2์›” 10์ผ ํ™”์š”์ผ

์ปดํ„ฐ์ค‘ ๊ฐ„๋‹จํ•œ ์šด๋™

๋ชฉ์ฐจ


๋ชฉ์šด๋™

์ฒ™์ถ”์šด๋™

์†๋ชฉ์šด๋™

๋ฒฝ์— ๋˜ฅ์น ํ• ๋•Œ๊นŒ์ง€ ์‚ดํ…Œ๋‹ค..-ใ……-;;

Written with StackEdit.

2015๋…„ 2์›” 7์ผ ํ† ์š”์ผ

์œ ๋‹ˆํ‹ฐ Mathf.Lerp Mathf.LerpAngle

๋ชฉ์ฐจ


Mathf.Lerp ์„ ํ˜•๋ณด๊ฐ„๋ฒ•

Interpolation ์ด๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์žˆ๋Š”๋ฐ ๋ณด๊ฐ„๋ฒ•(่ฃœ้–“ๆณ•)์ด๋ผ๊ณ  ํ•œ๋‹ค

๋ณธ์ธ์€ ์ˆ˜ํ•™๋„ ์žผ๋ณ‘์ด๊ณ  ์ด๋Ÿฐ ์šฉ์–ด๋„ ๋„ˆ๋ฌด ์•ฝํ•˜๋‹ค
๊ฑฐ๊ธฐ๋‹ค ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ๋„ˆ๋ฌด ๊ณ ์ฐจ์›์ ์ด๋ผ ๊ฐ„์‹ ํžˆ ํฐ๊ฒƒ์€ ์›นํŽ˜์ด์ง€ ๋ฐ”ํƒ•ํ™”๋ฉด์ด๊ณ 
๊ฒ€์€๊ฒƒ์€ ๊ธ€์”จ๋ผ๋Š” ๊ฒƒ ์ •๋„๋งŒ ํ•ด์„ ๊ฐ€๋Šฅํ–ˆ๋‹ค
๊ทธ๋ž˜๋„ ์–ด์ฉŒ๋žด ๊ถ๊ธˆํ•œ๊ฑธ..;;;

์ผ๋‹จ ์šฉ์–ด๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ๋‹ค
๋ณด๊ฐ„.. ๊ฐ„๊ฒฉ์„ ๋ณด์ถฉํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์Šฌ์Šฌ ๋ณต์žกํ•˜๊ฒŒ ์ „๊ฐœ๋˜๋Š”๋ฐ
๋ณธ์ธ์€ ๊ทธ๋Ÿฐ๊ฑด ๊ด€์‹ฌ์—†๊ณ  ์šฉ๋„๋งŒ ๊ด€์‹ฌ์žˆ์œผ๋ฏ€๋กœ ์ตœ๋Œ€ํ•œ ๋‚ด ๋ง˜๋Œ€๋กœ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค

์–ด๋–ค ๋‘์  ์‚ฌ์ด์—์„œ์˜ ์œ„์น˜๋ฅผ ์ˆ˜ํ•™๊ณต์‹์ด๋‚˜ ๋ฒ•์น™์— ๋”ฐ๋ผ
t ๋ผ๋Š” ์ง„ํ–‰์‹œ๊ฐ„์— ์–ด๋””์— ์žˆ์„์ง€ ์˜ˆ์ธกํ•ด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค

์˜ˆ๋ฅผ๋“ค๋ฉด ์นœ๊ตฌ๊ฐ€ ๋†€๋Ÿฌ์˜จ๋‹ค๊ณ  ํ–ˆ์„๋•Œ
‘์–ด๋””์ฏค ์™”์„๋ ค๋‚˜? ์•„๊นŒ ์ถœ๋ฐœํ–ˆ์œผ๋ฉด ๋Œ€์ถฉ xx์Šˆํผ์•ž์ด๊ฒ ๋„ค’
์ด๊ฒŒ ๋ณด๊ฐ„๋ฒ•์ด๋‹ค.
๋‚ด ์ง‘(์‹œ์ž‘์ )๊ณผ ์นœ๊ตฌ์ง‘(๋์ )์„ ์•Œ๊ณ  ์žˆ๊ณ  ์นญ๊ตฌ์˜ ์†๋„๋ผ๊ฑฐ๋‚˜ ๊ธธ์ด๋ผ๊ฑฐ๋‚˜
๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์œ„์น˜ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•˜๋‹ค
๋ฌผ๋ก  ์ง€๊ทธ์žฌ๊ทธ๋กœ ์˜จ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋ฉด ์˜ˆ์ธก๊ณต์‹์€ ๋”๋”์šฑ ๋ณต์žกํ•ด์ง€๋Š”๋ฐ
๊ทธ๋ƒฅ ์ง์„ ์œผ๋กœ ์˜จ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜•๋ณด๊ฐ„๋ฒ•(Lerp)์ด๋ผ๊ณ  ํ•œ๋‹ค
๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ t ๋ผ๋Š” ๊ฐ’์€ ์ง„ํ–‰์‹œ๊ฐ„ ํ˜น์€ ์ง„ํ–‰๊ณผ์ •์ธ๋ฐ
๊ทธ๋Ÿฐ๊ฑธ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ๋Š” ์—ญ์‹œ ๋ฐฑ๋ถ„์œจ์ด ์งฑ์ด๋‹ค
๊ทธ๋ž˜์„œ ์ถœ๋ฐœ์„ 0์œผ๋กœ ๋‘๊ณ  ๋„์ฐฉ์„ 1๋กœ ๋‘”๋‹ค.
๊ทธ๋ƒฅ ์ •์ˆ˜๋กœ ํ–ˆ์œผ๋ฉด ๋‚˜ ๊ฐ™์ด ๋‹จ์ˆœํ•œ ์‚ฌ๋žŒ์€ ํ‰ํ™”๋ฅผ ๋งŒ๋ฝํ–ˆ์„ํ…๋ฐ ์•„์‰ฝ๊ฒŒ๋„
๋”์šฑ ์ •๋ฐ€ํ•œ ๊ฑธ ์›ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์•„์„œ ์‹ค์ˆ˜(float)๋กœ 0๊ณผ 1์‚ฌ์ด๊ฐ€ ๋˜์—ˆ๋‹ค
๋Œ€์ถฉ 0์€ 0%, 0.5๋Š” 50%, 1์€ 100% ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž

์ด์ œ๋Š” Mathf.Lerp ์˜ ์„ค๋ช…์ด ์ข€ ์‰ฝ๊ฒŒ ๋œ๋‹ค

Mathf.Lerp(float from, float to, float t);

from์€ ์‹œ์ž‘์ , to๋Š” ๋์ , t๋Š” ์ง„ํ–‰๋ฅ ์ด๋‹ค
๋‹น์—ฐํžˆ t๊ฐ€ 0์ผ๋•Œ ๋ฐ˜ํ™˜๊ฐ’์€ from ์ด๊ณ  1์ผ๋• to๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค
0.5์ผ๋• from๊ณผ to์˜ ์ค‘๊ฐ„๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค

์˜ˆ๋ฅผ๋“ค์–ด

Mathf.Lerp(10f, 20f, 0.2f);

์ด๋ฉด 10๊ณผ 20์˜ 20% ์ง€์ ์ธ 12๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Mathf.LerpAngle

Mathf.LerpAngle ์€ ์œ„์˜ Mathf.Lerp ๋ฉ”์„œ๋“œ์˜ ๊ฐ๋„๋ฒ„์ „์œผ๋กœ
์ž‘๋™๋ฐฉ๋ฒ•์€ ๋น„์Šทํ•˜๋‹ค
ํ•˜์ง€๋งŒ ๋‘๊ฐ€์ง€๊ฐ€ ๋‹ค๋ฅธ๋ฐ
์ฒซ์งธ๋กœ ๊ฐ๋„๋ฒ„์ „์ด๋ฏ€๋กœ ์‹œ์ž‘๊ฐ’๊ณผ ๋๊ฐ’์ด 360๋„ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ์•ˆ๋œ๋‹ค
๋ฒ—์–ด๋‚  ๊ฒฝ์šฐ NULL์ธ์ง€ ์˜ˆ์™ธ๋ฐœ์ƒ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์—ฌํŠผ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค
๋‘˜์งธ๋กœ Mathf.Lerp๋กœ ๋ฃจํ”„๋ฌธ์„ ๋Œ๋ฆด ๊ฒฝ์šฐ
Lerp( 300, 350, t) ์ด๋Ÿฌ๋ฉด t์˜ ๋น„์œจ๋กœ ์ ์  300์ด 350์œผ๋กœ ๋‹ค๊ฐ€์„ ๋‹ค
์ด๊ฑด ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ๋„๋Š” 360์ด ํ•œ๊ณ„๋‹ค
๊ทธ๋ž˜์„œ ๊ทธ๊ฑธ ๋„˜์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค
Lerp( 300, 0, t)
300์ด 360์„ ํ–ฅํ•ด ๋‹ค๊ฐ€์„œ๋‹ค๊ฐ€
๊ฐ‘์ž๊ธฐ 0์œผ๋กœ ๋Œ์•„์„  ๋ชฉํ‘œ๋ฅผ ๋”ฐ๋ผ ์ด๋ฒˆ์—” ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์—์„œ ๋‹ค๊ฐ€์„œ๋Š” ๊ฒƒ์ด๋‹ค
์ด ๊ฒฝ์šฐ ๋ฌผ์ฒด๊ฐ€ ํšŒ์ „์„ ํ•˜๋‹ค 360์„ ๋„˜์œผ๋ฉด ๊ธ‰๊ฒฉํžˆ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ
๋„๋Š” ํ˜„์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค
ํ•˜์ง€๋งŒ Mathf.LerpAngle์€ ๊ทธ๋Ÿฐ ๊ฒƒ์„ ๋‚ด๋ถ€์—์„œ ์ž˜ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค

์ด์ œ ์‹ค์‚ฌ์šฉ์˜ˆ๋ฅผ ๋ณด์ž

float lerpAngle = Mathf.LerpAngle (tr.eulerAngles.y, target.eulerAngles.y, smooth * Time.deltaTime);

//๊ฐ„์†Œํ™”

float ๋ชฉํ‘œ๊ฐ๋„ = Mathf.LerpAngle(๋‚˜์˜ ํ˜„์žฌ๊ฐ๋„, ํƒ€๊ฒŸ์˜ ํ˜„์žฌ๊ฐ๋„, ๋ฏผ๊ฐ๋„);

์•„๋ž˜์ชฝ์˜ ๊ฐ„์†Œํ™”๋Œ€๋กœ ์„ค๋ช…ํ•˜๋ฉด
์ฃผ๋กœ ์–˜๋Š” LateUpdate() ๊ฐ™์€๋ฐ ์“ฐ์ด๋Š”๋ฐ ์—ฌํŠผ ๊ณ„์† ์—…๋Žƒํ•จ์ˆ˜๋กœ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋ˆ๋‹ค
๊ทธ๋Ÿผ ๋ชฉํ‘œ๊ฐ๋„๋Š” ๋‚˜์˜ ๊ฐ๋„์™€ ํƒ€๊ฒŸ์˜ ๊ฐ๋„ ์‚ฌ์ด์˜ ๊ฐ’์„ ์ฃผ๋Š”๋ฐ
๋ฏผ๊ฐ๋„ ๊ฐ’์ด 100% (์‹ค์ œ float๊ฐ’์œผ๋ก  1.0f) ๋ฉด ๋‹น์—ฐํžˆ ํƒ€๊ฒŸ ๊ฐ๋„๋ฅผ ๋ฐ”๋กœ ๋Œ๋ ค์ฃผ์–ด์„œ
์—…๋Žƒ ํ•œ๋ฒˆ์— ํƒ€๊ฒŸ๊ณผ ๋™์ผ ๊ฐ๋„๋ฅผ ์œ ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค
๋ฐ˜๋Œ€๋กœ ๋ฏผ๊ฐ๋„ ๊ฐ’์ด ๋‚ฎ์œผ๋ฉด ๋‚ฎ์„ ์ˆ˜๋ก
(๊ทธ๋ ‡๋‹ค๊ณ  0์„ ๋จน์ด๋ฉด ๊ฐ๋„ ๋ณ€ํ™”๋Š” ์—†์œผ๋‹ˆ ํ•˜์ง€๋งˆ-_-;;)
๋ชฉํ‘œ๊ฐ๋„๊ฐ€ ํƒ€๊ฒŸ์˜ ๊ฐ๋„์— ์ชผ๊ธˆ์”ฉ ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด 0.5๋ฅผ ๋จน์ด๊ณ  A(๋‚˜) ์™€ B(๋ชฉํ‘œ)๊ฐ€ ๊ฐ๊ฐ 0๋„ 100๋„ ๋ผ๋ฉด

  1. 50๋„, 100๋„ - ๋ณ€ํ™”๋Ÿ‰ 100๋„์˜ ์ ˆ๋ฐ˜์ธ 50๋„
  2. 75๋„, 100๋„ - ๋ณ€ํ™”๋Ÿ‰ 50๋„์˜ ์ ˆ๋ฐ˜์ธ 25๋„
  3. 87.5๋„, 100๋„ - ๋ณ€ํ™”๋Ÿ‰ 25๋„์˜ ์ ˆ๋ฐ˜์ธ 12.5๋„

์ด๋Ÿฐ ์‹์ด๋‹ค. ๋‚˜๋ฆ„ ๋ชฉํ‘œ์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋Š๋ ค์ง€๋Š” ํšจ๊ณผ๋„
๋ถ€๊ฐ€์ ์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค

์•„.. ์ˆ˜ํ•™ ์‹คํƒ€..;ใ…;…

์ฃผ์˜์ 

Lerp๋ฅผ ๋ชฉํ‘œ์ˆ˜์น˜์— ์ •ํ™•ํ•˜๊ฒŒ ๋„๋‹ฌํ•˜๋Š”์ง€ ๊ฒ€์ถœํ•˜๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
์˜ˆ๋ฅผ๋“ค์–ด ์•„๋ž˜ ๋ฌธ์žฅ์„ ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ๋Œ๋ ธ์„๋•Œ
from = Mathf.Lerp(from, to, T);
์ตœ์ข…์ ์œผ๋กœ from์ด to ๊ฐ’์ด ๋˜์ง„ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค
T๊ฐ€ 1์ด ์•„๋‹Œ์ด์ƒ ๋งค์šฐ ๊ฐ€๊นŒ์›Œ์ง€๊ธด ํ•˜์ง€๋งŒ ๋‹ฟ์ง„ ์•Š๋Š”๋‹ค
๋˜ํ•œ ๊ฑฐ๋ฆฌ ๋ณด๊ฐ„ ํšจ๊ณผ๋ฅผ ๋…ธ๋ฆฌ๊ณ 
sqrMagnitude ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ธˆ๋ฌผ์ด๋‹ค.
sqrMagnitude ๋Š” ์ œ๊ณฑ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— float.Epsilon ๊ณผ ๋น„๊ตํ–ˆ์„์‹œ
์ตœ์†Œ๊ฐ’์— ๋„๋‹ฌํ•˜์ง€ ์•Š์•„์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค
….ใ… ใ… ;; ๋ณธ์ธ์–˜๊ธฐ์ž„..

Written with StackEdit.

2015๋…„ 2์›” 6์ผ ๊ธˆ์š”์ผ

์•ˆ๋“œ๋กœ์ด๋“œ merge ์™€ include ๋ ˆ์ด์•„์›ƒ ๊ธฐ๋ฒ•

๋ชฉ์ฐจ


mergeํƒœ๊ทธ์™€ includeํƒœ๊ทธ ์†Œ๊ฐœ

์•ˆ๋“œ๋กœ์ด๋“œ์˜ ๋ ˆ์ด์•„์›ƒ์˜ ๋ฉ‹์ง„ ๊ธฐ๋ฒ•์œผ๋กœ
include์™€ merge ๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค
๊ณต์‹ํ™ˆํ”ผ์™€ ๋ธ”๋กœ๊ทธ์—์„œ๋„ ์†Œ๊ฐœํ•ด๋†จ๋”ฐ
http://developer.android.com/training/improving-layouts/reusing-layouts.html
http://android-developers.blogspot.kr/2009/02/android-layout-tricks-2-reusing-layouts.html

๋˜ํ•œ ์š”๋Ÿฐ ์‚ฌ์ดํŠธ๋„ ์žˆ๋‹ค
์•ˆ๋“œ๋กœ์ด๋“œ merge์˜ ๋‹จ์  (์ผ์–ด)
์ผ์–ด์ง€๋งŒ ์ค‘๊ตญ์–ด๋‚˜ ์•„๋ž์–ด๊ฐ€ ์•„๋‹Œ๊ฒŒ ์–ด๋”˜๊ฐ€

๋ชฐ๋ผ๋„ ์ƒ๊ด€์—†์ง€๋งŒ ์•Œ๋ฉด ๋งค์šฐ ํŽธ๋ฆฌํ•œ ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋‚˜ ํ• ๊นŒ..
๋‚˜ ๊ฐ™์€ ๊ท€์ฐจ๋‹ˆ์ฆˆ๋จธํ•œํ…Œ๋Š” ํŠนํžˆ๋‚˜..

include ํƒœ๊ทธ

๋˜‘๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ๋˜ ์“ฐ๋Š” ๊ฑธ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ์€ ์—†์„ ๊ฒƒ์ด๋‹ค
๊ทธ๋ž˜๋„ ๋ฉ”๋‰ด๋ผ๊ฑฐ๋‚˜ ํ• ๋ ค๋ฉด ์–ด์ฉ” ์ˆ˜ ์—†๋‹ค
๋ฆฌ์ŠคํŠธ๋ทฐ๋ผ๋ฉด ๋ทฐ๋ฅผ ๋ณต์ œ๋ณต์ œ ํ•ด์ฃผ๋‹ˆ ๋‚˜๋ฆ„ ํŽธํ•œ๋ฐ ๊ทธ๋Ÿฐ ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ

๋ผ๋ฉด ๋ญ.. ๋ป”ํ•˜๊ฒŒ๋„ include ๋‹ค

๋งˆ๊ตฌ ์จ์•ผํ•  ๋ทฐ๋ฅผ ํ•˜๋‚˜ ์ •์˜ํ•ด์ฃผ๊ณ 
๊ทธ๊ฒƒ์„ include ํƒœ๊ทธ์— ๋„ฃ์–ด์ฃผ๋ฉด ์ฟ ํ‚น์™„์„ฑ

์˜ˆ๋ฅผ๋“ค์–ด๋ณด์ž

์„ค๋ช…์ดํ”ผ๋ฃŒํ•ด
์ด๋Ÿฐ ํ™”๋ฉด์„ ๋งŒ๋“ค์–ด ์ค„๋ ค๋ฉด
TextView๋ฅผ ์—ฌ์„ฏ๊ฐœ๋‚˜ ๋„๋ฐฐํ•ด์•ผํ•œ๋‹ค. ๊ทผ๋ฐ ํŒจํ„ด์ด ์žˆ๋‹ค
์‹œ์ž‘๊ณผ ๋ ์‹œ๊ฐ„.. ๊ทธ๋Ÿผ ์ €๊ฒƒ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ๋ณด์ž

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <TextView
        android:id="@+id/txt_startTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"
        android:text="๊ณต๋ถ€ ์‹œ์ž‘ ์‹œ๊ฐ„"
        android:textSize="20dp"
        />

    <TextView
        android:id="@+id/txt_endTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/txt_startTime"
        android:layout_marginBottom="30dp"
        android:text="๊ณต๋ถ€ ๋ ์‹œ๊ฐ„"
        android:textSize="20dp"
        />
</RelativeLayout>

custom_timeset.xml
์„ค๋ช…์ดํ”ผ๋ฃŒํ•ด
์ด๋ ‡๊ฒŒ ๋œ๋‹ค.

์ด๊ฑธ include๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งˆ๊ตฌ ๋ถ™์—ฌ์ฃผ๋ฉด๋œ๋‹ค

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:padding="100dp"
    >
    <include
        android:id="@+id/include_layout"     <!-- ์•„์ด๋”” ์„ค์ • ๊ฐ€๋Šฅ -->
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/custom_timeset"      <!-- xml์„ ์ ๋Š”๋ฐ ์ฃผ์˜์  android๋นผ๊ณ  -->
        />
    <include
        android:id="@+id/include_layout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/custom_timeset"
        />
    <include
        android:id="@+id/include_layout3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/custom_timeset"
        />
</LinearLayout>

์˜ฌใ…‹
์„ค๋ช…์ดํ”ผ๋ฃŒํ•ด
์ด๋ ‡๊ฒŒ ๋˜์—ˆ๋‹ค

๊ฒฐ๊ตญ.. ViewGroup์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด๋†“๊ณ ๋Š” ์žฌํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค
์—ฌ๊ธฐ์„œ id๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋Š” ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค

View include01 = findViewById(R.id.include_layout);
View include02 = findViewById(R.id.include_layout2);
View include03 = findViewById(R.id.include_layout3);

TextView tv1 = (TextView) include01.findViewById(R.id.txt_startTime);
TextView tv2 = (TextView) include01.findViewById(R.id.txt_endTime);
TextView tv3 = (TextView) include02.findViewById(R.id.txt_startTime);
TextView tv4 = (TextView) include02.findViewById(R.id.txt_endTime);
TextView tv5 = (TextView) include03.findViewById(R.id.txt_startTime);
TextView tv6 = (TextView) include03.findViewById(R.id.txt_endTime);

์ด๋Ÿฐ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค
id๊ฐ€ ๊ฒน์น˜์ง€๋งŒ ์œˆ๋„์šฐ์—์„œ Aํด๋” Bํด๋” ์ด๋ฆ„๋งŒ ๋‹ค๋ฅด๋ฉด ๊ฐ ํด๋”์•ˆ ๋‚ด์šฉ๋ฌผ์˜
์ด๋ฆ„์ด ๊ฐ™์•„๋„ ์ƒ๊ด€์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ƒ์œ„ ๋ทฐ๊ณ„์ธต์˜ id์•ˆ์—์„œ findViewById๋ฅผ ํ•˜๊ธฐ์—
๋ฌธ์ œ๊ฐ€ ์—†๋‹ค

ํ•˜์ง€๋งŒ ์œ„์— ๋ณด๋Š”๊ฒƒ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๊ฐ€ ๋” ์ถ”๊ฐ€๋˜๋ฉฐ
include ๋ฅผ ํ•จ์œผ๋กœ์จ ๋ทฐ๊ณ„์ธต์ด ๊นŠ์–ด์ง„๋‹ค

merge ํƒœ๊ทธ

include๋ฅผ ์“ธ๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ ๊ฐ์‹ธ์ค„ ViewGroup์ด ์กด์žฌํ•ด์•ผ๋งŒ ํ•œ๋‹ค
ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์€ ํ•œํŽธ์œผ๋ก  ๋ทฐ๊ณ„์ธต์„ ๋” ๊นŠ๊ฒŒํ•˜์—ฌ ๋ถ€ํ•˜๋ฅผ ๊ฐ€์ค‘ ์‹œํ‚จ๋‹ค

ํ•ญ์ƒ ๋ ˆ์ด์•„์›ƒ ๋””์ž์ธ์— ์žˆ์–ด์„œ ๋ ˆ์ด์•„์›ƒ์˜ ์ค‘๋ณต์€
์ข‹์ง€ ์•Š๋‹ค.

๊ทธ๊ฒƒ์„ ์œ„ํ•ด์„œ ๋‚˜์˜จ๊ฒƒ์ด merge ํƒœ๊ทธ๋กœ์จ
์œ„์—์„œ RelativeLayout ๋Œ€์‹ ์— merge๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

<?xml version="1.0" encoding="utf-8"?>
<merge
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <TextView
        android:id="@+id/txt_startTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"
        android:text="๊ณต๋ถ€ ์‹œ์ž‘ ์‹œ๊ฐ„"
        android:textSize="20dp"
        />
</merge>

์ด๋ ‡๊ฒŒ ๋˜๋ฉด include ๋˜๋Š” ์ˆœ๊ฐ„ merge ํƒœ๊ทธ๋Š” ์‚ฌ๋ผ์ง€๊ณ 
๊ทธ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ๋งŒ ๋ฐ”๋กœ ๋ถ™์—ฌ์ง€๊ฒŒ ๋œ๋‹ค
include์˜ ์ตœ๋Œ€ ๋‹จ์ ์ด ์‚ฌ๋ผ์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค
๋Œ€์‹  merge์˜ ์Šˆํผ์šธํŠธ๋ผ ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ
merge๋Š” ๋ทฐ ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ include์™€ ๋‹ฌ๋ฆฌ id ์‚ฌ์šฉ์ด ์ œํ•œ์ ์ด๋‹ค
๋ฌด์Šจ ์†Œ๋ฆฌ๋ƒ๋ฉด
View include01 = findViewById(R.id.include_layout);
์—ฌ๊ธฐ์„œ include01 ์ด NULL๋กœ ๋–จ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค
์•„๊นŒ ๋งํ–ˆ๋“ฏ์ด merge ํƒœ๊ทธ๊ฐ€ ์‚ฌ๋ผ์ง์œผ๋กœ์จ include ํ• ๋•Œ ๋ถ™์—ฌ์ฃผ๋Š” id๋„ ํ•จ๊ป˜
๋‚ ์•„๊ฐ„๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๋ถ™์—ฌ์ฃผ๋Š” include ๋งˆ๋‹ค์˜ ๊ตฌ๋ถ„์ด ์‚ฌ๋ผ์ง€๊ฒŒ๋จ์œผ๋กœ์จ
๊ฐ merge ์˜ ๋‚ด์šฉ๋ฌผ ๋ทฐ ์—ญ์‹œ ๊ฐ™์€ id๋กœ ๋‘˜ ์ˆ˜ ์—†๊ฒŒ๋œ๋‹ค
๊ฒฐ๊ตญ include์™€ ๋˜‘๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋ณผ๋ ค๋ฉด
merge ๋กœ ๋งŒ๋“œ๋Š” ๋ทฐ๋„ 3๊ฐœ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค๋Š”๊ฑฐ..
๋…ธ๊ฐ€๋‹ค๋ฅผ ์ค„์ธ๋‹ต์‹œ๊ณ  ํ•˜๋Š”๊ฑด๋ฐ ๋…ธ๊ฐ€๋‹ค๊ฐ€ ๋ฐฐ๋กœ ๋Š˜์–ด๋ฒ„๋ฆฐ๋‹ค -_-

๊ทธ๋Ÿผ ์™œ ์ด๋Ÿฐ ์ •์‹ ๋‚˜๊ฐ„ ํƒœ๊ทธ๊ฐ€ ์กด์žฌํ•˜๋Š”๊ฐ€

์ด ๊ฒฝ์šฐ๋Š” ๊ฐ™์€ xml์ด ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ xml์—์„œ
๋˜‘๊ฐ™์€ ํ˜•์‹์ด ๋”ฑ 1๊ฐœ! ๋งŒ ํ•„์š”ํ• ๋•Œ ์จ์ฃผ๋ฉด ํŽธํ•˜๋‹ค
์ฆ‰, ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ 5๊ฐœ ์žˆ๋Š”๋ฐ
๊ฐ ์•กํ‹ฐ๋น„ํ‹ฐ๋งˆ๋‹ค ๋ฌด์‹œ๋ฌด์‹œํ•œ ๋ถ„๋Ÿ‰์˜ ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ๊ฒƒ์ด ๋˜‘๊ฐ™์ด ์ƒ๊ฒผ๋‹ค๋ฉด
merge๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ  ๊ฐ๊ฐ ํ•˜๋‚˜์”ฉ ๋ถ™์—ฌ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค

์—ฌ๊ธฐ์„œ ๋˜ํ•˜๋‚˜ ViewStub ์ด๋ผ๋Š”๊ฒŒ ์žˆ๋Š”๋ฐ ๊ฑ ์—†๋Š”์…ˆ ์น˜์ž ^^
์ž˜ ์“ฐ์ง€๋„ ์•Š๋Š”๊ฑฐ…

Written with StackEdit.

2015๋…„ 2์›” 2์ผ ์›”์š”์ผ

๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๊ฐœ๋…

๋ชฉ์ฐจ


๋™๊ธฐ์™€ ๋น„๋™๊ธฐ๋Š” ์™„๋ฒฝํ•˜๊ฒŒ ์šฉ์–ด์ ์œผ๋กœ ์ฐจ์ด๊ฐ€ ์žˆ์ง€๋งŒ
์‹ค์ œ ๊ทธ ์ฐจ์ด๊ฐ€ ๋ญ”์ง€๋Š” ์ด์ƒํ•˜๊ฒŒ๋„ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค
๊ทธ๋ž˜์„œ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ์˜ ์ฐจ์ด์ ๊ณผ ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค

๋™๊ธฐ(synchronous)

์‹ฑํฌ๋กœ ๋˜์—ˆ๋‹ค.. ๋ผ๋Š” ๋ง์€ ๋“ค์–ด๋ณธ์ ์ด ์žˆ์„์ง€๋„ ๋ชจ๋ฅธ๋‹ค
๋” ์‰ฝ๊ฒŒ ์‹ฑํฌ๋กœ๋‚˜์ด์ฆˆ๋“œ ์Šค์œ„๋ฐ์€ ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๋‹ค
๋™๊ธฐ
์ด๋Ÿฐ๊ฑฐ๋‹ค

๋˜‘๊ฐ™์ด ์›€์ง์ด๋Š” ๊ฒƒ์ด๋‹ค

ํ•˜์ง€๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋™๊ธฐํ™”๋ž€ ํ˜„์‹ค๊ณผ ์ข€ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค
ํ˜„์‹ค์—์„œ์˜ ๋™๊ธฐํ™”๋ž€ ๋‘˜์ด ๋‚˜๋ž€ํžˆ ๋ฐœ์„ ๋งž์ถ˜๋‹ค
์ •ํ™•ํ•˜๊ฒŒ๋Š” ์†๋„๋ฅผ ์„œ๋กœ๊ฐ„์— ์กฐ์ ˆํ•ด์„œ ์ผ์ •ํ•œ ์†๋„๋กœ ๋‚˜์•„๊ฐ€๊ฒŒ ๋œ๋‹ค
๊ทธ๋ฆฌ๊ณค ๋”ฐ๋œปํ•œ ๋ฏธ์†Œ๋ฅผ ๊ตํ™˜ํ•œ๋‹ค

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

๋น„๋™๊ธฐ(asynchronous)

ํ˜„์‹ค์—์„œ ๋น„๋™๊ธฐ๋Š” ์—‡๋ฐ•์ž๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์„ ๋งํ•˜์ง€๋งŒ
์—ญ์‹œ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋น„๋™๊ธฐ๋„ ์ข€ ๋‹ค๋ฅด๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋น„๋™๊ธฐ๋Š” ๊ทธ๋ƒฅ ๊ฐ์ž ๊ฐˆ๊ธธ์„ ๊ฐ€๋‹ค๊ฐ€
‘์‚ด์•„์žˆ๋ƒ?’ ๋ผ๋Š” ๋œฌ๊ธˆํฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚ ๋ฆฌ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค
ํ˜น์€ ๋ถˆ์˜์˜ ์ผ๊ฒฉ์„ ๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ๋œ๋‹ค

๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ต์  ์•ˆ์ •์ ์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋™๊ธฐ์‹๊ณผ ๋‹ฌ๋ฆฌ
๋น„๋™๊ธฐ์‹์€ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์ŠคํŒŒ์ด๋ฅผ ์‹ฌ์–ด๋†”์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„˜์–ด์˜ฌ๋•Œ
ํ†ต๋ณด๊ฐ€ ์˜ค๋„๋ก ์กฐ์ž‘ํ•ด์•ผํ•œ๋‹ค

๊ฐœ๋…์ •๋ฆฌ

๋‘˜์˜ ๊ณตํ†ต์ ์€ ๋Œ€๊ธฐ๋ฅผ ํƒ€๋˜, ๋ถˆ์˜์˜ ์ผ๊ฒฉ์„ ๋‚ ๋ฆฌ๋˜
์„œ๋กœ๊ฐ„์— ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ „ํ˜€ ๊ด€๊ณ„์—†์ด ๋”ฐ๋กœ๋”ฐ๋กœ ๋…ผ๋‹ค๋ฉด ์• ์‹œ๋‹น์ดˆ ๋™๊ธฐ๋‹ˆ ๋น„๋™๊ธฐ๋‹ˆ
๊ทธ๋Ÿฐ ๊ตฌ๋ถ„์กฐ์ฐจ์—†๋‹ค.

์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ๋ฐฉ์‹์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ
๋™๊ธฐ์‹๊ณผ ๋น„๋™๊ธฐ์‹์ด๋‹ค.
๋งํ•ด์ค„๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ์‹! ์ด๋ ‡๊ฒŒ ๋งํ•ด์ฃผ๋ฉด ๋•ก์Šคํ•˜์ง€๋งŒ
๋‹จ์ˆœํžˆ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ.. ์ด๋Ÿฐ์‹์ด๋ผ ์ดํ•ด๊ฐ€ ์–ด๋ ค์› ๋˜ ๊ฒƒ์ด๋‹ค

๋˜ํ•œ ํ˜„์‹ค์—์„  ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋ฐ ์ด ๋‘˜์— ์ฐจ์ด๋ฅผ ๋‘˜ ์˜๋ฏธ๊ฐ€ ์—†์„๋งŒํผ
ํŽธํ•˜๊ฒŒ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๋”์šฑ ์ดํ•ด๊ฐ€ ์–ด๋ ต๋‹ค

์‹ค์ƒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์„ธ๊ณ„๊ฐ€
๊ตฌ๋ฆฌ๊ณ  ์›์‹œ์ ์ด๊ณ  ๋ง๋ฏธ์ž˜์ง€๋Šฅ์˜ ๋ฏธ๊ฐœํ•œ ์„ธ๊ณ„๋ผ์„œ
์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์— ๋ชฉ์ˆจ์„ ๊ฑธ์–ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ธฐ์ „์—” ๋ง์ด๋‹ค

์„œ๋กœ ํ•˜์ดํŒŒ์ด๋ธŒ ํ•œ๋‹ต์‹œ๊ณ  ํž˜๊ป ์†์„ ๋‚ ๋ ธ๋Š”๋ฐ
์ƒ๋Œ€๋Š” ์•„์ง ์ฃผ๋จธ๋‹ˆ์—์„œ ์†์„ ๋นผ์ง€๋„ ์•Š์€ ๋น„๋™๊ธฐ ์ƒํƒœ์—ฌ์„œ
๊ท€์‹ธ๋Œ€๊ธฐ ๋งž๋Š” ์—„์ฒญ๋‚œ ์—๋Ÿฌ๊ฐ€ ์‹œ๋„๋•Œ๋„ ์—†์ด ๋ฐœ์ƒํ•˜๋Š” ์„ธ๊ณ„๋ผ๋Š” ๊ฒƒ์ด๋‹ค
(๋‹ค๋ฅธ ๋ง๋กœ๋Š” Null pointer ์—๋Ÿฌ๋ผ๊ณ ๋„ ํ•œ๋‹ค-ใ……-;;;
๊ฐ์ฒด๋„ ์•ˆ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๋ฐ์ดํ„ฐ ๋‚ ์•„์™€์„œ ๊ฐœ๋ง)

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

Written with StackEdit.

2015๋…„ 2์›” 1์ผ ์ผ์š”์ผ

์ปดํŒŒ์ผ๊ณผ ๋นŒ๋“œ์˜ ๊ฐœ๋…

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

๋‹น์—ฐํžˆ ๋ณธ์ธ๋„ Compile, Build ์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชฐ๋ž๊ณ 
๊ทธ๋‹ฅ ์•Œ๊ณ  ์‹ถ์ง€๋„ ์•Š์•˜์ง€๋งŒ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ผ๋Š” ํˆด์„ ์“ฐ๋ฉด์„œ
๊ฐ•์ œ๋กœ ์•Œ์•„์•ผ๋งŒ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค ..;ใ…;

์ปดํŒŒ์ผ(compile) : ์†Œ์Šค์˜ ๋ฌธ๋ฒ•์„ ๋ถ„์„ํ•ด ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ
๋นŒ๋“œ(build) : ๋ฒˆ์—ญ๋œ ๊ฒƒ๊ณผ ๊ทธ์™ธ ์žก๋‹คํ•œ๊ฑธ ๋ชจ์•„์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ๋กœ ๋งŒ๋“ฆ

๋ณดํ†ต IDE(ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ.. ๊ฑ.. ์ดํด๋ฆฝ์Šค๋‚˜ visual studio ๊ฐ™์€ ๊ฑฐ..) ์—์„œ
ํ”„๋กœ๊ทธ๋žจ์„ ์ง  ํ›„ ์‹คํ–‰ ์‹œ์ผœ์„œ ํ™•์ธ์„ ํ• ๋•Œ

์ฃผ๋กœ Run ์ด๋ผ๋Š” ๋ฉ”๋‰ด๋ฅผ ์“ธ ๊ฒƒ์ด๋‹ค
๊ทธ Run ์ด๋ž€ ๋ช…๋ น์–ด๋Š” ์‚ฌ์‹ค [Build + ์‹คํ–‰] ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค
๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋˜ ์‚ฌ์‹ค [Build = Compile + ์žก๋‹ค] ์ด๋‹ค
๊ณ ๋กœ ๊ฒฐ๊ตญ ์ปดํŒŒ์ผ๊ณผ ๋นŒ๋“œ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•œ๋‹ค

๊ทธ๋•Œ ๋งŒ์•ฝ ๋ฌธ๋ฒ•์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ณ 
๋ฌธ๋ฒ•์€ ๊ดœ์ฐฎ์€๋ฐ ์žˆ์–ด์•ผํ•  ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋นŒ๋“œ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€๋งŒ
์ด๊ฒƒ๋„ Error!! ๋กœ ๋๋‚œ๋‹ค

๊ฒฐ๊ตญ
์ดˆ๋ณด์ธ ์šฐ๋ฆฌ๋Š” IDE์˜ ํŽธ๋ฆฌํ•œ ๋ฉ”ํฌ๋กœ ๊ธฐ๋Šฅ๋•Œ๋ฌธ์—
‘Run ํ–ˆ๋”๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์—‰’
์ •๋„๋ฐ–์— ์ธ์‹์„ ๋ชปํ–ˆ๊ณ  ๊ทธ๋ ‡๊ธฐ์— ์ปดํŒŒ์ผ๊ณผ ๋นŒ๋“œ์˜ ์ฐจ์ด๋ฅผ ๋ชจ๋ฅด๋Š” ๊ฒƒ์ด๋‹ค

ํ•˜์ง€๋งŒ ์•Œ๊ณ ๋ณด๋ฉด ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šด ๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค. ์•ž์„œ ๋งํ•œ๋“ฏ์ด ํ•˜๋‚˜๋Š” ๋ฒˆ์—ญ์ „๋ฌธ์ด๊ณ 
ํ•˜๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ํฌํ•จํ•œ ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ชจ๋“  ์ž‘์—…์„ ๋งํ•œ๋‹ค

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

์ข€๋” ์ง์ ‘์ ์ธ ์˜ˆ๋ฅผ๋“ค๋ฉด
์ปดํŒŒ์ผ์€ ํ˜„์žฌ ๋‚ด๊ฐ€ ์ง  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง„์ •ํ•œ ๊ธฐ๊ณ„๋“ค์ด ์•Œ์•„๋“ฃ๋Š” ๊ธฐ๊ณ„์–ด๋กœ
๋ฒˆ์—ญํ•ด์ฃผ๋Š” ๊ณผ์ •์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋ฒˆ์—ญ๋œ ๊ธฐ๊ณ„์–ด๋กœ ์ปดํ„ฐ๋Š” ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋œ๋‹ค
๊ทธ๋Ÿฐ๋ฐ ๊ทธ ๋ช…๋ น์ค‘์— ‘๋นค์Šค๋ฅผ ๊ฐ€์ ธ์™€๋ผ’ ์ด๋Ÿฐ๊ฒŒ ์žˆ์œผ๋ฉด
์ปดํ„ฐ๋Š” ์ด๋ ‡๊ฒŒ ๋นŒ๋“œ์—๋Ÿฌ๋ฅผ ๋‚ธ๋‹ค
๋นค์Šค๋ผ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋จน๋Š”๊ฑด๊ฐ€์š”?’
๊ทธ๋Ÿด๋•Œ๋ฅผ ๋Œ€๋น„ํ•ด์„œ ๋นค์Šค๋ฅผ ์†์— ์ฅ์–ด์ฃผ๊ณ 
This is Pantsuuuuuuuuuuuuuuuuu!!!
๋ผ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ• ๋•Œ ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„
๋ฐ”๋ฆฌ๋ฐ”๋ฆฌ ์‹ธ์ฃผ๋Š” ๊ฒƒ์ด ๋นŒ๋“œ์ด๋‹ค

์ฆ‰, ์ปดํ„ฐ๊ฐ€ ๋นต์…”ํ‹€์ธ๊ฑด ๋งž๋Š”๋ฐ ‘์•ผ์ฑ„๋นต ์‚ฌ์™€๋ผ’ ์ด๋Ÿฌ๋ฉด ๊ฐ•๋ ฅํ•œ ์ธ๊ณต์ง€๋Šฅ์ด
๋ฐœํœ˜๋˜์–ด ์ง„์งœ ์•ผ์ฑ„๋นต ์‚ฌ์˜ค๋Š” ํ˜„์‹ค์˜ ๋นต์…”ํ‹€๊ณผ ๋‹ฌ๋ฆฌ
‘๊ทธ๊ฒŒ ๋ชจ์ฃ ? ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค’ ์ด๋Ÿฌ๋Š” ์• ๊ฐ€ ๋ฐ”๋กœ ์ปดํ„ฐ๋‹ค..
๊ทธ๋Ÿฌ๋ฏ€๋กœ ‘์•ผ์ฑ„๋นต์„ ์‚ฌ์™€๋ผ’ ๋ผ๊ณ  ํ• ๋ ค๋ฉด ์•ผ์ฑ„๋นต์„ ์†์— ์ฅ์–ด์ฃผ๋˜๊ฐ€
์•„๋‹ˆ๋ฉด ์•ผ์ฑ„๋นต์ด ์žˆ๋Š” ์žฅ์†Œ๋ฅผ ๋งํ•ด์ฃผ๊ณ 
๊ทธ ์žฅ์†Œ์— ์†์ˆ˜ ์•ผ์ฑ„๋นต์„ ์ค€๋น„ํ•ด์ฃผ๋Š” ๋นŒ๋“œ์ž‘์—…์„ ํ•ด์ค˜์•ผํ•œ๋‹ค

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

์—ฌํ•˜ํŠผ
ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๋Š” ๊ฒƒ์—์„œ ์ปดํŒŒ์ผ์€ ๋ฒˆ์—ญ ํ•˜๋‚˜์ด์ง€๋งŒ
๋นŒ๋“œ๋Š” ์†Œ์Šค์™€ ๊ทธ๋ฆผ, ์•„์ด์ฝ˜ ๊ฐ™์€ ๊ฒƒ๋„ ์—ฐ๊ฒฐํ•ด์ค˜์•ผํ•˜๊ณ 
๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ๊ฐ€์ ธ์™€์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋‘ฅ ํ›จ์”ฌ ๋ณต์žกํ•˜๋ฏ€๋กœ ๋”ฐ๋กœ
Gradle ๊ฐ™์€ ๋นŒ๋“œ์ž๋™ํ™” ํˆด์ด ๋‚˜์˜ค๊ธฐ๋„ ํ•œ๋‹ค

Written with StackEdit.