๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

Section2 Unit11 [์†”๋กœ ํ”„๋กœ์ ํŠธ] ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

๋ฐ˜์‘ํ˜•


Section2 Unit11 [์†”๋กœ ํ”„๋กœ์ ํŠธ] ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

 

โญ๏ธ ๊ณผ์ œ. ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

 

GitHub - sw2377/fe-sprint-my-agora-states-server: ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ. Contribute to sw2377/fe-sprint-my-agora-states-server development by creating an account on GitHub.

github.com

 

โœ”๏ธ Bare Minimum Requirement

โœ… my-agora-states-server/app.js

    • ๋ชจ๋“  Origin, ๊ฒฝ๋กœ์— ๋Œ€ํ•ด CORS ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๊ฒŒ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • POST ์š”์ฒญ ๋“ฑ์— ํฌํ•จ๋œ body(payload)๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ์„ ์œ„ํ•ด GET / ์—์„œ ์ƒํƒœ ์ฝ”๋“œ 200์œผ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

    • discussionsRouter๋ฅผ ์ด์šฉํ•˜์—ฌ /discussions ๊ฒฝ๋กœ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

โœ… my-agora-states-server/router/discussions.js

    • GET /discussions ๋ชจ๋“  discussion ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • GET /discussions/:id discussion ํ•˜๋‚˜๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

โœ… my-agora-states-server/controller/index.js

    • discussionsController.findAll (๋ชจ๋“  discussion ๋ชฉ๋ก ์กฐํšŒ)

    • discussionsController.findById (discussion ํ•˜๋‚˜๋ฅผ ์กฐํšŒ)

โœ… my-agora-states์™€ ์—ฐ๋™ํ•˜๊ธฐ

    • my-agora-states-server๊ฐ€ ์ผœ์ ธ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    • ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•œ ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ์„œ๋ฒ„์—์„œ discussions ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

      • ๋” ์ด์ƒ data.js ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , discussions ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.

      • Fetch API๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

 

โœ… Optional

    • Section 1์—์„œ ๊ตฌํ˜„ํ•œ ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ ๋ฅผ React๋กœ ๋‹ค์‹œ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ’ฌ Bare Minimum๊ณผ Optional ๋ชจ๋‘ ๊ตฌํ˜„ ์™„๋ฃŒํ–ˆ๊ณ , Section 1์—์„œ ๊ตฌํ˜„ํ•œ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ ๋ฅผ React๋กœ ์ž‘์—…ํ•˜๋Š” ์ค‘์ด๋‹ค.

๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ  ๋งŒ๋“ค๊ธฐ - React ๋ฒ„์ „ Github ๋งํฌ → Click Here!

์•„์ง ์ง„ํ–‰์ค‘์ธ ์ž‘์—…์ด๋ผ ์ถ”ํ›„์— ๊ณ„์† ์ˆ˜์ •๋  ์˜ˆ์ •์ด๋‹ค.

 

 

๐ŸŒฑ ์˜คํ›„ Coz’ Mini Hackathon

๋ฐฐ์šด์  : Express๋ฅผ ํ™œ์šฉํ•œ ์„œ๋ฒ„ ๊ตฌ์ถ•๊ณผ fetch API๋ฅผ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ http ํ†ต์‹ 

์–ด๋ ค์› ๋˜ ์  / ์•„์‰ฌ์› ๋˜ ์  : Node.js๋Š” ์•„์ง ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ต๊ณ , ํ—ท๊ฐˆ๋ฆฐ๋‹ค. fetch ํ™œ์šฉ์ด ์•„์ง ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 

์•ž์œผ๋กœ ๊ฐœ์„ ํ•  ์  : ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„์„ ๋” ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ , ์ด์ „ ์•„๊ณ ๋ผ์Šคํ…Œ์ด์ธ  ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„ํ•œ ๊ฒƒ๋„ ๋ฆฌ์•กํŠธ๋กœ ๋ฐ”๊พธ๋Š” ์ค‘์ธ๋ฐ, ์™„๋ฃŒํ•ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 


๐ŸŒ™  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

 ์„น์…˜1์—์„œ ๋งŒ๋“ค์—ˆ๋˜ ๋‚˜๋งŒ์˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ ์˜ ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ œ๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ๊ณ„์†ํ•ด์„œ express๋ฅผ ๊ณต๋ถ€ํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ๊ณผ์ œ ์ž์ฒด๋Š” ์–ด๋ ต์ง€ ์•Š์•˜์ง€๋งŒ ์ด์ „์— ๋งŒ๋“ค์—ˆ๋˜ ์•„๊ณ ๋ผ ์Šคํ…Œ์ด์ธ ๋ฅผ ๋ฆฌ์•กํŠธ๋กœ ๋ฐ”๊พธ๊ณ , ๋‚˜๋จธ์ง€ ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•˜๋Š”๊ฒŒ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋“ฏ ํ–ˆ๋‹ค. ์•„์ง ๋ฐ˜๋„ ๋ชปํ•œ ๋Š๋‚Œ… ๐Ÿฅฒ

 ๊ณต๋ถ€ํ• ๊ฒŒ ์•„์ง ๋„ˆ๋ฌด๋„ˆ๋ฌด ๋งŽ์€๋ฐ, ์ •๋ง ํ”ผ๊ณคํ•˜๋‹ค…

 (์•„, ์˜ค๋Š˜ ์†Œ๊ทธ๋ฃน ํšŒ์˜(?)์—์„œ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์‹œ๊ฐ„์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋‹ค ์•ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„์ด ๋ง๋กœ ์„ค๋ช…์„ ํ•˜๋ ค๋‹ˆ ์ž˜ ๋˜์ง€ ์•Š์•˜๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ถ€๋ถ„์„ ๋ง๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋˜ ํ•œ๋ฒˆ ๋“ค์—ˆ๋‹ค.)

๋ฐ˜์‘ํ˜•