๐ ๊ตฌ์ฅ ๋ฐ ์ผ๊ตฌ ๋ฐ๋ก๊ฐ๊ธฐ
- ID :
[email protected]
- PW :
test123!
- ๋ชจ๋ฐ์ผ๋ก ํ์ธํ๊ธฐ :
๊ตฌ์ฅ ๋ฐ ์ผ๊ตฌ๋ ๊ตฌ์ฅ ๋ฐ์์๋ ๊ฐ์ ํ์ ์์ํ๋ ํฌ๋ค๊ณผ ๊ต๋ฅํ ์ ์๋ ์ผ๊ตฌ ํฌ๋ค์ ์ํ SNS ์ปค๋ฎค๋ํฐ์ ๋๋ค.
- ์ ์ ๋ค์ด ๊ฐ์ ์ด๋ ํ์ ์์ํ๋์ง๋ฅผ ํ๋์ ์ ์ ์์ต๋๋ค.
- ์์ํ๋ ํ์ ์๊ทธ๋์ฒ ์ปฌ๋ฌ๋ก ํ ๋ง๋ฅผ ๋ฐ๊ฟ ์ ์๋ ๊ธฐ๋ฅ์ ํตํด ์ปค๋ฎค๋ํฐ์ ๋ ํฐ ์์๊ฐ์ ๋๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉํ๋ ํ ์์ ์ํ์ด๋ ์ผ๊ตฌ ๊ด๋ จ ๋ฌผํ์ ์ค๊ณ ๊ฑฐ๋๋ฅผ ํตํด ํ๋งคํ๊ณ , ๊ตฌ์ ํ ์ ์์ต๋๋ค.
- ์ผ๊ตฌ์ ๊ด๋ จ๋ ์ด์๋ค์ ์ค์๊ฐ์ผ๋ก ์ฌ๋ฆฌ๋ฉฐ SNS ํ๋์ ํ ์ ์์ต๋๋ค.
- ๊ฐ์ ํ์ ์์ํ๋ ์ ์ ๋ฅผ ํ๋ก์ฐ ํ์ฌ ํผ๋๋ฅผ ๊พธ๋ฆด ์ ์๊ณ , ๋๊ธ๊ณผ ์ข์์ ๊ธฐ๋ฅ์ผ๋ก ์ํตํ ์ ์์ต๋๋ค.
FE ํ์๋น | FE ๊น์์ด | FE ๊นํ์ฐ | FE ์ต์์ง |
---|---|---|---|
๐GitHub | ๐GitHub | ๐GitHub | ๐GitHub |
๐ฆ ์ ํฌ๋ ๋ฉ์์ด์ฌ์์ฒ๋ผ ํ๋ก ํธ์๋์ค์ฟจ 5๊ธฐ ํ๋ก์ ํธ 8์กฐ the 8์์กฐ
ํ์
๋๋ค !
๐ฅ๏ธ ํ๋ฉด ๊ตฌํ
- ํผ๋ ํฌ์คํธ ๋ชฉ๋ก ํ๋กํ ํ์ด์ง ํ๋ก์
- ํ๋ก์ ๋ชฉ๋ก ๋ฉ์ธ ๋ ์ด์์
- ์ฝํ ์ธ ๋ ์ด์์ ํค๋ navbar
๐ ๏ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
-
ํผ๋ ํ์ด์ง
- ํ๋ก์ฐ ์ค์ธ ์ ์ ๋ค์ ๊ฒ์๊ธ ๋ถ๋ฌ์ค๊ธฐ
- ํ๋ก์ฐ ์ค์ธ ์ ์ ๊ฐ ์์ ๊ฒฝ์ฐ ๊ฒ์ํ๊ธฐ ๋ฒํผ ๋ ธ์ถ
- ๋ฌดํ ์คํฌ๋กค ๊ตฌํ
-
ํฌ์คํธ ๋ฑ๋ก/์์ /์ญ์ /์ ๊ณ ๊ธฐ๋ฅ
-
API ํ์ฉ
- ๋๋ณด๊ธฐ ๋ฒํผ ํด๋ฆญ์ ์์ฑ์์ ์ฌ์ฉ์์ ์ผ์น ์ฌ๋ถ์ ๋ฐ๋ผ ์ญ์ /์์ ๋ชจ๋ฌ๊ณผ ์ ๊ณ ๋ชจ๋ฌ์ด ๊ฐ๊ฐ ๋ธ
- ํฌ์คํธ ๋ฑ๋ก์ ํ ๋ฒ์ ์ด๋ฏธ์ง ์ต๋ 3๊ฐ ์ ๋ก๋ ๊ฐ๋ฅ
-
ํฌ์คํธ ์์ธ ํ์ด์ง
-
pre ํ๊ทธ๋ฅผ ํ์ฉํ์ฌ ๊ฒ์๊ธ ์์ฑ์์ ๊ฐํ์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋๋๋ก ํจ
-
์ํ ์์ธ ํ์ด์ง
- ํฌ์คํธ ์ข์์ / ๋๊ธ ์์ฑ ๊ธฐ๋ฅ APIํ์ฉ
- ๋๊ธ ์์ฑ์ ๋๊ธ ๋ฆฌ์คํธ ์ฌ๋ ๋๋ง์ผ๋ก ์๋ก๊ณ ์นจ์์ด ์์ฑํ ๋๊ธ์ด ๋ฐ๋ก ๋ ๋๋ง
-
ํ๋กํ ํ์ด์ง
- ์ ์ ํ๋กํ, ํด๋น ์ ์ ๊ฐ ๋ฑ๋กํ ํฌ์คํธ / ์ํ ๋ฑ์ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง
- ํฌ์คํธ ๋ชฉ๋ก์ ์จ๋ฒํ/๋ฆฌ์คํธํ์ผ๋ก ๋ณผ ์ ์๋ ํ ๊ธ ๋ฒํผ
- ํฌ์คํธ ๋ชฉ๋ก์ ๋ฌดํ ์คํฌ๋กค ๊ตฌํ
- ํ๋ก์ฐํ ์ ์ / ํ๋ก์์ค์ธ ์ ์ ๋ฆฌ์คํธ ๋ฌดํ ์คํฌ๋กค ๊ตฌํ
- ์ฌ์ฉ์์ ํ๋กํ์ ํ๋กํ์์ /์ํ๋ฑ๋ก ๋ฒํผ, ๋ค๋ฅธ ์ ์ ์ ํ๋กํ์ ํ๋ก์ฐ,์ฑํ ,๊ณต์ ๋ฒํผ(์ฑํ , ๊ณต์ ๋ฏธ๊ตฌํ
-
์ ๊ทผ์ฑ
- ์ด๋ฏธ์ง alt(๋์ฒดํ ์คํธ) ์ถ๊ฐ
- ์ ๊ทผ์ฑ ํ ์คํธ h1~h3ํ๊ทธ ์ถ๊ฐ
-
๋ผ์ฐํฐ
- context์ usertoken ์ ๋ฌด์ ๋ฐ๋ผ ํ์ด์ง ๋ผ์ฐํ ๋๋๋ก ๊ตฌํ
-
๊ธฐํ ํ๋ก์ ํธ ์ฃผ๋
- ํ๋ก์ ํธ ๋ฉ์ธ ์ฃผ์ ๋ฅผ ์ ํ๊ณ ํต์ฌ ๊ธฐ๋ฅ ์ ์
- ์ ๊ธฐ/๋น์ ๊ธฐ ํ์ ์ฃผ๋
- ์ญํ ๋ถ๋ด ์ฃผ๋
-
๋ฐํ
๐ฅ๏ธ ํ๋ฉด ๊ตฌํ
- ์ฑํ ๋ฆฌ์คํธ ํ์ด์ง
- ์ฑํ
๋ฐฉ ํ์ด์ง
- ์ฑํ ๋ฐฉ ๋๊ฐ๊ธฐ ๋ชจ๋ฌ ์ฐ๊ฒฐ
- ๋ก๋ฉ์ค ์ปดํฌ๋ํธ
- 404 ํ์ด์ง
- splash ์คํฌ๋ฆฐ
- ๊ณตํต Button ์ปดํฌ๋ํธ
- ์ฌ์ฌ์ฉ์ฑ์ ๊ณ ๋ คํ์ฌ ๋ชจ๋ ํ์ด์ง์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ์ ์
๐ ๏ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
- ์ ์ ๊ฒ์ ๊ธฐ๋ฅ
- ๊ฒ์์ด๋ฅผ ํ์ดํ ํ๋ฉด ๋ณ๋์ ๋ฒํผ ํด๋ฆญ ์์ด ๋ฐ๋ก input value์ ๊ฐ์ ๊ฒ์์ด ๋ฆฌ์คํธ ์ถ๋ ฅ
- ์์ ์ฑ์ ์ํด ๊ฒ์์ด api ์์ฒญ ํ ์ 200ms๋ก ์ ํ
- ๊ฒ์ ๋ฆฌ์คํธ ์ ์ ํ๋กํ์ ์์ ์ค์ธ ํ ๋ก๊ณ ๋ฐฐ์น
- ๊ฒ์์ด ํ์ด๋ผ์ดํธ ๊ธฐ๋ฅ
- ๊ฒ์์ด์ ๊ฒน์น๋ ๋๋ค์ ๋จ์ด์ ์ปฌ๋ฌ ํ์ด๋ผ์ดํธ
- splash ์คํฌ๋ฆฐ
- 3์ด๊ฐ ์ ๋๋ฉ์ด์ ์ด ์๋ํ ํ Login Modal ํ์ด์ง๋ก ์ด๋
- ์ ์ฒด ๋์์ธ ๋ด๋น
- ์๊ทธ๋์ฒ ์ปฌ๋ฌ, ์คํ๋์ฌ ์คํฌ๋ฆฐ, ๋ฉ์ธ๋ก๊ณ , ํ๋น์ฝ, Error404 ์ด๋ฏธ์ง, etc
๊ธฐํ
- README ์์ฑ
- ์๋น์ค ์๊ฐ ๋ฑ ์ด๋ฏธ์ง ์ ์
- ์ ์ฒด ๊ตฌ์กฐ ๊ธฐํ / ์์ฑ
๐ฅ๏ธ ํ๋ฉด ๊ตฌํ
- form, select, comment, modal(๋๋ณด๊ธฐ/์ธํ /์ ๋ก๋ ๋ชจ๋ฌ), container ์ปดํฌ๋ํธ
- ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ๊ฒ์๊ธ , ๋๊ธ ํ์ด์ง
๐ ๏ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
- ๊ธฐ๋ณธ ํ
๋ง์ ์์ ์ค์ธ ํ์ด ์๋ ์ฌ์ฉ์๋ฅผ ์ํ 10๊ฐ์ง ํ
๋ง ์ ํ ๋ก์ง
- ์ปฌ๋ฌ์ ํ ๋ณ๋์ ์๊ด์์ด ๋์ํ๋๋ก, CSS ๋ณ์๋ก ๊ด๋ฆฌ
- ์ด๋ฏธ์ง : ํ๋์ SVG ์ฝ๋๋ก ๋ชจ๋ ํ ๋ง ์ง์
- ํ์๊ฐ์
/ ๋ก๊ทธ์ธ / ๋ก๊ทธ์์
- ์ ํจ์ฑ ๊ฒ์ฌ
- HTML, JavaScript๋ก ๊ฐ๋ฅํ ๊ฒ์ฆ์ ์ ๋ ฅ๊ฐ์ด ๋ณํ ๋๋ง๋ค ์ํ
- API๋ก๋ง ๊ฐ๋ฅํ ๊ฒ์ฆ(์ด๋ฉ์ผ ์ค๋ณต ๋ฑ)์ ํฌ์ปค์ค๊ฐ ๋ ๋ฌ์ ๋ ์ํ ๋ฐ ํผ๋๋ฐฑ
- ์ ํจ์ฑ์ ๋ฐ๋ฅธ ์ค์๊ฐ ๋ฒํผ ํ์ฑํ/๋นํ์ฑํ ๊ธฐ๋ฅ
- ์์์ด ์ฌ๋ฐ๋ฅด์ง ์์ ์, ์ค์๊ฐ ํ ์คํธ ํผ๋๋ฐฑ (ํ์๊ฐ์ )
- ์ด๋ฏธ์ง ํ์ฅ์๋ ํ๋ก ํธ์์ ๊ฒ์ฌ
- ์๋ฒ ๋ถ๋ด์ ์ค์ด๊ณ , ๋ ๋๋ง ์๊ฐ์ ๋จ์ถํ๊ธฐ ์ํด, ์ด๋ฏธ์ง ์ฉ๋ ์ค์ด๊ธฐ(๋ฆฌ์ฌ์ด์ฆ)
- ํธ์์ฑ์ ์ํด, ๋น๋ฐ๋ฒํธ ๋ณด๊ธฐ/์จ๊ธฐ๊ธฐ ๊ธฐ๋ฅ ์ ๊ณต
- ํ์๊ฐ์ ์ฑ๊ณต ์ ์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ
- ์ ํจ์ฑ ๊ฒ์ฌ
- ๊ฒ์, ๋๊ธ ํ์ด์ง ๋ฌดํ ์คํฌ๋กค
- ๋ก๋ฉ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด, ํ๋ฒ์ ๋ ๋๋งํ๋ ๋ฆฌ์คํธ ๊ฐ์๋ฅผ ์ ํํ๊ณ , ์คํฌ๋กค์ด ๋ฐ๋ฅ์ ๋ฟ์ผ๋ฉด, ์ถ๊ฐ ๋ ๋๋ง
- ์บ๋ฌ์
- Swiper ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ํ์ด์ง๋ค์ด์ ์บ๋ฌ์ ๊ตฌํ
- ๊ธฐํ
- ๋๊ธ ์ญ์ / ์ ๊ณ , context API ๊ตฌ์กฐ ์ธํ
์ฌ์ฉ์ฑ ๋ฐ ์ ๊ทผ์ฑ
- ๋ชจ๋ฌ์ฐฝ
- Tab์ ๋๋ฅผ ์, ํฌ์ปค์ค๊ฐ ๋ชจ๋ฌ์ฐฝ์ ๋ฒ์ด๋์ง ์๋๋ก ๊ตฌํ
- ์ปค์คํ
์
๋ ํธ ๋ฐ์ค
- ํค๋ณด๋ ์ฌ์ฉ ์ ํฌ์ปค์ค๊ฐ ์ ๋ ํธ ๋ฐ์ค ๋ด์์ ์ด๋ํ๋๋ก ๊ตฌํ
- ์์๋ ๋ฐฉํฅํค, Tab, shift + Tab, ์คํ์ด์ค, ์ํฐ๋ฅผ ์ด์ฉํ ํฌ์ปค์ค ์ด๋, ์ด๊ธฐ/๋ซ๊ธฐ, ์ ํ ๊ธฐ๋ฅ ์ ๊ณต
- ํผ(form)
- textarea ์ค์๊ฐ ๊ธ์์/์ต๋ ๊ธ์์ ํผ๋๋ฐฑ ๋ฐ ๋ฆฌ์ฌ์ด์ง
๊ธฐํ
- ์ง์ ๊ณต์
- API ์ฌ์ฉ๋ฒ, ์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ, setTimeout/clearTimeout ํ์ฉ๋ฒ ๋ฑ
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ํ์ํ ๋๋ง๋ค ํ ๋ด, ํ ์ธ ์ง์ ๊ณต์
- API ์ฌ์ฉ๋ฒ, ์ํ ๋์ด์ฌ๋ฆฌ๊ธฐ, setTimeout/clearTimeout ํ์ฉ๋ฒ ๋ฑ
๐ฅ๏ธ ํ๋ฉด ๊ตฌํ
- ๋ชจ๋ ํ์ด์ง์์ ์ฌ์ฌ์ฉ๋๋ ๊ณตํต ์ปดํฌ๋ํธ ์ ์
- ํ๋จ ํญ ๋ฉ๋ด๋ฐ
- ์ํ ๋ฑ๋ก(์์ ) ํ์ด์ง
- ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง
๐ ๏ธ ๊ธฐ๋ฅ ๊ฐ๋ฐ
-
ํ๋จ ํญ ๋ฉ๋ด ๋ฐ
- ํ๋จ ํญ ๋ฉ๋ด ํด๋ฆญ ์ ํด๋น ํ์ด์ง๋ก ์ด๋
- ์ ํ๋ ๋ฉ๋ด ์์ด์ฝ๋ง ์์น (ํ์ฑํ) ๋๋๋ก ๊ตฌํ
-
ํ์ ์ ๋ณด ์์ ๊ธฐ๋ฅ
- ๊ธฐ์กด ๋ง์ด ํ๋กํ ์ด๋ฏธ์ง์ ์ ๋ณด ๋ถ๋ฌ์ค๊ธฐ
- ํ๋กํ ์ด๋ฏธ์ง ์ญ์ (์ด๊ธฐํ) ๊ธฐ๋ฅ
- ์์ ํ์ด์ง์์ ์ด๋ฏธ์ง ๋ฏธ์์ ์ ๊ธฐ์กด ๋ง์ด ํ๋กํ ์ด๋ฏธ์ง ์ ์ง
-
์ํ ๋ฑ๋ก ๊ธฐ๋ฅ
- ์ ๋ก๋ํ ์ํ ์ด๋ฏธ์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ์ญ์
- ๊ฐ ์
๋ ฅ๊ฐ์ ๋ํ ์ ํจ์ฑ ๊ด๋ฆฌ =>
- ์ด๋ฏธ์ง ๋ฑ๋ก ์คํจ ๊ฒฝ๊ณ ์ฐฝ
- ์ํ ๊ฐ๊ฒฉ์ ์ฒ ๋จ์ ์ฝค๋ง ์์ฑ ๋ฐ ์ซ์๋ง ์
๋ ฅ ๋ฐ๋๋ก ์ ํ
- API ์ฐ๊ฒฐ => ์ฝค๋ง๋ฅผ ์ญ์ ํ ์ซ์ ํํ๋ก ๋ณ๊ฒฝํด์ ์ ์ก๋๋๋ก ํจ
- ์ํ ๊ฐ๊ฒฉ์ ์ต๋ ๊ธ์ก(์๋ฆฟ์) ์ง์
- ์ํ๋ช ์ ์ ํจ ๊ธ์์ ์ง์ (2~25๊ธ์)
- ์ ์์ ์ธ ์ ๋ ฅ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ํ๋ช ์ ๊ณต๋ฐฑ ์ฐ์ ์ฌ์ฉ ์ ํ
-
์ ํจํ ๊ฐ์ด ๋ชจ๋ ์ ๋ ฅ ๋์์ ๋๋ง ์ ์ฅ ๋ฒํผ ํ์ฑํ
-
์ํ ์๊ฐ๋ ์ค๋ฐ๊ฟ ์ฒ๋ฆฌ๋ก ๊ฐ๋ ์ฑ ๊ฐ์
-
API ์ฐ๊ฒฐ์ ํตํด ๋ฑ๋ก๋ ์ํ ์ ๋ณด ์ ์ก
๊ธฐํ
- notion ๋ฌธ์ ์์ฑ -> ํ์๋ก ์ ๋ฆฌ
- README ์์ฑ
- ์ด๋ฏธ์ง
- ๋ ํฐ๋ ๋์คํ๋ ์ด์ ๋์ํ๊ธฐ ์ํด, ์๋ณธ ์ด๋ฏธ์ง์ 2๋ฐฐ ์ฌ์ด์ฆ ์ด๋ฏธ์ง ์ฌ์ฉ
- ์ปค๋ฐ ๋ฉ์์ง ์ปจ๋ฒค์
, ์ฝ๋ ์ปจ๋ฒค์
, ๋ค์ด๋ฐ ์ปจ๋ฒค์
, ํด๋ ๊ตฌ์กฐ ์ปจ๋ฒค์
์ค๋ฆฝ
2023๋
6์ 2์ผ ~ 2023๋
6์ 27์ผ
- ๊ธฐํ ํ์ (์๋น์ค ์ปจ์ , ์ปจ๋ฒค์ ์๋ฆฝ, ์ญํ ๋ถ๋ฐฐ, ์ผ์ ๊ตฌ์) : 6์ 2์ผ ~ 6์ 3์ผ
- ๋ก๊ณ , UI ๋์์ธ : 6์ 2์ผ ~ 6์ 5์ผ
- ๊ณตํต UI ์ปดํฌ๋ํธ ๊ฐ๋ฐ : 6์ 3์ผ ~ 6์ 8์ผ
- ํ์ด์ง ๊ตฌํ : 6์ 8์ผ ~ 6์ 14์ผ
- ๊ธฐ๋ฅ ๊ฐ๋ฐ : 6์ 15์ผ ~ 6์ 24์ผ
- ๋ฒ๊ทธ ์์ : 6์ 25์ผ ~ 6์ 27์ผ
- ๋ฐฐํฌ : 6์ 26์ผ ~ 6์ 27์ผ
ํ๋ก ํธ์๋ | ๋ฐฑ์๋ | ๋ฐฐํฌ | ๋์์ธ | ||
---|---|---|---|---|---|
React |
styled-components |
์ ๊ณต๋ API | netlify |
Figma |
Adobe Illustrator |
โ GitHub Flow ์ ๋ต ์ฑํ
-
ํ๋ก์ ํธ์ ๊ท๋ชจ์ ๊ธฐ๊ฐ์ ๊ณ ๋ คํ์ ๋, ๋ธ๋์น ๊ด๋ฆฌ์ ๋๋ ๋ฆฌ์์ค๋ฅผ ์ค์ด๊ณ
์ต์ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๊ตฌํํ๋๋ฐ ์ง์คํ๊ธฐ ์ํ์ฌ GitHub Flow๋ฅผ ์ฑํํ์์ต๋๋ค.
๐ ๋๋๋ฉด์ ์ฑ์ฅํ๊ธฐ
- ๋๋ฃ์๊ฒ ๋์ ์์ฒญํ๋ ๊ฒ์ ์ด๋ ค์ํ์ง ์๊ธฐ
- ํ์์ด ๋์์ ์์ฒญํ์ ๋, VSCode ๋ผ์ด๋ธ ์
ฐ์ด ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ค ํจ๊ป ํด๊ฒฐํ๊ธฐ
- ์ฝ๋ฉํ๋ฉด์ ๋ง์ฃผ์น ๋ฌธ์ ๋ค์ ๋ํด ๊ณ ๋ฏผํ๋ ๋ถ๋ถ, ๋๊ผ๋ ๋ถ๋ถ์ ๋์ค์ฝ๋ ์ค๋ ๋์ ์์๋ก ๊ณต์ ํ๊ธฐ
๐ฅ ์ฝ๋๋งํผ ๊ฐ์ ์ฑ๊ธฐ๊ธฐ
- ๋ถ๋ง์ด ์์ผ๋ฉด ์ฐธ์ง ๋ง๊ณ ๋ฐ๋ก ๋งํ๊ธฐ
- ์๋ก์ ์๊ฒฌ ๊ฒฝ์ฒญํ๊ณ ์กด์คํ๊ธฐ
- ์ฑํ
๋ฐฉ๊ณผ ๋์ ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ฌ ์ํตํ๊ธฐ
๐ค ์๋ก ์ ๋ขฐ์ฃผ๊ธฐ
- ํ์์ ์ฐธ์ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋ฉด ๊ผญ ๋ณด๊ณ ํ๊ธฐ
-
์ ๊ธฐ ํ์ ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ
- ์/๋ชฉ AM 9์ ์ ๊ธฐํ์์ ์ฃผ 3ํ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๊ฐ์ง๋ฉด์ ์์ ์งํ ์ํฉ ๊ณต์
- ํ์๋ก : Notion
-
Discord GitHub ๋ด์ ์ฌ์ฉํ์ฌ ์ค์๊ฐ PR ์ํฉ ๊ณต์ โฌ๏ธ
-
Notion Project ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ํ ์ผ & ์ผ์ ๊ด๋ฆฌ
-
์๋งจํฑ ๋งํฌ์
- ์๋ฏธ์๋ ๋ณ์๋ช ์ฌ์ฉ
- css : kebab-case
- js : camelCase
- ๋ณ์ : var ์ฌ์ฉ ๊ธ์ง
-
Prettier ์ค์
{
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true,
"printWidth": 80,
};
- ์ปค๋ฐ ์ปจ๋ฒค์ (Udacity์ ์ปจ๋ฒค์ ์ฐธ๊ณ )
- Feat: ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ
- Fix: ๋ฒ๊ทธ ์์
- Docs: ๋ฆฌ๋๋ฏธ ๋ฑ ๋ฌธ์ ์์ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
- Style: ์ฝ๋ ํฌ๋งทํ
, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ
- Refactor: ์ฝ๋ ๋ฆฌํฉํ ๋ง
- Test: ํ
์คํธ ์ฝ๋, ๋ฆฌํฉํ ๋ง ํ
์คํธ ์ฝ๋ ์ถ๊ฐ
- Chore: ๋น๋ ์
๋ฌด ์์ , ํจํค์ง ๋งค๋์ ์์
- Rename: ํ์ผ๋ช
ํน์ ํด๋๋ช
์์ , ์์น ์ฎ๊ธฐ๊ธฐ
- Remove: ํ์ผ ์ญ์
โ๏ธ API ๋ช
์ธ์์ ์๊ธฐ์๊ฐ ์ ๋ณด๋ฅผ ๋ด๋นํ๋ intro ํค์ ๊ฐ์ผ๋ก ์๊ธฐ์๊ฐ์ ์์ํ๋ ํ ์ ๋ณด๋ฅผ $๋ก ๊ตฌ๋ถํ์ฌ ์๋ฒ์ ์ ๋ฌ
{
"user": {
"username": "test",
"email": "[email protected]",
"password": "test123!",
"accountname": "testman123",
"intro": "์๊ธฐ์๊ฐ์
๋๋ค.$hanhwa",
"image": ""
}
}
โ๏ธ ๊ตฌ๋จ๋ณ ์๊ทธ๋์ฒ ์ปฌ๋ฌ ๋ฐ ์๋ธ์ปฌ๋ฌ๋ฅผ global.css์ ๋ณ์๋ก ์ ์ฅ
// ๋ก๊ทธ์ธํ ์ ์ ์ ํ ์ ๋ณด ๋ถ๋ฌ์ค๊ธฐ
// const res = await fetch ...
const json = await res.json();
const team = json.profile.intro.split('$')[1];
// ํ ์ ๋ณด ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅ / context์ ์ ์ฅ๋จ
localStorage.setItem('myTeam', team);
// context์ ์ ์ฅ๋ myTeam ์ฌ์ฉํ๊ธฐ
const { myTeam } = useContext(UserContext);
// ํ ์ปฌ๋ฌ ์ ์ฉ
background: ${(props) =>
'var(--primary-color-' + (props.myTeam || 'default') + ')'};
// ์์ด์ฝ ์ ์ฉ
<svg>
<path //์๋ต
fill={
hearted
? myTeam === 'kt'
? 'var(--tertiary-color-kt)'
: 'var(--primary-color-' + (myTeam || 'default') + ')'
: ''
}/>
</svg>
11-1 ์ด์ ๊ฒ์์ด ๊ฒฐ๊ณผ๊ฐ ๋ ๋๋ง๋๋ ๋ฒ๊ทธ
- ํ์ : ์๋ฅผ ๋ค์ด, 'test'๋ผ๊ณ ๊ฒ์ํ์ ๋, 'tes' ํน์ 'te' ๊ฐ์ด ํค์๋๋ฅผ ๋ค ์ ๋ ฅํ๊ธฐ ์ ์ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์ต์ข ์ ์ผ๋ก ๋ํ๋๋ ๊ฒฝ์ฐ๊ฐ ์์
- ์์ธ : ์ ๋ ฅ๊ฐ ๋ณ๊ฒฝ ์, clearTimeOut๋ก ํด๋ฆฐ์ ํ๊ธฐ ์ , setTimeOut์ด ์คํ๋์๋ค๋ฉด, ์ด์ ๊ฒ์์ด์ ๋ํ ํจ์ ์คํ(onTyping)์ด ์ทจ์๋์ง ์์
- ํด๊ฒฐ ๋ฐฉ๋ฒ : ํ์ฌ ์ ๋ ฅ๊ฐ๊ณผ, data ๋ฐ์์ฌ ๋ ์ฌ์ฉ๋ ํค์๋(์ ๋ ฅ๊ฐ)์ด ๋ค๋ฅด๋ฉด ์ผ๋ฆฌ๋ฆฌํด
11-2 ๋๊ธ ์์ฑ์ ์ด๋ฏธ์ง ๊นจ์ง๋ ๋ฒ๊ทธ
- ํ์ : ๋๊ธ ์์ฑ์์ ์ด๋ฏธ์ง๊ฐ ์๋ฐ์ผ๋ก ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์์
- ์์ธ : ์๋ฒ์ ์ ์ฅ๋ ์ด๋ฏธ์ง ๊ฒฝ๋ก๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒฝ์ฐ ๊นจ์ง
- ํด๊ฒฐ ๋ฐฉ๋ฒ : ์ด๋ฏธ์ง ๊ฒฝ๋ก์ ์ฌ๋ฐ๋ฅธ url์ด ํฌํจ๋์ด ์๋์ง ์ฒดํฌํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ด๋ฏธ์ง ๋ ๋๋ง
11-3 ๋ค๋ก๊ฐ๊ธฐ ํด๋ฆญ ์, ํ๋จ ํญ ๋ฉ๋ด ๋ฒ๊ทธ
- ํ์ : ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ ํด๋ฆญ ์, ํ๋จ ํญ ๋ฉ๋ด์ ํ์ฌ ๋ฉ๋ด๊ฐ ๋ณ๊ฒฝ๋์ง ์์
- ์์ธ : ํ๋จ ํญ ์ปดํฌ๋ํธ ์์์, ํ์ฌ ํ์ด์ง ์ ๋ณด ๊ด๋ฆฌ
- ํด๊ฒฐ ๋ฐฉ๋ฒ : ๊ฐ ํ์ด์ง์์ ํ์ฌ ํ์ด์ง ์ ๋ณด๋ฅผ currentId๋ก ํ๋จ ํญ ์ปดํฌ๋ํธ์ ๋๊ฒจ์ฃผ๋๋ก ๋ณ๊ฒฝ
11-4 textarea ๋ฆฌ์ฌ์ด์ฆ ๋ฒ๊ทธ
- ํ์ : ์ฒ์ ํ๋ฉด์ด ๋ ๋๋ง ๋ ๋, textarea๊ฐ ๊ธ์ ์ค ์์ ๋ง๊ฒ ๋ฆฌ์ฌ์ด์ง๋์ง ์์
- ์์ธ : ์ ๋ ฅ๊ฐ์ด ๋ณํ ๋, ๋ฆฌ์ฌ์ด์ง ํจ์๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ
- ํด๊ฒฐ ๋ฐฉ๋ฒ : textarea์ value๋ฅผ useState๋ก ์ปจํธ๋กคํด์, value๊ฐ ๋ณํ ๋, ๋ฆฌ์ฌ์ด์ง ํจ์๊ฐ ์คํ๋๋๋ก ๋ณ๊ฒฝ
- ํ๋ณ๋ก ๊ฒ์ํ์ ๋ง๋ค๋ฉด ์ข๊ฒ ๋ค๋ ์๊ฒฌ์ด ์์๋๋ฐ ๊ตฌํํ์ง ๋ชปํด์ ์์ฝ์ต๋๋ค.
- ์ด๋ฏธ์ง ์ต์ ํ, ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ฑ ๊ฐ์ ๋ ๋ถ๋ถ๋ค์ด ๋ง์๋ฐ ์ ๋๋ก ์งํํ์ง ๋ชปํด์ ์์ฝ์ต๋๋ค.
- ์๋ฃ ํ์๋ ํ๋ก์ ํธ๋ฅผ ๊ณ์ ์ ์งํ์ฌ ์ต์ ํ, ๊ธฐ๋ฅ ์ถ๊ฐ ๋ฑ ๊พธ์คํ ์ง์ํ ๊ฒ์
๋๋ค.