Coder Social home page Coder Social logo

boostcamp-2020 / project18-b-web-duxit Goto Github PK

View Code? Open in Web Editor NEW
69.0 6.0 7.0 6.5 MB

๐ŸŽฒ ์•ผ์ฐŒโ›ต๏ธ ํŒ€์˜ ์›น ๊ธฐ๋ฐ˜ ์Šคํ† ๋ฆฌํ…”๋ง ๋ณด๋“œ๊ฒŒ์ž„ <Duxit> ๐Ÿค

Home Page: https://duxit.ga

JavaScript 82.60% HTML 2.97% SCSS 12.03% TypeScript 1.84% Python 0.56%
vanilla-javascript socket-io node-js webgame scss webrtc

project18-b-web-duxit's Introduction

DUXIT : ์›น ๊ธฐ๋ฐ˜ ์Šคํ† ๋ฆฌํ…”๋ง ๋ณด๋“œ๊ฒŒ์ž„ ๐Ÿƒ


DUXIT์€ ์—ฌ๋Ÿฌ๋ถ„์˜ โญ๏ธ ์Šคํƒ€โญ๏ธ ๋ฅผ ๋จน๊ณ  ์‚ฝ๋‹ˆ๋‹ค.

์ด์Šˆ PR ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค. ๐Ÿ™Œ

๊ณต๊ฐœ ์ฃผ์†Œ โœจ

๋ฐฐํฌ URL : https://duxit.ga/
๋ฐ๋ชจ ์˜์ƒ : https://bit.ly/duxit-๋ฐ๋ชจ์˜์ƒ

DUXIT์€ ์–ด๋–ค ๊ฒŒ์ž„์ธ๊ฐ€์š”? ๐Ÿฅ

  • DUXIT์€ ์Šคํ† ๋ฆฌํ…”๋ง ๋ณด๋“œ๊ฒŒ์ž„ DIXIT์„ ์›น์œผ๋กœ ์˜ฎ๊ธด ์˜จ๋ผ์ธ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.
  • ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๊ฐ ํ”Œ๋ ˆ์ด์–ด๋Š” ์Šคํ† ๋ฆฌํ…”๋Ÿฌ๊ฐ€ ๋˜๊ณ , ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” 6์žฅ์˜ ์นด๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ๊ณ ๋ฅธ ์นด๋“œ์— ๋Œ€ํ•œ ์ฃผ์ œ๋„ ํ•จ๊ป˜ ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํ† ๋ฆฌํ…”๋Ÿฌ๋ฅผ ์ œ์™ธํ•œ ํ”Œ๋ ˆ์ด์–ด๋“ค์€ ์ž์‹ ์ด ๊ฐ–๊ณ  ์žˆ๋Š” 6์žฅ์˜ ์นด๋“œ ์ค‘ ์ฃผ์ œ์™€ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์นด๋“œ ํ•œ ์žฅ์„ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์„ ํƒํ•œ ์นด๋“œ๊ฐ€ ํ•œ๋ฒˆ์— ๊ณต๊ฐœ๋˜๋ฉด, ์Šคํ† ๋ฆฌํ…”๋Ÿฌ๋ฅผ ์ œ์™ธํ•œ ํ”Œ๋ ˆ์ด์–ด๋Š” ์Šคํ† ๋ฆฌํ…”๋Ÿฌ๊ฐ€ ์–ด๋–ค ์นด๋“œ๋ฅผ ๋ƒˆ์„๊นŒ?๋ฅผ ์ถ”์ธกํ•˜๋ฉฐ ํ•œ ์žฅ์˜ ์นด๋“œ๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.
  • ์ดํ›„ ๊ฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์„ ํƒํ•œ ์นด๋“œ์˜ ์ฃผ์ธ์ด ๊ณต๊ฐœ๋˜๋ฉฐ ์ •ํ•ด์ง„ ์ ์ˆ˜์‚ฐ์ถœ ๋ฐฉ์‹์— ์˜ํ•ด ๋ง์„ ์›€์ง์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋จผ์ € ๊ฒฐ์Šน์ ์— ๋„๋‹ฌํ•˜๊ฑฐ๋‚˜, ์นด๋“œ๊ฐ€ ์†Œ์ง„๋˜์—ˆ์„ ๋•Œ ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ๋ง์„ ์›€์ง์ธ ์‚ฌ๋žŒ์ด ์Šน๋ฆฌํ•˜๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.
  • DUXIT์€ ์ตœ์†Œ 3์ธ, ์ตœ๋Œ€ 6์ธ๊นŒ์ง€ ์ฐธ์—ฌ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Team. YAHTZEE ๐ŸŽฒ

WIKI link!

J035 ๊น€๋ฏผ์„ฑ J060 ๊น€ํ•ด๋žŒ J109 ์•ˆ์ƒ›๋ณ„ J208 ์ตœ์ง„ํ˜
@Front-line-dev @ramram1048 @sbyeol3 @jinhyukoo

๐Ÿ™Œ ๋“ ๋“ ํ•œ ๋ฉ˜ํ† ๋‹˜์ธ ํฌ๋กฑ๊ณผ ํ•จ๊ป˜ ํ•ฉ๋‹ˆ๋‹ค ๐Ÿฆ–

Development Stack โš™๏ธ

division stack
Web Babel Webpack peerJS socket.io
Front-end Javascript Sass
Back-end NodeJS Express TypeScript winston
Production Forever NginX Naver Cloud Platform Git
Code Management Git github
Formatting eslint stylelint prettier

project18-b-web-duxit's People

Contributors

front-line-dev avatar jinhyukoo avatar ramram1048 avatar sbyeol3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

project18-b-web-duxit's Issues

Fetch ์—๋Ÿฌ์ฒ˜๋ฆฌ๋ฅผ try/catch ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ

์—๋Ÿฌ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ ค๋ฉด try/catch ๋กœ ๋น„๋™๊ธฐ ๋กœ์ง์„ ๊ฐ์‹ธ๊ฑฐ๋‚˜, Promise.catch ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋ณด์‹œ์ฃ .
๊ทธ๋Ÿฌ๋ฉด ๋” ์ฝ”๋“œ๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์—๋Ÿฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š”์ง€ ๊ตฌ๋ถ„ํ•ด์„œ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋ผ ์ข‹๊ธฐ๋„ํ•˜๊ณ ์š”.

Originally posted by @crongro in #54 (comment)

[BUG] ๋ฐฑ์—”๋“œ NODE_ENV ์„ค์ • ์•ˆ๋˜์–ด ์žˆ์Œ

๐Ÿš’ ๋ฒ„๊ทธ ์„ค๋ช…

ํŒ€์›์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž์„ธํ•˜๊ฒŒ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ด๋‹น์ž๋„ ํ•จ๊ป˜ ํ• ๋‹นํ•ด์ฃผ์„ธ์š”.

๋ฐฑ์—”๋“œ ์Šคํฌ๋ฆฝํŠธ์— mode ์˜ต์…˜์ด ์•ˆ๋˜์–ด์žˆ์Œ

โœ”๏ธ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฐ๊ณผ

๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

dev, prod ๊ฐ ๋ชจ๋“œ์— ๋งž๊ฒŒ ์‹คํ–‰๋˜๋„๋ก ์ˆ˜์ •

๐Ÿ—’ ์ฐธ๊ณ ์ž๋ฃŒ

๋ณด์—ฌ์ง€๋Š” ์—๋Ÿฌ์ธ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฐ์ƒท๋„ ํ•จ๊ป˜ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

์นด๋“œ ์„ ํƒ์‹œ ์›€์ง์ด๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜

๐Ÿ’ ์„ค๋ช…

์ž์‹ ์˜ ์นด๋“œ, ํ˜น์€ ๋‚จ์˜ ์นด๋“œ์— ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ๋’€์„ ๋•Œ ์ ์ ˆํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋‚˜์™€์•ผ ํ•œ๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋‚ด ์นด๋“œ๋ฅผ ์„ ํƒํ•  ๋•Œ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์นด๋“œ ํฌ๊ธฐ๊ฐ€ ์•ฝ๊ฐ„ ํ™•๋Œ€ ๋˜๋ฉด์„œ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค
  • ์Šคํ† ๋ฆฌํ…”๋Ÿฌ๊ฐ€ ์นด๋“œ๋ฅผ ๊ณ ๋ฅผ ๋•Œ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฐ ์นด๋“œ์™€ ๊ฐ™์€ ์ˆœ๋ฒˆ์˜ ๋’ค์ง‘์–ด์ง„ ์นด๋“œ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ํ™•๋Œ€ ๋˜๋ฉด์„œ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋ณด์—ฌ์•ผ ํ•œ๋‹ค
  • ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์นด๋“œ๋ฅผ ๊ณ ๋ฅผ ๋•Œ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด (์นด๋“œ ์ฃผ์œ„์—์„œ ๋น›์ด ๋‚˜์•ผ ํ•œ๋‹ค) <- ๋ฐ”๋€” ์ˆ˜ ์žˆ์Œ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

์ฒ˜์Œ์—๋Š” :hover๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์Šคํ† ๋ฆฌํ…”๋Ÿฌ๊ฐ€ ์นด๋“œ๋ฅผ ๊ณ ๋ฅผ ๋•Œ์—๋„ ๋˜‘๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ด์•ผํ•˜๋‹ˆ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ๊ฒ ๋‹ค

์Œ์„ฑ ์ฑ„ํŒ… ์—ฐ๊ฒฐ

๐Ÿ’ ์„ค๋ช…

๋ณด๋‹ค ์ฆ๊ฑฐ์šด ๊ฒŒ์ž„ ์ง„ํ–‰์„ ์œ„ํ•œ ์Œ์„ฑ ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • WebRTC๋ฅผ ํ™œ์šฉํ•œ ์Œ์„ฑ ์ฑ„ํŒ… ๊ธฐ๋Šฅ
  • ๋‹ค์ˆ˜์˜ ์œ ์ € ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์„ฑ ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋กœ๊ทธ์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํƒ์ƒ‰

๐Ÿ’ ์„ค๋ช…

์ผ์ •ํ•˜๊ฒŒ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„์•ผ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—
๋กœ๊ทธ๋ฅผ ์Œ“์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฐพ์•„์„œ ์ •ํ•ด๋ด…์‹œ๋‹ค!

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋กœ๊ทธ ์Œ“๊ธฐ์— ์ ํ•ฉํ•œ DB๋ฅผ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ๊ด€๋ จ ์ž๋ฃŒ๋Š” ์Šฌ๋ž™์ด๋‚˜ ์ฝ”๋ฉ˜ํŠธ๋กœ ๋‹ฌ์•„์ฃผ์„ธ์š”

ํˆฌํ‘œ์‹œ๊ฐ„ ํ™”๋ฉด ๋งŒ๋“ค์–ด๋‘๊ธฐ (2์ฃผ์ฐจ)

๐Ÿ’ ์„ค๋ช…

image

ํˆฌํ‘œ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•œ ๋ถ€๋ถ„์„ 2์ฃผ์ฐจ์— ์™„์„ฑํ•œ๋‹ค.
๋ฐฑ๋กœ๊ทธ 65, 72๋ฒˆ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ™”๋ฉด ์ƒ๋‹จ์— ์ฃผ์ œ์–ด๊ฐ€ ๋ณด์—ฌ์•ผํ•œ๋‹ค.
  • ํ™”๋ฉด ์ƒ๋‹จ์— ์ง„ํ–‰๋ฐ”๋ฅผ ํ†ตํ•ด ๋‚จ์€ ์‹œ๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • 2์ฃผ์ฐจ ๋‹จ๊ณ„์—์„œ๋Š” ์˜ค๋ฆฌ ์•„๋ฐ”ํƒ€๋ผ๋˜๊ฐ€ ์นด๋“œ๊ฐ™์€๊ฒŒ ํ•„์ˆ˜์‚ฌํ•ญ์ด ์•„๋‹ˆ๊ฒŒ ๋˜์–ด์žˆ์–ด์š”~~

๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ์นด๋“œ ๊ณ ๋ฅผ ๋•Œ ํ…์ŠคํŠธ ํ‘œํ˜„

๐Ÿ’ ์„ค๋ช…

๋ฐฑ๋กœ๊ทธ 54๋ฒˆ

๋‹ค๋ฅธํ”Œ๋ ˆ์ด์–ด ์นด๋“œ์„ ํƒ ๋Œ€๊ธฐํ™”๋ฉด
์นด๋“œ๋ฅผ ์ด๋ฏธ ๊ณ ๋ฅธ ํ”Œ๋ ˆ์ด์–ด
ํ™”๋ฉด ์ƒ๋‹จ์˜ ๊ฐ•์กฐ ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด
์ฃผ์ œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ…์ŠคํŠธ ํ‘œํ˜„
  • ํˆฌํ‘œ์‹œ๊ฐ„์ด ๋˜์—ˆ์„ ๋•Œ ํ…์ŠคํŠธ๊ฐ€ ์‚ฌ๋ผ์ ธ์•ผ ํ•จ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋ฐฑ๋กœ๊ทธ 39๋ฒˆ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ์•„๋‹Œ๊ฐ€? ์‹ถ๋‹ค

๊ฒŒ์ž„ ์‹œ์ž‘ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ชจ๋‘ '์ค€๋น„ ์™„๋ฃŒ' ์ƒํƒœ๊ฐ€ ๋  ๊ฒฝ์šฐ ์•Œ๋ฆผ ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ๊ฒŒ์ž„์ด ์‹œ์ž‘๋  ์ˆ˜ ์žˆ๊ฒŒ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ชจ๋“  ์œ ์ €์—๊ฒŒ 5์ดˆ๊ฐ„ ์•Œ๋ฆผ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ
  • ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ ์ดํ›„ ์œ ์ €๋“ค์—๊ฒŒ ๊ฒŒ์ž„ ํ™”๋ฉด ๋ณด์—ฌ์ฃผ๊ธฐ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์œ ์ €๋“ค ๊ฐ„ ๋™๊ธฐํ™”๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์งœ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์•ผ๊ธฐ๊พผ์—๊ฒŒ ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅํ•˜๊ธฐ

๐Ÿ’ ์„ค๋ช…

image

์ด์•ผ๊ธฐ๊พผ์ด ๋œ ์œ ์ €์—๊ฒŒ ์ด์•ผ๊ธฐ๊พผ์ด ๋˜์—ˆ๋‹ค๋Š” ์•Œ๋ฆผ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ด์•ผ๊ธฐ๊พผ์—๊ฒŒ ์•Œ๋ฆผ ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ํ„ด์€ ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— socket์„ ํ™œ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์œ ์ €์—๊ฒŒ ์•Œ๋ฆผ์ด ๊ฐ€์ง€ ์•Š๊ฒŒ ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”.

์ด์•ผ๊ธฐ๊พผ์ด ์•„๋‹Œ ์ž์‹ ์˜ ์นด๋“œ ๊ณ ๋ฅด๊ธฐ <์•„๋‹ˆ์—์š”> ๋ฒ„ํŠผ

๐Ÿ’ ์„ค๋ช…

๋ฐฑ๋กœ๊ทธ 45๋ฒˆ
๋‚จ์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์นด๋“œ ๊ณ ๋ฅด๋Š” ํ™”๋ฉด์—์„œ ํŠน์ • ์นด๋“œ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์•„๋‹ˆ์—์š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ž์‹ ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์นด๋“œ 6์žฅ์„ ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์•„๋‹ˆ์—์š” ๋ฒ„ํŠผ
  • ์•„๋‹ˆ์—์š” ๋ฒ„ํŠผ ๋™์ž‘

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

์ด์•ผ๊ธฐ๊พผ ์นด๋“œ ๊ณ ๋ฅผ ๋•Œ ๋Œ€๊ธฐ ํ…์ŠคํŠธ ์ถœ๋ ฅ

๐Ÿ’ ์„ค๋ช…

๋ฐฑ๋กœ๊ทธ 47๋ฒˆ
์ด์•ผ๊ธฐ๊พผ ์นด๋“œ์„ ํƒ ๋Œ€๊ธฐํ™”๋ฉด์—์„œ ๋‚˜๋จธ์ง€ ํ”Œ๋ ˆ์ด์–ด๋Š” ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ ํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ์™€ ์ฃผ์ œ๋ฅผ ๊ณ ๋ฅด๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ…์ŠคํŠธ ์˜ค๋ธŒ์ ํŠธ
  • ์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ…์ŠคํŠธ๊ฐ€ ์—†์–ด์ง

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

[Guesser Waiting] ์ด์•ผ๊ธฐ๊พผ ์นด๋“œ ๊ณ ๋ฅผ ๋•Œ ์˜ค๋ฆฌ์™€ ์นด๋“œ ํ‘œํ˜„

๐Ÿ’ ์„ค๋ช…

๋ฐฑ๋กœ๊ทธ 48๋ฒˆ
์ด์•ผ๊ธฐ๊พผ ์นด๋“œ์„ ํƒ ๋Œ€๊ธฐํ™”๋ฉด
๋‚˜๋จธ์ง€ ํ”Œ๋ ˆ์ด์–ด
ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ ์˜ค๋ฆฌ์™€ ์นด๋“œ๋ฅผ ํ†ตํ•ด
์ด์•ผ๊ธฐ๊พผ์˜ ์˜ค๋ฆฌ์™€ ์นด๋“œ๋ฅผ ํ™”์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์˜ค๋ฆฌ ํ‘œํ˜„
  • ์นด๋“œ ํ‘œํ˜„
  • ์ด์•ผ๊ธฐ๊พผ์ด ์„ ํƒํ•˜๋Š” ์นด๋“œ๋Š” ํ™•๋Œ€๋˜์–ด์„œ ๋ณด์—ฌ์ ธ์•ผ ํ•œ๋‹ค
  • ์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ๋ฅผ ๊ณ ๋ฅด๋ฉด ์˜ค๋ฆฌ์™€ ๊ณ ๋ฅด์ง€ ์•Š์€ ์นด๋“œ๊ฐ€ ์—†์–ด์ ธ์•ผ ํ•œ๋‹ค
  • ์ด์•ผ๊ธฐ๊พผ์ด ์ตœ์ข…์ ์œผ๋กœ ๊ณ ๋ฅธ ์นด๋“œ๊ฐ€ ํ™”๋ฉด ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€์•ผ ํ•œ๋‹ค

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋งค ๋ผ์šด๋“œ ์‹œ์ž‘ ํ•  ๋•Œ ํ…”๋Ÿฌ ์—ฌ๋ถ€, ์นด๋“œ ๋ชฉ๋ก ๋ฐ›์•„์˜ค๊ธฐ

๐Ÿ’ ์„ค๋ช…

๊ฐ ํ„ด์ด ์ƒˆ๋กœ ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค ํ…”๋Ÿฌ ์—ฌ๋ถ€์™€ ์นด๋“œ 6์žฅ ๋ชฉ๋ก์„ ๋ฐ›์•„์™€์„œ ๋ Œ๋”๋งํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ…”๋Ÿฌ์ผ ๋•Œ / ์•„๋‹ ๋•Œ ํ…์ŠคํŠธ ๋ณด์—ฌ์ฃผ๊ธฐ
  • ์นด๋“œ 6์žฅ ์ €์žฅํ•˜๊ธฐ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ์นด๋“œ ๊ณ ๋ฅด๊ธฐ ๊ธฐ๋‹ค๋ฆด ๋•Œ ์ƒ๋‹จ ๊ฒŒ์ด์ง€

๐Ÿ’ ์„ค๋ช…

๋ฐฑ๋กœ๊ทธ 52๋ฒˆ
๋‹ค๋ฅธํ”Œ๋ ˆ์ด์–ด ์นด๋“œ์„ ํƒ ๋Œ€๊ธฐํ™”๋ฉด
์นด๋“œ๋ฅผ ์ด๋ฏธ ๊ณ ๋ฅธ ํ”Œ๋ ˆ์ด์–ด
ํ™”๋ฉด ์ƒ๋‹จ์˜ ๊ฒŒ์ด์ง€๊ฐ€ ์ค„์–ด๋“œ๋Š” ๊ฒƒ์„ ๋ณด๊ณ 
์‹œ๊ฐ„ ์ œํ•œ์˜ ๊ฒฝ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ™”๋ฉด ์ƒ๋‹จ์— ๊ฒŒ์ด์ง€ ํ‘œ์‹œ
  • ๊ฒŒ์ด์ง€๊ฐ€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ค„์–ด๋“ค์–ด์•ผ ํ•จ
  • ๊ฒŒ์ด์ง€๊ฐ€ ์ค„์–ด๋“œ๋Š” ์ค‘ ์ƒ‰์ด ๋ณ€ํ•ด์•ผ ํ•จ
  • ๊ฒŒ์ด์ง€๊ฐ€ ์™„์ „ํžˆ ์ค„์–ด๋“ค์—ˆ์œผ๋ฉด ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•จ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋‚จ์€ ํ”Œ๋ž˜์ด์–ด๊ฐ€ ์นด๋“œ๋ฅผ ๊ณ ๋ฅด๋Š” ํ™”๋ฉด์˜ ์ƒ๋‹จ ๊ฒŒ์ด์ง€ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ ์•„๋‹Œ๊ฐ€? ์ƒ๊ฐ์ด ๋“ ๋‹ค

๋กœ๋น„๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

image

์›์น˜ ์•Š์€ ๊ฒŒ์ž„์— ์ฐธ์—ฌํ–ˆ์„ ๊ฒฝ์šฐ ๋กœ๋น„๋กœ ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋กœ๋น„๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๋ฒ„ํŠผ ๊ตฌํ˜„
  • ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๊ฒฝ์šฐ ์œ ์ €๊ฐ€ ํ•ด๋‹น ๊ฒŒ์ž„๋ฐฉ์„ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๊ฒŒ ๋กœ์ง ๊ตฌํ˜„
  • ํ•ด๋‹น ๊ฒŒ์ž„๋ฐฉ์—์„œ ๋‚˜๊ฐ„ ์œ ์ €์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๊ฒŒ ๊ตฌํ˜„

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

์ด๋™ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ ์‹œ ์‹ค์‹œ๊ฐ„ ์ขŒํ‘œ๊ฐ’ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ• ํ† ์˜

๐Ÿ’ ์„ค๋ช…

  • ์บ๋ฆญํ„ฐ๊ฐ€ ์  A๋ฅผ ์‹œ์ž‘์œผ๋กœ A->B->C ์ˆœ์„œ๋Œ€๋กœ ์ด๋™ํ•œ๋‹ค๊ณ  ์น ๋•Œ
  • ์  B์— ๋„์ฐฉํ•˜๊ธฐ ์ „์— C๋กœ ์ด๋™ํ•˜๋Š” ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋ฉด
  • A->B ๋„์ค‘์˜ ์œ„์น˜์—์„œ ์ถœ๋ฐœํ•˜์ง€ ์•Š๊ณ 
  • B๋กœ ์ˆœ๊ฐ„์ด๋™ํ•œ ๋’ค C๋กœ ์ด๋™ํ•˜๊ฒŒ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ์š”.

https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame

์ด๊ฑฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ž˜ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„์ง€๋„?????
๋‚˜์ค‘์— ์ฐฌ์ฐฌํžˆ ์ฝ์–ด๋ณด๊ณ  ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด์•ผ๊ธฐ๊พผ ์ฃผ์ œ ์ž…๋ ฅํ•˜๋Š” ํ™”๋ฉด

๐Ÿ’ ์„ค๋ช…

image

์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ๋ฅผ ์„ ํƒํ•˜๋ฉด ์ฃผ์ œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚œ๋‹ค.

๋ฐฑ๋กœ๊ทธ 35๋ฒˆ, 36๋ฒˆ, 37๋ฒˆ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฐฐ๊ฒฝ ๋’ท์ชฝ ์–ด๋‘ก๊ณ  ํ๋ฆฌ๊ฒŒ (๋”คํšจ๊ณผ)
  • ํ…์ŠคํŠธ
  • ์นด๋“œ ํ™•๋Œ€๋œ ํ™”๋ฉด
  • ์ธํ’‹์ฐฝ
  • ํ™•์ธ, ๋‹ค์‹œ์„ ํƒ ๋ฒ„ํŠผ
    • ํ™•์ธ ๋ฒ„ํŠผ (๋ฐฑ๋กœ๊ทธ 37๋ฒˆ)
    • ๋‹ค์‹œ ์„ ํƒ ๋ฒ„ํŠผ (๋ฐฑ๋กœ๊ทธ 36๋ฒˆ)

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์ด์ „ ํ™”๋ฉด์˜ ์ƒ๋‹จ ์ง„ํ–‰๋ฐ”๋Š” ์–ด๋‘ก๊ณ  ํ๋ ค์ง€์ง€ ์•Š์•„์•ผํ•จ. ์ฆ‰
    ์นด๋“œ ๊ณ ๋ฅด๋Š” ํ™”๋ฉด(ํ๋ ค์ ธ์•ผํ•จ) < ์ฃผ์ œ ์ž…๋ ฅํ•˜๋Š” ํ™”๋ฉด < ํ”„๋กœ๊ทธ๋ ˆ์Šค๋ฐ”(ํ๋ ค์ง€์ง€ ๋ง์•„์•ผํ•จ)
    ์ˆœ์œผ๋กœ z-index๊ฐ€ ๋†’์•„์•ผํ• ๋“ฏ
  • ์นด๋“œ, ์ธํ’‹์ฐฝ, ๋ฒ„ํŠผ์„ form์œผ๋กœ ๊ฐ์‹ธ๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šธ๋“ฏ??

[BUG] SCSS ๊ตฌ์กฐ๋‚˜ ์ค‘๋ณต์œผ๋กœ import ๋˜๋Š” ๋ฌธ์ œ

๐Ÿš’ ๋ฒ„๊ทธ ์„ค๋ช…

ํŒ€์›์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž์„ธํ•˜๊ฒŒ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ด๋‹น์ž๋„ ํ•จ๊ป˜ ํ• ๋‹นํ•ด์ฃผ์„ธ์š”.

common.scss๊ฐ€ ์ค‘๋ณต๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ œ

โœ”๏ธ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฐ๊ณผ

๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋” ๋‚˜์€ ํผํฌ๋จผ์Šค๋ฅผ ์œ„ํ•ด ์ค‘๋ณต๋˜์–ด ๋“ค์–ด๊ฐ€๋Š” SCSS ๊ตฌ์กฐ๋ฅผ ๋ฆฌํŒฉํ† ๋งํ•ฉ์‹œ๋‹ค.

๐Ÿ—’ ์ฐธ๊ณ ์ž๋ฃŒ

๋ณด์—ฌ์ง€๋Š” ์—๋Ÿฌ์ธ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฐ์ƒท๋„ ํ•จ๊ป˜ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

์ขŒํ‘œ ๊ณ„์‚ฐ ๋ฐฉ์‹ ratio VS transform(zoom)

๐Ÿ’ ์„ค๋ช…

(x,y) ์ขŒํ‘œ์— ์นด๋“œ๋ฅผ ๋‘๊ณ  ์‹ถ๋‹ค. ๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ํ™”๋ฉด์˜ ํฌ๊ธฐ์™€ ๋น„์œจ์ด ๋ฐ”๋€๋‹ค๋Š” ์ ์ด๋‹ค.
์ด ๋•Œ, ๋น„์œจ ๋ฐฉ์‹๊ณผ transform(์คŒ) ๋ฐฉ์‹์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๋น„์œจ ๋ฐฉ์‹ ์žฅ์ 

  • ๋น„์œจ ๋ฐฉ์‹์€ (50%, 30%) ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ€๋กœ์˜ 50%์™€ ์„ธ๋กœ์˜ 30%๋ฅผ ์ฐพ์•„์„œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์–ด๋–ค ๋น„์œจ์ด๋‚˜ ํ•ด์ƒ๋„์—์„œ๋„ ๊นจ์ง€์ง€ ์•Š๋Š” ํ™”๋ฉด์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค

๋น„์œจ ๋ฐฉ์‹ ๋‹จ์ 

  • ์‚ฌ์šฉ์ž์˜ ํ™”๋ฉด๋น„์œจ์— ๋”ฐ๋ผ ๋ณด์ด๋Š” ํ™”๋ฉด์ด ๋‹ค๋ฅด๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋น„์œจ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.
  • ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์›€์ง์ด๋Š”๊ฒƒ์„ transition์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ, ์œˆ๋„์šฐ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€”๋•Œ์—๋„ ๋ Œ๋”๋ง์„ ๋‹ค์‹œ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๊ผฌ์ผ ์ˆ˜ ์žˆ๋‹ค.

๋น„์œจ ์„ค์ •์„ ์ž˜ ๋ชปํ•ด์„œ ์นด๋“œ๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ
image

์คŒ ๋ฐฉ์‹ ์žฅ์ 

  • ์คŒ ๋ฐฉ์‹์€ ํ•˜๋‚˜์˜ Div๋ฅผ ๋งŒ๋“ค์–ด ๋‘๊ณ  ๊ทธ Div๋ฅผ ํ™•๋Œ€, ์ถ•์†Œ ํ•ด์„œ ํ™”๋ฉด์„ ํ‘œํ˜„ํ•œ๋‹ค. (100, 200)
  • ์–ด๋–ค ๋น„์œจ์ด๋‚˜ ํ•ด์ƒ๋„์—์„œ๋„ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.

์คŒ ๋ฐฉ์‹ ๋‹จ์ 

  • ๊ฐ™์€ ๋น„์œจ์„ ์œ ์ง€ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •๋œ ๋น„์œจ๊ณผ ๋‹ค๋ฅด๋ฉด ์ž˜๋ฆฌ๋Š” ๋ถ€๋ถ„ ํ˜น์€ ๋นˆ ๋ถ€๋ถ„์ด ์ƒ๊ธด๋‹ค.
  • ํ”„๋กœ๊ทธ๋ ˆ์Šค๋ฐ”์™€ ๊ฐ™์€ UI๊ฐ€ ์žˆ๊ธฐ์— ์ž˜๋ฆฌ๋Š” ์„ ํƒ์€ ํ•˜์ง€ ๋ชปํ•ด์„œ ์‚ฌ์‹ค์ƒ ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

ํ™”๋ฉด ๋น„์œจ์ด ๋งž์ง€ ์•Š์•„์„œ ์—„์ฒญ๋‚˜๊ฒŒ ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ
image

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์นด๋“œ๊ฐ€ ์†์— ๋ณด์ด๋Š” ์—ฐ์ถœ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์คŒ ๋ฐฉ์‹์„ ์ฑ„ํƒ ํ•  ๊ฒฝ์šฐ ์˜๋„ํ•œ UX๊ฐ€ ์•ˆ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ
๊ทธ๋ž˜์„œ ๊ฐœ์ธ์ ์œผ๋กœ ๋น„์œจ ๋ฐฉ์‹์„ ์ถ”์ฒœ

์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ ๊ณ ๋ฅผ๋•Œ ํ™”๋ฉด ์ƒ๋‹จ์— ๋‚จ์€ ์‹œ๊ฐ„ ํ‘œํ˜„

๐Ÿ’ ์„ค๋ช…

๋ฐฑ๋กœ๊ทธ 49๋ฒˆ
์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ ๊ณ ๋ฅผ๋•Œ ํ™”๋ฉด ์ƒ๋‹จ์— ๋‚จ์€ ์‹œ๊ฐ„์ด ํ‘œํ˜„๋˜์–ด์•ผ ํ•œ๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ™”๋ฉด ์ƒ๋‹จ์— ๊ฒŒ์ด์ง€ ํ‘œ์‹œ
  • ๊ฒŒ์ด์ง€๊ฐ€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ค„์–ด๋“ค์–ด์•ผ ํ•จ
  • ๊ฒŒ์ด์ง€๊ฐ€ ์ค„์–ด๋“œ๋Š” ์ค‘ ์ƒ‰์ด ๋ณ€ํ•ด์•ผ ํ•จ
  • ๊ฒŒ์ด์ง€๊ฐ€ ์™„์ „ํžˆ ์ค„์–ด๋“ค์—ˆ์œผ๋ฉด ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•จ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

์ด์•ผ๊ธฐ๊พผ๊ณผ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด ๋ชจ๋‘์—๊ฒŒ ๋ณด์—ฌ์•ผ ํ•œ๋‹ค.
[์ด์•ผ๊ธฐ๊พผ์—๊ฒŒ๋งŒ ํ•ด๋‹น] ์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ๋ฅผ ๊ณ ๋ฅด์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ์นด๋“œ๊ฐ€ ๋žœ๋ค์œผ๋กœ ๊ณจ๋ผ์ง€๊ณ  ์นด๋“œ์˜ ๋””ํดํŠธ ์ฃผ์ œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค

๋ฐฐํฌ ์„œ๋ฒ„์—์„œ sudo ์‚ฌ์šฉ ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌผ์–ด๋ณด๋Š” ๋ฌธ์ œ

๐Ÿ’ ์„ค๋ช…

ncloud ๋ฐฐํฌ ์„œ๋ฒ„์—์„œ sudo ์‚ฌ์šฉ ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌผ์–ด๋ณด๋Š” ๋ฌธ์ œ.

๋ฐฐํฌ ์‹œ ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์„ nginx ํด๋”์— ๋„ฃ๋Š” ๊ณผ์ •์—์„œ
NGINX ํด๋”๊ฐ€ root ํด๋”์— ์žˆ๋‹ค๋ณด๋‹ˆ cp ๋ช…๋ น์–ด ์‚ฌ์šฉ์‹œ root๊ถŒํ•œ์ด ํ•„์š”ํ•œ๋ฐ ์ด๋•Œ sudo๋ฅผ ์น˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌผ์–ด๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
์ˆ˜๋™ ๋ฐฐํฌ๋ฅผํ•œ๋‹ค๋ฉด ๊ทธ๋ƒฅ ๋น„๋ฐ€๋ฒˆํ˜ธ ์น˜๋ฉด๋˜๋Š”๋ฐ ์ž๋™ ๋ฐฐํฌ๋ฅผ ํ•˜๋ คํ•˜๋ฉด root ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ GitHub Secret๊ฐ™์€๊ณณ์— ๋„ฃ์–ด๋‘ฌ์•ผ๋œ๋‹ค๊ฑฐ๋‚˜... ์—ฌ๋Ÿฌ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๋Š๊ปด์ง‘๋‹ˆ๋‹ค~~

1์ค„์š”์•ฝ: ์ž๋™๋ฐฐํฌ ํ•˜๋ ค๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฌผ์–ด๋ณด์ง€ ์•Š๋„๋ก ์ž˜ ์„ค์ •์ด ๋˜์–ด์žˆ์–ด์•ผ ํ•  ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค~~

๋‚จ์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์นด๋“œ ๊ณ ๋ฅด๋Š” ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ

๐Ÿ’ ์„ค๋ช…

image

์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ฃผ์ œ๊ฐ€ ์ •ํ•ด์ง€๋ฉด ๋‚จ์€ ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ์นด๋“œ๋ฅผ ๊ณ ๋ฅด๋Š” ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•œ๋‹ค.
์‚ฌ์ง„์—๋Š” "๋‹น์‹ ์€ ์ด์•ผ๊ธฐ๊พผ์ž…๋‹ˆ๋‹ค. ~~" ๋ผ๋Š” ํ…์ŠคํŠธ๊ฐ€ ์ ํ˜€์žˆ๋Š”๋ฐ ์‹ค์ œ๋กœ๋Š” ์ด์•ผ๊ธฐ๊พผ์ด ์ œ์‹œํ•œ ์ฃผ์ œ์™€ ํ•จ๊ป˜ ์ ์ ˆํ•œ ํ…์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์ ธ์•ผ ํ•œ๋‹ค.

๋ฐฑ๋กœ๊ทธ 39, 40, 41๋ฒˆ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ƒ๋‹จ ์ง„ํ–‰๋ฐ”
  • ์ด์•ผ๊ธฐ๊พผ์ด ์ง€์ •ํ•œ ์ฃผ์ œ
  • ์ž์‹ ์˜ ์นด๋“œ 6์žฅ ํŽผ์ณ์ง„ ๋ชจ์Šต

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ํ™”๋ฉด๊ณผ ๋น„์Šทํ•œ(๋˜๋Š” ๋™์ผํ•œ) UI/UX๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

๊ฒŒ์ž„ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ธฐ

๐Ÿ’ ์„ค๋ช…

  • ๊ฒŒ์ž„ ์ฝ”๋“œ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฝ์šฐ / ์ด๋ฏธ ์‹œ์ž‘๋œ ๊ฒฝ์šฐ / ์ธ์›์ด ๋ชจ๋‘ ์ฐฌ ๊ฒฝ์šฐ
  • ๊ฐ๊ฐ์˜ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ๋ฉ”์„ธ์ง€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์ข‹์„ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • 3๊ฐ€์ง€ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

[BUG] ๋ฐฉ์ด ๋‚˜๊ฐ€์กŒ๋Š”๋ฐ๋„ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฒŒ์ž„์ •๋ณด๊ฐ€ ๋‚จ์•„์žˆ์Œ

๐Ÿš’ ๋ฒ„๊ทธ ์„ค๋ช…

ํŒ€์›์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž์„ธํ•˜๊ฒŒ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ด๋‹น์ž๋„ ํ•จ๊ป˜ ํ• ๋‹นํ•ด์ฃผ์„ธ์š”.

  1. ๊ฒŒ์ž„์„ ์ƒ์„ฑ
  2. ๊ฒŒ์ž„ ์ฝ”๋“œ ๋ณต์‚ฌํ•˜๊ณ  ๋‚˜๊ฐ
  3. ๊ทธ ๊ฒŒ์ž„์— ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

โœ”๏ธ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒฐ๊ณผ

๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ชป๋“ค์–ด๊ฐ€์•ผ๋จ. ๋‚จ์•„์žˆ์œผ๋ฉด ์„œ๋ฒ„์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ ์  ์ปค์ง€๋‹ค๊ฐ€ ํ„ฐ์งˆ ๊ฐ€๋Šฅ์„ฑ~

๐Ÿ—’ ์ฐธ๊ณ ์ž๋ฃŒ

๋ณด์—ฌ์ง€๋Š” ์—๋Ÿฌ์ธ ๊ฒฝ์šฐ ์Šคํฌ๋ฆฐ์ƒท๋„ ํ•จ๊ป˜ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

ESLint์™€ Prettier ์„ค์ •

๐Ÿ’ ์„ค๋ช…

VSCode์—์„œ ์ €์žฅ์‹œ ์ž๋™ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„

  1. npm i -D eslint prettier eslint-plugin-prettier eslint-config-prettier ๊ธ€๋กœ๋ฒŒ๋กœ ์„ค์น˜๋„ ๊ฐ€๋Šฅํ•˜๊ธด ํ•˜๋‹ค
  2. VSCode ํ™•์žฅ์•ฑ ESLint, Prettier - Code formatter ์„ค์น˜
  3. VSCode Workspace ์„ค์ • (ํ•œ ์‚ฌ๋žŒ์ด ํ•˜๊ณ  Git์— ์˜ฌ๋ฆฌ๋ฉด ๋จ)
    image
    image
{
  // Set the default
  "editor.formatOnSave": false,
  // Enable per-language
  "[javascript]": {
    "editor.formatOnSave": true
  },
  "editor.codeActionsOnSave": {
    // For ESLint
    "source.fixAll.eslint": true
  }
}

์ด ์ž‘์—…์„ ํ•˜๋ฉด .vscode ํด๋”์— settings.json์ด ์ƒ์„ฑ๋˜๋ฉฐ Git์— ์˜ฌ๋ฆฌ๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ๋ฐ›์•„์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

  1. ํ™˜๊ฒฝ์„ค์ • ๋งŒ๋“ค๊ธฐ (์ด ์ž‘์—…๋„ ํ•œ ์‚ฌ๋žŒ์ด ํ•˜๋ฉด ๋œ๋‹ค)
  • npx eslint --init ํ•˜๊ณ  ์งˆ๋ฌธ์— ๋Œ€๋‹ตํ•œ๋‹ค. (ํฌ๋งท์€ JSON์œผ๋กœ ํ•œ๋‹ค)
  • prettier์™€ ์—ฐ๊ฒฐ ์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•ด .eslintrc.json์— ๋‹ค์Œ์˜ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค
// ๋ณต๋ถ™ํ•˜์ง€ ๋ง๊ณ  ์ค‘๋ณต๋œ ๋ถ€๋ถ„์„ ์ฐพ์•„์„œ ์ž˜ ์ด์–ด์ค˜์•ผํ•œ๋‹ค
{
  "plugins": ["prettier"],
  "extends": ["eslint:recommended", "plugin:prettier/recommended"],
  "rules": {
    "prettier/prettier": "error"
  }
}
  • .prettierrc.json๋„ ์œ„์™€ ๊ฐ™์ด ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ฏธ๋ฆฌ ์„ค์ • ๋œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š”๊ฒŒ ๋” ๋น ๋ฅด๋‹ค
{
  "printWidth": 100,
  "tabWidth": 2,
  "singleQuote": true,
  "trailingComma": "all",
  "bracketSpacing": true,
  "semi": true,
  "useTabs": false,
  "arrowParens": "avoid",
  "endOfLine": "auto"
}

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

ESLint์™€ Prettier๋ฅผ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

  • ๋‘๊ฐœ์˜ ์—ญํ• ์ด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„๋„ ์žˆ์ง€๋งŒ ์•ˆ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„๋„ ์žˆ์–ด์„œ

VSCode ํ™•์žฅ์•ฑ์„ ์„ค์น˜ํ•˜๋Š” ์ด์œ ?

  • ํ™•์žฅ์•ฑ์€ node_modules ํด๋”์—์„œ eslint ๋ชจ๋“ˆ์„ ์ฐพ์•„์„œ VSCode์™€ ์—ฐ๊ฒฐ์‹œ์ผœ์ค€๋‹ค

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

image

์ฐธ๊ณ ํ•œ ์‚ฌ์ดํŠธ

https://code.visualstudio.com/docs/editor/multi-root-workspaces

https://velog.io/@recordboy/ESLint-Prettier-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

์ฑ„ํŒ…๋ฐฉ ์ „์†ก ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

๊ฒŒ์ž„ ํ™”๋ฉด ๋‚ด ์šฐ์ธก ํƒญ ์ฑ„ํŒ… ์ „์†ก ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ฑ„ํŒ…์ฐฝ์˜ input ํด๋ฆญ ์‹œ ํ…์ŠคํŠธ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  • input ์ž‘์„ฑ ํ›„ ์ „์†ก ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ „์†ก
  • ๋นˆ ๋ฌธ์ž์—ด ๋˜๋Š” 250์ž๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ์ „์†ก์ด ๋˜์ง€ ์•Š๊ฒŒ ํ•ธ๋“ค๋ง

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ๋นˆ ๋ฌธ์ž์—ด ๋˜๋Š” 250์ž๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ์ „์†ก์ด ๋˜์ง€ ์•Š๊ฒŒ ๊ผผ๊ผผํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ

๋‚จ์€์‹œ๊ฐ„์— ๋”ฐ๋ผ ์กฐ์ ˆ๋˜๋Š” progress bar ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

Github ์ด์Šˆ ์„ค๋ช…

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์‹œ๊ฐ„์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์กฐ์ ˆ
  • ๋‚จ์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์›€์ง์ด๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์ฃผ์˜ ์‚ฌํ•ญ 1
  • ์ฃผ์˜ ์‚ฌํ•ญ 2

์ฑ„ํŒ… ์ „์†ก ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

์ฑ„ํŒ…์ฐฝ ๋‚ด์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๋™์ž‘๋“ค์— ๋Œ€ํ•ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋กœ์ง ๊ตฌํ˜„ํ•˜๊ธฐ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ „์†ก ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ Enter๋ฅผ ๋ˆ„๋ฅผ ๊ฒฝ์šฐ ์ฑ„ํŒ…์ด ์ „์†ก๋œ๋‹ค.
  • ์ „์†ก์ด ๋  ๊ฒฝ์šฐ Input ์ฐฝ์€ ๋น„์›Œ์ง€๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ์ฑ„ํŒ…์ด ์ „์†ก๋˜๋ฉด socket.io๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋„ ์ฑ„ํŒ…์ฐฝ์— ์ฑ„ํŒ…์ด ๋ณด์ด๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋ฉ”์ธ ํŽ˜์ด์ง€ - ๋Œ€๊ธฐ์‹ค ์ฝ”๋“œ ์ž…๋ ฅํ•˜๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

  • ์‚ฌ์šฉ์ž๊ฐ€ <์ฝ”๋“œ ์ž…๋ ฅํ•˜๊ธฐ> ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • <์ฝ”๋“œ ์ž…๋ ฅํ•˜๊ธฐ> ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ฝ”๋“œ ์ž…๋ ฅํ•˜๋Š” input์™€ ์ž…์žฅ ๋ฒ„ํŠผ์ด ์ƒ๊ธด๋‹ค.
  • ๋ฐฉ ์ฝ”๋“œ ์ž…๋ ฅ ์‹œ ์œ ํšจํ•œ ์ฝ”๋“œ์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฐฉ์œผ๋กœ ์ด๋™
  • ์ž˜๋ชป๋œ ์ฝ”๋“œ ์ž…๋ ฅ ์‹œ input ์ฐฝ ํ•˜๋‹จ์— ์—๋Ÿฌ ๋ฌธ๊ตฌ ๋ Œ๋”

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์œ ํšจํ•œ ๊ฒฝ์šฐ ์ด๋™ํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ตœ์šฐ์„ ์ ์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.

GameEngine์˜ Constructor๋ฅผ ์‹ค์ œ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋ฐ”๊ฟ‰์‹œ๋‹ค

๐Ÿ’ ์„ค๋ช…

์ง€๊ธˆ ๊ฒŒ์ž„ ์—”์ง„์„ ์‚ฌ์šฉํ•ด ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“  ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด

  const Header = new GameObject();
  Header.addClass('waiting-header');
  Header.attachToRoot();

  const NicknameHelpText = new TextObject();
  NicknameHelpText.setContent('๊ฒŒ์ž„์— ์ฐธ์—ฌํ•  ๋‹‰๋„ค์ž„์„ ์ •ํ•ด์ฃผ์„ธ์š”');
  NicknameHelpText.addClass('waiting-nickname-help');
  NicknameHelpText.attachToObject(Header);

  const InputWrapper = new GameObject();
  InputWrapper.addClass('waiting-input-wrapper');
  InputWrapper.attachToObject(Header);

์ด๋ ‡๊ฒŒ ๋˜์žˆ๋Š”๋ฐ constructor์— ๋„ฃ๋Š” parameter๊ฐ€ ์—†๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
์ด๊ฑฐ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ, ์˜ˆ๋ฅผ๋“ค๋ฉด addClass๊ฐ™์€๊ฑธ Constructor์—์„œ ๋ฐ”๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋ด…์‹œ๋‹ค~~

์˜ˆ์‹œ)

  const InputWrapper = new GameObject({
    class: ['waiting-input-wrapper'],
    parent: Header,
  });

์ด์•ผ๊ธฐ๊พผ์ด ์นด๋“œ ๊ณ ๋ฅผ ๋•Œ ์ƒ๋‹จ ์ง„ํ–‰๋ฐ” ํ‘œ์‹œ

๐Ÿ’ ์„ค๋ช…

์นด๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ  ์ฃผ์ œ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ๊นŒ์ง€ ๋‚จ์€ ์‹œ๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 60์ดˆ??

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • HTMLElement ๊ตฌํ˜„
  • ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ตฌํ˜„
  • setTimeout ๊ตฌํ˜„

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • setTimeout ์‹œ์˜ action์€ ์ผ๋‹จ alert๊ฐ™์€ ์ž„์‹œ ํ•จ์ˆ˜๋กœ ๋–ผ์›Œ๋‘ฌ๋„ ์ข‹์„๊ฒƒ๊ฐ™์•„์š”!!

์ค€๋น„ ์ƒํƒœ ๊ด€๋ฆฌ ํ›„ ๊ฒŒ์ž„ ์‹œ์ž‘ ์ด๋ฒคํŠธ

๐Ÿ’ ์„ค๋ช…

๊ฒŒ์ž„ ์ค€๋น„ ๊ด€๋ จ ์„œ๋ฒ„๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ”Œ๋ ˆ์ด์–ด๋“ค์˜ ์ค€๋น„ ์ƒํƒœ ๊ด€๋ฆฌ
  • ๋ชจ๋‘ ์ค€๋น„๊ฐ€ ๋˜๋ฉด ๊ฒŒ์ž„ ์Šคํƒ€ํŠธ ์ด๋ฒคํŠธ ๋ณด๋ƒ„

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์ฃผ์˜ ์‚ฌํ•ญ 1
  • ์ฃผ์˜ ์‚ฌํ•ญ 2

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ ์ž‘์„ฑ

๐Ÿ’ ์„ค๋ช…

๊ฒŒ์ž„์—”์ง„ ๊ตฌํ˜„์„ ์œ„ํ•ด ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ•จ๊ป˜ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

์ค€๋น„ ์ƒํƒœ ๊ด€๋ฆฌ

๐Ÿ’ ์„ค๋ช…

image

์ค€๋น„์™„๋ฃŒ/์ค€๋น„ํ•ด์ œ ๋ฒ„ํŠผ์„ ๊ตฌํ˜„ํ•˜๊ณ  ๊ฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ํ•ด๋‹น ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ค€๋น„์™„๋ฃŒ ๋ฒ„ํŠผ ๊ตฌํ˜„
  • ์ค€๋น„ํ•ด์ œ ๋ฒ„ํŠผ ๊ตฌํ˜„
  • ์ƒํƒœ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฒ„ํŠผ์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๊ตฌํ˜„
  • ์ค€๋น„๊ฐ€ ์•ˆ๋œ ์ƒํƒœ์—์„œ ์ค€๋น„์™„๋ฃŒ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์œ ์ €์˜ ์ƒํƒœ๋ฅผ '์ค€๋น„ ์ƒํƒœ'๋กœ ๋ณ€๊ฒฝ
  • ์ค€๋น„๊ฐ€ ๋œ ์ƒํƒœ์—์„œ ์ค€๋น„ํ•ด์ œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์œ ์ €์˜ ์ƒํƒœ๋ฅผ '์ค€๋น„ ์•ˆ๋จ'์œผ๋กœ ๋ณ€๊ฒฝ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์ฑ„ํŒ…์ฐฝ์— ์œ ์ €์˜ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•  ์ƒํ™ฉ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ด๋ฅผ ์—ผ๋‘์— ๋‘๊ณ  ์ฝ”๋“œ๋ฅผ ์งœ๋„๋ก ํ•˜์ž.

๋ฐฑ๋กœ๊ทธ ์ƒ์„ฑ

๐Ÿ’ ์„ค๋ช…

ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ์„ ๊ธฐํšํ•˜์—ฌ ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํŒ€์› ๋ชจ๋‘๊ฐ€ ์ฐธ์—ฌํ•˜์—ฌ ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋น ์ง„ ๋ถ€๋ถ„์ด ์—†๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋„๋ก ๋…ธ๋ ฅํ•œ๋‹ค.

๋ฉ”์ธ ํŽ˜์ด์ง€ - ๋ฐฉ ๋งŒ๋“ค๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

  • ๋ฐฉ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐฉ์„ ๊ฐœ์„คํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฐฉ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์„œ๋ฒ„์— ๋ฐฉ ๊ฐœ์„ค์— ๋Œ€ํ•œ request๋ฅผ ๋‚ ๋ฆฐ๋‹ค.
  • ์ •์ƒ์ ์œผ๋กœ ๊ฐœ์„ค ์‹œ success response

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

์Œ์„ฑ ์ฑ„ํŒ… ํ•ด์ œ

๐Ÿ’ ์„ค๋ช…

์œ ์ €๊ฐ€ ์›ํ•  ๋•Œ ์Œ์„ฑ ์ฑ„ํŒ…์—์„œ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์Œ์„ฑ ์ฑ„ํŒ…์—์„œ ๋‚˜๊ฐ€์ง€๋Š”์ง€ ํ™•์ธ

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ํ•ด์ œํ•œ ํ›„ ๋‹ค์‹œ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ

๊ฒŒ์ž„๋ฐฉ ์ฝ”๋“œ View ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

image

์ž์‹ ์ด ์†ํ•œ ๊ฒŒ์ž„๋ฐฉ์˜ ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ UI๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋Œ€๊ธฐ์‹ค ํ™”๋ฉด ์šฐ์ธก ํ•˜๋‹จ์— ๊ฒŒ์ž„๋ฐฉ ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

2์ฃผ์ฐจ ๋ฐฐํฌ

๐Ÿ’ ์„ค๋ช…

2์ฃผ์ฐจ ์Šคํ”„๋ฆฐํŠธ ๋! ์ฝ”๋“œ ํ”„๋ฆฌ์ง• ํ›„ ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„ ๋ฐฐํฌ

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฐฐํฌ ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
  • ํ”„๋ก ํŠธ ์„œ๋ฒ„
  • ๋ฐฑ ์„œ๋ฒ„

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ๊นƒํ—ˆ๋ธŒ ์•ก์…˜์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž.

์Œ์„ฑ์ฑ„ํŒ…์„ ์œ„ํ•œ PeerJS ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ~~

๐Ÿ’ ์„ค๋ช…

์ง„ํ˜๋‹˜์˜ PeerJS๋ฅผ ์œ„ํ•œ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค ~~
๊ธฐ์กด backend ์ฝ”๋“œ์— ์‚ฝ์ž…์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ๊ทธ๊ฒƒ๋„ ์ฐธ๊ณ ํ•ฉ์‹œ๋‹ค ~~

์ฐธ๊ณ ์ž๋ฃŒ: https://github.com/peers/peerjs-server#combining-with-existing-express-app

ncloud ์„œ๋ฒ„ ์„ค์ •

๐Ÿ’ ์„ค๋ช…

nCloud ์„œ๋ฒ„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ssh ํ‚ค์„ค์ •
  • ๋…ธ๋“œ ์„ค์น˜
  • git clone

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์™ธ๋ถ€์—์„œ DB root๋กœ ์ ‘์†ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๊ถŒํ•œ ์„ค์ •

2์ฃผ์ฐจ์— ํ•„์š”ํ•œ ์„œ๋ฒ„ API ๋ช…์„ธ์„œ ์ž‘์„ฑ

๐Ÿ’ ์„ค๋ช…

์„œ๋ฒ„ API ๊ฐœ๋ฐœ ์ „ ๋ช…์„ธ์„œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ•จ๊ป˜ ์„œ๋ฒ„ 2์ฃผ์ฐจ API ๋ช…์„ธ์„œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋ฉ”์ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„

๐Ÿ’ ์„ค๋ช…

์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”์ธ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฐฉ ๋งŒ๋“ค๊ธฐ, ์ฝ”๋“œ ์ž…๋ ฅํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ณด๊ณ  ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฉ”์ธ URL ์ ‘์† ์‹œ ๋ฉ”์ธ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง
  • ๋ฐฉ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ๊ณผ ์ฝ”๋“œ ์ž…๋ ฅํ•˜๊ธฐ ๋ฒ„ํŠผ ๋ Œ๋”๋ง

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

logger ์„ค์ •ํ•˜๊ธฐ

๐Ÿ’ ์„ค๋ช…

๊ฒŒ์ž„ log ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ logger๋ฅผ ์„ค์ •ํ•˜์ž. winston์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•œ๋‹ค.

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • logger ์„ค์ •
  • ์ž‘์—… ํ™˜๊ฒฝ ์„ค์ •

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

Socket.io CORS

๐Ÿ’ ์„ค๋ช…

socket.io CORS ์„ค์ •

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์„œ๋ฒ„ OK?
  • ํด๋ผ์ด์–ธํŠธ OK?

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

dev ์™€ prod์˜ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์œ ์˜

์›นํŒฉ/๋ฐ”๋ฒจ/๋ฆฐํŠธ ๋“ฑ ํ™˜๊ฒฝ์„ค์ •

๐Ÿ’ ์„ค๋ช…

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์žก๊ณ  depenedency๋“ค ์„ค์น˜ํ•ฉ์‹œ๋‹ค~~`

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • FE
    • ๋ฐ”๋ฒจ
    • ์›นํŒฉ
    • eslint
    • prettier
    • stylelint
    • dotenv ํ…œํ”Œ๋ฆฟ
  • BE
    • ๋ฐ”๋ฒจ
    • ์›นํŒฉ
    • eslint
    • prettier
    • dotenv ํ…œํ”Œ๋ฆฟ
  • nginx (ํ•„์š”์—†์œผ๋ฉด ์•ˆํ• ์ˆ˜๋„~~???)

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ๋ฐฐํฌ ํ›„ ํ™•์ธ

์ขŒ์ธก ํƒญ ๊ธฐ๋Šฅ ๊ตฌํ˜„ - ์ธ์› ๋ฐ ์ ์ˆ˜

๐Ÿ’ ์„ค๋ช…

๊ฒŒ์ž„ ํ™”๋ฉด ๋‚ด ์ขŒ์ธก ํƒญ์— ์ „์ฒด ํ”Œ๋ ˆ์ด์–ด ์ธ์› ์ˆ˜ ๋ฐ ์ ์ˆ˜ ๋ Œ๋”

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ขŒ์ธก ํƒญ ๋ ˆ์ด์•„์›ƒ ์„ค์ •
  • ์ขŒ์ธก ํƒญ์— ํ˜„์žฌ ์ ‘์†ํ•œ ์ธ์› ์ˆ˜ ๋ Œ๋”
  • ๊ฐ ํ”Œ๋ ˆ์ด์–ด๋งˆ๋‹ค ํ˜„์žฌ ์ ์ˆ˜ ๋ Œ๋” (๊ฒŒ์ž„ ์‹œ์ž‘ ์ „์—๋Š” 0)

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

๋‹‰๋„ค์ž„ 12๊ธ€์ž ์ œํ•œ ๋‘๊ธฐ

๐Ÿ’ ์„ค๋ช…

๋ ˆ์ด์•„์›ƒ width ์ œํ•œ์œผ๋กœ ๋‹‰๋„ค์ž„์ด ๊ธธ๋ฉด ๋ ˆ์ด์•„์›ƒ ๊นจ์ง

๐Ÿ“‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋‹‰๋„ค์ž„ ์ˆ˜๋™๋ณ€๊ฒฝ ์‹œ 12๊ธ€์ž ์ดํ•˜๋กœ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ถ”๊ฐ€

๐Ÿšง ์ฃผ์˜ ์‚ฌํ•ญ

์ด์Šˆ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์˜๊นŠ๊ฒŒ ์‚ดํŽด๋ณผ ์‚ฌํ•ญ

  • ์ฃผ์˜ ์‚ฌํ•ญ 1
  • ์ฃผ์˜ ์‚ฌํ•ญ 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.