Skip to content

Instantly share code, notes, and snippets.

@young-d
Last active November 8, 2021 14:50
Show Gist options
  • Save young-d/42ebcbc22491cb8e342f8ee4ddaf3394 to your computer and use it in GitHub Desktop.
Save young-d/42ebcbc22491cb8e342f8ee4ddaf3394 to your computer and use it in GitHub Desktop.

์ฆ๊ฒจ์ฐพ๊ธฐ์™€ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ์งค๋ฐฉ์˜ ์ ‘๊ทผ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•œ SNS ์›น ์„œ๋น„์Šค

JavaScript โ€ƒ React โ€ƒ Context API โ€ƒ ESLint โ€ƒ
Emotion JS โ€ƒ Storybook โ€ƒ Figma โ€ƒ Vercel

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • ํ”„๋กœ์ ํŠธ ๋ช…: ์งค์ด๋ชฝ๋•…
  • ํŒ€๋ช…: ๊ธฐ๋™ 1ํŒ€
  • ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„: 2021.10.15 ~ 2021.11.5
  • ๊ธฐํš ์ด์œ 
    • ์งค๋ฐฉ์€ ์ธํ„ฐ๋„ท์ด ํ™•์‚ฐ๋œ ์ด๋ž˜๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋ถ€ํ„ฐ ๋„๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€ ํ˜•์‹์ธ ๋™์‹œ์— ์ผ์ข…์˜ ์ธํ„ฐ๋„ท ๋ฐˆ(MIME)์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ ์ธํ„ฐ๋„ท ์‚ฌ์šฉ๋Ÿ‰์˜ ์ฆ๊ฐ€์™€ ๋‰ด๋ฏธ๋””์–ด์˜ ๋ฐœ๋‹ฌ๋กœ ์ธํ„ฐ๋„ท ๋ฐˆ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์ฆ๊ฐ€ํ•จ์€ ๋ฌผ๋ก  ๊ด‘๊ณ ์˜ ๋Œ€์ƒ์œผ๋กœ ์“ฐ์ด๋Š” ๋“ฑ ๊ฒฝ์ œ์  ํšจ๊ณผ ๋˜ํ•œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ˜„์žฌ ์งค๋ฐฉ์— ๋Œ€ํ•œ ์ €์žฅ ์„œ๋น„์Šค๋Š” ์ฐพ์•„๋ณด๊ธฐ ์–ด๋ ค์šด ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” ์งค๋ฐฉ ์ €์žฅ ์›น์‚ฌ์ดํŠธ์˜ ๊ฒฝ์šฐ์—๋„ ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ์€ ๊ฐ–์ถ”๊ณ  ์žˆ์ง€ ์•Š์•„ ์‚ฌ์šฉ์ž๋Š” ๋งค๋ฒˆ ๊ฒ€์ƒ‰์„ ํ•ด์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์งค๋ฐฉ์— ๋Œ€ํ•œ ์ฆ๊ฒจ์ฐพ๊ธฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ํŽธ๋ฆฌํ•œ ๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ํƒ‘์žฌํ•œ ์›น์„œ๋น„์Šค์˜ ํ•„์š”์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์งค๋ฐฉ์€ ์œ ํ–‰์˜ ๋ณ€ํ™” ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ํŠธ๋žœ๋””ํ•œ ์งค๋ฐฉ์ด ๊ณ„์†์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์†์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ์ซ“์•„๊ฐ€๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ์ ์—์„œ ์งค๋ฐฉ์˜ ํŠธ๋žœ๋””ํ•จ์„ ์ง€์†์ ์œผ๋กœ ๊ด€์ฐฐํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ธฐํšํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐ ์‹คํ–‰

  • ์‹คํ–‰ํ™˜๊ฒฝ: NodeJS 14.18.1
  • ์„ค์น˜
    • $ yarn install
  • ์‹คํ–‰
    • $ yarn start
  • ํ…Œ์ŠคํŠธ
    • $ yarn storybook

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

.
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ craco.config.js
โ”œโ”€โ”€ jsconfig.json
โ”œโ”€โ”€ node_modules
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ public
โ”‚ย ย  โ”œโ”€โ”€ favicon.ico
โ”‚ย ย  โ””โ”€โ”€ index.html
โ”œโ”€โ”€ src
โ”‚ย ย  โ”œโ”€โ”€ App.js
โ”‚ย ย  โ”œโ”€โ”€ assets
โ”‚ย ย  โ”œโ”€โ”€ components
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ base
โ”‚ย ย  โ”œโ”€โ”€ context
โ”‚ย ย  โ”œโ”€โ”€ domains
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Category
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Comment
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Favorite
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Footer
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Header
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ LoginForm
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ NotationModal
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Search
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ SignUpForm
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Tab
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ Uploader
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UploaderTemplate
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ UserProfile
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ Zzal
โ”‚ย ย  โ”œโ”€โ”€ hooks
โ”‚ย ย  โ”œโ”€โ”€ index.js
โ”‚ย ย  โ”œโ”€โ”€ pages
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ DetailPage
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ LoginPage
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ MainPage
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ PersonalPage
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ SearchPage
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ SignUpPage
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ UploadPage
โ”‚ย ย  โ”œโ”€โ”€ stories
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ components
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ base
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ domains
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ hooks
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ pages
โ”‚ย ย  โ””โ”€โ”€ utils
โ”‚ย ย      โ”œโ”€โ”€ api
โ”‚ย ย      โ”œโ”€โ”€ constants
โ”‚ย ย      โ”œโ”€โ”€ library
โ”‚ย ย      โ””โ”€โ”€ storage
โ””โ”€โ”€ yarn.lock

API

  • programmers dev-course๋กœ๋ถ€ํ„ฐ ์ œ๊ณต๋ฐ›์€ API๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Library

  • React-router
  • Axios
  • React-icons
  • ReactFreezeFrame
  • DiceBear-Avatar
  • React-loader-spinner

Usage

ํŠธ๋ Œ๋”” ์งค๋ฐฉ

  • ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋งˆ๋‹ค ์ธ๊ธฐ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ํŠธ๋ Œ๋””ํ•œ ์งค๋ฐฉ์„ ์ถ”์ฒœ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธ์‹œ ๋ฉ”์ธํŽ˜์ด์ง€์„œ ๋ฐ”๋กœ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์งค๋ฐฉ ์ข‹์•„์š”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์ธ์‹œ์—ฐ

์งค๋ฐฉ ๊ฒ€์ƒ‰

  • ๊ฒ€์ƒ‰์ฐฝ์— ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ด€๋ จ ์งค๋ฐฉ๊ณผ ์‚ฌ์šฉ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์‹œ์—ฐ

์งค๋ฐฉ ๋ณต์‚ฌ

  • ์›ํด๋ฆญ์„ ํ†ตํ•œ ์†์‰ฌ์šด ๋ณต์‚ฌ, ๋ณต์‚ฌ๋œ URL์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์— ๋น ๋ฅด๊ฒŒ ์งค๋ฐฉ์„ ์˜ฎ๊ธธ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•จ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. แ„‡แ…ฉแ†จแ„‰แ…ก

์งค๋ฐฉ ๋‹ด๊ธฐ

  • ์งค๋ฐฉ ์ข‹์•„์š”๋ฅผ ํ†ตํ•œ ๊ฐœ์ธ ์•„์นด์ด๋น™ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐœ์ธ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์งค๋ฐฉ์— ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. แ„Œแ…ฉแ‡‚แ„‹แ…กแ„‹แ…ญ

์งค๋ฐฉ ์—…๋กœ๋“œ

  • ๋‚ด ์ปดํ“จํ„ฐ์˜ ์งค๋ฐฉ์„ ํŒŒ์ผ ์—…๋กœ๋“œ ๋˜๋Š” drag&drop ํ•˜์—ฌ ์‚ฌ์ดํŠธ ๋‚ด์—์„œ ๊ณต์œ ํ•˜๊ณ , ๊ฐœ์ธ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๋‚ด๊ฐ€ ์—…๋กœ๋“œํ•œ ์งค๋ฐฉ์„ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. แ„‹แ…ฅแ†ธแ„…แ…ฉแ„ƒแ…ณ แ„€แ…ตแ„‚แ…ณแ†ผ (1)

์งค๋ฐฉ์— ๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ

  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์˜ฌ๋ฆฐ ์งค๋ฐฉ์— ๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๊ณ  ์˜๊ฒฌ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. แ„ƒแ…ขแ†บแ„€แ…ณแ†ฏแ„‰แ…ตแ„‹แ…งแ†ซ

์‚ฌ์šฉ์ž ํŒ”๋กœ์šฐ

  • ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ํŒ”๋กœ์šฐ๋ฅผ ํ†ตํ•ด ํŒ”๋กœ์ž‰ํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. แ„‹แ…ฒแ„Œแ…ฅ แ„‘แ…กแ†ฏแ„…แ…ฉแ„‹แ…ฎ (1)

Thanks

  • programmers dev-course

Contributing

๊น€์ •์šด_github
๊น€ํ˜„์„_github
๊น€ํ™์ค‘_github
๋„๊ฐ€์˜_github


ํŒ€ํ™œ๋™ ๊ธฐ๋ก

Notion

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment