[๋‚˜๋งŒ๋ฌด] ๐ŸŽจ ์šฐ๋ฆฌ๊ฐ€ ์™œ 'Pick-px'๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋Š”์ง€ โ€” ๊ธฐํš ๋ฐฐ๊ฒฝ๊ณผ ๊ฐœ๋ฐœ ์˜๋„

๋งน์ฅยท2025๋…„ 7์›” 17์ผ
11
post-thumbnail

" ํ”ฝ์…€ ํ•˜๋‚˜๋กœ ์‹œ์ž‘ํ•ด์„œ, ์ˆ˜๋งŽ์€ ์†๊ธธ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฑฐ๋Œ€ํ•œ ๊ทธ๋ฆผ"

์ด ๊ธ€์€ ์šฐ๋ฆฌ ํŒ€์ด ์ง„ํ–‰ํ•œ ์‹ค์‹œ๊ฐ„ ํ˜‘์—… ๊ธฐ๋ฐ˜ ํ”ฝ์…€ ์•„ํŠธ ํ”„๋กœ์ ํŠธ Pick-px์˜ ๊ธฐํš ๋ฐฐ๊ฒฝ๊ณผ ์ฃผ์š” ๊ธฐ๋Šฅ, ๊ธฐ์ˆ ์ ์ธ ๊ตฌํ˜„ ๊ณ ๋ฏผ๋“ค์„ ๋‹ด์€ ์†Œ๊ฐœ๊ธ€์ด๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹จ์ˆœํ•œ ๊ทธ๋ฆผํŒ์ด ์•„๋‹ˆ๋‹ค.
โ€œ๊ฐ™์ด ๋งŒ๋“ ๋‹คโ€๋Š” ๊ฒฝํ—˜์„ ์›น ์•ˆ์— ๊ตฌํ˜„ํ•˜๋ ค๋Š” ์‹œ๋„์˜€๊ณ , ๊ทธ ์•ˆ์—๋Š” ๊ฝค ๋งŽ์€ ๊ณ ๋ฏผ๊ณผ ๊ธฐ์ˆ ์ ์ธ ๋„์ „์ด ๋“ค์–ด ์žˆ์—ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ์„ ์ • ๋ฐฐ๊ฒฝ

Pick-px์˜ ์‹œ์ž‘์€ ํ•œ ํŒ€์›์˜ ๊ฝค ๋‹จ์ˆœํ•œ ํ˜ธ๊ธฐ์‹ฌ์—์„œ ์ถœ๋ฐœํ–ˆ๋‹ค.
โ€œ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜๋งŽ์€ ์‚ฌ๋žŒ์ด ํ•˜๋‚˜์˜ ์บ”๋ฒ„์Šค๋ฅผ ๊ฐ™์ด ๊ทธ๋ฆฌ๋ฉด ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ?โ€

์‚ฌ์‹ค ์ด์™€ ๋น„์Šทํ•œ ์„œ๋น„์Šค๋Š” ์ด๋ฏธ ์กด์žฌํ–ˆ๋‹ค.
๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋Š” Reddit์˜ ๋งŒ์šฐ์ ˆ ์ด๋ฒคํŠธ์ธ r/place.

์ˆ˜์‹ญ๋งŒ ๋ช…์ด ๋™์‹œ์— ํ•œ ํ”ฝ์…€์”ฉ ๊ทธ๋ฆผ์„ ์ฐ์–ด ์™„์„ฑํ•ด ๋‚˜๊ฐ€๋Š” ๊ฑฐ๋Œ€ํ•œ ํ”„๋กœ์ ํŠธ์˜€๋‹ค.
๋™์‹œ ์ฐธ๊ฐ€์ž๊ฐ€ 6๋งŒ๋ช…์„ ๊ธฐ๋กํ•˜๋Š” ๋ฏธ์นœ๋“ฏํ•œ ์ธ๊ธฐ๋ฅผ ๊ตฌ์‚ฌํ–ˆ๋‹ค.

์ฐธ๊ณ  - ๋‚˜๋ฌด์œ„ํ‚ค

https://www.youtube.com/watch?v=XnRCZK3KjUY


์™œ ์ด๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ์žฌ๋ฏธ์žˆ์„๊นŒ?

'๋ณ„๊ฑฐ ์•„๋‹Œ ํ”ฝ์…€ ์ฐ๊ธฐ์ผ ๋ฟ์ธ๋ฐ, ์ด๊ฒŒ ์‚ฌ๋žŒ๋“ค์„ ๋Œ์–ด๋ชจ์„ ์ˆ˜ ์žˆ์„๊นŒ?'
์ฒ˜์Œ ํŒ€์›์˜ ์•„์ด๋””์–ด๋ฅผ ๋“ค์—ˆ์„ ๋•Œ ๋‚˜๋„ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค.

์ด๊ฒƒ์˜ ์žฌ๋ฏธ๋Š”
ํ˜‘์—…๊ณผ ๊ฒฝ์Ÿ ์— ์žˆ์—ˆ๋‹ค.

  • ์‚ฌ๋žŒ๋“ค์€ ํŒ€์„ ๋งŒ๋“ ๋‹ค.
  • ๋‹ค๋ฅธ ํŒ€์ด ๊ทธ๋ฆฐ ๊ทธ๋ฆผ์„ ๋ฐฉํ•ดํ•˜๊ฑฐ๋‚˜, ์ž๊ธฐ ๊ทธ๋ฆผ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•œ๋‹ค.
  • ์—ฌ๊ธฐ์— ์ œํ•œ์ ์ธ ํ–‰๋™(์ฟจํƒ€์ž„)์ด ๋”ํ•ด์ ธ ์žฌ๋ฏธ๊ฐ€ ๋”ํ•ด์ง„๋‹ค.

Q1.๊ธฐ์กด์˜ ํ”Œ๋žซํผ๊ณผ์˜ ์ฐจ์ด์ 

1. r/place์—์„œ๋Š” ๋‹จ๋ฐœ์„ฑ ์ด๋ฒคํŠธ๋กœ๋งŒ ์šด์˜๋˜์—ˆ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” "์ง€์†์ ์œผ๋กœ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ์›น ์‚ฌ์ดํŠธ"๋ฅผ ์ง€ํ–ฅํ•œ๋‹ค.
  • ์ƒ์‹œ ์—ด๋ ค ์žˆ๋Š” '๊ธฐ๋ณธ ์บ”๋ฒ„์Šค'์™€, ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ํ™œ์„ฑํ™”๋˜๋Š” '์ด๋ฒคํŠธ ์บ”๋ฒ„์Šค'๋ฅผ ๋ณ‘ํ–‰ ์ œ๊ณตํ•  ๊ฒƒ์ด๋‹ค.
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์–‘ํ•œ ๋ชจ๋“œ์˜ ์บ”๋ฒ„์Šค๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ํ˜‘์—… ์‹œ ์†Œํ†ต์˜ ๋ถ€์žฌ

  • r/place์—์„œ๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜๋งŽ์€ ์œ ์ €๊ฐ€ ํ˜‘์—…ํ–ˆ์ง€๋งŒ,์ •์ž‘ ์†Œํ†ต ์ˆ˜๋‹จ์€ ์™ธ๋ถ€ ํ”Œ๋žซํผ(์˜ˆ: ๋””์Šค์ฝ”๋“œ)์— ์˜์กดํ•ด์•ผ ํ–ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค ๋‚ด์—์„œ ๋ฐ”๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋„๋ก, ์บ”๋ฒ„์Šค ๋‹จ์œ„ ๊ทธ๋ฃน ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
  • ์ด๋ฅผ ํ†ตํ•ด ์ „๋žต ๊ณต์œ , ์—ญํ•  ๋ถ„๋‹ด, ์‹ค์‹œ๊ฐ„ ๋Œ€์‘์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

3. ๊ทธ๋ฃน ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ - ์ด๋ฏธ์ง€ ๊ฐ€์ด๋“œ ๊ณต์œ 

" ๊ทธ๋ฃน๋ณ„ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ๊ณต์œ ํ•˜๋ฉด ๊ทธ๋ฆด์ˆ˜ ์žˆ์„๊นŒ? "
" ์‹ค์‹œ๊ฐ„ ์ด๋ฏธ์ง€ ๊ณต์œ  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ž !"

ํ˜‘์—… ๊ทธ๋ฆผํŒ์—์„œ '๋ฌด์—‡์„ ๊ทธ๋ฆด์ง€'๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ฑด ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์šด ๋ฌธ์ œ๋‹ค.

  • ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ๊ทธ๋ฃน๋ณ„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฐธ๊ณ  ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ธฐํšํ–ˆ๋‹ค.
  • ์ฑ„ํŒ…์ฐฝ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•˜๋ฉด, ํ•ด๋‹น ๊ทธ๋ฃน์˜ ์‚ฌ์šฉ์ž๋“ค์ด ํˆฌ๋ช… ์˜ค๋ฒ„๋ ˆ์ด๋กœ ์ด๋ฏธ์ง€ ๊ฐ€์ด๋“œ๋ฅผ ๋ณด๋ฉฐ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ™•์žฅํ•  ์˜ˆ์ •์ด๋‹ค.

Q2. ๊ธฐ์ˆ ์  ์ฑŒ๋ฆฐ์ง€

๊ตฌํ˜„ ๋‹จ๊ณ„์—์„œ๋Š” ์ˆ˜๋งŽ์€ ๊ธฐ์ˆ ์  ๋„์ „์ด ์žˆ๋‹ค.

1. ๋Œ€๊ทœ๋ชจ ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”

์ˆ˜์‹ญ ๋ช… ์ด์ƒ์ด ๋™์‹œ์— ์บ”๋ฒ„์Šค์— ์ ‘๊ทผํ•˜๋Š” ์ƒํ™ฉ์—์„œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฑด ์ƒ๊ฐ๋ณด๋‹ค ๋ฌด๊ฒ๋‹ค.
์œ ์ € ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ์ด๋ฒคํŠธ ํŠธ๋ž˜ํ”ฝ๋„ ๊ธ‰์ฆํ•˜๊ณ , ์„œ๋ฒ„/ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘ ๋ถ€๋‹ด์ด ์ปค์งˆ ๊ฒƒ์ด๋‹ค.

2. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋ Œ๋”๋ง ์ตœ์ ํ™”

Pick-px์˜ ๊ธฐ๋ณธ ์บ”๋ฒ„์Šค๋Š” ์ตœ๋Œ€ 1024 x 1024 ์‚ฌ์ด์ฆˆ์ด๋‹ค.
์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ ์ˆ˜์‹ญ๋งŒ ๊ฐœ์˜ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ๋ Œ๋”๋งํ•ด์•ผ ํ•œ๋‹ค.

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

3. ์ฑ„ํŒ… ๋ฐ ์ด๋ฏธ์ง€ ๊ณต์œ  ์‹œ์Šคํ…œ

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…๊ณผ ์ด๋ฏธ์ง€ ์˜ค๋ฒ„๋ ˆ์ด ๊ธฐ๋Šฅ์€ ๋ชจ๋‘ ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๋งŒํผ,
UI ๊ตฌ์„ฑ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊นŒ์ง€ ์‹ ์ค‘ํ•œ ์„ค๊ณ„๊ฐ€ ์š”๊ตฌ๋  ๊ฒƒ์ด๋‹ค.

4. ์ฟจ๋‹ค์šด(Cooldown) ์‹œ๊ฐ„ ๋™๊ธฐํ™”

Pick-px๋Š” ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ํ•œ ํ”ฝ์…€๋งŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ์ฟจํƒ€์ž„ ์ œ์•ฝ์„ ๋‘๊ณ  ์žˆ๋‹ค.
๋ฌธ์ œ๋Š” ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ์‹œ๊ฐ„ ์˜ค์ฐจ๋‚˜ ์ƒˆ๋กœ๊ณ ์นจ/์žฌ์ ‘์† ์‹œ์ ์— ๋”ฐ๋ผ ์ฟจ๋‹ค์šด ์ •๋ณด๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.
์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๋™๊ธฐํ™”ํ•  ์ง€๊ฐ€ ํ•ต์‹ฌ ๊ณผ์ œ์ผ ๊ฒƒ์ด๋‹ค.


๊ธฐ์ˆ  ์Šคํƒ ๋ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

ํ”„๋ก ํŠธ์—”๋“œ

  • React + TypeScript: ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ UI ๊ตฌ์„ฑ๊ณผ ํƒ€์ž… ์•ˆ์ •์„ฑ ํ™•๋ณด
  • Canvas API: ํ”ฝ์…€ ๋ Œ๋”๋ง
  • Zustand: ์บ”๋ฒ„์Šค/์œ ์ €/์ฑ„ํŒ… ๋“ฑ ๊ธ€๋กœ๋ฒŒ ์ƒํƒœ ๊ด€๋ฆฌ
  • Socket.io-client: ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

๋ฐฑ์—”๋“œ

  • NestJS: ๊ตฌ์กฐ์  & ํ™•์žฅ์„ฑ
  • JWT + OAuth2 (Google): ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ
  • Redis: ์‹ค์‹œ๊ฐ„ ํ”ฝ์…€/์ฑ„ํŒ… ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ, Pub/Sub ๊ตฌ์กฐ ์‚ฌ์šฉ
  • PostgreSQL: ์œ ์ € ์ •๋ณด, ์บ”๋ฒ„์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ์ฑ„ํŒ… ๋กœ๊ทธ ๋“ฑ ์˜์†์  ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

์ธํ”„๋ผ & ํ†ต์‹  ๊ตฌ์กฐ

  • Docker / Docker Compose: ๊ฐœ๋ฐœ ๋ฐ ์šด์˜ ํ™˜๊ฒฝ ํ†ตํ•ฉ ๊ด€๋ฆฌ
  • Kubernetes: ์Šค์ผ€์ผ๋ง๊ณผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์šด์˜์„ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ ๋„๊ตฌ
  • AWS: ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ (EC2, RDS ๋“ฑ ํ™œ์šฉ ๊ฐ€๋Šฅ)

ํ˜‘์—… ๋„๊ตฌ

  • Jira : ์ผ์ • ๋ฐ ์ด์Šˆ ๊ด€๋ฆฌ, Git๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์ปค๋ฐ‹/PR๊ณผ ์ด์Šˆ๋ฅผ ์—ฐ๊ฒฐํ•  ์˜ˆ์ •
profile
์ด์œ ๋ฏผ

6๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2025๋…„ 7์›” 17์ผ

Pick-px ์งฑ์ด์—์š”!!

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2025๋…„ 7์›” 24์ผ

์˜คํ™“ํ™“ ์š”๊ณ  ์žฌ๋ฐŒ๋„ค์š” ใ…‹ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€
comment-user-thumbnail
2025๋…„ 7์›” 28์ผ

pick-px ์žฌ๋ฐŒ์—ˆ์–ด์š” ใ…‹ใ…‹

1๊ฐœ์˜ ๋‹ต๊ธ€