Skip to content

peer session week5

J213_ํ•œ๋ฒ”์„ edited this page Dec 4, 2021 · 3 revisions

ํ”ผ์–ด์„ธ์…˜

Week5

Front

  • react-loading๊ณผ react-select๋ฅผ ์‚ฌ์šฉํ•˜์…จ๋Š”๋ฐ ์ด ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ์ญˆ์–ด๋ด๋„ ์ข‹์Šต๋‹ˆ๊นŒ?

    • loading ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์„ ์œ„ํ•ด react-loading ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ loading ์ค‘์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋‰ด๋ชจํ”ผ์ฆ˜ ๋””์ž์ธ ๋„ˆ๋ฌด ์ด์œ๊ฒƒ ๊ฐ™์•„์š”

    • ์‹ค์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค์—์„œ ๋งŽ์ด ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋””์ž์ธ ๊ฐ™์•„ ํ”„๋กœ์ ํŠธ์—์„œ๋ผ๋„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด์„œ ์ ์šฉ
    • ํ•˜์ง€๋งŒ ์„œ๋น„์Šค์—์„œ ์™œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”์ง€ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ๋””์ž์ธ ์•„์ด๋””์–ด๋Š” ์–ด๋””์„œ ์–ป๋‚˜์š”?

    • 1px 1px์”ฉ ์›€์ง์ด๋ฉฐ ๋” ๋‚˜์€ ๋””์ž์ธ์ด ๋ฌด์—‡์ธ์ง€ ์ƒ๊ฐํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค!
  • ์ €ํฌ๋„ ๊ธฐํš์„ ํ•  ๋‹น์‹œ ํ™”์ƒ์ฑ„ํŒ…์ด ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค๋ฅผ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ํ™”์ƒ ๊ณต์œ  ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ๋“ค ์ค‘์— Agora?๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋„ ๋“ฃ๊ณ  ์‹ถ์–ด์š”!

    • Agora ์ถ”์ƒํ™”๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • P2P ๊ฐ€ ์•„๋‹Œ Agora ๊ฐ€ ์ง€์›ํ•˜๋Š” media server ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
  • Animation ์ด ๋„ˆ๋ฌด ์ด์˜๋„ค์š” ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜์‹œ๊ณ  ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ์‹์„ ์ ์šฉํ•˜์…จ๋Š์ง€ ๊ถ๊ธˆํ•ด์š”!

    • div, span ์„ ์‚ฌ์šฉ
    • free frontend ์˜ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์‚ฌ์šฉ
    • html, css ๋กœ๋งŒ ์‚ฌ์šฉ
    • ๋‹ค์Œ์ฃผ ์ตœ์ ํ™” ๊ณ„ํš์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • Font ๊ฐ€ ๊ถ๊ธˆํ•ด์š”!

    • ๊ตฌ๊ธ€ ํฐํŠธ : Dongle
  • ์ฐจํŠธjs๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค(์–ด๋””์— ์ ์šฉ๋˜์–ด์žˆ๋‚˜์š”?)

    • Dashboard ์—์„œ github language, ๋ฌธ์ œ ํ’€์ด ํ†ต๊ณ„์— ์‚ฌ์šฉ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค
    • Github Repository ์˜ ์‚ฌ์šฉ language ํ†ต๊ณ„ ์—ญ์‹œ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜๋ˆ„์‹  ๊ธฐ์ค€์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค, + [postID].tsx ์ด ํŒŒ์ผ๋ช…๋„ ๊ถ๊ธˆํ•ด์š”.

    • ๊ทน๊ฐ•์˜ ์ถ”์ƒํ™”๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋น„์Šทํ•œ ์„ฑ๊ฒฉ์˜ ์ปดํฌ๋„ŒํŠธ๋Š” common index.ts ํ†ตํ•ด์„œ ๊ณตํ†ต ์†์„ฑ์„ Control ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„
    • [] ๋ž€ Next ์˜ Dynamic Routing ์„ ์œ„ํ•œ ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ๋„ฅ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜์‹œ๋ฉด์„œ ๋Š๊ผˆ๋˜ ์žฅ๋‹จ์ ์ด ๊ถ๊ธˆํ•˜๋„ค์š”. ์ €ํฌ๋Š” ๋ฆฌ์•กํŠธ๋งŒ ์จ์„œ ์šฐ์„  ๊ตฌํ˜„ํ•ด์„œ ๊ฒฝํ—˜ํ•ด๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

    • ์žฅ์ 
      • Server Side Rendering ์ด ์ฃผ ๋ชฉ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
      • 10 ๋ฒ„์ „๋ถ€ํ„ฐ ๊ธฐ์กด์˜ Next ๋ณด๋‹ค Running curve ๊ฐ€ ๊ต‰์žฅํžˆ ๋‚ฎ์Šต๋‹ˆ๋‹ค.
      • 12 ๋ฒ„์ „๋ถ€ํ„ฐ SWC (Speedy Web Compiler) ๋„์ž…์„ ํ†ตํ•ด ์„ฑ๋Šฅ์ด ๋น ๋ฆ…๋‹ˆ๋‹ค.
      • React ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค
      • ์˜คํžˆ๋ ค Routing ๋ถ€๋ถ„์—์„œ Next Engine ์ด ์ž๋™์œผ๋กœ Mapping ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ํŽธํ–ˆ์Šต๋‹ˆ๋‹ค.
      • ๊ฐ Page ๋ณ„๋กœ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Logic ์—ญ์‹œ _app.tsx ํŒŒ์ผ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ์ 
      • Server Side, Client Side ์˜ ๊ตฌ๋ถ„์ ์ด ํ—ท๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค. (๋””๋ฒ„๊น…์ด ํž˜๋“ค๋‹ค.)
      • Build ๊ฐ€ ๋ฒ„๊ฒ์Šต๋‹ˆ๋‹ค..
  • ๊ฒ€์ƒ‰์€ ๋””๋ฐ”์šด์Šค์ธ๊ฐ€์š” ํŠธ๋กœํ‹€๋ง์ธ๊ฐ€์š”

    • ๋””๋ฐ”์šด์Šค์ž…๋‹ˆ๋‹ค.
    • ์“ฐ๋กœํ‹€๋ง์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๊ต‰์žฅํžˆ ์–ด๋ ต๋‹ค.

Back

  • ์•„ํ‚คํ…์ฒ˜์ƒ Nginx ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  Agora nest ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

    • ์•„๊ณ ๋ผ API๋ฅผ ๋•ก๊ฒจ์™€์„œ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Socket Server ์—์„œ๋Š” docker Container ๊ฐ€ 2๊ฐœ ์กด์žฌํ•˜๊ณ  API Server ์—์„œ๋Š” 1๊ฐœ ์กด์žฌํ•˜๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฐ ๋ฐฉ์‹์„ ์„ ํƒํ•˜์…จ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!

    • Socket Clustering ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด
    • ์ˆ˜ํ‰ํ™•์žฅ์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • Storage ๊ฐ€ docker(nest) ๋ž‘๋งŒ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ๋Š”๋ฐ ๋ชจ๋“  Object CRUD ์ž‘์—…์„ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด์„œ ์ง„ํ–‰ํ•˜๋‚˜์š”?

    • presigned url
    • ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ์„œ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๋„ˆ๋ฌด ๋Š๋ ค์„œ ๊ฐœ์„  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • nest ๋ฅผ ์‚ฌ์šฉํ•˜์‹  ์ด์œ ๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”??

    • ๋„ˆ๋ฌด ์ž์œ ๋„๊ฐ€ ๋†’์€ Node ๋ณด๋‹ค Layer ๊ฐ€ ์ •ํ•ด์ง„ Nest ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์žฅ์ ๋„ ๋‹จ์ ๋„ ๊ตฌ์กฐ, ์ œ์•ฝ
  • ORM ์„ typeORM ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹  ์ด์œ ๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”??

    • ํŠธ๋žœ์ ์…˜์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค
  • Oauth ์ •๋ณด๋Š” ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋‚˜์š”?

    • ์ธ์ฆ ์—…์ฒด์™€ ์ธ์ฆ ์—…์ฒด์˜ ์œ ์ € ๊ณ ์œ  ์‹๋ณ„์ž๋ฅผ ์Œ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์กฐ์ธ ์—ฐ์‚ฐ์ด ๋งŽ์ด ๋“ค์–ด๊ฐ€ ๋ณด์ด๋˜๋ฐ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ๊ฐœ์„ ์€ ์–ด๋–ป๊ฒŒ ํ•˜์‹ค ์˜ˆ์ •์ธ๊ฐ€์š”?

  • Mysql์„ ์„ ํƒํ•œ ์ด์œ ๋ฅผ ๋“ฃ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

    • ์„œ๋น„์Šค์˜ update์ฒ˜๋ฆฌ ๊ณ ๋ ค
    • ๊ฐ€์žฅ ์ต์ˆ™ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • ๋ ˆ๋””์Šค๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ•œ ๋ฐฉ์‹์„ ์†Œ๊ฐœํ•ด์ฃผ์„ธ์š”.

    • ๊ณต์œ ๋˜์–ด์•ผ ํ•˜๋Š” ์ •๋ณด๋ฅผ Redis ์— ์ €์žฅ
  • ํŒ”๋กœ์šฐ, ๊ฒŒ์‹œ๋ฌผ ๋“ฑ๋“ฑ DB ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

    • ํ™•์žฅ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” Collection ์œผ๋กœ ๋ถ„๋ฆฌ
  • ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์…จ๋Š”๋ฐ ์–ด๋–ค ์žฅ์ ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‚˜์š”?

    • CI/CD ๊ฐ€ ํŽธํ•˜๋‹ค.
    • ๊ฐ„ํŽธํ•œ ๋…๋ฆฝ์ ์ธ ํ™˜๊ฒฝ ๊ตฌ์ถ•์ด ๋„ˆ๋ฌด ์‰ฝ์Šต๋‹ˆ๋‹ค.

Common

  • ํ”„๋ก ํŠธ์™€ ๋ฐฑ์„ ๋‚˜๋ˆ ์„œ ์ž‘์—…ํ•˜์‹œ๋‚˜์š”? ์•„๋‹ˆ๋ผ๋ฉด ํ˜‘์—… ์‹œ์Šคํ…œ์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค!!

    • web15
      • ๊ฐ์ž ์ž˜ ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๋ฉ”์ธ์„ ๋งก์•„์„œ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค.
      • ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ๋„๋ฉ”์ธ ์ƒ๊ด€์—†์ด ์„œ๋กœ ๋„์™€์ฃผ๋ฉฐ ํ•˜๋Š”๋ฐฉ์‹.
    • web26
      • ์† ๊ฐ€๋Š”๋Œ€๋กœ ํ–ˆ๋‹ค.
      • ์ข‹์•˜๋”ฐ.
  • ํ”„๋ก ํŠธ ์ปดํฌ๋„ŒํŠธ ์ถ”์ƒํ™”? ๊ด€๋ จํ•ด์„œ ํ•™์Šต/์ฐธ๊ณ ํ•˜์‹  ์ข‹์€ ์ž๋ฃŒ๊ฐ€ ์žˆ์„๊นŒ์š”? ๊ผญ ๋ฐฐ์šฐ๊ณ  ์‹ถ๋„ค์š”.๐Ÿฅฐ

    • ๊ฒฝํ—˜ํ•˜๊ณ  ๊ณ ๋ฏผ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!
  • ์šฐ๋ฆฌํŒ€์˜ ์ž๋ž‘!

    • web15

      • ์„œ๋น„์Šค ๋‚ด์—์„œ ๋†€ ์ˆ˜ ์žˆ๋‹ค
      • ๊ฒŒ์ž„ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ฐ€๋Šฅ
      • ๋งค์ฃผ ์›”์š”์ผ๋งˆ๋‹ค ๋ง›์žˆ๋Š” ์ ์‹ฌ๊ณผ ์ €๋…์„ ๋จน์Šต๋‹ˆ๋‹ค
    • web26

      • ์„œ๋น„์Šค ๋‚ด์—์„œ ๋†€ ์ˆ˜ ์žˆ๋‹ค
      • ๋ถ„์œ„๊ธฐ๊ฐ€ ์ž์œ ๋กญ๋‹ค

ํŒ€

๊ฐœ๋ฐœ
๋ฐ๋ชจ
์Šคํฌ๋Ÿผ
์Šคํ”„๋ฆฐํŠธ
ํ”ผ์–ด์„ธ์…˜
ํšŒ๊ณ ๋ก
Clone this wiki locally