๐ป ์น ์ ๊ทผ์ฑ
Week 1
iOS ux ํผ๋๋ฐฑ์ ๋ฐ์๋ค. ์ธํ์ฐฝ์ ํฌ์ปค์ค๊ฐ ๊ฐ ๋ ์์์น ๋ชปํ๊ฒ zoom-in์ด ๋๋ค. ํฐํธ ์ฌ์ด์ฆ๊ฐ 16px๋ณด๋ค ์์ผ๋ฉด iOS์์ ์๋ณด์ด๋ผ๊ณ ์์์ ํ๋ํด์ฃผ๋ ๊ฒ์ด๋ค.
์ด ์ด์๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ meta ํ๊ทธ๋ฅผ ์์ ํด์ฃผ๋ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
<!-- ๋ณ๊ฒฝ ์ -->
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<!-- ๋ณ๊ฒฝ ํ -->
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
/>
๊ทธ๋ฐ๋ฐ ์ด ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ธ UX๊ฐ ํฅ์๋ ์ง๋ ๋ชฐ๋ผ๋, ์น ์ ๊ทผ์ฑ์ ์คํ๋ ค ํด์น๋๊ฒ ์๋๊น? ํ๋ ์๊ฐ์ด ๋ค์๋ค. ์ด ์ด์์ ํด๊ฒฐ๋ฐฉ๋ฒ์์ ๋์์ธ, UX, ์ ๊ทผ์ฑ ์ธ ๊ฐ์ง ๊ฐ์น๊ฐ ์ถฉ๋(?)ํ๋ค.
[๋์์ธ] ์ฑ์ ๋์์ธ ํต์ผ์ฑ์ ์๊ฐํ๋ฉด 16px ์ด์์ผ๋ก ํค์ธ ์ ์๋ค.
[UX] ์ฑ์ UX๋ฅผ ์๊ฐํ๋ฉด ๊ฐ์๊ธฐ ํ๋๋๋ฉด ๋นํฉ์ค๋ฝ๋ค.
[์ ๊ทผ์ฑ] ์ฑ์ ์น ์ ๊ทผ์ฑ์ ์๊ฐํ๋ฉด 16px ์ด์์ด ์๋๊ฑฐ๋ ํ๋์ํ๋ฉด ๋ณด๊ธฐํ๋ค๋ค. ์ ํ์์ ๊ณ ์ฌํด์ '์ด๊ฒ๋ณด๋ค ์์ผ๋ฉด ํ๋ํด์ ๋ณด์ฌ์ค์ผํด.' ๋ผ๊ณ ์ ํ๊ฑธ ๊ฐํ ์ฐ๋ฆฌ๊ฐ ๋ฎ์ด์์๋ ๋๋์ง ์๋ฌธ์ด๋ค.
๋์์ธ, UX, ์ ๊ทผ์ฑ ์ ๋ชจ๋๋ฅผ ๋์์ ์ฑ๊ธธ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ผ๊น?
UI/UX๋ก ์ ๋ช ํ ์ฌ๋ก์์๋ ํฐํธ ํฌ๊ธฐ๊ฐ 16px๋ณด๋ค ์์ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณผ ์ ์๋ค. ๋ฌด์กฐ๊ฑด ๊ธ์จ ํฌ๊ธฐ๋ฅผ 16px๋ก ํค์ฐ๊ธฐ๋ณด๋ค๋, ๊ธฐ์กด ๋์์ธ์ ์ ์งํ๋ฉด์ ์ฌ์ฉ์๊ฐ ๋ณธ์ธ์๊ฒ ํธํ ํฐํธ์ฌ์ด์ฆ ๋ฑ์ ์ปค์คํ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๊ฒ ๋ฒ ์คํธ ์๋ฃจ์ ์ด๊ฒ ๋ค. ์ด ์๋ฃจ์ ์ ์ฑ์ ๊ท๋ชจ๊ฐ ์ด๋์ ๋ ์์ ๋ ์ ์ฉํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์ฐ๋ฆฌ ํ๋ก์ ํธ์๋ meta ํ๊ทธ ์์ ์ ์ ์ฉํ๋๊ฒ ๋น์ฅ์ ์ต์ ์ ์ ํ์ด ์๋๊น..
Week 2
๋ชจ๋ฐ์ผ ์น์ ๊ทผ์ฑ ์ ์ ํ์ธํ๋ ค๊ณ ๋ผ์ดํธํ์ฐ์ค ๋๋ฆฐ๊ฑด๋ฐ ์น์ ๊ทผ์ฑ๋ ๊ทธ๋ ์ง๋ง ์ฑ๋ฅ ์ ์๊ฐ ์ฌ๊ฐํ๋ค.
๋ชจ๋ฐ์ผ์์ ์ฌ์ฉํ์ง ์๋ ์ง๋ ๋ก์ง์ ๊ฐ์ ธ์ค๊ณ ์๋๋ฐ ๊ทธ๊ฒ๋ถํฐ ๊ฐ์ ํด๋ณด์์ผ๊ฒ ๋ค. display: none ์ด๋ผ ๋ ๋๋ง๋ง ์ํ ๋ฟ ์ง๋๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๋ค ๋ฐ์์์ ํ์คํ ๋นํจ์จ์ ์ด๋ค.
๐ป ์ํ๊ด๋ฆฌ
Week 1
๊ฒ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ฉด์, ๊ฐ๋จํ ๊ฑฐ๋ผ ์๊ฐํ๊ณ ์ํ ์ค๊ณ๋ฅผ ์ํ๊ณ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ๋ฌ๋ค๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ์์ ์ปดํฌ๋ํธ๋ก ์ฎ๊ฒผ๋ค๊ฐ ๋ค์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก ์ฎ๊ฒผ๋ค๊ฐ ํ๋ ์์ผ๋ก ๊ณ์ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ๋์๋ค.
๊ฒ์ํ ๋ชฉ๋ก ๋ฐ์ดํฐ์ ์ฐ๊ด๋ ๊ฑด ์ค์ง <ArticleList> ์์๋ง ํ์ํ ๊ฑฐ๋ผ ์๊ฐํ๊ณ , ๊ฐ์ฅ ์ฒ์์๋ <ArticleList> ์ปดํฌ๋ํธ์์ totalList๋ฅผ ๊ฐ์ ธ์ค๋ useBoard ํ ์ ์คํํ์๋ค.
๊ทธ๋ฐ๋ฐ ๋ค๋ก๊ฐ๊ธฐ๋ก ๊ฒ์ํ ๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๋ ๊ฒฝ์ฐ์, ๊ณผ๊ฑฐ์ ์ด๋ฏธ ์์ฒญ์ ํตํด ๋ฐ์์จ ๊ฒ์๊ธ ๋ชฉ๋ก์ ๊ทธ๋๋ก ๋ค์ ๋์์ฃผ๊ธฐ ์ํด์๋ unmount ๋ ํ์๋ totalList ์ํ๋ฅผ ์ ์ง์์ผ์ค์ผ ํ๋ค. ๋ฐ๋ผ์ <ArticleList>์ ๋ถ๋ชจ ์ปดํฌ๋ํธ <BoardPage>์์ useBoard ํ ์ ํธ์ถํ๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
๊ทธ๋์ ํ์ฌ๋ ์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ๊ฐ ๋์ด์๋ ์ํฉ์ธ๋ฐ props๋ก ๋ค ๋ด๋ ค์ฃผ๋ ค๋๊น prop drilling depth๊ฐ ๊น์ ๊ฒ๋ ์๋๋ฐ ์ฝ๋๊ฐ ๋ณ๋ก ๊น๋ํด ๋ณด์ด์ง ์๋๋ค. ๊ทธ๋ ๋ค๊ณ Context API๋ฅผ ์ธ ์ผ์ ์๋ ๊ฒ ๊ฐ๋ค. ๋ฑ ํ๋์ ์ปดํฌ๋ํธ๋ง ๊ทธ๊ฒ๋ ๋ฑ ํ ๋ ๋ฒจ ์๋์ ์๋ ์ปดํฌ๋ํธ์์๋ง ์ธ ๊ฑฐ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์์ง ๊ณ ๋ฏผ๋๋ค.
Week 2
๊ฒ์๊ธ ์ญ์ ๊ธฐ๋ฅ์ ๋ถ์ด๋๋ฐ, ๊ฒ์๊ธ totalList๋ฅผ ์ฌ์ฉํ๋ ๋ณต์ก๋๊ฐ ๋๋ฌด ์ปค์ ธ์ ๊ฒฐ๊ตญ Context API๋ก ๊ด๋ฆฌํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. Context API๋ฅผ ์ฐ๊ฒ๋ ๊ฑฐ๋ผ๊ณ ์ ํ ์์ํ์ง ๋ชปํ๋ค.
๊ตฌ์ํ ๊ธฐ๋ฅ์ <ArticleView> ์์ ์ฌ์ฉ์๊ฐ '์ญ์ ๋ฒํผ'์ ํด๋ฆญํ๋ฉด ์ ๋ง ์ญ์ ํ ์ง ํ์ธํ๋ '์ปจํ ์ฐฝ'์ด ๋จ๊ณ 'ํ์ธ'์ ๋๋ฅด๋ฉด ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ด์๋ค. ์ด ๋, ์ ์์ ์ผ๋ก ๊ฒ์๊ธ์ ์ญ์ ๋์๋ค๋ฉด ๊ฒ์๊ธ ์ ์ฒด ๋ชฉ๋ก์ ํด๋น ๊ธ์ด ๋จ์์์ผ๋ฉด ์๋๋ค๋ ๊ฒ, ์ฆ totalList๋ ์ ๋ฐ์ดํธ ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๊ตฌํํ๋ฉด์ ๊นจ๋ฌ์๋ค.
์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ useConfirm ํ ์ ํธ์ถํ ๋, approve์ผ ๋ ๋์์ํฌ ํจ์๋ฅผ ์ธ์๋ก ๋ฐ์์ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์, <ArticleView> ์ปดํฌ๋ํธ์์๋ ๊ฒ์๊ธ ๋ชฉ๋ก์ ๋๊ธฐํ์์ผ์ฃผ๋ setTotalList ํจ์๊ฐ ํ์ํ๋ค.
์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ <BoardPage>์์ useBoard ํ ์ ํธ์ถํด์ ๊ฐ์ ธ์จ setTotalList ํจ์๋ฅผ <ArticleView> ์ props๋ก ๋ฃ์ด์ค ๋ค์, ์ด๋ฅผ ๋ค์ useConfirm์ ์ธ์๋ก ๋ฃ์ด์ฃผ๋ ๊ธฐ์ดํ ํํ๊ฐ ๋์๋ค.
ํ ์ผ๋ก ๊ฐ์ ธ์จ ํจ์๋ฅผ ์์ ์ปดํฌ๋ํธ์๊ฒ props๋ก ๋๊ฒจ์ฃผ๊ณ , ๊ทธ๊ฑธ ๋ค์ ์์ ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฉํ๋ ํ ์ ์ธ์๋ก ๋ฃ์ด์ฃผ์ด์ผ ํ๋ ์ํฉ...
์ด๋ฐ ์ํฉ์ด ๋๊ธฐ ์ ๊น์ง ์ context๋ก ๊ตฌ์ฑํ ์๊ฐ์ ๋ชปํ์๊น? ์ํ ์ค๊ณ๋ฅผ ํ๋ค๋ฉด ๋ฏธ๋ฆฌ ํ์ ํ ์ ์๋ ๋ฌธ์ ์์๊น?
ํ์ด์ ๋๋ '๋ฏธ๋ฆฌ ๊ณ ๋ฏผํ์ด๋ ๊ตฌํํ๊ณ ๋์์ผ ๊นจ๋ฌ์์ ๊ฒ ๊ฐ๋ค'๋๋ฐ์ ๋์ํ๋ค. ์ด์ ์์ ์๊ฐํ๋ฉด ๋น์ฐํ์ง๋ง <ArticleView> ์ปดํฌ๋ํธ์์ setTotalList ํจ์๋ก ๋ชฉ๋ก์ ๋๊ธฐํํด์ฃผ์ด์ผ ํ๋ค๊ณ ์ ํ ์์ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ด์ ํํ์ ๋น๋ฆฌ๋ฉด '์์ง ์ฃผ๋์ด์ด๊ธฐ ๋๋ฌธ์ ๊ฒช๋ ์ํ์ฐฉ์ค' ์ธ ๊ฒ ๊ฐ๋ค.
Context API๋ก ๋ฐ๊พธ๊ณ ๋๋ ์ฝ๋ ๋ณต์ก๋๊ฐ ๋ง์ด ํด๊ฒฐ๋์๋ค. ๊ณผ์ ์ด ๋๋ฌด ์์ฌ์ด ๊ตฌํ์ด์๋ค. ๊ทธ๋๋ ๋ค์ํ๋ฉด ๋ ์ํ ์ ์๊ฒ ์ง.
'FrontEnd+' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น ์ฑ ๋งค๋ํ์คํธ manifest.json ๋ฅผ ์์ฑํด๋ณด์. (2) | 2021.10.27 |
---|---|
[๋ฒ์ญ] ๋ฆฌ์กํธ์ ์ค์ผ์ค๋ง (Pull ๋ฐฉ์ vs Push ๋ฐฉ์) (0) | 2021.10.22 |
AWS ๋ฐฐํฌ ๊ฐ์ด๋๋ถ - S3 + CloudFront ํธ (0) | 2021.10.04 |
AWS ๋ฐฐํฌ ๊ฐ์ด๋๋ถ - EC2 ํธ (2) | 2021.10.04 |
CRA ์์ next.js ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ (0) | 2021.10.04 |