24b0d121e09c28a8699fe8b115ef046f5d4c9c9aae


๋ชจ ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ใ…‡๋งํ˜ธ์ฒ˜๋Ÿผ ์†Œ๊ทœ๋ชจ๋กœ ์‚ฌ๋žŒ ๋ชจ์•„์„œ ํ•˜๋ ค๊ณ  ๋งŒ๋“  ๊ฒŒ์ž„์ด๊ณ 


์ด์ „์—๋Š” ์œ ๋‹ˆํ‹ฐ๋กœ ๊ฒŒ์ž„ ๋งŒ๋“ค์–ด๋ดค๊ณ  ์ด๋ฒˆ์—๋Š” ๋ฆฌ์•กํŠธ, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์— ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์กฐํ•ฉ์œผ๋กœ ์ˆœ์ˆ˜ ์›น์œผ๋กœ ์ œ์ž‘์„ ํ•ด๋ด„


๊ฒŒ์ž„ ์ž์ฒด๋Š” ๋ ˆ์ง€์Šคํƒ•์Šค ์ฟ  ๋ผ๋Š” ์ด๋ฏธ ์žˆ๋Š” ๋ณด๋“œ๊ฒŒ์ž„ ๋ฃฐ์— ๊ฐ์ƒ‰์ด ๋”ํ•ด์กŒ์„ ๋ฟ์ด๋‹ˆ ํŠน๋ณ„ํ•œ๊ฒŒ ์—†๊ณ 


์œ ๋‹ˆํ‹ฐ๋•Œ๋ž‘์€ ๋‹ฌ๋ž๋˜ ์ ์ด๋‚˜ ๋А๋‚€์ ์„ ์ •๋ฆฌํ•˜๊ณ ์‹ถ์–ด ๊ธ€์„ ๋‚จ๊น€


์™œ ์œ ๋‹ˆํ‹ฐ๋กœ ์•ˆํ•˜๊ณ  ์›น์œผ๋กœ ํ–ˆ๋ƒ?


์ถœ์‹œํ•˜๋Š” ๋ถ€๋ฅ˜๊ฐ€ ์•„๋‹ˆ๊ณ  ๋งํฌ๊ฑธ๊ณ  ๊ฐ„๋‹จํžˆ ์—ฌ๋Ÿฟ์ด์„œ ad hoc์‹์œผ๋กœ ํ—ค์ณ๋ชจ์—ฌ ํ•˜๋Š” ๊ฒŒ์ž„์œผ๋กœ์„œ ์œ ๋‹ˆํ‹ฐ๋กœ ๋งŒ๋“  pc์‹คํ–‰ํ˜•์ด๋‚˜ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฒŒ์ž„์€ ์ ‘๊ทผ์„ฑ์ด ์•ˆ์ข‹์•˜์Œ


์œ ๋‹ˆํ‹ฐ์— html5๋นŒ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ ํฌํ†ค์—”์ง„์œผ๋กœ ๋งŒ๋“ค์—ˆ์„๋•Œ ์ด์ƒํ•˜๊ฒŒ ํƒญ์ „ํ™˜๋“ฑ์œผ๋กœ ํ•ด๋‹น ๊ฒŒ์ž„ ์„ธ์…˜์ด ์ˆ˜๋ฉด์ƒํƒœ์— ๋“ค์–ด๊ฐ€๋ฉด ๊ทธ๋Œ€๋กœ ๊ฒŒ์ž„์ด ๋จนํ†ต์ด ๋˜๋Š” ํ˜„์ƒ๋„ ์žˆ์—ˆ๊ณ 


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





24b0d121e09c28a8699fe8b115ef046f5d4d9a9cab


์›น๊ฐœ๋ฐœ ๊ด€๋ จ ์ง€์‹์€ ์ค‘ํ•™๊ต๋•Œ html๋ฐฐ์šด๊ฒŒ ๋งˆ์ง€๋ง‰์ด์—ˆ๋Š”๋ฐ


์œ ๋ฐ๋ฏธ๋กœ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ผ๋‹จ ์ง„์ž…์žฅ๋ฒฝ์ด ๋Œ€๋‹จํ•˜๋‹ค๊ณ  ๋А๋‚Œ


html css ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฆฌ์•กํŠธ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์•กํŠธ+ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๊นŒ์ง€ ์‚ฐ๋„˜์–ด ์‚ฐ..


์ด๊ฑฐ ๋ฐœ๋‹ฌ๊ณผ์ •๋„ ์ฐธ ๋Œ€๋‹จํ•œ๊ฒŒ...ํƒœ์ดˆ์— html์ด ์žˆ์—ˆ๋Š”๋ฐ html๋งŒ์œผ๋กœ๋Š” ์Šคํƒ€์ผ๋ง์ด ๋ณต์žกํ•˜๋‹ˆ css๊ฐ€ ์ƒ๊ธฐ๊ณ ..


์›นํŽ˜์ด์ง€๊ฐ€ ์‚ด์•„์›€์ง์—ฌ์•ผํ•˜๋‹ˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ƒ๊ธฐ๊ณ .. ๊ทผ๋ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”๋ž‘ 1๋„ ๊ด€๋ จ์—†๊ณ  (์ œ์ผ์ถฉ๊ฒฉ)


๊ทธ๊ฒƒ์œผ๋กœ ์กฐ์ฐจ๋„ ๊ฐœ๋ฐœ์ด ๋„ˆ๋ฌด ์–ด๋ ค์šฐ๋‹ˆ ์ž๋ฐ”์Šคํฌ๋ฆฝ๋“œ html css๋ฅผ ๋‹ค ์งœ์ฃผ๋Š”


ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ์ƒ๊ธฐ๋Š”๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋„ ๋ญ” ์žฅ๋‹จ์ ์ด ๊ทธ๋ฆฌ ๋งŽ์€์ง€ vue angular react next๋ญ ๊ฐœ๋งŽ๊ณ 


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋งˆ์ €๋„ ๊ฐœ์ฉ์—ˆ๋‹ค๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์งœ์ฃผ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ƒ๊ธฐ๊ณ  (๊ฐœ์›ƒ๊น€. ๊ทธ๋ž˜์„œ ํƒ€์Šค ํ•˜๋ ค๋ฉด ์ž์Šค๋„ ์•Œ์•„์•ผํ•จ)


๊ฑฐ๊ธฐ์— css๋„ ์ฉ์—ˆ์œผ๋‹ˆ sass์ธ์ง€ css๋ฅผ ์งœ์ฃผ๋Š” css๋„ ์žˆ๊ณ 


์ •๋ง ๊ฑฐ๋Œ€ํ•œ ์„ธ๊ณ„์˜€์Œ.


๋‚ด๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์›นํŽ˜์ด์ง€ ๋งŒ๋“ค๋•Œ๋Š” ๋“œ๋ฆผ์œ„๋ฒ„ ์“ฐ๋ฉด OK์˜€๋˜๊ฑฐ๊ฐ™์€๋ฐ.



24b0d121e09c28a8699fe8b115ef046f5d489a99


์ฒซ๋ฒˆ์งธ ๋ถˆ์•ˆ์š”์†Œ๋Š” ์›น๊ฐœ๋ฐœ ์ง„์ž…์žฅ๋ฒฝ์ด์—ˆ๊ณ  ๋‘๋ฒˆ์งธ๋Š” ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ํ•œ๋ฒˆ๋„ ์•ˆ์จ๋ดค๋Š”๋ฐ


๊ฒŒ์ž„์„œ๋ฒ„๋กœ ์ ํ•ฉํ•œ์ง€ ์กฐ์‚ฌํ•˜๋ ค๊ณ  ๋งŒ์ ธ๋ณด๋ฉด์„œ Realtime Database๋ฅผ ์“ฐ๋ฉด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ’ ๋ณ€ํ™”๋ฅผ listenํ• ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒƒ์„ ์•Œ์•˜๊ณ 


์„œ๋ฒ„๊ฐ€ ์‹ฑ๊ฐ€ํด์— ์žˆ๊ธฐ๋Š” ํ•ด๋„ ๊ทธ๋ ‡๊ฒŒ ๋ ‰์ด ์‹ฌํ•˜์ง€๋Š” ์•Š์•˜์Œ


์œ ์ผํ•˜๊ฒŒ ์•„์‰ฌ์šด๊ฒŒ ํฌํ†ค์—”์ง„์€ ๋„คํŠธ์›Œํฌ์ƒ์œผ๋กœ ๋™๊ธฐํ™”๋œ ์‹œ๊ฐ„์Šคํƒฌํ”„๋ฅผ ์ œ๊ณตํ–ˆ๋Š”๋ฐ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋Š” ๊ทธ๋Ÿฐ๊ฑด ์—†์—ˆ๋˜๊ฑฐ๊ฐ™์Œ.


ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” timestamp๋ณ€์ˆ˜๋Š” ๋กœ์ปฌ์ƒ์— ์กด์žฌํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๋ฅผ db์— ์˜ฌ๋ฆฌ๋ฉด ํŒŒ์ด์–ด๋ฒ ์ด์Šค๊ฐ€ ๊ทธ ๊ฐ’์„ ํ˜„์žฌ์‹œ๊ฐ„์œผ๋กœ ์น˜ํ™˜ํ•ด์„œ ๋Œ๋ ค๋ณด๋‚ด์ฃผ๋Š” ๊ทธ๋Ÿฐ ๊ฑฐ์˜€์Œ


๋งŒ์•ฝ์— ์ข€๋” ์‹ค์‹œ๊ฐ„์„ฑ์ด ์ค‘์‹œ๋˜๋Š” ๊ฒŒ์ž„์ด์—ˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ์ƒ๋‹นํžˆ ์œ„ํ—˜ํ–ˆ์ง€๋งŒ ๋ณด๋“œ๊ฒŒ์ž„์ด๊ธฐ์— 500ms์ •๋„ ์ฐจ์ด๋Š” ๊ดœ์ฐฎ๊ณ 


๋Œ€์‹  db์— ์ €์žฅ๋œ ์ •๋ณด๊ฐ€ ๊ทธ๋Œ€๋กœ ๊ฒŒ์ž„์ƒํƒœ์ด์ž ํ™”๋ฉด์ƒํƒœ์ด๋„๋ก ๋งŒ๋“ค๋ฉด ๋ฌธ์ œ๋Š” ์—†์„๊ฑฐ๋ผ ํŒ๋‹จํ•จ


ํ˜น์‹œ ์ง€๊ธˆ์ด๋ผ๋„ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์— ์‚ฌ์‹ค ํฌํ†ค์—”์ง„์ฒ˜๋Ÿผ ์‹ค์‹œ๊ฐ„ ์ „ ํด๋ผ์ด์–ธํŠธ ๋™๊ธฐํ™”์ค‘์ธ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์žˆ์—ˆ๋˜๊ฑฐ๋ผ๋ฉด ์•Œ๋ ค์ฃผ๊ธธ ๋ฐ”๋žŒ...




24b0d121e09c28a8699fe8b115ef046a7f69e3cc


๋ฆฌ์•กํŠธ์—๋Š” useContext๋ผ๋Š” ํ›…์ด ์žˆ๋Š”๋ฐ


์ด๊ฒŒ ๋ชจ๋“  UI์š”์†Œ์— ๊ฑฐ์˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ’์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•จ


๊ทธ๋ž˜์„œ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ db eventlistener๋ž‘ ์ด๊ฑธ ์ž˜ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ”๋€ ๊ฐ’์ด ๋ฐ”๋กœ context๋กœ ์ „๋‹ฌ๋˜๊ณ 


๊ทธ๊ฒŒ ๋ฐ”๋กœ ๋ชจ๋“  component์— ์ „๋‹ฌ๋˜๊ณ , ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ฒŒ์ž„๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ๋ฉด ๊ทธ๊ฒŒ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋กœ ์˜ฌ๋ผ๊ฐ€๊ณ .. ๊ทธ๊ฒŒ ๋‹ค์‹œ context๋กœ ๋Œ์•„์™€์„œ ์ „์ฒด์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๊ณ ..


์ด๋Ÿฐ์‹์œผ๋กœ ์“ฐ๋ฉด ์ง๊ด€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์“ธ์ˆ˜์žˆ์„๊ฑฐ๊ฐ™์•„์„œ ๋ฆฌ์•กํŠธ์˜ context์™€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์™„์ „ํžˆ ๋˜‘๊ฐ™๊ฒŒ ๋งŒ๋“ค์–ด๋†“์Œ


์ข€๋” ์‹ ๊ฒฝ์ผ์œผ๋ฉด ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—์„œ ๋ฐ›์€ ์ •๋ณด๋ฅผ ํ›„์ฒ˜๋ฆฌํ•ด์„œ ์ข€๋” ๋ฆฌ์•กํŠธ์—์„œ ์“ฐ๊ธฐ ์ข‹๊ฒŒ ์ „ํŒŒํ• ์ˆ˜๋„ ์žˆ์—ˆ์„๊ฑด๋ฐ,


์˜ˆ๋ฅผ ๋“ค์–ด ์นด๋“œ๋ผ๋Š” ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ๋Š” ์ด๋ฆ„๋„์žˆ๊ณ  ์ด๋ฏธ์ง€id๋„ ์žˆ์„๊ฑฐ์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” id๋งŒ ์˜ฌ๋ฆฌ๊ณ  id๊ฐ’์„ ๋ฐ›์•˜์„ ๋•Œ ๋‹ค์‹œ ์นด๋“œ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•œ๋‹ค๋˜์ง€


๊ทธ๋Ÿฐ๋ฐ ์ง€๊ธˆ์€ ์ฒ˜์Œํ•ด๋ณด๋Š”๊ฑฐ๋ผ ๋„คํŠธ์›Œํฌ ๋™๊ธฐํ™” ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™” ํ•ด๋ณด๋ ค๊ณ  ๋ฌด๋ฆฌํ•ด์„œ ์™„์ „ํžˆ ๋˜‘๊ฐ™์ด ๋งŒ๋“ฌ


๊ทธ๋ ‡๋‹ค๊ณ  ํ•„์š”์—†๋Š” ์ •๋ณด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฐ™์ด ์˜ฌ๋ ค๋ฒ„๋ ธ๋‹ค๋Š”๊ฑด ์•„๋‹ˆ๊ณ  ์ด์ „๊ฐ™์œผ๋ฉด ํด๋ž˜์Šค๋กœ ๊ฐ์ŒŒ์„ ์ •๋ณด๋ฅผ ์ผ์ผํžˆ id๋ฅผ ์ฝ๊ณ  ๊ทธ ๊ฐ’์„ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋“ค๋กœ ๋Œ€์ฒดํ•จ


24b0d121e09c28a8699fe8b115ef046c68f52e4f


์ข‹์€๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๊ณ  ๋ฌด์ˆ˜ํ•œ ๋ณ€์ˆ˜/ํ•จ์ˆ˜์„ ์–ธ์— ์‹œ๋‹ฌ๋ฆผ


๋‹ค์Œ์—๋Š” ๋” ์‹ ๊ฒฝ์จ์„œ ๋งŒ๋“ค์–ด๋ณด์ž..



24b0d121e09c28a8699fe8b115ef046ec94fccf2


์œ ์ผํ•˜๊ฒŒ db์ •๋ณด๋ฅผ ํ›„์ฒ˜๋ฆฌํ•ด์•ผํ–ˆ๋˜๊ฒŒ HashMap ํ˜•, ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๋ฌธ์„œ์—๋Š” map ์˜ค๋ธŒ์ ํŠธ๋„ ์ง€์›ํ•œ๋‹คํ–ˆ๋Š”๋ฐ


์‹ค์ œ๋กœ ๋ฐ›์•„๋ณด๋‹ˆ ๊ทธ๋ƒฅ Object์— Key:Value๊ฐ€ ๋‹ฌ๋ฆฐ๊ฑฐ๋กœ ์ธ์‹ํ•˜๊ณ  Map์œผ๋กœ ์ธ์‹์„ ์•ˆํ•ด์„œ Object๋ฅผ ํ’€์–ด์„œ ๋งต์œผ๋กœ ๋‹ค์‹œ ๋„ฃ์–ด์•ผํ–ˆ์Œ


realtime database์–˜๊ธฐ๊ฐ€ ์•„๋‹ˆ์—ˆ๋‚˜๋ด„



24b0d121e09c28a8699fe8b115ef046543aefb38


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€ํ™”๋ฅผ ๋“ฃ๋Š” eventlistener๋ฅผ ์„ค์ •ํ•˜๋Š”๊ฑฐ๋„ ์—ฌ๋Ÿฌ๋ฒˆ ์‹œ๋„๋ฅผ ๊ฑฐ์ณค๋Š”๋ฐ


๊ธฐ๋ณธ์ ์œผ๋กœ ์ž์‹๋…ธ๋“œ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณ€ํ™” ๊ทธ๋ฆฌ๊ณ  ์ž๊ธฐ์ž์‹  ๋…ธ๋“œ์˜ ๋ณ€ํ™”๋ฅผ ๋“ค์„ ์ˆ˜ ์žˆ์Œ


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


(์˜ˆ๋ฅผ๋“ค์–ด ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋ฆ„๋งŒ ๋ฐ”๊พธ๋ฉด ๋ฐ”๋€์ด๋ฆ„๋งŒ ๋ฐ›๊ณ ์‹ถ์ง€๋งŒ ํ”Œ๋ ˆ์ด์–ด ํ†ต์ฑ„๋กœ ์ด๋ฆ„ ์ฃผ์†Œ ์ „ํ™”๋ฒˆํ˜ธ๋“ฑ์ด ์‹น ๋‹ค์˜ด)


๊ผญ ํ•„์š”ํ•œ ์ •๋ณด์˜ ์ตœ ํ•˜์œ„๋…ธ๋“œ์— ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋‹ฌ๋ผ๊ณ  ๋ฌธ์„œ์— ์ ํ˜€์žˆ์Œ


๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” ๊ฐ€์žฅ ์•„๋ž˜๋‹จ์— ๋ฆฌ์Šค๋„ˆ๋ฅผ ์‹น ๋‹ค ๋‹ฌ์•˜๋Š”๋ฐ


๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ๋ณด๋‹ˆ๊นŒ ์–ด๋–ค ์ •๋ณด๋Š” ์ˆœ์ฐจ์ /๊ฐœ๋ณ„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„๊ฒŒ ์•„๋‹ˆ๊ณ  ํ†ต์ฑ„๋กœ ๋‚ ์•„์™€์•ผํ•˜๋Š”๊ฒŒ ๋งž๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ์Œ


์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์ž„๋ณด๋“œ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธ ํ• ๋•Œ ๊ทธ์— ๋”ธ๋ฆฐ ์นด๋“œ์ƒํƒœ ์ฝ”์ธ์ƒํƒœ๋“ฑ์€ ๋”ฐ๋กœ๋”ฐ๋กœ ๋ฐ›์•˜๋‹ค๊ฐ€๋Š” ํ˜„์žฌ์ƒํ™ฉ ํ•ด์„์„ ์ž˜๋ชปํ• ์ˆ˜๊ฐ€์žˆ์—ˆ์Œ


๋ฐ˜๋Œ€๋กœ ์ •๋ณด ์—…๋ฐ์ดํŠธ๋ฅผ ์˜ฌ๋ฆด๋•Œ๋Š” ํ•ญ์ƒ ๊ด€๋ จ๋œ ์ •๋ณด๋งŒ ํ•€ํฌ์ธํŠธ๋กœ ์˜ฌ๋ฆฌ๋Š”๊ฒŒ ๋งž์•˜์Œ



24b0d121e09c28a8699fe8b115ef046c62f62b4a


์ฒ˜์Œ์—๋Š” ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๊ผญ ํ•„์š”ํ•œ๋•Œ์— ์˜ฌ๋ฆฌ๊ณ  db์—์„œ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋Š” ๋ชจ๋‘ ๋กœ์ปฌ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ถ”๋ก ํ•˜๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ


๋‚˜์ค‘์— ์ฑ„ํŒ…๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๋‹ˆ๊นŒ ๊ฒฐ๊ตญ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์€ ์ฑ„ํŒ…์ด ์ง€๋ฐฐํ•˜๊ฒŒ๋˜๊ณ  ๊ฒŒ์ž„์ƒํƒœ๊ตํ™˜์— 1๋ฐ”์ดํŠธ 2๋ฐ”์ดํŠธ ์•„๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ํ•˜๋‚˜๋„ ์—†์—ˆ๋˜๊ฑฐ์ž„


์–ด์ฐจํ”ผ ๋А๋ฆฟ~๋А๋ฆฟ ์ง„ํ–‰๋˜๋Š” ์›น๊ฒŒ์ž„์ด๋‹ˆ๊นŒ ๋ณ„ ์ฐจ์ด๋„ ์•ˆ๋‚˜๊ณ .


db์— ์ •๋ณด ์˜ฌ๋ฆฌ๋Š”๊ฑฐ์— ์”น๊ฒŒ์ด๊ฐ™์ด ๊ตด์ง€๋ง๊ณ  ํŽธํ•˜๊ฒŒ ํŽธํ•˜๊ฒŒ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ๋„ˆ๋ฌด ๋Šฆ๊ฒŒ ๊นจ๋‹ฌ์Œ.



24b0d121e09c28a8699fe8b115ef046c66f7204f


๊ทธ๋ฆฌ๊ณ  ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—๋Š” atomic ์—…๋ฐ์ดํŠธ๋ผ๊ณ  ๋‹จ์ˆœ ๊ฐ’ ์ฆ๊ฐ€์™€ ๊ฒฝ๊ฐ์˜ ๊ฒฝ์šฐ ๊ทธ ์ฐจ์ด๋งŒ ์—…๋ฐ์ดํŠธ ํ• ์ˆ˜์žˆ๋Š” ํ•จ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฑธ


๊ฐœ๋ฐœ ํ›„๋ฐ˜๋ถ€์—์„œ์•ผ ์•Œ์•˜๋Š”๋ฐ ์ด๊ฒŒ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ ํ˜€์žˆ์Œ. ๋ฏธ๋ฆฌ ์•Œ์•˜์œผ๋ฉด ๋” ์ž์ฃผ ์ผ์„ ๋“ฏ.



ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๊ด€๋ จ ๊นจ๋‹ฌ์€๊ฑด ์ด์ •๋„๊ณ 



24b0d121e09c28a8699fe8b115ef046ece41c9f4

UI๋Š” ์ง„์งœ ๋จธ๋ฆฌํ„ธ ๋ฝ‘์œผ๋ฉด์„œ ๋งŒ๋“ค์—ˆ๋‹ค..

flex๋„ ์žˆ๊ณ  grid๋„ ์žˆ๊ณ  ๋ธ”๋ก, ์ธ๋ผ์ธ.. ๋™์˜์ƒ ๋ณด๋ฉด์„œ ๋‹ค ๋ฐฐ์› ๋Š”๋ฐ

์ฒ˜์Œ์—๋Š” flex๋กœ UI๊ทธ๋ฆฌ๋‹ค๊ฐ€ ๋‹ค width height %๋กœ ๋ฐ”๊ฟˆ


ํ•ญ์ƒ ํ™”๋ฉด์˜ x%๋ฅผ ์ฐจ์ง€ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” UI์— ๋Œ€ํ•ด์„œ flex๋ฅผ ์“ฐ๋ฉด ๋งŒ์•ฝ ์ปจํ…์ธ ๊ฐ€ ๊ทธ ๋น„์œจ๋ณด๋‹ค ์ปค์ง€๋ฉด ๊ทธ๋Œ€๋กœ ์ปจํ…Œ์ด๋„ˆ UI๊ฐ€ ๋”ฐ๋ผ ์˜ฌ๋ผ๊ฐ€๋ฒ„๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Œ


๊ทธ๋ฆฌ๊ณ  ํ…Œ๋งˆ ์ƒ‰ ์ผ๊ด„ ๊ด€๋ฆฌํ•˜๋Š”๊ฑฐ .. css๋กœ ์–ด์ผ€ํ•˜๋Š”๊ฑธ๊นŒ ๋ถ„๋ช… CSS๋„ ๋ฌด์Šจ ๋ณ€์ˆ˜ ์„ ์–ธ์„ ํ•ด์„œ ๋Œ๋ ค์“ฐ๋Š”๊ฒŒ ์žˆ์„๊ฒƒ๊ฐ™์•˜๋Š”๋ฐ


๊ฒฐ๊ตญ์—๋Š” ํ…Œ๋งˆ ๊ด€๋ จ css ํ•œ๊ณณ์— ๋ชจ์•„๋‘๊ณ  ์กฐ๋ฆฝ๋ธ”๋ก๋งˆ๋ƒฅ ํ•„์š”ํ•œ๊ณณ๋งˆ๋‹ค ๋‚ด๋‚ด ๋ถˆ๋Ÿฌ์„œ import์— ์‹œ๋‹ฌ๋ ธ์Œ


css๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ ๋งŒ๋“œ๋Š”๊ฑด ์˜์™ธ๋กœ ๊ฐœ๊ฟ€์ด์—ˆ์Œ ์œ ๋‹ˆํ‹ฐ์— ๊ทธ ๋ญ๋”๋ผ.. ํŠธ๋žœ์ง€์…˜ ์œ ๋ช…ํ•œ ํŒจํ‚ค์ง€ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๊ฑฐ๋‹ฎ์Œ


์•„์ง๋„ ์ดํ•ด ์•ˆ๊ฐ€๋Š”๊ฑด ํ™”๋ฉด ๋น„์œจ ํฐํŠธ์‚ฌ์ด์ฆˆ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฑฐ์ง€


rem๋‹จ์œ„๋ฅผ ์“ฐ๋ฉด ๋œ๋‹ค๊ณ  ๋‚˜์˜ค๋Š”๋ฐ ๊ทธ๊ฑฐ ์จ๋„ ํ™”๋ฉด๋งˆ๋‹ค ์ข€ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ์Œ


css๊ณต๋ถ€์— ์‹œ๊ฐ„์„ ๋งŽ์ด ๋ชป์จ์„œ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜์Œ



24b0d121e09c28a8699fe8b115ef046c65f72a4698


๊ฒŒ์ž„์—์„œ ์“ฐ๋Š” ์ด๋ฏธ์ง€๋‚˜ ์‚ฌ์šด๋“œ๋„ ํŒŒ์ผ ํ•œ๊ณณ์— import ๋‹ค ๋ชฐ์•„๋„ฃ๊ณ  enum์œผ๋กœ ๋“ฑ๋กํ•ด์„œ ๊บผ๋‚ด์ผ๋Š”๋ฐ


์ง„์งœ ๋ฐ”๋ณด๊ฐ™์€ ์ง“์ธ๋ฐ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ๋‚˜ ๊ถ๊ธˆํ•จ.


๋ณ€์ˆ˜์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฅธ๊ฑธ ํ‘œ์‹œํ•ด์•ผํ• ๋•Œ ํ›„๋ณด ์ด๋ฏธ์ง€๋ฅผ ๋ชฝ๋•… ๊ทธ ํŽ˜์ด์ง€์— importํ•ด์„œ ๊ณจ๋ผ์“ธ์ˆ˜๋Š” ์—†์œผ๋‹ˆ ์ข€ ์ฐจ์„ ์ฑ…์œผ๋กœ ์ƒ๊ฐํ•œ๊ฑด๋ฐ



24b0d121e09c28a8699fe8b115ef046c60f42e499b


์–ธ์–ด ํ˜„์ง€ํ™”๊ฐ™์€ ๊ฒฝ์šฐ i18next๋ผ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์–ด์„œ ์ˆ˜์›”ํ–ˆ๋Š”๋ฐ


ํ…์ŠคํŠธ์•ˆ์— ๋ณ€์ˆ˜์ง‘์–ด๋„ฃ๊ธฐ, ๋ถ€๋ถ„์  ์Šคํƒ€์ผ๋„ฃ๊ธฐ ๋“ฑ์€ ์ง€์›์•ˆํ•ด์„œ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผํ–ˆ๊ณ 


ํ˜„์ง€ํ™”๋ฅผ ์ ์šฉํ•ด์„œ ๋งŒ๋“ค๋ฉด์„œ ui๊ตฌ์กฐ๋ฅผ ์ข€ ๋งŽ์ด ๋ฐ”๊ฟ”์•ผํ–ˆ์Œ


์–ด๋А ํ”„๋กœ์ ํŠธ๋‚˜ ๋‹ค์–ธ์–ด ์ง€์› ๊ณ„ํš์ด ์žˆ๋‹ค๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ทธ๊ฑธ ๊ณ ๋ คํ•˜๊ณ  ๋งŒ๋“ค์—ˆ์–ด์•ผํ•˜๋Š”๊ฒŒ ๋งž์ง€๋งŒ...



UI๊ด€ํ•ด์„œ๋Š” ์ด์ •๋„๊ณ 



24b0d121e09c28a8699fe8b115ef046c61f4284f94


๋ฆฌ์•กํŠธ์—์„œ ์ปค์Šคํ…€ ํ›…์„ ๋งŒ๋“ค๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ closure๋ฅผ ์ž˜ ์ดํ•ดํ•˜์ง€ ์•Š์•˜์„๋•Œ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์— ๋Œ€๋ฉดํ•จ


์™ ๋งŒํ•œ ๋ณ€์ˆ˜๋“ฑ์€ ๋ฆฌ์•กํŠธ ํ›…์„ ์ด์šฉํ•ด์„œ ์ œ๋•Œ ์—…๋ฐ์ดํŠธ ๋˜์ง€๋งŒ


ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๊ฐ์ง€ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋Š” ๋ฆฌ์•กํŠธ์—์„œ ์ง€์›ํ•˜๋Š”๊ฒŒ ์—†์–ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์ผ๋Š”๋ฐ


์ด๊ฑด ๋ฆฌ์•กํŠธ๋ž‘ ๊ด€๋ จ์—†๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋‹ค ๋ณด๋‹ˆ๊นŒ ์—ฌ๊ธฐ์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ๋™ํ–ˆ์„๋•Œ ๊ทธ ์•ˆ์— closure๋กœ ๋“ค์–ด๊ฐ„ ๋ณ€์ˆ˜๊ฐ€ ์ตœ์‹  ์ƒํƒœ์˜ ๋ฆฌ์•กํŠธ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹ˆ์—ˆ๋˜๊ฒƒ,,,


์ฒ˜์Œ์—๋Š” ์ด๊ฑธ ์ดํ•ด๋ชปํ•ด์„œ ๋งŽ์ด ํ•ด๋งธ๋Š”๋ฐ ๊ฒฐ๊ตญ ์†”๋ฃจ์…˜์€ ๋ฆฌ์•กํŠธ ํ›…์„ ์ œ๋Œ€๋กœ ์จ์•ผํ•œ๋‹ค.. ํ•ญ์ƒ ์–ด๋””์„œ๋“  ์žŠ์ง€๋ง๊ณ ..



24b0d121e09c28a8699fe8b115ef0469963cf2be


์›น์†Œ์ผ“์— ๋Œ€ํ•œ๊ฑฐ๋„ ์ฒ˜์Œ ์•Œ๊ฒŒ๋จ


์›๋ž˜ ํ”„๋กœ๊ทธ๋žจ์— tcp๋Œ€ tcp๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ„ ํ†ต์‹ ํ•˜๋Š”๊ฒŒ ์žˆ์—ˆ๋Š”๋ฐ ์ด๊ฑธ ์›น์—์„œ๋„ ๊ตฌํ˜„ํ•˜๋ ค๋‹ˆ tcp์†Œ์ผ“์ด๋ž€๊ฑด ์˜จ๋ฐ๊ฐ„๋ฐ์—†๊ณ 


์›น์†Œ์ผ“์ด๋ผ๋Š”๊ฑฐ ๋‹ฌ๋ž‘ ํ•˜๋‚˜๋งŒ ์žˆ๋Š”๊ฑฐ์ž„..


์ฒ˜์Œ์—๋Š” ๊ทธ๋ƒฅ tcp์†Œ์ผ“์˜ ์›น๋ฒ„์ „์ธ๊ฐ€??์ƒ๊ฐํ–ˆ๋Š”๋ฐ .. ์ •๋ง ๋ ์šฉํ–ˆ์Œ.


์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์›น์†Œ์ผ“์€ ํ€ฉ์†Œ์ผ“vs ์›น์†Œ์ผ“์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ  ๋ฐ›๋Š”์ชฝ์€ ์›น์„œ๋ฒ„๋ฅผ ์—ด์–ด์•ผํ•˜๋Š”๊ฑฐ๋”๋ผ ๋ฌผ๋ก  ๊ทธ ์•ˆ์— ์›น์†Œ์ผ“์ด๋“  tcp์†Œ์ผ“์€ ์žˆ๊ฒ ์ง€๋งŒ


์•„๋‹ˆ ๋ญ” ์ด์ œ์™€์„œ ์„œ๋ฒ„์•ผ..์‹ถ์—ˆ๋Š”๋ฐ ๊ฒฐ๊ตญ jetty websocket / webserver๋ผ๋Š” ๊ฐ„๋‹จ ์›น์„œ๋ฒ„ ๋น„์Šค๋ฌด๋ฆฌํ•œ๊ฑธ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์—์„œ ๋ถ™์—ฌ์™€์„œ ํ•ด๊ฒฐํ•จ


24b0d121e09c28a8699fe8b115ef0469963bf4be


VS์ฝ”๋“œ ์“ฐ๋‹ค๊ฐ€ ์ค‘๊ฐ„์— ์ธํ…”๋ฆฌj๋กœ ๊ฐœ๋ฐœ๋„๊ตฌ ๋ฐ”๊ฟˆ


vs์ฝ”๋“œ๊ฐ€ ๊ฐ€๋ณ๊ณ  ์ข‹๊ธดํ•œ๋ฐ ํƒ€์ž…์ถ”๋ก ์ด๋‚˜ ์ž๋™์™„์„ฑ์ด ์ž˜ ์•ˆ๋˜๊ณ  ํ—ˆ์ ‘ํ—ˆ์ ‘์ฝ”๋”ฉ ๊ฒฐ๊ณผ๋ฌผ์˜ ๋ฆฌํŒฉํ† ๋ง์ด ํž˜๋“ค์–ด์„œ


ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ•์ ์„ ๋ชป์‚ด๋ฆฌ๊ณ ์žˆ๋Š”๊ฑฐ๊ฐ™์•„ ๋ฐ”๊ฟจ๋Š”๋ฐ ๋กœ๋”ฉ์‹œ๊ฐ„์ด ๊ธธ์–ด์กŒ๋‹ค๋Š”๊ฒƒ ๋ง๊ณ ๋Š” ์ƒ๋‹นํžˆ ๋งŒ์กฑ์Šค๋Ÿฌ์› ์Œ



24b0d121e09c28a8699fe8b115ef046ecc48c9f4


์›นํŽ˜์ด์ง€๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ํ˜ธ์ŠคํŒ…ํ–ˆ๊ณ 


๋„๋ฉ”์ธ ๋„ค์ž„๋„ ์‚ฌ์„œ ๋„ฃ์„์ˆ˜ ์žˆ๋Š”๋ฐ ๋Œ€๋งŒ์กฑ...


์ตœ์ข…์ ์œผ๋กœ ์›น์˜ ์„ธ๊ณ„๋Š” ๋„ˆ๋ฌด๋‚˜๋„ ๋„“๊ณ  ๊นŠ๊ณ  ๋‚˜๋Š” ๋งˆ์น˜ ํ•œ๋‚ฑ ๋ชจ๊ธฐ๊ฐ€ ๋˜์–ด ๋ฏธ์‹œ์ ์ธ ์‚ถ์„ ์‚ฌ๋Š”๊ฒƒ ๊ฐ™์•˜์Œ..


๋ฆฌ์•กํŠธ๋„ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋„ ๋‹ค ์ฒ˜์Œ์ด๋ผ ์‹ ๊ธฐํ•œ๊ฑฐ๋„ ๋งŽ๊ณ 


๋‚˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŽ์ด ๋งŒ๋“ค๊ณ  ์ฝ”๋“œ๋ณธ๋ฌธ์„ ์ค„์ด๋Š” ๊ฒฝํ–ฅ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์“ฐ๋Š”๋ฐ


๋ฆฌ์•กํŠธ๋Š” ํ›…์ด functional component์•ˆ์— ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค๋Š” ์  ๋•Œ๋ฌธ์—


์›ํ•˜๋Š” ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ๋„ ํž˜๋“ค์—ˆ๊ณ .. ๊ทผ๋ฐ ์•„๋งˆ ๊ทธ๊ฑด ์ปค์Šคํ…€ํ›…์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผํ–ˆ๋˜๊ฑฐ๊ฐ™์Œ


๊ฒŒ์ž„์€ ์ž˜ ์ž‘๋™ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ์œ ๋‹ˆํ‹ฐ๋กœ ๋„คํŠธ์›Œํฌ ๊ฒŒ์ž„์„ ์•ˆ ๋งŒ๋“ค์–ด๋ดค๋‹ค๋ฉด ๋ญ ํ•˜๋‚˜ ๊ตฌํ˜„ํ• ๋•Œ๋งˆ๋‹ค ๊ฐœ๋ฐ•์‚ด๋‚ฌ์„๊ฑฐ๊ฐ™๋‹ค.


์–ด์จ‹๋“  ์ด ๊ธ€ ์ฝ์œผ๋ฉด์„œ ์ž˜๋ชป ์•ˆ๋ถ€๋ถ„, ์•Œ๋ฉด ์ข‹์•˜์„ ๋ถ€๋ถ„ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ๋†“์œผ๋ฉด ๋‹ค์Œ ๊ฐœ๋ฐœ๋•Œ ์ฐธ๊ณ ํ• ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ 


์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.