Skip to content

uptomaster/FutureBox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

35 Commits
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ฆ FutureBox

background

๋ฏธ๋ž˜์˜ ๋‚˜์—๊ฒŒ ๋ณด๋‚ด๋Š” ๋””์ง€ํ„ธ ํƒ€์ž„์บก์А

๐Ÿš€ Live Demo FutureBox Banner

๐Ÿ’ก ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

FutureBox๋Š” ๋ฏธ๋ž˜์˜ ์ž์‹ ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ง€ํ„ธ ํƒ€์ž„์บก์А ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์ง€๊ธˆ์˜ ์ƒ๊ฐ๊ณผ ๊ฐ์ •์„ ๊ธฐ๋กํ•˜๊ณ , ์›ํ•˜๋Š” ๋‚ ์งœ์— ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์žฅ ๋‚ด์ผ ๋˜๋Š” 1๋…„ ํ›„, 5๋…„ ํ›„์˜ ๋‚˜์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”.

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๐Ÿ”’ ์•”ํ˜ธํ™” ์ €์žฅ - AES ์•”ํ˜ธํ™”๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธ
  • ๐Ÿ“… ๋ฏธ๋ž˜ ์˜ˆ์•ฝ - ์›ํ•˜๋Š” ๋‚ ์งœ์—๋งŒ ์—ด๋ฆฌ๋Š” ํƒ€์ž„์บก์А
  • ๐Ÿ’พ ํด๋ผ์šฐ๋“œ ๋™๊ธฐํ™” - ์–ธ์ œ ์–ด๋””์„œ๋‚˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๐Ÿ“ฑ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ - ๋ชจ๋ฐ”์ผ, ํƒœ๋ธ”๋ฆฟ, PC ๋ชจ๋‘ ์ง€์›
  • ๐ŸŽจ ์ง๊ด€์ ์ธ UI - ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค

๐ŸŽฏ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ๋ฉ”์‹œ์ง€ ์ž‘์„ฑ - ๋ฏธ๋ž˜์˜ ๋‚˜์—๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ๋ง์„ ์ž‘์„ฑ
  2. ๋‚ ์งœ ์„ค์ • - ๋ฉ”์‹œ์ง€๋ฅผ ์—ด๋žŒํ•  ๋‚ ์งœ ์„ ํƒ
  3. ์บก์А ๋ด‰์ธ - ์ €์žฅํ•˜๋ฉด ์„ค์ •ํ•œ ๋‚ ์งœ๊นŒ์ง€ ์ž ๊น€
  4. ๋ฏธ๋ž˜์— ํ™•์ธ - ์„ค์ •ํ•œ ๋‚ ์งœ๊ฐ€ ๋˜๋ฉด ์ž๋™์œผ๋กœ ์—ด๋ฆผ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

Frontend

  • TypeScript - ํƒ€์ž… ์•ˆ์ •์„ฑ๊ณผ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ณด์žฅ
  • Vite - ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์ตœ์ ํ™”๋œ ๋นŒ๋“œ

Backend & Database

  • Supabase - PostgreSQL ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • Row Level Security - ์‚ฌ์šฉ์ž๋ณ„ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ

Deployment

  • Vercel - ์ž๋™ ๋ฐฐํฌ ๋ฐ CDN ์ตœ์ ํ™”

Security

  • Web Crypto API - ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์•”ํ˜ธํ™”
  • Environment Variables - ๋ฏผ๊ฐ ์ •๋ณด ๋ณดํ˜ธ

๐ŸŽจ ๋””์ž์ธ ํŠน์ง•

  • ๋ ˆํŠธ๋กœ ํ”ฝ์…€ ๊ฐ์„ฑ - 8-bit ์Šคํƒ€์ผ์˜ ํ–ฅ์ˆ˜๋ฅผ ์ž๊ทนํ•˜๋Š” ๋น„์ฃผ์–ผ
  • ๊ฐ์„ฑ์ ์ธ ์ปฌ๋Ÿฌ - ๋ฏธ๋ž˜์™€ ์ถ”์–ต์„ ์—ฐ์ƒ์‹œํ‚ค๋Š” ๋ฐฐ์ƒ‰
  • ๋„ ์• ๋‹ˆ๋ฉ”์ด์…˜ - ํ”ฝ์…€ ์•„ํŠธ ์Šคํƒ€์ผ์˜ ๋ถ€๋“œ๋Ÿฌ์šด ์›€์ง์ž„
  • ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค - ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ํŽธํ•˜๊ฒŒ ์ด์šฉ ๊ฐ€๋Šฅ

๐Ÿ’ป ๊ฐœ๋ฐœ ํ•˜์ด๋ผ์ดํŠธ

1. ๋ณด์•ˆ ์ค‘์‹ฌ ์„ค๊ณ„

// AES-256 ์•”ํ˜ธํ™”๋กœ ๋ฉ”์‹œ์ง€ ๋ณดํ˜ธ
const encryptMessage = async (message: string) => {
  const encoder = new TextEncoder();
  const data = encoder.encode(message);
  const encrypted = await crypto.subtle.encrypt(
    { name: "AES-GCM", iv: iv },
    key,
    data
  );
  return encrypted;
};

2. ๋‚ ์งœ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด

  • ์„ค์ •ํ•œ ๋‚ ์งœ ์ „์—๋Š” ๋ฉ”์‹œ์ง€ ์—ด๋žŒ ๋ถˆ๊ฐ€
  • ์„œ๋ฒ„ ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ์ •ํ™•ํ•œ ์ œ์–ด

3. ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”

  • Supabase Realtime์œผ๋กœ ์ฆ‰๊ฐ์ ์ธ ๋ฐ์ดํ„ฐ ๋ฐ˜์˜
  • ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ์—์„œ ๋™์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿš€ ์„ฑ๋Šฅ ์ตœ์ ํ™”

  • Lazy Loading - ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋งŒ ๋กœ๋“œ
  • Code Splitting - ๋นŒ๋“œ ํฌ๊ธฐ ์ตœ์†Œํ™”
  • CDN ๋ฐฐํฌ - Vercel Edge Network๋กœ ๋น ๋ฅธ ๋กœ๋”ฉ
  • ์ด๋ฏธ์ง€ ์ตœ์ ํ™” - WebP ํฌ๋งท ์‚ฌ์šฉ

๐Ÿ”ฎ ํ–ฅํ›„ ๊ณ„ํš

  • ํ‘ธ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ (์˜คํ”ˆ ๋‚ ์งœ ์•Œ๋ฆผ)
  • ์‚ฌ์ง„/๋™์˜์ƒ ์ฒจ๋ถ€ ๊ธฐ๋Šฅ
  • ์นœ๊ตฌ์™€ ๊ณต์œ ํ•˜๋Š” ๊ณต๋™ ์บก์А
  • ๋‹ค๊ตญ์–ด ์ง€์› (์˜์–ด, ์ผ๋ณธ์–ด)
  • ๋‹คํฌ๋ชจ๋“œ ์ง€์›
  • PWA ๋ณ€ํ™˜ (์˜คํ”„๋ผ์ธ ์ง€์›)

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

์ด์Šˆ์™€ PR์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ž ์—ฐ๋ฝ์ฒ˜

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.


โญ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด Star๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”! โญ

Made with by uptomaster

About

๐ŸŒŸhttps://futurebox-beta.vercel.app/๐ŸŒŸ๋Š” ๋ฏธ๋ž˜์˜ ์ž์‹ ์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ง€ํ„ธ ํƒ€์ž„์บก์А ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ์˜ ์ƒ๊ฐ๊ณผ ๊ฐ์ •์„ ๊ธฐ๋กํ•˜๊ณ , ์›ํ•˜๋Š” ๋‚ ์งœ์— ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์žฅ ๋‚ด์ผ ๋˜๋Š” 1๋…„ ํ›„, 5๋…„ ํ›„์˜ ๋‚˜์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors