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

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ํฌํŠธํด๋ฆฌ์˜ค V2

by LasBe 2026. 3. 8.
๋ฐ˜์‘ํ˜•

๐Ÿ“’ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ํฌํŠธํด๋ฆฌ์˜ค V2


https://lasbe.kr/

 

์žฅ์„ฑ์šฐ - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ํฌํŠธํด๋ฆฌ์˜ค

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์žฅ์„ฑ์šฐ(lasbe) ํฌํŠธํด๋ฆฌ์˜ค

lasbe.kr

 

์˜ˆ์ „๋ถ€ํ„ฐ ๊ฐœ์ธ์ ์œผ๋กœ Retro Window OS ํ…Œ๋งˆ์˜ ์›น์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ,

์ƒ๊ฐํ•˜๋‹ค๋ณด๋‹ˆ ์ œ ํฌํŠธํด๋ฆฌ์˜ค์— ํ•˜๋ฉด ์žฌ๋ฏธ์žˆ๊ฒ ๋‹ค ์‹ถ์–ด ๊ธฐ์กด ํฌํŠธํด๋ฆฌ์˜ค ์‚ฌ์ดํŠธ๋ฅผ ๊ฐˆ์•„ ์—Ž์–ด ๋ดค์Šต๋‹ˆ๋‹ค.

 

์žฌ๋ฏธ๋‚œ ๊ฒƒ๋“ค ๋งŽ์ด ๋„ฃ์—ˆ๋Š”๋ฐ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

๐Ÿ“Œ OS ๋ชจ๋ฐฉ

์›น์—์„œ ์œˆ๋„์šฐ ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ชจ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ”Ž ๋ฐ”ํƒ•ํ™”๋ฉด ์•„์ด์ฝ˜ ๋“œ๋ž˜๊ทธ ๋ฐ ์ €์žฅ

  • react-draggable ํŒจํ‚ค์ง€์™€ localStorage๋ฅผ ์ด์šฉํ•˜์—ฌ ์•„์ด์ฝ˜์„ ๋“œ๋ž˜๊ทธ ๋ฐ ์œ„์น˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐฝ์˜ ๋†’์ด์— ๋”ฐ๋ผ ์•„์ด์ฝ˜์ด ์ž˜๋ฆฌ์ง€ ์•Š๊ฒŒ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ”ํƒ•ํ™”๋ฉด์—์„œ ์šฐํด๋ฆญ ํ›„ "์•„์ด์ฝ˜ ์ •๋ ฌ"์„ ๋ˆ„๋ฅธ๋‹ค๋ฉด ์œ„์น˜๊ฐ€ ์ดˆ๊ธฐํ™” ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ”Ž Window ๋ชจ๋‹ฌ

  • ์ฐฝ์„ ๋“œ๋ž˜๊ทธํ•˜๊ฑฐ๋‚˜ ๋ฆฌ์‚ฌ์ด์ฆˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
  • ์ฐฝ์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์ฐฝ์ด ํ•ญ์ƒ ์ตœ์ƒ๋‹จ์œผ๋กœ ์˜ฌ๋ผ์˜ต๋‹ˆ๋‹ค. (z-index ํฌ์ปค์Šค ์Šคํƒ) 
  • ์ตœ๋Œ€ํ™”/๋ณต์› ์‹œ ์ด์ „ ์œ„์น˜์™€ ํฌ๊ธฐ๋กœ ๋Œ์•„์˜ต๋‹ˆ๋‹ค.

 

๐Ÿ“Œ ๋ฐ˜์‘ํ˜•

  • ๋ชจ๋ฐ”์ผ ํ™”๋ฉด์—์„œ ์ตœ์ ํ™”๋œ UI/UX๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“Œ Notion Render

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

 

์ฐพ๋‹ค๋ณด๋‹ˆ ๋ช‡๋ช‡ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ์ง€๋งŒ notion-client๋กœ ๋…ธ์…˜ ํŽ˜์ด์ง€๋ฅผ fetch ํ•œ ๋’ค, react-notion-x๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋ Œ๋”ํ•˜์—ฌ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๋•๋ถ„์— ์‚ฌ์šฉ์ž๋ฅผ ์ดํƒˆ ์‹œํ‚ค์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ณ , ๋นŒ๋“œ ๋ฐฐํฌ ๊ณผ์ • ์—†์ด ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“Œ  ์šฐ์ฃผ ๋ฐฐ๊ฒฝํ™”๋ฉด

์›๋ž˜ ๋‹ค๋“ค ์‚ฌ์šฉํ•˜๋Š” ๋ฉ‹๋“ค์–ด์ง€๊ณ  ํ™”๋ คํ•œ ์šฐ์ฃผ ๋ฐฐ๊ฒฝ์„ ๋„ฃ์œผ๋ ค ํ–ˆ์ง€๋งŒ ์ด ํ”„๋กœ์ ํŠธ์™€ ํ†ค ์•ค ๋งค๋„ˆ๊ฐ€ ๋งž์ง€ ์•Š๊ณ , ๋ฐ”ํƒ•ํ™”๋ฉด ์•„์ด์ฝ˜ ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆด ๊ฒƒ ๊ฐ™์•„ threeJS๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ดค์Šต๋‹ˆ๋‹ค.

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

์˜ค๋žœ๋งŒ์— ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ํฐ ์žฌ๋ฏธ ๋А๋ผ๊ณ  ๋ชฐ์ž…ํ•  ์ˆ˜ ์žˆ์—ˆ๋„ค์š”.

 

๋Œ€๋‹จํ•˜์ง„ ์•Š์ง€๋งŒ ๋ฟŒ๋“ฏํ•œ ํ•˜๋ฃจ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


์˜คํ”ˆ ์ฑ„ํŒ