์๋ ํ์ธ์, ํ๋ก ํธ์๋ ์ฝ์ด๋ฉค๋ฒ ํ๊ท์ง์ ๋๋ค. ๋ฒ์จ ๋ฐ๋ธํก์ด 5ํ์ฐจ๊น์ง ์ค๋ฉด์ ์์ง์ ๋ง์ ์ธ๋ฏธ๋๋ฅผ ๋ค์๋๋ฐ, ๊ทธ์ค์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๊ดํ ์ด์ผ๊ธฐ๊ฐ ๊ฑฐ์ ์๋ค๋๊ฒ ์กฐ๊ธ ์์ฌ์ ์ต๋๋ค. ์ ๋ฒ ๋ฐํ๋ฅผ ์ค๋นํ๋ฉด์๋ “๊ฐ๋ฐ์ ๊ดํ ์ด์ผ๊ธฐ๋ ํด๋น ํํธ๊ฐ ์๋ ๋ถ๋ค์ด ๋ฃ๊ธฐ์ ์ง๋ฃจํ ์ ๋ ์๊ฒ ๋ค” ๋ผ๋ ์๊ฐ์ ํ๊ฑฐ๋ ์.
๊ทธ๋์ ์ด๋ฒ ๋ฐํ์๋ ํ๋ก ํธ ๊ฐ๋ฐํ ๋๋ ์ด๋ค๊ฑธ ๊ณ ๋ฏผํ๊ณ ํด๊ฒฐํ๋์ง, ์ต๋ํ ๋ผ์ดํธํ๊ณ ์ฌ๋ฐ๊ฒ ์ ๋ฌํด๋๋ฆฌ๊ณ ์ ์ค๋นํด๋ณด์์ต๋๋ค.
(1) ์์ํ๊ธฐ์ ์์ ๊ฐ๋จํ ํด์ฆ๊ฐ์๊ฑธ ์ค๋นํ์ต๋๋ค. ์์ชฝ ๋ UI ์ค์์ ์ด๋ค๊ฒ ๋ ์ ๋ต์ผ๊น์?
(2) ์ด๋ฒ์ ์กฐ๊ธ ๋ ์ด๋ ต์ต๋๋ค. ์ค๋ฅธ์ชฝ UI์ ์๋ ๊ตฌ๋ถ์ ์ด ์ผ์ชฝ๋ณด๋ค ์กฐ๊ธ ๋ ๋๊ป์ต๋๋ค. ๋ฌผ๋ก ํ์คํ๊ฒ ์ ๋ต์ด ์๋ ๋ฌธ์ ๋ ์๋์ง๋ง, UI๋ฅผ ๋์์ธํ๊ณ ๊ตฌํํ ๋ ์ด๋ ๊ฒ ์ฌ์ํ๊ฒ๋ค์ด ๊ฝค๋ ์ค์ํฉ๋๋ค. ๋๋ ์ผ์ชฝ์ฒ๋ผ ๋์์ธํด๋๊ณ ์์ ๋ดค๋๋ฐ, ๋ค๋ฅธ ๋์์ด๋๊ฐ ์ค๋ฅธ์ชฝ์ฒ๋ผ ๋ง๋ค๊ณ ์๋ค๋ฉด ์ข ๋ต๋ตํ ๊ฒ ๊ฐ์ต๋๋ค. ์๋น์ค์ ์ผ๊ด์ฑ์ด ๋จ์ด์ง๋ฉด์ ์ ์ฒด์ ์ธ ์์ฑ๋๋ ๊ตฌ๋ฆฌ๊ฒ ๋ณด์ผ๊ฑฐ์์. ๋์์ด๋๋ค์ด ์์ ํ๋ฉด์ ๋ฐ๋ฅผ ์ ์๋ ์ผ์ข ์ ‘๊ฐ์ด๋'๊ฐ ์์ผ๋ฉด ์ข๊ฒ ์ฃ .
๊ทธ๋ผ ์ ํฌ ๊ฐ๋ฐ์์ ์ฅ์์๋ ์ด๋จ๊น์?
(3) ๊ณ ์ค๋ฝ ์ฒซ๋ฒ์งธ ํ๋ก์ ํธ๋ฅผ ์์ํ ๋ ์ ๊ฐ ๋ฉ๋ชจ๋ฅด๊ณ ๋์์ธํ๋ UI๋ค์ ๋๋ค. ์ด ํ์ด์ง๋ค์ ๋ชจ๋ ๋น์ทํ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ์ ๋ชฉ, ์ธํ์ฐฝ, ๋ฒํผ ๊ฐ์ ์์๋ค์ ๋์ผํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ํ๋ก ํธ ๊ฐ๋ฐ์ ํผ์ํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ฃ . ๊ทธ๋ ๋ค๋ฉด ์์ ์ ์ด๋ป๊ฒ ๋๋์ด์ผํ ๊น์??
์ด๋ด ๋ ‘๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ํ๋์ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๊ณ ์ฌ์ฌ์ฉํ์’ ๋ผ๋ ๊ธฐ๋ฅ์ฐฌ ์๊ฐ์ ํ๊ฒ ๋ฉ๋๋ค. ์์ฃผ ์ข์์. ํ์ง๋ง ํ๋ก์ ํธ๊ฐ ์์ฒญ๋๊ฒ ์ปค์ง๊ฒ ๋๋ฉด ๋๊ฐ ์ธ์ ์ด๋ค ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์๋์ง ๋ชจ๋ ์๊ณ ์๊ธฐ ์ด๋ ต์ต๋๋ค. ์ฝ๋๋ฅผ ์ฌ๊ธฐ์ ๊ธฐ ์ฐพ์๋ณด๋ค๊ฐ “์ด๋ด๋ฐ์ ๊ทธ๋ฅ ๋ด๊ฐ ์๋ก ์ง์ผ์ง..” ํ๋ ์ํฉ์ด ์๊น๋๋ค.
์ญ์ ๋์์ธ ์ผ๊ด์ฑ์ด ๋ฎ์์ง๊ณ , ์ค๋ณต์ฝ๋๊ฐ ์๊ธฐ๊ฒ ๋๋๊ฒ๋๋ค. ์ด๋ ๊ฒ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ด UI ์ฝ๋๊ฐ ๋ง๋ค์ด์ง๋๋ค.
(4) ๋ ๋ค๋ฅธ ์์๋ก ๋ฑ ํค์ฆ์์ ๋ฒํผ์ด ์ฌ์ฉ๋๋ ํ์ด์ง ๋ช๊ฐ๋ฅผ ๊ฐ์ ธ์๋ดค์ต๋๋ค. ๋ฒํผ์ด ๋ค๋ฅธ ๋ชจ์ต์ผ๋ก ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๋งค๋ฒ ๋ฒํผ ์์๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๋๊ฑด ๊ต์ฅํ ๋นํจ์จ์ ์ธ ์์ ์ ๋๋ค.
(5) ์ด๋ฅผ ์ํด ‘๋์์ธ ์์คํ ' ์ด๋ผ๋ ๊ฒ์ ๋์ ํฉ๋๋ค.
Single Source Of Truth ๋ผ๋ ๋ง์ ๋ค์ด๋ณด์ ์ ์ด ์์ผ์ ๊ฐ์? ์ ๋ ๋ฐํ๋ฅผ ์ค๋นํ๋ฉด์ ์ฒ์ ์๊ฒ ๋ ๊ฐ๋ ์ธ๋ฐ์, ๋ณดํต ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ์ด๋ ๋ฆฌ๋์ค ์ํ๊ด๋ฆฌ ์์ ๋์ค๋ ๊ฐ๋ ์ด๋ผ๊ณ ํฉ๋๋ค. '๋ฐ์ดํฐ์ ์ฌ๋ณธ์ด ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ ์์ ์'๋ ๋ง์ ๋ฉ์๊ฒ ์ด๊ฒ๋๋ค.
์๊น ๋ดค๋ ๋ฑ ํค์ฆ์ ์ฌ๋ฌ ๋ฒํผ ์ปดํฌ๋ํธ๋ค์ ๋ชจ์๋ณด์์ต๋๋ค. ํ์ฑํ๋ ๋ฒํผ์ ๋ฉ์ธ์์์ด ๋ค์ด๊ฐ๊ณ , ๋นํ์ฑํ ๋ฒํผ์ ํ์์ผ๋ก ๋ณด์ฌ์ง๋๋ค. ๋ฒํผ์ ํ๋๋ง ์ฌ์ฉ๋ ์๋ ์๊ณ ๋ ๋ฒํผ์ด ์์ชฝ์ผ๋ก ์ฌ์ฉ๋ ์๋ ์์ต๋๋ค. ์์ด ์ฑ์์ ธ ์์ ์๋, ํ ๋๋ฆฌ๋ง ์์์๋ ์๊ณ ์. ์ด๋ค ๊ฒฝ์ฐ์ ๋ ธ๋์์ด ์๋ ๋นจ๊ฐ์์ผ๋ก ์ฑ์์ ธ ์๊ธฐ๋ ํ๋ค์.
์ ๊ฐ ๋ฐฉ๊ธ ๋ง์๋๋ฆฐ ๋ด์ฉ๋ค์ ์ ๋ฆฌํด ๊ท๊ฒฉํํ ๊ฒ์ด ๋ฐ๋ก ๋์์ธ ์์คํ ์ ๋๋ค.
(6) ๋์์ธ์์คํ ์ ๊ตฌ์ฑ์์๋ฅผ ์ธ๊ฐ์ง๋ก ์ ๋ฆฌํด๋ณผ ์ ์์ต๋๋ค.
๋จผ์ ๋น์ฃผ์ผ ์ธ์ด๋, UI๋ฅผ ํํํ ์ ์๋ ๋ค์ํ ์์๋ค์ ๋งํฉ๋๋ค. ์๋น์ค์ ์ฌ์ฉํ๋ ๋ชจ๋ ์์๋ค์ ์ด๋ ๊ฒ ๊ท๊ฒฉํํฉ๋๋ค. ๋ฉ์ธ ์์์ Yellow100, 200, 300 ๋ฑ์ผ๋ก ๋ผ๋ฒจ๋ง์ ํ์ต๋๋ค. ๊ฐ์ฅ ๋ง์ ๊ณณ์์ ์ฌ์ฉํ๋ ๋ชจ๋ ธํค ์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
ํ์ดํฌ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ธ๊ผด, ํฌ๊ธฐ, ๋๊ป, ์๊ฐ ๋ฑ์ ์ฌ์ฉํ๋ ๊ณณ์ ๋ฐ๋ผ ๊ท๊ฒฉํํ๊ณ ์ด๋ฆ์ ๋ถ์ ๋๋ค. ๊ทธ ๋ฟ๋ง ์๋๋ผ ๊ทธ๋ฆฌ๋, ๊ฐ๊ฒฉ, ๋ณด๋ ๋ ๋์ฐ์ค ๋ฑ์ ๋ค์ํ ์์๋ค์ ๋ชจ๋ ํ ํฐํํด์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
(7) ์์์ ํ ํฐํํ ๋น์ฃผ์ผ ์ธ์ด๋ค์ ๊ฐ์ง๊ณ ์กฐํฉํด ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ปดํฌ๋ํธ์์๋ ์์์ ์๊น์๋ ๋์์ ์ ์ํฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก ์ด๋ค์์ผ๋ก ๊ตฌํ๋๋์ง๋ ์ด๋ฐ๊ฐ ๋ค์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
(8) ๋ง์ง๋ง์ผ๋ก, ํจํด์ ๋๋ค. ํจํด์์๋ ์ปดํฌ๋ํธ์ ์ฌ์ฉ์ฒ๋ฅผ ์ ์ฝํฉ๋๋ค. ์ปดํฌ๋ํธ์์ ์ ์ํ ๋ค์ํ ์๊น์๋ค์ด ์ด๋ ํ ์ํฉ์์ ์ฐ์ด๋์ง๋ฅผ ๋ช ์๋ฅผ ํด์ฃผ๋๊ฑฐ์ฃ .
์ฌ๋ผ์ด๋์ ์๋ ๊ทธ๋ฆผ์ ์ธํ์ฐฝ ์ปดํฌ๋ํธ์ ๋๋ค. focus๋์ด์์๋๋ ์งํ ๋ ธ๋์์, blur์ผ๋๋ ํ๋ฆฌ๊ฒ ํด์ค๋๋ค. ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ์ง ๋ชปํ์ ๋๋ ๋นจ๊ฐ์์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ๋์ฐ๋๋ก ํฉ๋๋ค. ๋ฒํผ ์ปดํฌ๋ํธ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋๋๋ฆด ์ ์๋ ์ก์ ์ ์คํํ๋ ๋ฒํผ์ ๋นจ๊ฐ์์, ๊ทธ ์ธ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋น์ค์ ๋ฉ์ธ ์ปฌ๋ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
(9) ์ด์ ์ด๋ ๊ฒ ๊ฐ๋ ์ ์ผ๋ก ์ดํด๋ณธ ๋์์ธ์์คํ ์ ์ง์ ์ฝ๋๋ก ๊ตฌํํด๋ด์ผ๊ฒ ์ฃ ? ๋์์ธ์์คํ ์ ๊ตฌ์ฑ์์ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ด๋ผ๊ณ ๋ณผ ์ ์๋ ๋น์ฃผ์ผ ์ธ์ด๋ค๋ก ์์ํด๋ณผ๊ฒ๋๋ค. ๋น์ฃผ์ผ ์ธ์ด๋ UI์ ์ฌ์ฉ๋๋ ๋ค์ํ ์์๋ค์ ํ ํฐํํ๋ ๊ฒ์ด๋ผ๊ณ ํ์ต๋๋ค. ํ๋ฉด์ ๋ณด์ด๋๊ฑด ์๊น ๋ณด์ฌ๋๋ ธ๋ ์์ ํ๋ ํธ์ธ๋ฐ์, ํผ๊ทธ๋ง๋จ์์ ๋จผ์ yellow100,200 ๊ณผ ๊ฐ์ ๋ผ๋ฒจ๋ง์ ํ๋ฉด์ ์คํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธํ ํ ๋ชจ์ต์ ๋๋ค.
์ด๋ฅผ ํ๋ก ํธ์๋, ๋ฆฌ์กํธ ๋จ์๋ ๊ทธ๋๋ก ๋๊ณ ์ค๊ธฐ ์ํด์ ‘styled-components’๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. css๋ฅผ js ๊ตฌ๋ฌธ ์์์ ์ธ ์ ์๋๋ก ํด์ฃผ๋ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๊ทธ ์ค์์ ‘Theme provider’๋ผ๋ ๊ธฐ๋ฅ์ ํ์ฉํ ๊ฒ๋๋ค. ์คํ ์ธ๋ฏธ๋์ธ ๋งํผ ์ฝ๋๋ฅผ ๊น์ด ์ค๋ช ๋๋ฆฌ์ง ์๊ฒ ์ง๋ง ๋์ถฉ ๋ด๋ ์์ค๊ฒ๋๋ค. #FFF6D2์ ๊ฐ์ ์์ ์ฝ๋๋ค์ yellow100 ๋ฑ์ key๋ก ํ๋ ๊ฐ์ฒด๋ก ๋ง๋ค์ด๋๊ณ , ํด๋น ๊ฐ์ฒด๋ฅผ ํ๋ก์ ํธ ์ปดํฌ๋ํธ ์ ์ฒด์ ์ ์ญ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ธํ ํด๋ก๋๋ค. ๊ทธ๋ผ css ๊ตฌ๋ฌธ ๋ด์์ ๋ถ๋ฌ์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ด ์ฌ์ฉํ๋ค๋ฉด ์ผ์ชฝ ์ฌ์ง์ฒ๋ผ ์๋์์ฑ์ผ๋ก ๋ฐ๋ก ์ ๋ ฅํ ์ ์์ต๋๋ค.
(10) ํ์ดํฌ๋ ๋ง์ฐฌ๊ฐ์ง์ธ๋ฐ์, ์ญ์ ํผ๊ทธ๋ง๋จ์์๋ถํฐ ์ ๋ฆฌ๋ ์คํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ธํ ์ด ๋์ด์๋ ์ํ ์ ๋๋ค. ์์๊ณผ ๋ฌ๋ฆฌ font family, size, lign height ๋ฑ ์ฌ๋ฌ ์คํ์ผ์ด ๊ฐ์ด ์ ์ฉ๋ ํ์ดํฌ์ด๊ธฐ ๋๋ฌธ์, ๋ฌธ์์ด์ ํต์งธ๋ก ํ ํฐํํด๋๊ณ ๋ถ๋ฌ์ ์ฌ์ฉํฉ๋๋ค. ์ด ์ธ์๋ ์ ๋๋ฉ์ด์ , ๋ณด๋ ๋ ๋์ฐ์ค, ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ฑ ๋งค์ฐ ๋ค์ํ ์์๋ค์ theme provider ๋ด์์ ๋ง๋ค์ด ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ ์ด๋ ๊ฒ ๋น์ฃผ์ผ ์์๋ค์ ๋จผ์ ์ฝ๋๋ก ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ผ ์ด์ ๋ฌด์ผ ํด์ผํ ๊น์?
(11) ๊ทธ ๋น์ฃผ์ผ ์์๋ค์ ์กฐํฉํด ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํด์ผ๊ฒ ์ฃ . ๊ณ์ ์์๋ก ๋ค๊ณ ์๋ ๋ฒํผ ์ปดํฌ๋ํธ์ ๋๋ค. property, label, state, fixed ๋ฅผ props๋ก ๋ฐ๊ณ ์์ต๋๋ค. ๋ฆฌ์กํธ์์ props๋ ๋ถ๋ชจ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋๊ฒจ์ฃผ๋ ์ธ์์ ๋น์ทํฉ๋๋ค. properties๋ ์ด๋ ํ ๋์ ์ฐ์ด๋ ๋ฒํผ์ธ์ง ์ ๋ณด๋ฅผ, state๋ ๋ฒํผ์ ํ์ฑํ ์ ๋ฌด, label์ ๋ฒํผ์ ์ ํ ๊ธ์จ, fixed๋ ๋๋น๊ฐ ๊ณ ์ ๋ ๋ฒํผ์ธ์ง ์๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด ๋ค๊ฐ์ง ์ธ์๋ค์ ๋๊ฒจ๋ฐ์์ ์กฐ๊ฑด์ ๋ง๊ฒ ์คํ์ผ๋ง์ ์ฃผ๋ฉด, ์ด ์ปดํฌ๋ํธ ํ๋๋ก ์๋น์ค ๋ด์ ์ฌ๋ฌ ๋ฒํผ UI์ ์ฌ์ฉํ ์ ์๊ฒ ์ฃ .
์ด๋ ๊ฒ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด๋ง ๋๋ฉด ๋์ผ๊น์? ๊ฐ๋ฐ์ ํผ์ํ๋๊ฒ ์๋์ฃ . ๋๋ฃ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์๋ ๋์์ด๋์๋ ๊ณ์ ์ํต์ ํด์ผํฉ๋๋ค. ์ฒ์์ ๋ง์๋๋ ธ๋ ๊ฒ ์ฒ๋ผ ์ฝ๋๋ฅผ ์ฌ๊ธฐ์ ๊ธฐ ์ฐพ์๋ณด๋ค๊ฐ “์ด๋ด๋ฐ์ ๊ทธ๋ฅ ๋ด๊ฐ ์๋ก ์ง์ผ์ง..” ํ๋ ์ผ์ด ์๊ธฐ๋ฉด ์๋๋ค๋ ๊ฒ๋๋ค.
์ด๋ฅผ ์ํด ๋๊ตฐ๊ฐ๊ฐ ๋ง๋ ์ปดํฌ๋ํธ๋ค์ ๋ฌธ์ํํ๊ณ ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฉ๋๋ ํจํด๋ค๊ณผ UI๋ค์ ํ ์คํธํ ์ ์๋ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ํด Storybook ์ด๋ผ๋ ๋๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ํฌ ๋ฑ ํค์ฆ์ ๋์์ธ ์์คํ ์คํ ๋ฆฌ๋ถ์ธ๋ฐ, ๋จผ์ ๋ค์ด๊ฐ์ ํ๋ฒ ๋๋ฌ๋ณผ๊ฒ์.
(12) ์ด๋ ๊ฒ ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ค์ ์กฐํฉ์ผ๋ก ๋์ด์์ต๋๋ค. ์๊น ๋ณด์๋ ํ๋ก๊ทธ๋ ์ค๋ฐ๊ฐ ์ฐ์ด๋ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
๋๊ธธ ๊ณ์ฝํ๊ธฐ ๊ณผ์ ์ ์ด ๋ค์ฏ๊ฐ์ ์คํ ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ฐ์, ํด๋น ์คํ ๋งํผ ์ฑ์์ง ์์ผ๋ก ๋ํ๋ฉ๋๋ค. ์๋น์ค ํน์ฑ์ ์ฒซ๋ฒ์งธ ์คํ ์ด ์๋ต๋๋ ๊ฒฝ์ฐ๋ ์๋๋ฐ, ์ด๋ด ๋๋ ์ด ๋ค๊ฐ์ ์คํ ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง๋๋ค. ๊ทธ๋ด๋ ๋๊ทธ๋ผ๋ฏธ๊ฐ 4๊ฐ๋ก๋ง ๋๊ฒ ์ฃ ?
๊ทธ๋์ ์ด๋ฐ์์ผ๋ก ์ฝ๋๋ฅผ ์งฐ๋ค๊ณ ํด๋ด ์๋ค. ํ์ฌ ์งํ์ค์ธ ์คํ ๊ณผ, ์ฒซ๋ฒ์งธ ์คํ ์๋ต ์ฌ๋ถ๋ฅผ ์ธ์๋ก ๋๊ฒจ์ค๋๋ค. ์ด 4๊ฐ์ circle์ ๋ ๋๋งํด์ฃผ๋๋ฐ, skip์ด์ฉ๊ตฌ ์ธ์๊ฐ false์ผ๋๋ circleํ๋๋ฅผ ๋ ๋ณด์ฌ์ค์ ์ด 5๊ฐ์ ๋๊ทธ๋ผ๋ฏธ๋ฅผ ๋ณด์ฌ์ฃผ๋๋ก ํ๋๊ฑฐ์ฃ .
(13) ๊ทธ๋ฌ๋ค ๊ธฐํ์๊ฐ ์ด๋ ๊ฒ ๋งํฉ๋๋ค.
“์ ์ฐ๋ฆฌ ์๋น์ค์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์! ๋์์ธ์ ์ด๋ ๊ฒ ๋์์ด์.”
์๊น ๋ณด์๋ ๋๊ธธ ๊ณ์ฝํ๊ธฐ ์คํ ์ ์ฐ์ด๋ ํ๋ก๊ทธ๋ ์ค ๋ฐ์ ๋๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค์.
๋ค์ ์ฝ๋๋ก ๋์์์ ๋ด ์๋ค. ์๋น์ค ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ด ๋ค๋จ๊ณ๋๊น skipSelectParent๋ฅผ true๋ก ์ค์ ์ฌ์ฉํ ๊น์? ๋ฌผ๋ก ์ด๋ ๊ฒ ํด๋ ๋๊ฒ ์ง๋ง ๋๊ฐ๋ด๋ ์ข์ ์ฝ๋๋ ์๋๊ฒ ์ฃ . ์ ๊ฐ ์์ฑํ ์ฝ๋๋๊น ๋ฌผ๋ก ์ ๋ ์์๋ณผ ์ ์๊ฒ ์ง๋ง, ๋ค๋ฅธ ๋๊ตฐ๊ฐ๊ฐ ์ฝ์์ ๋ ์ ๋ ์ดํดํ๊ธฐ ์ฌ์ด ๋ค์ด๋ฐ์ ์๋๋๋ค.
(14) ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ข์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ๊ณ ์์ด์ผํฉ๋๋ค. ์ธํฐํ์ด์ค๋ ์ปดํฌ๋ํธ์ ์ธ์๋ก ๋๊ฒจ์ฃผ๋ ๊ฐ์ฒด์ ํ์ , ์ค๊ณ๋๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ค์ ๊ฐ๊ณ ์์ต๋๋ค. ํน์ ๋๋ฉ์ธ๊ณผ ๊ฐํ๊ฒ ๊ฒฐํฉ๋์ด ์๊ณ , ํ์ฅ ๋ถ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๋์ด์์ต๋๋ค. ์ ์ฒด ์คํญ์ ๊ฐ์ง์๋ฅผ ๊ฒฐ์ ํ๋ props๋ ๋๊ธธ ๊ณ์ฝํ๊ธฐ ๊ณผ์ ์์๋ง ์ฌ์ฉ๋๋ ๋ค์ด๋ฐ(skipSelectParent)์ ์ฐ๊ณ ์์ต๋๋ค. ์ ์ฒด ์คํญ ๋ํ 4๊ฐ ํน์ 5๊ฐ. ์ญ์ ๋๊ธธ ๊ณ์ฝํ๊ธฐ์์๋ง ์ธ ์ ์๋๋ก ์ค๊ณ๋์ด ์์ฃ .
(15) ํ๋ฉด๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ ํด๋ณด์์ต๋๋ค. step๊ณผ skip์ด์ฉ๊ตฌ๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฐ์ ์ธ์๋ฅผ, now์ total์ด๋ผ๋ (๋๊ธธ๊ณ์ฝํ๊ธฐ)์ ๊ด๋ จ์๋ ๋ณดํธ์ ์ธ ๋ค์ด๋ฐ์ผ๋ก ๋ฐ๊พธ์์ต๋๋ค. ์ ์ฒด ๊ฐ์๋ 4-5๊ฐ์์ ์ ํ์์ด total๋ก ๋ฐ์ ๊ฐ ๋งํผ ๋๊ทธ๋ผ๋ฏธ๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์คํ ์ด ๋ช๊ฐ๊ฐ ์๋ ์ง ์ฌํ์ฉํ ์ ์๊ฒ ์ฃ .
์ข์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๋ฐฉ๊ธ ์๊ฐํ ๊ฒ ์ธ์๋ ๋งค์ฐ ๋ค์ํ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ทธ ๋ค์ํ๊ณ ๋ ๊น์ ์ด์ผ๊ธฐ๋ฅผ ํด๋๋ฆฌ๊ณ ์ถ์์ง๋ง ์ด๊ณณ์ ๋ค์ํ ํํธ์ ๋ฉค๋ฒ๋ถ๋ค๊ณผ ํ์ฐ๋ถ๋ค์ด ๊ณ์๊ธฐ ๋๋ฌธ์.. ํฅ๋ฏธ์์ ๋ฒํ ๋ด์ฉ์ผ๋ก๋ง ์ค๋น๋ฅผ ํด๋ณด์์ต๋๋ค.
์ ๊ฐ ์ค๋ ๋ฐํํ ๋ด์ฉ์ ์ ๊ฒฝํ๊ณผ ํจ๊ป ์ ํ๋ธ์์ ๋ณธ ์์๋ค์์ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ด ์ค๋นํ๊ฒ ๋์์ต๋๋ค.(1) (2) ์ ์ด์ผ๊ธฐ๊ฐ ์ฌ๋ฐ์ผ์ จ๊ฑฐ๋, ๋ ๊ถ๊ธํ์ ๊ฒ ์์ผ์ ๋ถ์ ์ด๋ฐ๊ฒ๋ค ํ๋ฒ ์ฐพ์๋ณด์๋ฉด ๋ง์ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.