EcoLens ๐ŸŒ โ€” ๋ชจ๋“  ๋ฌผ์ฒด ์Šค์บ”, ํƒ„์†Œ ์˜ํ–ฅ์„ ํ™•์ธํ•˜์„ธ์š” (Haiti ๋ฐ ์ž์› ์ œํ•œ ํ™˜๊ฒฝ์šฉ)

๋ฐœํ–‰: (2026๋…„ 4์›” 20์ผ AM 11:52 GMT+9)
6 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

๋‚ด๊ฐ€ ๋งŒ๋“  ๊ฒƒ

EcoLens๋Š” ์‹์‚ฌ, ์ œํ’ˆ, ์ฐจ๋Ÿ‰, ์ „์ž ๊ธฐ๊ธฐ ๋“ฑ ์–ด๋–ค ๋ฌผ์ฒด๋“  ์‚ฌ์ง„์„ ์ฐ์œผ๋ฉด ์ฆ‰์‹œ ํƒ„์†Œ ๋ฐœ์ž๊ตญ์„ ํ™•์ธํ•˜๊ณ , ์นœํ™˜๊ฒฝ ๋Œ€์•ˆ๊ณผ ์‹ค์ œ ์ง€์—ญ ์ƒํ™ฉ์— ๋งž์ถ˜ ์กฐ์–ธ์„ ์ œ๊ณตํ•˜๋Š” ์›น ์•ฑ์ž…๋‹ˆ๋‹ค.

EcoLens๋งŒ์˜ ์ฐจ๋ณ„์ : ํ•˜์ดํ‹ฐ์™€ ๊ฐ™์€ ์ž์› ์ œํ•œ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ โ€œ๊ทธ๋ฆฐโ€ ์•ฑ์ด ์ œ์‹œํ•˜๋Š” ์†”๋ฃจ์…˜(์ „๊ธฐ์ฐจ, ํ‡ด๋น„ ์„œ๋น„์Šค, ์œ ๊ธฐ๋† ์Šˆํผ๋งˆ์ผ“ ๋“ฑ)์€ ํ˜„์ง€์— ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ, EcoLens๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์‹ค์ œ๋กœ ์‚ฌ๋Š” ๊ณณ์— ๋งž๋Š” ํ˜„์‹ค์ ์ด๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์กฐ์–ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐ๋ชจ

(๋ฐ๋ชจ ๋งํฌ ๋˜๋Š” ์ž„๋ฒ ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋‚ด๊ฐ€ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ

๋Œ€๋ถ€๋ถ„์˜ carbonโ€‘footprint ๋„๊ตฌ๋Š” ์„œ๊ตฌ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์•ˆ์„ ํ•ฉ๋‹ˆ๋‹ค:

  • โ€œBuy an electric vehicleโ€ โŒ ์•„์ดํ‹ฐ์—์„œ๋Š” ์ด์šฉํ•  ์ˆ˜ ์—†์Œ
  • โ€œUse your composting serviceโ€ โŒ ์กด์žฌํ•˜์ง€ ์•Š์Œ
  • โ€œShop at the organic supermarketโ€ โŒ ์ ‘๊ทผ ๋ถˆ๊ฐ€

EcoLens๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์‚ฌ๋Š” ๊ณณ์—์„œ ์‹ค์ œ๋กœ ํšจ๊ณผ์ ์ธ ์กฐ์–ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

How It Works

  1. ๐Ÿ“ธ ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ๋ฌผ์ฒด์˜ ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  2. โš™๏ธ React ํ”„๋ŸฐํŠธ์—”๋“œ๊ฐ€ ์ด๋ฅผ ASP.NET Core ๋ฐฑ์—”๋“œ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  3. ๐Ÿค– ๋ฐฑ์—”๋“œ๊ฐ€ OpenRouter API๋ฅผ ํ†ตํ•ด Google AI ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  4. ๐Ÿ“Š AI๊ฐ€ ๋ฌผ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํ™˜๊ฒฝ ์˜ํ–ฅ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  5. โœ… ๊ฒฐ๊ณผ๊ฐ€ ํƒ„์†Œ ์ ์ˆ˜, COโ‚‚ ์ถ”์ •์น˜, ์นœํ™˜๊ฒฝ ๋Œ€์•ˆ ๋ฐ ์ง€์—ญโ€‘๋งฅ๋ฝ ํŒ๊ณผ ํ•จ๊ป˜ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

ํŠน๋ณ„ ๊ธฐ๋Šฅ: ์•„์ดํ‹ฐ ์š”๋ฆฌ ์ธ์‹

EcoLens๋Š” ์•„์ดํ‹ฐ ์š”๋ฆฌ๋ฅผ ์ด๋ฆ„์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ๋ฌธํ™”์ ์œผ๋กœ ์ ์ ˆํ•œ ์กฐ์–ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ๐Ÿš Diri djon djon (๊ฒ€์€ ๋ฒ„์„ฏ ๋ฐฅ)
  • ๐Ÿฅฉ Griot (์•„์ดํ‹ฐ์‹ ํŠ€๊ธด ๋ผ์ง€๊ณ ๊ธฐ)
  • ๐ŸŽƒ Soup joumou (ํ˜ธ๋ฐ• ์ˆ˜ํ”„)
  • ๐ŸŒ Bannann peze (๋‘ ๋ฒˆ ํŠ€๊ธด ํ”Œ๋žœํ…Œ์ธ)
  • ๐ŸŒฝ Maรฏs moulu ak legim (์•ผ์ฑ„์™€ ํ•จ๊ป˜ ๊ฐˆ์€ ์˜ฅ์ˆ˜์ˆ˜)

๊ธฐ์ˆ  ์Šคํƒ

๊ณ„์ธต๊ธฐ์ˆ 
FrontendReactโ€ฏ19โ€ฏ+โ€ฏViteโ€ฏ+โ€ฏAxios
BackendASP.NETโ€ฏCoreโ€ฏ9 (C#)
AIGoogleโ€ฏGemma via OpenRouter API
Dev AssistantGitHubโ€ฏCopilot

์™œ OpenRouter๋ฅผ ์ง์ ‘์ ์ธ Gemini API ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

Google Gemini API๋Š” ์ง€๋ฆฌ์  ์ œํ•œ์œผ๋กœ ์ธํ•ด ์•„์ดํ‹ฐ ๋ฐ ๋งŽ์€ ๊ธ€๋กœ๋ฒŒ ์‚ฌ์šฐ์Šค ๊ตญ๊ฐ€์—์„œ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ์ ‘๊ทผ์ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. OpenRouter๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์ œํ•œ ์—†์ด Google์˜ Gemma ๋ชจ๋ธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด, Google AI๋ฅผ ํ•ต์‹ฌ์— ๋‘๋ฉด์„œ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์€ ๋‹ค์„ฏ ๊ฐœ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ž๋™ ํด๋ฐฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋Œ€ ์‹ ๋ขฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • google/gemma-3-27b-it:free
  • google/gemma-3-12b-it:free
  • google/gemma-4-31b-it:free
  • nvidia/nemotron-nano-12b-v2-vl:free
  • google/gemma-3-4b-it:free

GitHub Copilot์„ ํ™œ์šฉํ•œ AI ์ง€์› ๊ฐœ๋ฐœ

GitHub Copilot์€ EcoLens ๊ฐœ๋ฐœ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

  • ASP.NET Core ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ๋ฐ ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌ์กฐ ์ƒ์„ฑ.
  • OpenRouter API ํ†ตํ•ฉ ๋””๋ฒ„๊น….
  • JSON ํŒŒ์‹ฑ ๋กœ์ง ๊ฐœ์„  ์ œ์•ˆ.
  • React ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ.

๋‚ด๊ฐ€ ๊ฒช์€ ๋„์ „ ๊ณผ์ œ

1. Google Gemini API ์ง€๋ฆฌ์  ์ œํ•œ

๊ฐ€์žฅ ํฐ ์–ด๋ ค์›€์€ Gemini ๋ฌด๋ฃŒ ํ‹ฐ์–ด๊ฐ€ ์•„์ดํ‹ฐ์—์„œ ์ฐจ๋‹จ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์€ Google Gemma ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” OpenRouter์˜€์Šต๋‹ˆ๋‹ค.

2. ๊ฒฝ๊ณ  ์—†์ด ๋ฌด๋ฃŒ ๋ชจ๋ธ์ด ํ๊ธฐ๋จ

์•ฑ์ด ์ค‘๋‹จ๋˜์ง€ ์•Š๋„๋ก ๋‹ค์„ฏ ๊ฐ€์ง€ ๋ชจ๋ธ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹œ๋„ํ•˜๋Š” ์ž๋™ ํด๋ฐฑ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

3. AI๋กœ๋ถ€ํ„ฐ ์ผ๊ด€๋œ JSON ์–ป๊ธฐ

Gemma๋Š” ๋•Œ๋•Œ๋กœ JSON ์•ž์ด๋‚˜ ๋’ค์— ํ…์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์—์„œ ์ฒซ ๋ฒˆ์งธ {์™€ ๋งˆ์ง€๋ง‰ }๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒฌ๊ณ ํ•œ ์ถ”์ถœ ๋กœ์ง์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ฐฐ์šด ๊ฒƒ

  • ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI API(์ด๋ฏธ์ง€โ€ฏ+โ€ฏํ…์ŠคํŠธ)๋ฅผ ASP.NET Core์— ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • ๊ธ€๋กœ๋ฒŒ ์‚ฌ์šฐ์Šค ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ง€๋ฆฌ์  API ์ œํ•œ์˜ ํ˜„์‹ค.
  • ์—ฌ๋Ÿฌ ๋ฌด๋ฃŒ AI ๋ชจ๋ธ์„ ํ™œ์šฉํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ฐฑ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•.
  • ์‹ค์ œ ๋กœ์ปฌ ์ปจํ…์ŠคํŠธ์— ๋งž์ถฐ ๊ฐœ๋ฐœํ•˜๋Š” ์ค‘์š”์„ฑ.

๋‹ค์Œ ๋‹จ๊ณ„

  • ๋ชจ๋ฐ”์ผ ์ตœ์ ํ™” ์นด๋ฉ”๋ผ ์บก์ฒ˜.
  • ์‚ฌ์šฉ์ž๋ณ„ ๊ณผ๊ฑฐ ๋ถ„์„ ๊ธฐ๋ก.
  • ์ €์—ฐ๊ฒฐ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์˜คํ”„๋ผ์ธ ๋ชจ๋“œ.
  • ์นด๋ฆฌ๋ธŒํ•ด ๋ฐ ์•„ํ”„๋ฆฌ์นด ์ง€์—ญ์— ๋Œ€ํ•œ ์ง€์› ํ™•๋Œ€.

์†Œ์Šค ์ฝ”๋“œ

๐Ÿ”— GitHub Repository

โค๏ธ์™€ ํ•จ๊ป˜ ์•„์ดํ‹ฐ์—์„œ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค โ€” DEV Weekend Challenge โ€” Earth Dayโ€ฏ2026 ๐ŸŒฑ
OpenRouterโ€ฏ+โ€ฏGoogleโ€ฏGemmaโ€ฏAIโ€ฏ+โ€ฏGitHubโ€ฏCopilot์œผ๋กœ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค.

0 ์กฐํšŒ
Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

AI๋Š” ๊ฐœ๋ฐœ์ž ๋ฒˆ์•„์›ƒ์„ ์ค„์—ฌ์ค„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋์ง€๋งŒ, ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜๋Œ€๋‹ค.

๊ฐœ์š” ์šฐ๋ฆฌ๋Š” ์ตœ๊ทผ State of Developer Burnout 2026 ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋Š” ์—”์ง€๋‹ˆ์–ด๋“ค ์‚ฌ์ด์—์„œ ๋†’์€ ์ˆ˜์ค€์˜ ๋ฒˆ์•„์›ƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฃผ์š” ํ†ต๊ณ„ - Burnout rateโ€ฆ

์ง€๊ตฌ์˜ ๋‚ ์„ ์œ„ํ•œ ํ™œ๋ ฅ

์ œ๊ฐ€ ๋งŒ๋“  History๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋‹ฌ๋ ฅ ๋‚ ์งœ๋ณ„๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค; ๊ฐ ์„น์…˜ ์˜†์˜ ์‚ฌ์ง„์€ ์‹ค์ œ ๋ฒˆ๋“ค๋œ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์„ ํƒ์ ์ธ Gemini API route๋Š” ๋”ฐ๋œปํ•œ ์ฝ”์น˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AI๋Š” ์ฝ”๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์˜ฌ๋ฐ”๋ฅธ์ง€ ๋ˆ„๊ฐ€ ํ™•์ธํ•˜๋‚˜์š”?

AI๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋…ผ์Ÿ์€ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์†๋„๋Š” ์ด์•ผ๊ธฐ์˜ ํ•œ ์ธก๋ฉด์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ AIโ€‘์ƒ์„ฑ ์ฝ”๋“œ๋Š” ์ฒ˜์Œ ๋ณด๋ฉด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ โ€ฆ

๋‹น์‹ ์˜ AI ์—์ด์ „ํŠธ๊ฐ€ ํƒˆ์ฃผํ•  ๋•Œ: Bulletproof Incident Response System ๊ตฌ์ถ•

AI ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ์‚ฌ๊ณ  ๊ด€๋ฆฌ ๋ฐฉ์‹์€ ์ „ํ†ต์ ์ธ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. AI ์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํžˆ ๊ฐ€๋™ ์ค‘์ธ์ง€ ์ค‘๋‹จ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผโ€”