View Class

Lee Gayoungยท2022๋…„ 9์›” 30์ผ
0

UMC 3๊ธฐ

๋ชฉ๋ก ๋ณด๊ธฐ
8/10

๐ŸŒŸ๋ทฐ ํด๋ž˜์Šค๋ž€?

๋ทฐ(View)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์‹œ์ ์œผ๋กœ ํ‘œํ˜„๋˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ™”๋ฉด ๊ตฌ์„ฑ๊ณผ ๊ด€๋ จํ•œ ํด๋ž˜์Šค๋ฅผ ํ†ต์นญํ•˜์—ฌ ๋ทฐ ํด๋ž˜์Šค๋ผ๊ณ  ํ•œ๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค๋Š” ๋ชจ๋‘ View์˜ ํ•˜์œ„ ํด๋ž˜์Šค์ด๋‹ค.

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

- ํด๋ž˜์Šค ์˜ˆ์‹œ

โ€ข View๏ผš ๋ชจ๋“  ๋ทฐ ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค์ด๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค๋งŒ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.

โ€ข ViewGroup๏ผš View์˜ ํ•˜์œ„ ํด๋ž˜์Šค์ง€๋งŒ ์ž์ฒด UI๋Š” ์—†์–ด์„œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ด๋„ ์•„๋ฌด๊ฒƒ๋„ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋ฅธ ๋ทฐ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ ์ œ์–ดํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ผ์ข…์˜ ๊ทธ๋ฆ‡ ์—ญํ• ์„ ํ•˜๋Š” ํด๋ž˜์Šค๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํ‘œํ˜„๋œ๋‹ค. ์‹ค์ œ๋กœ๋Š” ViewGroup์˜ ์„œ๋ธŒ ํด๋ž˜์Šค์ธ ๋ ˆ์ด์•„์›ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โ€ข TextView๏ผš ํŠน์ • UI๋ฅผ ์ถœ๋ ฅํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค, ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๋ทฐ์ด๋‹ค.

โ€ข ์ด์™ธ์—๋„ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค.

โ€‹

๐ŸŒŸ ๊ณ„์ธต ๊ตฌ์กฐ

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐ ๋ทฐ๋Š” ํ™”๋ฉด์˜ ์ง์‚ฌ๊ฐํ˜• ์˜์—ญ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋ทฐ๋Š” ์˜์—ญ ์•ˆ์— ๊ทธ๋ ค์ง€๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ฑ…์ž„์ด ์žˆ์œผ๋ฉฐ, ํ™”๋ฉด์˜ ๋ทฐ ์˜์—ญ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ(ํ„ฐ์น˜ ๋“ฑ)์— ์‘๋‹ตํ•ด์•ผํ•  ์ฑ…์ž„๋„ ์žˆ๋‹ค.

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ํ™”๋ฉด์€ ๋ทฐ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ทฐ ๊ณ„์ธต ๊ตฌ์กฐ๋Š” ๊ณ„์ธต ๊ตฌ์กฐ ํŠธ๋ฆฌ(tree)์˜ ๋งจ ์œ„์— ์œ„์น˜ํ•œ ๋ฃจํŠธ(root) ๋ทฐ์™€ ๊ทธ ๋ฐ‘์˜ ๊ฐ€์ง€์— ์œ„์น˜ํ•œ ์ž์‹ ๋ทฐ๋กœ ๋˜์–ด ์žˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋ทฐ์˜ ์ž์‹ ๋ทฐ๋Š” ์ž์‹ ์˜ ๋ถ€๋ชจ ๋ทฐ ์œ„์— ํฌ๊ฐœ์ ธ์„œ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋˜, ๋ถ€๋ชจ ๋ทฐ์˜ ํ™”๋ฉด ์˜์—ญ ๊ฒฝ๊ณ„ ์•ˆ์—๋งŒ์œผ๋กœ ๊ทธ ๋ฒ”์œ„๊ฐ€ ์ œํ•œ๋œ๋‹ค.

์•„๋ž˜ ์˜ˆ์‹œ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฒ„ํŠผ๊ณผ ์ฒดํฌ ์ƒ์ž ๋ทฐ๊ฐ€ ์œ„์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์–ดํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ ๋ทฐ๋ฅผ ํฌํ•จํ•œ๋‹ค. ์•„๋ž˜ ์˜ค๋ฅธ์ชฝ ์ด๋ฏธ์ง€๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ž์‹ ๋ทฐ๋“ค๊ณผ ๊ด€๋ จ๋œ ๋ ˆ์ด์•„์›ƒ ๋ทฐ๋“ค์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค.

์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ํ™”๋ฉด์€ ์ตœ์ƒ์œ„์— ๋ฃจํŠธ ๋ทฐ๋ฅผ ๊ฐ–๋Š” ๋ทฐ ๊ณ„์ธต ๊ตฌ์กฐ(๋ทฐ ํŠธ๋ฆฌ)์˜ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ฐ์ฒด๋ฅผ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด ์ด์šฉํ•˜๋Š” ํŒจํ„ด์„ ์ปดํฌ์ง€ํŠธ ํŒจํ„ด ๋˜๋Š” ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(DOM: document object model)์ด๋ผ๊ณ  ํ•œ๋‹ค.

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

โ€‹

๐Ÿฃ ๋ฏธ๋‹ˆ ์‹ค์Šต

โ€‹

๐ŸŒฑ ์ฐธ๊ณ  ์ž๋ฃŒ

  1. [Android ๊ตฌ์กฐ ๋ฐ ๊ฐœ๋…] ์•ˆ๋“œ๋กœ์ด๋“œ ๋ทฐ ๊ณ„์ธต ๊ตฌ์กฐ(view hierarchy)
  2. [Android ๊ฐ•์˜6] ์•ˆ๋“œ๋กœ์ด๋“œ ๋ทฐ ํด๋ž˜์Šค(View)
  3. <์•ˆ๋“œ๋กœ์ด๋“œ ๋ทฐ, ๋ทฐ๊ทธ๋ฃน, ๋ ˆ์ด์•„์›ƒ> ๊ฐœ๋… ์ •๋ฆฌ
  4. Do it! ๊นก์Œค์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑํ”„๋กœ๊ทธ๋ž˜๋ฐ with ์ฝ”ํ‹€๋ฆฐ (๊ฐ•์„ฑ์œค)

0๊ฐœ์˜ ๋Œ“๊ธ€