ํ์ฌ ๊ณต์ง์ ์ด๋ฏธ์ง๋ค์ ์ฝ๊ฒ ์์ ํ๊ณ ํ์ธํ ์ ์๊ณ ,
์ถํด๊ทผ ์๊ฐ์ ํ์ธํ ์ ์๋ ์ง์๋ค์ ์ํ ์ํค ์ฌ์ดํธ ์ ๋๋ค.
๊ฐ๋ฐ๊ธฐ๊ฐ: 2023.09.15 ~ 2023.09.22
๋ฐฐํฌ ์ฃผ์: https://chipper-puppy-71c021.netlify.app
์ด์ฉํ | ์ด์น์ฐ | ์์ฌ์ค | ๊น์์ | ์์ง์ |
---|---|---|---|---|
@2YH02 | @ewinkite | @yangjaejun | @KSJT | @jseo9732 |
๊ฐค๋ฌ๋ฆฌ ํ์ด์ง CRUD ๋ฐ ์ธ๋ถ ๊ธฐ๋ฅ | ๋ก๊ทธ์ธ ํ์ด์ง ๋ก๊ทธ์ธ, ํ์๊ฐ์ ๊ธฐ๋ฅ ๋ฐ ์ ์ ํ๋ก์ฐ ์์ฑ | WIKI ํ์ด์ง CRUD ๋ฐ ์ธ๋ถ ๊ธฐ๋ฅ | ๋ฉ์ธ ํ์ด์ง ์ด๋ฏธ์ง, WIKI ์ฐ๋ ๋ฐ ์ธ๋ถ ๊ธฐ๋ฅ | ๋ฉ์ธ ํ์ด์ง ์ถํด๊ทผ ๊ธฐ๋ก ๋ฐ ์ธ๋ถ๊ธฐ๋ฅ |
๐ฆ public
๐ฆ src
โฃ๐ฆ components ๊ณตํต ๋๋ ํ์ด์ง๋ณ๋ก ํ์ฉ๋๋ ์ปดํฌ๋ํธ๊ฐ ํฌํจ๋ ํด๋์
๋๋ค.
โ โฃ ๐ฆ common
โ โฃ ๐ฆ gallery
โ โฃ ๐ฆ home
โ โฃ ๐ฆ login
โ โฃ ๐ฆ wiki
โ โฃ ๐ฆ styles
โ โฃ ๐ฆ utils
โฃ๐ฆ db/wiki
โฃ๐ฆ pages Router๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ํ ํฐ ๋จ์์ ์ปดํฌ๋ํธ๊ฐ ํฌํจ๋ ํด๋์
๋๋ค.
โ โฃ ๐ฆ gallery
โ โฃ ๐ฆ home
โ โฃ ๐ฆ login
โ โฃ ๐ฆ wiki
โ โฃ ๐ฆ styles
โ โฃ ๐ฆ utils
โฃ๐ App.tsx
โฃ๐ AppRouter.tsx
โฃ๐ main.tsx
...
์ปค๋ฐ ์ปจ๋ฒค์
, ์ฝ๋ฉ ์ปจ๋ฒค์
, ๊นํ๋ธ ๊ท์น ๋ฑ์ ๋ด์ฉ์ ์๋์ ๋
ธ์
ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
- ์ถ๊ทผ ์๊ฐ๊ณผ ํด๊ทผ ์๊ฐ์ ๊ธฐ๋กํ ์ ์๊ณ ํค๋์ ์ถ๊ทผ ๊ฒฝ๊ณผ์๊ฐ์ด ํ์๋ฉ๋๋ค.
- ๋ฉ์ธ ํ์ด์ง์์ WIKI์ ์๋ ์ค์ํ ๊ณต์ง์ฌํญ์ ์ฌ๋ผ์ด๋๋ก ๋ณด์ฌ์ค๋๋ค.
- ๋ฉ์ธ ํ์ด์ง์์ Gallery ํ์ด์ง์ ๋ฑ๋ก๋ ์ต์ ์ฌ์ง 3๊ฐ๋ฅผ ๊ฐ์ ธ์ ๋ณด์ฌ์ค๋๋ค.
- ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ธ์ฆ์ด ์๋ ์ ์ ๊ฐ ๋ค๋ฅธ ํ์ด์ง๋ก ์ ๊ทผํ ์ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋๋ฉ๋๋ค.
- WIKI ํ์ด์ง์์ ๊ฒ์๋ฌผ์ CRUD ํ ์ ์์ต๋๋ค.
-
Gallery ํ์ด์ง์์ ๊ฒ์๋ฌผ์ CRUD ํ ์ ์์ต๋๋ค.
์ด์ฉํ: ๐ท ๊ฐค๋ฌ๋ฆฌ ํ์ด์ง
๐ก ์นดํ
๊ณ ๋ฆฌ ํธ์ง์์ ์ํ๋ ์จ๋ฒ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์นดํ
๊ณ ๋ฆฌ๋ฅผ ์์ฑํ๋ฉด ํ์ด์ด๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฑ ๋ ์ง์ ๊ณ ์ ํ ID ๊ฐ์ ๊ฐ์ง๊ณ ์ ์ฅ์ด ๋ฉ๋๋ค.
๐ก ์นดํ
๊ณ ๋ฆฌ ํธ์ง์์ ์ํ๋ ์จ๋ฒ์ ๋ง๋ค ์ ์์ต๋๋ค. ์จ๋ฒ์ ์์ฑํ๋ฉด
ํ์ด์ด๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฑ ๋ ์ง, ์์ ์นดํ
๊ณ ๋ฆฌ ID, ID ๊ฐ์ ๊ฐ์ง๊ณ ์ ์ฅ์ด ๋ฉ๋๋ค.
๐ก ์ํ๋ ์จ๋ฒ ์นดํ
๊ณ ๋ฆฌ์ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๋๋๊ทธ๋ ํด๋ฆญ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
์ถ๊ฐ ์ ์ด๋ฏธ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์ด๋ฆ, ์ฉ๋, ํ์ผํ์
์ด ํ๋ฉด์ ๋ณด์ด๊ณ ,
ํ์ด์ด๋ฒ ์ด์ค ์คํ ๋ฆฌ์ง์ ํด๋น ์จ๋ฒ์ ID ๊ฐ์ ์ด๋ฆ์ผ๋ก ํ๋ ํด๋์ ์ ์ฅ๋ฉ๋๋ค.
๐ก ์จ๋ฒ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ญ์ ํฉ๋๋ค.
์ญ์ ์ ํ์ด์ด๋ฒ ์ด์ค ์คํ ๋ฆฌ์ง์ ์ ์ฅ ๋ผ ์๋ ํด๋น ์ด๋ฏธ์ง๊ฐ ์ญ์ ๋ฉ๋๋ค
๐ก ์ด๋ฏธ์ง ํด๋ฆญ ์ ์์ธ๋ณด๊ธฐ๊ฐ ๊ฐ๋ฅํ๊ณ ๋ฒํผ ํด๋ฆญ๊ณผ ํ์ดํ ํค๋ณด๋๋ก ๋ค์ ์ด๋ฏธ์ง๋ก์ ๋ฐฉํฅ ์ ํ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ํ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ์ด ๊ฐ๋ฅํ๋๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐํ์์ต๋๋ค.
์ด์น์ฐ: ๐ ๋ก๊ทธ์ธ ํ์ด์ง
๐ก ํด๋น ํํ์ด์ง๋ ์ฌ๋ด ์ฌ์ดํธ๋ก, ๋ก๊ทธ์ธ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ loginํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ก๊ทธ์์ํ์ง ์์๋ค๋ฉด ํญ ์ข
๋ฃ ํ ์ฌ์ ์ํ์ฌ๋ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
๐ก ํ์ ๊ฐ์
๋ฒํผ ํด๋ฆญ์ ํ์ ๊ฐ์
์ด ๊ฐ๋ฅํ ๋ค์ด์ผ๋ก๊ทธ๊ฐ ๋
ธ์ถ๋ฉ๋๋ค.
ID์ PW ๊ฐ์ ์
๋ ฅํ ๊ฐ์
ํ๊ธฐ ๋ฒํผ์ ํด๋ฆญ์ User๋ก ์ ์ฅ๋๋ฉฐ ํด๋น ๊ณ์ ์ผ๋ก ์ฌ์ดํธ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ก ํ๋ก์ธ์ค์ ๋ฐ๋ผ ํ์๊ฐ์
์ ํจ์ฑ ๊ฒ์ฌ ํ ์ผ๋ฟ์ ๋
ธ์ถํฉ๋๋ค.
์ ์์ ์ผ๋ก ์
๋ ฅ์ด ์๋ฃ๋์๋ค๋ฉด ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ง์
ํฉ๋๋ค.
๐ก ํ์๊ฐ์
ํ ๊ณ์ ์ ID์ PW ๊ฐ์ ์
๋ ฅํ ๋ค์ด๊ฐ๊ธฐ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ฌ์ดํธ ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ก ํ๋ก์ธ์ค์ ๋ฐ๋ผ ๋ก๊ทธ์ธ ์ ํจ์ฑ ๊ฒ์ฌ ํ ์ผ๋ฟ์ ๋
ธ์ถํฉ๋๋ค.
์ ์์ ์ผ๋ก ์
๋ ฅ์ด ์๋ฃ๋์๋ค๋ฉด ๋ฉ์ธ ํ์ด์ง๋ก ์ง์
ํฉ๋๋ค.
๐ก ํ์ฌ ์ฌ์ดํธ ๋ก๊ทธ์ธ ์ค์ธ User ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค.
์ด๋ฅผ ํตํด Header์ WIKIํ์ด์ง์ ๋ฑ๋ก/์์ /์ญ์ ๋ฑ์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ง์ํฉ๋๋ค.
์์ฌ์ค: ๐ WIKI ํ์ด์ง
๐ก ์ฌ์ฉ์๊ฐ ์ํค ํ์ด์ง์ ์ ์ํ๋ฉด, ํ์ธํ ์ํค๋ฅผ ์ ํ ํ ์ ์๋ ์ฌ์ด๋ ๋ฉ๋ด์ ์ํค์ ๋ด์ฉ์ ํ์ธํ๊ณ ํธ์ง ํ ์ ์๋ ํ๋ฉด์ด ํ์๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๋ฅผ ๋ฐฉ์ง ํ๊ธฐ ์ํด ์์ ์ํค ํญ๋ชฉ๋ค๋ง ์ฌ์ด๋ ๋ฉ๋ด์ ํ์๋๋ฉฐ, ๊ทธ ์ค ์ฒซ๋ฒ์งธ ์ํค๊ฐ ์ฐ์ธก ํ๋ฉด์ ํ์๋ฉ๋๋ค.
๐ก ์ฌ์ฉ์๊ฐ ์์ ์ํค์ ํ์ดํ ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ํด๋น ์ํค์ ํ์ ์ํค ํญ๋ชฉ๋ค์ ๋ถ๋ฌ์ต๋๋ค.
์ฌ์ฉ์๋ ์์ ์ํค๋ฅผ ํ์ ์ํค๋ค์ ๋ฌถ๋ ์นดํ
๊ณ ๋ฆฌ ๊ฐ๋
์ผ๋ก ํ์ฉํ ์ ์์ผ๋ฉฐ, ์ํค์ ๊ณ์ธต์ ๊ตฌ์กฐ์ ์ฐ๊ด๋ ๋ด์ฉ์ ํ๋์ ํ์
ํ ์ ์์ต๋๋ค.
๐ก ์ฌ์ฉ์๋ '๋ฑ๋ก' ๋ฒํผ์ ํตํด ์๋ก์ด ์ํค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์์ฑ๋ ์ํค ํญ๋ชฉ์ ํ์ด์ด๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ฉฐ, ๊ณ ์ ํ ID์ ํจ๊ป ๋ฑ๋ก๋ฉ๋๋ค.
์ํค๋ ๋งํฌ๋ค์ด ํ์์ผ๋ก ์์ฑ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ํผ์ ์
๋ ฅํ๋ ๋ด์ฉ์ ์ค์๊ฐ์ผ๋ก ์ํ์ ๋ฐ์๋ฉ๋๋ค.
์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์
๋ ฅ ๋ด์ฉ์ ๋์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ํ์ธํ ์ ์์ต๋๋ค.
๋ํ, ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ํตํด ์์ ์ํค๋ฅผ ์ ํํ์ฌ ํด๋น ์ํค์ ํ์ ํญ๋ชฉ์ผ๋ก ๋ฑ๋ก์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ก ์ฌ์ฉ์๋ '์์ ' ๋ฒํผ์ ํด๋ฆญํ์ฌ ํด๋น ํญ๋ชฉ์ ๋ด์ฉ์ ์์ ํ ์ ์์ต๋๋ค.
์์ ์ด ์๋ฃ๋๋ฉด '์ ์ฅ' ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ณ๊ฒฝ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์
๋ฐ์ดํธํฉ๋๋ค.
๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ํตํด ์์ ์ํค๋ฅผ ์ ํ ๋ฐ ๋ณ๊ฒฝ ํ ์ ์์ต๋๋ค. ์ด๋, ํ์ ์ํค๊ฐ ๋ฑ๋ก๋ ์์ ์ํค์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ํค์ ํ์ ์ํค๋ก๋ ๋ฑ๋ก ํ ์ ์์ต๋๋ค.
๐ก '์ญ์ ' ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ํด๋น ํญ๋ชฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์์ ํ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์ญ์ ํ๊ธฐ ์ ์ ์ฌ์ฉ์์๊ฒ ํ์ธ ์ ์ฐจ๋ฅผ ๊ฑฐ์นฉ๋๋ค, ์ด๋ฅผ ํตํด ์ค์๋ก ์ธํ ์ญ์ ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
ํ์ ์ํค๊ฐ ๋ฑ๋ก๋ ์์ ์ํค์ ๊ฒฝ์ฐ ํ์ ์ํค๊ฐ ์ญ์ ๋ ์ ์์์ ์๋ฆฌ๋ ๋ฉ์์ง๋ฅผ ํ์ํ๊ณ , 'ํ์ธ'์ ํด๋ฆญ ํ ์ ํด๋น ์ํค์ ํ์ ์ํค๋ ๋์์ ์ญ์ ๋ฉ๋๋ค.
์์ง์: ๐ ํค๋ ๋ฐ ๋ฉ์ธ ํ์ด์ง
๐ก ํต๊ทผ ๋ค์ด์ผ๋ก๊ทธ์์ ์ถ๊ทผ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ์ด์ด์คํ ์ด์ ์ถ๊ทผ ์๊ฐ์ด ์ ์ฅ๋๊ณ ํค๋์ ๊ทผ๋ฌด ์๊ฐ(๊ทผ๋ฌด ํ์ด๋จธ)๊ฐ ํ์๋ฉ๋๋ค.
๋ก๊ทธ์์, ์๋ก๊ณ ์นจ์ ํด๋ ํ์ด์ด์คํ ์ด์์ ์ถ๊ทผ ๋ฐ ํด๊ทผ ์๊ฐ์ ์์ฒญํ์ฌ ํ์ํด์ค๋๋ค.
๐ก ํต๊ทผ ๋ค์ด์ผ๋ก๊ทธ์์ ํด๊ทผ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ์ด์ด์คํ ์ด์ ํด๊ทผ ์๊ฐ์ด ์ ์ฅ๋๊ณ ํค๋์ ์ด ๊ทผ๋ฌดํ ์๊ฐ์ด ํ์๋ฉ๋๋ค.
๐ก ํ์ด์ด๋ฒ ์ด์ค์ `signOut`๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ๋ก๊ทธ์์์ ํ ๋ค ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๐ก ํ์ด์ด์คํ ์ด์ ์ ์ฅ๋ ์ํค ์ค ๊ฐ์ฅ ์ต๊ทผ์ ์์ฑ๋ 2๊ฐ์ ๊ฒ์๊ธ์ ์์ฒญํ์ฌ ํ์ํด์ค๋๋ค.
๊ฒ์๋ฌผ์ ํด๋ฆญํ๋ฉด ํด๋น ๊ฒ์๊ธ๋ก ์ด๋ํฉ๋๋ค.
๊น์์ : ๐ ๋ฉ์ธ ํ์ด์ง
๐ก ์บ๋ฌ์
์ด 3์ด๋ง๋ค ๋ค์ ์ฌ๋ผ์ด๋๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๐ก ํ๋จ์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํด๋น ์ธ๋ฑ์ค์ ์ฌ๋ผ์ด๋๋ก ์บ๋ฌ์
์ด ์ ํํฉ๋๋ค.
๐ก ์๋์ฐ๊ฐ resizeํ ๋๋ง๋ค ์บ๋ฌ์
์ width๊ฐ ๋ณํํฉ๋๋ค.
๐ก ๊ฐค๋ฌ๋ฆฌ์ ์ต๊ทผ ์
๋ฐ์ดํธ ๋ ์ฌ์ง์ 3๊ฐ๊น์ง ๋ฏธ๋ฆฌ ๋ณด์ฌ์ค๋๋ค.
ํด๋ฆญํ๋ฉด ๊ฐค๋ฌ๋ฆฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค. ์ต์ด ๋ก๋ฉ ์์๋ ์ค์ผ๋ ํค ์ ๋๋ฉ์ด์
์ด ๋ณด์
๋๋ค.