Skip to main content

๐ŸŽ‰ ๋“œ๋””์–ด ์ถœ์‹œ! Cardboard.js๊ฐ€ Product Hunt์— ์˜ฌ๋ผ๊ฐ”์–ด์š” โ€“ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๋Š” ์†Œ๊ฐœ์™€ ํ™œ์šฉ๋ฒ•

Published 3 min readMarkdown

# ๐Ÿ“Œ ์„œ๋ก  โ€“ โ€œ๋‚ด๊ฐ€ ๋งŒ๋“  ์ œํ’ˆ, ์ด์ œ ์„ธ์ƒ์— ์•Œ๋ฆด ๋•Œ๊ฐ€ ์™”์–ด์š”โ€

๋ช‡ ๋…„๊ฐ„ ๋ฐค๋‚ฎ ์—†์ด ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ด ์˜จ Cardboard.js๊ฐ€ ๋งˆ์นจ๋‚ด Product Hunt์— ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์‹œ์ž‘ํ•œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋„ โ€œ์ด๊ฒŒ ๋ญ˜๊นŒ?โ€ ํ•˜๊ณ  ๊ถ๊ธˆํ•ดํ•  ๋งŒํผ ์ง๊ด€์ ์ธ 3D ๋ Œ๋”๋ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๋ฐ์š”, ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š”

  1. Cardboard.js๊ฐ€ ๋ฌด์—‡์ธ์ง€

  2. Product Hunt์— ์ถœ์‹œํ•˜๊ฒŒ ๋œ ๊ณผ์ •

  3. ์‹ค์ œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์„ ์ฐจ๊ทผ์ฐจ๊ทผ ํ’€์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ง ์›น ๊ฐœ๋ฐœ์„ ๋ง‰ ์‹œ์ž‘ํ–ˆ๊ฑฐ๋‚˜, 3D ๊ทธ๋ž˜ํ”ฝ์— ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„์ด๋ผ๋ฉด ๋ถ€๋‹ด ์—†์ด ์ฝ์–ด๋ณด์„ธ์š”!


# ๐Ÿ“š ๋ณธ๋ก 

# 1๏ธโƒฃ Cardboard.js๋ž€? โ€“ โ€œ๊ฐ„๋‹จํžˆ ๋งํ•ด 3D ์บ”๋ฒ„์Šคโ€

  • ํ•ต์‹ฌ ๊ธฐ๋Šฅ: HTML5 <canvas>์™€ WebGL์„ ํ™œ์šฉํ•ด ๋ณต์žกํ•œ ์„ค์ • ์—†์ด๋„ 3D ๋ชจ๋ธ์„ ํ™”๋ฉด์— ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠน์ง•

    • ๊ฒฝ๋Ÿ‰(โ‰ˆ 20KB)์ด๋ผ ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„์— ๋ถ€๋‹ด์ด ์ ์–ด์š”.

    • ์ง๊ด€์ ์ธ API: createBox(), rotate() ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๊ธฐ๋ณธ์ ์ธ 3D ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋ฐ˜์‘ํ˜•: ํ™”๋ฉด ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋น„์œจ์„ ๋งž์ถฐ์ฃผ์–ด ๋ชจ๋ฐ”์ผ์—์„œ๋„ ๋ฌธ์ œ ์—†์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

SEO ํ‚ค์›Œ๋“œ: Cardboard.js, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, 3D ๋ Œ๋”๋ง


# 2๏ธโƒฃ Product Hunt์— ์ถœ์‹œํ•˜๊ธฐ๊นŒ์ง€ โ€“ โ€œ์ž‘์€ ์•„์ด๋””์–ด๊ฐ€ ํฐ ๋ฌด๋Œ€๋กœโ€

| ๋‹จ๊ณ„ | ๋‚ด์šฉ | ๋ฐฐ์šด ์  |

|------|------|--------|

| ์•„์ด๋””์–ด ๊ตฌ์ƒ | โ€œ์›น ํŽ˜์ด์ง€์— 3D๋ฅผ ๋„ฃ๊ณ  ์‹ถ๋‹คโ€๋Š” ๋‹จ์ˆœํ•œ ์š•๊ตฌ์—์„œ ์‹œ์ž‘ | ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋ฌธ์ œ ์ •์˜ํ•˜๊ธฐ |

| ํ”„๋กœํ† ํƒ€์ž… ๊ฐœ๋ฐœ | ์ตœ์†Œ ๊ธฐ๋Šฅ(MVP) ๊ตฌํ˜„ โ€“ ๋ฐ•์Šค์™€ ๊ตฌ์ฒด๋งŒ ๋ Œ๋”๋ง | ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ์ง‘์ค‘ํ•˜๋ฉด ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค |

| ์˜คํ”ˆ์†Œ์Šค ๊ณต๊ฐœ | GitHub์— ์ฝ”๋“œ ๊ณต๊ฐœ, ๋ฌธ์„œํ™” ์ง„ํ–‰ | ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ”ผ๋“œ๋ฐฑ์ด ํ’ˆ์งˆ ํ–ฅ์ƒ์— ํฐ ๋„์›€ |

| Product Hunt ์‹ ์ฒญ | ์ œํ’ˆ ์„ค๋ช…, ์Šคํฌ๋ฆฐ์ƒท, ๋ฐ๋ชจ ์˜์ƒ ์ค€๋น„ | ์‹œ๊ฐ์  ์š”์†Œ๊ฐ€ ํด๋ฆญ์„ ์œ ๋„ํ•œ๋‹ค |

| ๋Ÿฐ์นญ ๋‹น์ผ | 12์‹œ ์ •๊ฐ์— ํฌ์ŠคํŠธ, SNS ๊ณต์œ , ๋Œ“๊ธ€ ๊ด€๋ฆฌ | ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์‹ค์‹œ๊ฐ„ ์†Œํ†ต์ด ์ค‘์š” |

ํ•ต์‹ฌ ํฌ์ธํŠธ: ์ถœ์‹œ ์ „ โ€˜๋ฐ๋ชจ ํŽ˜์ด์ง€โ€™๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘๋ฉด ๋ฐฉ๋ฌธ์ž๊ฐ€ ๋ฐ”๋กœ ์ฒดํ—˜ํ•  ์ˆ˜ ์žˆ์–ด ํ˜ธ์‘๋„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค.


# 3๏ธโƒฃ Cardboard.js ์‹œ์ž‘ํ•˜๊ธฐ โ€“ โ€œ์ฝ”๋“œ ํ•œ ์ค„๋กœ 3D ์„ธ๊ณ„ ์—ด๊ธฐโ€

# 3โ€‘1. ์„ค์น˜ ๋ฐฉ๋ฒ•

bash

# npm ์‚ฌ์šฉ

npm install cardboard.js

# CDN ์ง์ ‘ ์‚ฝ์ž… (HTML ํŒŒ์ผ์— ๋ฐ”๋กœ ๋„ฃ๊ธฐ)

<script src='https://unpkg.com/cardboard.js/dist/cardboard.min.js'></script>

# 3โ€‘2. ๊ธฐ๋ณธ ์˜ˆ์ œ ์ฝ”๋“œ

html

<!DOCTYPE html>

<html lang='ko'>

<head>

  <meta charset='UTF-8'>

  <title>Cardboard.js ๊ธฐ๋ณธ ์˜ˆ์ œ</title>

  <style>canvas { width: 100%; height: 100vh; }</style>

</head>

<body>

  <script src='https://unpkg.com/cardboard.js/dist/cardboard.min.js'></script>

  <script>

    const scene = new Cardboard.Scene('#canvas');   // ์บ”๋ฒ„์Šค ์ž๋™ ์ƒ์„ฑ

    const box   = scene.createBox({size: 2, color: '#4CAF50'});

    scene.camera.position.set(0, 0, 5);            // ์นด๋ฉ”๋ผ ์œ„์น˜ ์กฐ์ •

    // ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฃจํ”„

    function animate() {

      box.rotation.y += 0.01;

      scene.render();

      requestAnimationFrame(animate);

    }

    animate();

  </script>

</body>

</html>

Tip: scene.render()๋ฅผ requestAnimationFrame ์•ˆ์— ๋„ฃ์–ด์•ผ ๋ถ€๋“œ๋Ÿฌ์šด ํšŒ์ „์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

# 3โ€‘3. ์‹ค์ „ ํ™œ์šฉ ์•„์ด๋””์–ด

| ํ™œ์šฉ ๋ถ„์•ผ | ์˜ˆ์‹œ |

|----------|------|

| ํฌํŠธํด๋ฆฌ์˜ค ์›น | ์ž‘ํ’ˆ์„ 3D ํšŒ์ „ ๋ชจ๋ธ๋กœ ๋ณด์—ฌ์ค˜ ์‹œ๊ฐ์  ์ž„ํŒฉํŠธ ๊ฐ•ํ™” |

| ๊ต์œก์šฉ ํˆด | ๋ฌผ๋ฆฌ ์‹คํ—˜(์ค‘๋ ฅ, ์ถฉ๋Œ) ์‹œ๋ฎฌ๋ ˆ์ด์…˜์— ์ ์šฉ |

| ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” | 3D ๋ฐ” ์ฐจํŠธยทํŒŒ์ด ์ฐจํŠธ๋กœ ๋ณต์žกํ•œ ํ†ต๊ณ„ ํ‘œํ˜„ |

| ๊ฒŒ์ž„ ํ”„๋กœํ† ํƒ€์ž… | ๊ฐ„๋‹จํ•œ ํผ์ฆยทํ”Œ๋žซํฌ๋จธ ๊ฒŒ์ž„ ์—”์ง„ ๋Œ€์ฒด |


# 4๏ธโƒฃ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ”ผ๋“œ๋ฐฑ ๊ด€๋ฆฌ โ€“ โ€œํ•จ๊ป˜ ์„ฑ์žฅํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šคโ€

  • GitHub Issues: ๋ฒ„๊ทธ๋‚˜ ๊ฐœ์„  ์š”์ฒญ์„ ์ง์ ‘ ํ™•์ธํ•˜๊ณ  ๋‹ต๋ณ€ํ•˜๋ฉด ์‹ ๋ขฐ๋„๊ฐ€ ์ƒ์Šนํ•ฉ๋‹ˆ๋‹ค.

  • Discord/Slack: ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์ฑ„๋„์„ ์šด์˜ํ•ด ์‚ฌ์šฉ์ž์™€ ์ง์ ‘ ์†Œํ†ตํ•˜๋ฉด ์•„์ด๋””์–ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

  • ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…: ์‚ฌ์šฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ•œ ๊ธ€์„ ๊พธ์ค€ํžˆ ์˜ฌ๋ฆฌ๋ฉด SEO ํšจ๊ณผ๋„ ์ปค์ง‘๋‹ˆ๋‹ค.


# ๐Ÿš€ ๊ฒฐ๋ก  โ€“ โ€œ๋‹น์‹ ๋„ ์˜ค๋Š˜ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”!โ€

Cardboard.js๋Š” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” 3D ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋Š” ์ ์—์„œ, ์›น ๊ฐœ๋ฐœ ์ž…๋ฌธ์ž๋ถ€ํ„ฐ ์ˆ™๋ จ๋œ ํ”„๋ก ํŠธ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๊นŒ์ง€ ๋ชจ๋‘์—๊ฒŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Product Hunt์—์„œ ์ข‹์€ ๋ฐ˜์‘์„ ์–ป์€ ๋งŒํผ, ์—ฌ๋Ÿฌ๋ถ„๋„ ์•„๋ž˜ ๋‹จ๊ณ„๋งŒ ๋”ฐ๋ผ ํ•˜๋ฉด ๋ฐ”๋กœ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์„ค์น˜ โ†’ npm install cardboard.js ํ˜น์€ CDN ์‚ฝ์ž…

  2. ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด๊ณ , ์ฝ”๋“œ ์ดํ•ดํ•˜๊ธฐ

  3. ์ž์‹ ๋งŒ์˜ ์•„์ด๋””์–ด์— ๋งž๊ฒŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

  4. ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ณต์œ ํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ

์ง€๊ธˆ ๋ฐ”๋กœ Cardboard.js๋ฅผ ์ฒดํ—˜ํ•˜๊ณ , ๋‚˜๋งŒ์˜ 3D ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

๐Ÿ‘‰ GitHub ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋ฐ”๋กœ ๊ฐ€๊ธฐ

๐Ÿ‘‰ Product Hunt ๋Ÿฐ์นญ ํŽ˜์ด์ง€ ๋ณด๊ธฐ

์—ฌ๋Ÿฌ๋ถ„์˜ ์ฒซ 3D ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ๊ฐœ์„  ์•„์ด๋””์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€์ด๋‚˜ ์ด์Šˆ๋กœ ์•Œ๋ ค ์ฃผ์„ธ์š”. ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ์‹œ๋‹ค! ๐ŸŽˆ

No comments yet. Be the first to comment.

More from this blog