
>> ํฌํธํด๋ฆฌ์ค ๋ฐ๋ก๊ฐ๊ธฐ
React๋ฅผ ์ด์ฉํด ์ ์ํ ์ ๋ฅผ ์๊ฐํ๋ ์ฌ์ดํธ์ ๋๋ค.
๋ฆฌ์กํธ๋ฅผ ํ์ตํ ํ ์์ฉํด ๋ณด๊ธฐ ์ํด ์์ํ ํ๋ก์ ํธ๋ก ๋ค์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ ์ํ์์ต๋๋ค.
"๋"๋ฅผ ์๊ฐํ๊ธฐ ์ํด ์ธ์ด์๋์ ๋ฏธ๋ํํผ๋ฅผ ๋ชจํฐ๋ธ๋ก ์ ์ํ์์ต๋๋ค.
๋ฏธ๋ํํผ๋ผ๋ ์ฃผ์ ์ ๋ง๊ฒ ํ์ด์ง๋ฅผ ์คํ์ผ๋ง ํ์์ผ๋ฉฐ ๋ฐฉ๋ฌธ์์, ๋ฐฉ๋ช ๋ก, BGM๋ฑ์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์์ต๋๋ค.
SPA ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ ๋ ๋จ์ผ ํ์ด์ง ๋ด์์ ํน์ ์์ญ๋ง ๋ฉ๋ด์ ๋ฐ๋ผ ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ ์ฒดํ๋ฉด๋ชจ๋, ๋คํฌ๋ชจ๋, ๋ชจ๋ฐ์ผ๋ชจ๋์ ๋ชจ๋ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
๊นํ๋ธ ํ์ด์ง ์๋น์ค๋ฅผ ์ด์ฉํ์ฌ ๋น๋, ๋ฐฐํฌํ์์ต๋๋ค.
๋ฐฉ๋ช ๋ก๋ฑ์ ๋ฐ์ดํฐ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ Firebase๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ์์ต๋๋ค.


๋ฏธ๋ํํผ๋ผ๋ ์ฃผ์ ์ ๊ฑธ๋ง์ ์๊ธฐ์๊ฐ ๋ฉ๋ด์ ๋๋ค.


setInterval๊ณผ substring์ ์ด์ฉํ์ฌ ํ
์คํธ๊ฐ ํ๋์ฉ ์ถ๊ฐ๋๊ฒ ๊ตฌํํ์์ต๋๋ค.

clip-path: polygon()์ ์ด์ฉํ์ฌ ์ฅ๋ฉด ์ ํ ์ ๋๋ฉ์ด์
์ ๊ตฌํํ์์ต๋๋ค.๊ฐ๋จํ ๊ฒฝ๋ ฅ ์ฌํญ๊ณผ ๊นํ๋ธ, Velog์ ๋งํฌ ์นด๋๊ฐ ์๋ ๋ฉ๋ด์ ๋๋ค.


react-bootstrap์ Carousel๊ณผ react-markdown์ ์ด์ฉํ ํ๋ก์ ํธ ์๊ฐ์ ๋๋ค.


react-bootstrap์ Carousel์ ์ด์ฉํ์ฌ ํ๋ก์ ํธ์ ์ด๋ฏธ์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.>> ReadMe ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ฆฌ๋๋ฏธ์ ์์ฑ๋ ๋์ฑ ์์ธํ ๋ด์ฉ์ ํ์ธํ ์ ์์ต๋๋ค.
ReadMe ํ์ผ์ ๋ค์ด๋ฐ์ ํ๋ก์ ํธ์ ์ถ๊ฐํ๊ณ react-markdown์ ์ด์ฉํ์ฌ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ ๋ง๊ฒ html์ ๋ ๋๋งํ์ฌ ๋ํ๋
๋๋ค.Firebase๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ ๊ฒ์ํ ๋ฉ๋ด์ ๋๋ค.

npm install firebase ๋ช
๋ น์ด๋ฅผ ์ด์ฉํด Firebase๋ฅผ ์ค์นํ์ฌ

ThemeProvider์ ์ด์ฉํด ๋คํฌ๋ชจ๋๋ฅผ ๊ด๋ฆฌํ์ฌ styled-components ๋ด์์ ๋ณ์๋ฅผ ์ด์ฉํ ์คํ์ผ๋ง์ด ๊ฐ๋ฅํฉ๋๋ค.

transition ํจ๊ณผ๋ฅผ ์ํด ํด๋น ์์ญ์ ๊ฐ์ธ๊ณ ์๋ ์ปดํฌ๋ํธ์ position ๊ฐ์ ๊ณ์ฐํ์ฌ ํ์ ์ปดํฌ๋ํธ๋ก ๋๊ฒจ์ฃผ๊ณ ํ์ ์ปดํฌ๋ํธ๋ฅผ position: fixed๋ก ์ค์ ํ์์ต๋๋ค.top, left์ ์ด๊ธฐ ๊ฐ์ด ์์ผ๋ฉด transition์ด ์ ์ฉ๋์ง ์์ต๋๋ค.

๋จ์ผ ํ์ด์ง ๊ตฌ์กฐ๋ก ์ ํํ ๋ฉ๋ด์ ๋ฐ๋ผ ํน์ ์์ญ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.
๋ฐ์คํฌํ ๋ชจ๋์์๋ ํด๋น ์์ญ์ ์ปดํฌ๋ํธ๊ฐ ๋ณ๊ฒฝ๋๋ ๋ฐฉ์์ผ๋ก,
๋ชจ๋ฐ์ผ ๋ชจ๋์์๋ ํ๋ฉด์ด ์คํฌ๋กค๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์์ต๋๋ค.
ํ์ด์ง์ ๊ฐ๋ก ์ธ๋ก ๋น์จ์ ๊ณ์ฐํ์ฌ ๋ฐ์คํฌํ(๊ฐ๋ก) / ๋ชจ๋ฐ์ผ(์ธ๋ก) ๋ชจ๋๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
โป ์ด๊ธฐ์๋ ์๋์ ๊ฐ์ด ๋ชจ๋์ ๋ฐ๋ผ ์ปดํฌ๋ํธ ๋ด์์ ๊ตฌ์กฐ๋ง ๋ณ๊ฒฝ๋๋ ๋ฐฉ์์ผ๋ก ์ ์ํ์์ผ๋ ๋ชจ๋ฐ์ผ์ ์์ ํ๋ฉด์์ ๊ฐ๋
์ฑ์ด ์ข์ง ์์ ์์ ๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.

์ ์ ์น์ฌ์ดํธ ํธ์คํ ์๋น์ค์ค ํ๋์ธ ๊นํ๋ธ ํ์ด์ง๋ฅผ ์ด์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ์์ต๋๋ค.
gh-pages ํจํค์ง๋ฅผ installํ์ฌ ํ๋ก์ ํธ์ ๋น๋, ๋ฐฐํฌ๋ฅผ ์๋์ผ๋ก ๋์์ค๋๋ค.
>> [React] gh-pages๋ฅผ ์ด์ฉํ ์น ํ์ด์ง ๋น๋-๋ฐฐํฌ
์ ์ ์น์ฌ์ดํธ ํธ์คํ ์๋น์ค๋ฅผ ์ด์ฉํ๋ฉด ํ๋ก์ ํธ๋ฅผ ๊ฐํธํ๊ฒ ๋น๋, ๋ฐฐํฌํ ์ ์์ผ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ์กฐํํ๋ ๋ฑ์ ๋ฐฑ์๋ ๋ก์ง์ ๋ฐ๋ก ๊ตฌํํ์ฌ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
์๋ฒ๋ฅผ ์ง์ ๊ฐ๋ฐํ์ฌ ๊ด๋ฆฌํ ์ ๋๋ก ๋๊ท๋ชจ ํ๋ก์ ํธ๊ฐ ์๋๊ธฐ์ BaaS์ค ํ๋์ธ Firebase๋ฅผ ์ด์ฉํ์ฌ ๋ฐฉ๋ช
๋ก๊ณผ ๋ฐฉ๋ฌธ์ ์๋ฅผ ๊ตฌํํ์์ต๋๋ค.
>> [React] Firebase๋ฅผ ์ด์ฉํด ๊ฒ์ํ ๋ง๋ค๊ธฐ
>> [React] ํ์ด์ง ๋ฐฉ๋ฌธ์ ์ ๊ตฌํํ๊ธฐ
React ํ์ต ๋ด์ฉ์ ํ์ธํ์๋ ค๋ฉด ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
>> React ํ์ต ์ ๋ฆฌ ๋ฐ๋ก๊ฐ๊ธฐ
์๋ก ๋ง๋ ํ๋ก์ ํธ๋ฅผ gh-pages๋ฅผ ์ฐ๊ฒฐํ์ฌ npm run deploy ํ๋๋ฐ ์ด์ ์ ๋ง๋ ํ๋ก์ ํธ์ ์ฌ์ดํธ์ ์
๋ก๋๋๋ ํ์์ด ์์์ต๋๋ค.

์ปดํฌ๋ํธ์ ๋ ๋๋ง ํ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ฉํ๋ฉด ์ ์์์ฒ๋ผ ์ด๋ฏธ์ง ๋ก๋ฉ ์๊ฐ์ผ๋ก ์ธํด ์ฌ์ฉ๊ฐ์ด ๋จ์ด์ง๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋์ค์ ์ฌ์ฉํ ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค๋ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
| ๋ค์ด๋ฒ | ์งํ์ค์ธ ํ๋ก์ ํธ |
|---|---|
![]() | ![]() |
๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์์ ์คํฌ๋กค ์กฐ์์ ๊ฐ์งํด์ ์ฃผ์์ฐฝ/ํ๋จ๋ฉ๋ด UI๋ฅผ on/off ํ๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
์ GIF๋ฅผ ํ์ธํ๋ฉด ๋ค์ด๋ฒ์์๋ ์คํฌ๋กคํ ๋ UI์ on/off๊ฐ ์ ์ด๋ฃจ์ด์ง๋๋ฐ
์ฐ์ธก์ ์ฌ์ดํธ๋ ์ ๋๋ก ์๋ํ์ง ์๋๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ ํด๋น ๊ธฐ๋ฅ์ด root ์์ญ์์ ์คํฌ๋กค์ด ์ด๋ฃจ์ด์ง ๋๋ง ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ผ๋ก ํด๋น ํ๋ก์ ํธ๋ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์คํฌ๋กค์ด ์ด๋ฃจ์ด์ง๊ธฐ์ ์ํ๋ ๋์์ด ์ด๋ค์ง์ง ์์๋ ๊ฒ์ ๋๋ค.

ํ์
ํ๋ฉด์ ๋ค๋ฅผ ์ด๋ก๊ฒ ๋ํ๋ด๊ธฐ ์ํด z-index์ ๊ฐ์ ์ฌ๋ ค์ฃผ๊ณ background์์ญ์ ๋ถํฌ๋ช
ํ๊ฒ ์ค์ ํ์๋๋ฐ z-index๊ฐ ์ค์ ๋ ๋ค๋ฅธ ๋ฒํผ์ด ๋ซ๊ณ ์ฌ๋ผ์ค๋ ํ์์ด ์์์ต๋๋ค.
๋ถ๋ช
z-index์ ๊ฐ์ ํ์
์ฐฝ์ ๋ ๋๊ฒ ์ค์ ํ๋๋ฐ๋ ํด๊ฒฐ๋์ง ์์์ต๋๋ค.

์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ํ ์ฌ์ด์ฆ๋ฅผ ์ธก์ ํ๊ธฐ ์ํด useEffect()๋ฅผ ์ด์ฉํด setSize()๋ฅผ ์คํํ๋ ์ฝ๋๊ฐ ์์์ต๋๋ค.
๋น์ฅ์ ๋ณด์ด๋ ์ค๋ฅ ์์ด ์๋ํ์ง๋ง ํด๋น ์ฝ๋๋ ๋ฌธ์ ์ ์ด ๋ง์ด ์์ต๋๋ค.
>> ์์ ๋ ์ฝ๋ ์์ธํ ๋ณด๊ธฐ
ํด๋น ํ๋ก์ ํธ ๋ด ์ด๋ฏธ์ง๋ค์ ๊ฐ์ธ ํ๋ก์ ํธ์์ ๋น์์ ์ฉ์ผ๋ก ์ ์, ์ฌ์ฉํ ์ด๋ฏธ์ง๋ก ๋ฌด๋จ ๋์ฉ์ ๊ธํฉ๋๋ค.