๐Ÿ“ข Louder Project ํšŒ๊ณ ๋ก

Rayleigh Choiยท2023๋…„ 1์›” 23์ผ
3
post-thumbnail

2022๋…„ 2ํ•™๊ธฐ ์บก์Šคํ†ค๋””์ž์ธ์—์„œ ์ง„ํ–‰ํ•œ ์‚ฐํ•™ํ˜‘๋ ฅ ํ”„๋กœ์ ํŠธ์ด๋‹ค.

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ์„ค๊ณ„ ์ ์ˆ˜๊ฐ€ 60%์ธ ์„ค๊ณ„ ์ค‘์‹ฌ์˜ ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฐํ•™ํ˜‘๋ ฅ ํ”„๋กœ์ ํŠธ์ธ ๋งŒํผ ๊ธฐ์—… ๋ฉ˜ํ† ๋‹˜๋“ค์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํŒ€ ๊ตฌ์„ฑ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๋‚ด๊ฐ€ ์ง์ ‘ ๋‚˜์„œ์„œ ํŒ€์„ ๊ตฌ์„ฑํ–ˆ๋‹ค. ๊ฐ™์ด ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ํ™œ๋™์„ ํ•˜๊ณ  ์žˆ๋Š” 3๋ช… + ๊ฐ™์€ ๊ณผ 1๋ช… + ๋‚˜ ๊นŒ์ง€ ํ•ด์„œ ์ด 5๋ช…์˜ ํŒ€์ด ์ด๋ฃจ์–ด์กŒ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ํŒ€ ๋Œ€ํ‘œ๋กœ์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

์ฃผ์ œ ์„ ์ •

๋จผ์ € ํฐ ์ฃผ์ œ๋Š” ๊ต์ˆ˜๋‹˜์ด ๋ฆฌ์ŠคํŠธ ํ•ด๋‘” ๊ฒƒ ์ค‘์— ์„ ํƒํ•ด์•ผ ํ–ˆ๋‹ค(์ž์œ  ์ฃผ์ œ๋ฅผ ์›ํ–ˆ์ง€๋งŒ). ์šฐ๋ฆฌ ํŒ€์€ 'IoT๋ฅผ ํ™œ์šฉํ•œ ์ง€๋Šฅํ˜• ์†Œ๋ฆฌ๋ถ„์„'์ด๋ผ๋Š” ์ฃผ์ œ๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

ํฐ ์ฃผ์ œ๋ฅผ ์ •ํ–ˆ์œผ๋ฉด ๊ตฌ์ฒด์ ์ธ ์ฃผ์ œ๋ฅผ ์ •ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ ํŒ€์€ ๊ตฌ์ฒด์ ์ธ ์ฃผ์ œ ์„ ์ • ๊ณผ์ •์—์„œ ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ์–ด๋ ค์›€์„ ๊ฒช์€ ์ด์œ ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํŒ๋‹จ๋œ๋‹ค.

  1. ํฐ ์ฃผ์ œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์–ด ์ž์œ ๋กญ๊ฒŒ ์•„์ด๋””์–ด๋ฅผ ๋‚ผ ์ˆ˜ ์—†์—ˆ๋‹ค.
  2. ๊ดœ์ฐฎ์€ ์•„์ด๋””์–ด๋ฅผ ๋‚ด์–ด๋ด๋„ ์ด๋ฏธ ์กด์žฌํ•˜๊ณ  ๊ทธ๊ฒƒ๋“ค์ด ๋” ์‹คํšจ์„ฑ์ด ์ข‹์•˜๋‹ค.
  3. ์‚ฌ์—…์„ฑ๊ณผ ์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ์ด ์ข‹์ง€ ์•Š์•˜๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์•„์ด๋””์–ด๋ฅผ ๊ตฌ์ฒดํ™”ํ•ด๋ณด๊ณ  ์•„๋‹ˆ๋‹ค ์‹ถ์œผ๋ฉด ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด์„œ 3๋ฒˆ์˜ (๊ตฌ์ฒด์ ์ธ)์ฃผ์ œ ๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๋‹ค.

ํ๊ธฐ๋œ ์ฃผ์ œ๋“ค

(์›๋ž˜๋Š” ๊ฐ ํ๊ธฐ๋œ ์ฃผ์ œ๋“ค์— ๋Œ€ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ด ํšŒ๊ณ ๋ก์˜ ํฌ์ธํŠธ๊ฐ€ ํ๋ ค์งˆ ๊ฒƒ ๊ฐ™์•„ ๋…ธ์…˜ ๋งํฌ ์ฒจ๋ถ€๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค)

์ด ์ฃผ์ œ๋“ค์ด ํ๊ธฐ๋œ ์ด์œ ๋Š” ์•„๊นŒ ์–ธ๊ธ‰ํ•œ 3๊ฐ€์ง€์˜ ์ด์œ  ๋•Œ๋ฌธ์ด๋‹ค.

์ตœ์ข… ์ฃผ์ œ ์„ ์ •

๊ฒฐ๊ตญ ์ •ํ•ด์กŒ๋‹ค!! ์ฃผ์ œ ์„ ์ •์— ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ์š”ํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ณ , ์ข‹์€ ์ฃผ์ œ๊ฐ€ ์„ค์ •๋˜๋ฉด ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„์€ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

Team Name : Louder
Project Big Topic : IoT๋ฅผ ํ™œ์šฉํ•œ ์ง€๋Šฅํ˜• ์†Œ๋ฆฌ๋ถ„์„
Project Small Topic : ์›จ์–ด๋Ÿฌ๋ธ” ์žฅ์น˜๋ฅผ ํ™œ์šฉํ•œ ์•„๋™ ์‹ ๋ณ€๋ณดํ˜ธ ์„œ๋น„์Šค

์„œ๋น„์Šค ๋Œ€์ƒ : ๋ณดํ˜ธ๊ฐ€ ํ•„์š”ํ•œ ์˜์œ ์•„ ๋ฐ ๋ฏธ์ทจํ•™ ์•„๋™(์•ฝ 6์„ธ ๋ถ€ํ„ฐ 12์„ธ ์ดํ•˜)์˜ ๋ณดํ˜ธ์ž
์ ์šฉ ํ™˜๊ฒฝ : ์•„์ด๊ฐ€ ๋ณดํ˜ธ์ž๋กœ ๋ถ€ํ„ฐ ๋–จ์–ด์ ธ์žˆ์„ ๋•Œ, ๋ฒ”์ฃ„๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

๋ฌผ๋ก  ๊ธฐ์กด์—๋„ ์•„๋™ ์‹ ๋ณ€๋ณดํ˜ธ ์žฅ์น˜๊ฐ€ ์žˆ๊ธดํ•˜๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ ๊ธฐ์กด ์‹ ๋ณ€๋ณดํ˜ธ ์žฅ์น˜์— ์ฐจ๋ณ„์ ์œผ๋กœ ์†Œ๋ฆฌ ์ธ์‹ ๋ฐ ๋ถ„๋ฅ˜๋ฅผ ํ†ตํ•œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ๋”ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

์—ญํ• ๋ถ„๋‹ด

์šฐ๋ฆฌ ํŒ€์€ ์•„๋‘์ด๋…ธ(2)+๋ชจ๋ฐ”์ผ(1)+์„œ๋ฒ„(1)+์ธ๊ณต์ง€๋Šฅ(1)์œผ๋กœ ์—ญํ•  ๋ถ„๋‹ด์„ ํ–ˆ๋‹ค. ๋‚˜๋Š” ์„œ๋ฒ„์™€ ํŒ€ ๋ฆฌ๋”๋ฅผ ๋‹ด๋‹นํ–ˆ๋‹ค.

์„ค๊ณ„ ๊ณผ์ •

๐Ÿ”ฝ ์ž์„ธํ•œ ์„ค๊ณ„ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋…ธ์…˜ ๋งํฌ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ณ„ํš ๋ฐ ์„ค๊ณ„

์ฃผ์š”๊ธฐ๋Šฅ

์šฐ๋ฆฌ ํŒ€ ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ์€ ์›จ์–ด๋Ÿฌ๋ธ” ์žฅ์น˜(์—ฃ์ง€ ๋””๋ฐ”์ด์Šค)์—์„œ ๋จธ์‹ ๋Ÿฌ๋‹์œผ๋กœ ์œ„ํ—˜ ์†Œ๋ฆฌ๋ฅผ ์ธ์‹ํ•ด์„œ ๋ณดํ˜ธ์ž์—๊ฒŒ ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค!

์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

์„ค๊ณ„์ƒ ๋„คํŠธ์›Œํฌ๋Š” NB-IoT์ด์ง€๋งŒ ํ”„๋กœํ† ํƒ€์ž… ๊ตฌํ˜„์‹œ์—๋Š” Wifi๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

ํ†ต์‹  ํ๋ฆ„๋„

์—ฌ๊ธฐ์„œ ๋‚˜์˜ ์—ญํ• ์€ Broker ์„œ๋ฒ„, Web ์„œ๋ฒ„, DB๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  FCM์„ ์ด์šฉํ•ด ์•Œ๋ฆผ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐœ๋ฐœ ๊ณผ์ •

๋‚ด๊ฐ€ ๊ตฌํ˜„ ํ•ด์•ผํ•˜๋Š” ์„œ๋ฒ„์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • Broker ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ(์†Œ๋ฆฌ ์ •๋ณด, GPS ์ขŒํ‘œ) ์ˆ˜์‹  ๋ฐ ์ €์žฅ
  • Kakao Map API๋ฅผ ํ™œ์šฉํ•˜์—ฌ GPS ์ขŒํ‘œ์— ํ•ด๋‹นํ•˜๋Š” ์ฃผ์†Œ๋ฅผ ์ˆ˜์‹  ๋ฐ ์ €์žฅ
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋™ ๊ฒฝ๋กœ(GPS์ขŒํ‘œ), ์ธ์‹๋œ ์†Œ๋ฆฌ ์ •๋ณด ๋ฐ์ดํ„ฐ ์š”์ฒญ์‹œ ์‘๋‹ต(API)
  • ๋ณดํ˜ธ์ž ๋ชจ๋ฐ”์ผ์— ํ‘ธ์‹œ ์•Œ๋ฆผ ์š”์ฒญ(FCM ์‚ฌ์šฉ)

Broker server

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

Broker ์„œ๋ฒ„์—๋Š” ์—ฌ๋Ÿฌ ์˜คํ”ˆ์†Œ์Šค๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ์ค‘ Mosquitto๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌ์ถ•ํ–ˆ๋‹ค.

Web server

์ž…์ถœ๋ ฅ(I/O)์ด ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ž‘๊ณ  ๋นˆ๋ฒˆํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค์ด๋ฏ€๋กœ ๋…ผ ๋ธ”๋กœํ‚น(Non-blocking I/O) ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ ๋ฐฉ์‹์˜ Node.js(Express)๋ฅผ ์ฑ„ํƒํ–ˆ๋‹ค. ๋˜ํ•œ Json ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ํ†ต์‹์„ ํ• ๊ฒƒ์ด๋ผ mongoDB๋ฅผ ์ฑ„ํƒํ–ˆ๋‹ค.

๋ฐฐํฌ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ•™๊ต์—์„œ NHN Cloud๋ฅผ ์ง€์› ๋ฐ›์•„ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋Š” ์ฒ˜์Œ ์‚ฌ์šฉํ•ด ๋ดค๋Š”๋ฐ ๊น”๋”ํ•œ UI์™€ ํ•œ๊ตญ ํšŒ์‚ฌ ์„œ๋น„์Šค์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ์•„์ฃผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๐Ÿ”ฝ ์ตœ์ข… ๋ณด๊ณ ์„œ ๋‚ด์šฉ์ค‘ ์ผ๋ถ€ ๋ฐœ์ทŒ

๊ฒฐ๊ณผ๋ฌผ

API ๋ฌธ์„œ

๋ชจ๋ฐ”์ผ๊ณผ ํ˜‘์—…์„ ์œ„ํ•ด ์„œ๋ฒ„ API ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ณต์œ ํ•˜์˜€๋‹ค.

์‹œ์—ฐ ์˜์ƒ

ํ•ต์‹ฌ ๊ธฐ๋Šฅ(์†Œ๋ฆฌ์ธ์‹) ์‹œ์—ฐ ์˜์ƒ
์•ฑ ์‚ฌ์šฉ ์‹œ์—ฐ ์˜์ƒ
๐Ÿ”ผ ์œ„ ์˜์ƒ์„ ๋ณด๋ฉด ํ”„๋กœํ† ํƒ€์ž… ์ œํ’ˆ๊ณผ ์‹ค์ œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ฐœํ‘œ๋“ค

์ฒดํฌ์—… ๋ฐœํ‘œ(์ง„ํ–‰ ์ ๊ฒ€)

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

์ค‘๊ฐ„ ๋ฐœํ‘œ(์ค‘๊ฐ„ ํ‰๊ฐ€)

์ค‘๊ฐ„๊ณ ์‚ฌ ์‹œํ—˜๊ธฐ๊ฐ„์— ์ง„ํ–‰ํ•œ ๋ฐœํ‘œ์ด๋ฉฐ ์—ฌ๋Ÿฌ ๊ธฐ์—…์ฒด ๋ฉ˜ํ†  ๋‹˜๋“ค์—๊ฒŒ ํ‰๊ฐ€๋ฅผ ๋ฐ›์•˜๋‹ค. ์ด๋•Œ๋ถ€ํ„ฐ๋Š” ์ตœ์ข… ํ‰๊ฐ€์— ๋ฐ˜์˜๋˜๋Š” ํ‰๊ฐ€ ์ž๋ฆฌ์ด๋ฏ€๋กœ ์ฒ ์ €ํ•˜๊ฒŒ ์ค€๋น„ํ–ˆ๋‹ค. ๋ฐœํ‘œ๋Š” ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จ ๋ช…๋ฃŒํ•˜๊ฒŒ ํ–ˆ์œผ๋ฉฐ ์˜ˆ์ƒ ์งˆ๋ฌธ๋„ ์ƒ๊ฐํ•ด ๋‘์—ˆ์—ˆ๋‹ค. ์ž˜ ์ค€๋น„ํ•œ ๋•๋ถ„์ธ์ง€ ๋ฐœํ‘œ๋„ ์ž˜ ํ•˜๊ณ  ์งˆ๋ฌธ์—๋„ ์ž˜ ๋‹ต๋ณ€ํ–ˆ๋‹ค!

์ตœ์ข… ์„ฑ๊ณผ ๋ฐœํ‘œํšŒ

ํ”„๋กœ์ ํŠธ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฐœํ‘œํ•˜๊ณ  ํ‰๊ฐ€๋ฐ›๋Š” ์ž๋ฆฌ์ด๋‹ค. ๋งˆ์ง€๋ง‰์ธ ๋งŒํผ ์ •๋ง ์‹ฌํ˜ˆ์„ ๊ธฐ์šธ์˜€๋‹ค. ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ๊ทธ๋™์•ˆ ์Œ“์•„์˜จ ๋‚ด์šฉ๋“ค์„ ๋ฐœํ‘œํ•ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค. ์ •๋ง ํ•ต์‹ฌ ์ค‘์— ํ•ต์‹ฌ๋งŒ ๋ฝ‘์•„ ๋ฐœํ‘œ ์ž๋ฃŒ๋ฅผ ๋งŒ๋“ค๊ณ  ๋ฐœํ‘œํ–ˆ๋‹ค.

๊ธด์žฅ์€ ํ–ˆ์ง€๋งŒ ๋ฌด๋‚œํ•˜๊ฒŒ ๋๋‚ฌ๋‹ค. ์ƒ๊ฐ ์˜์™ธ๋กœ ์งˆ๋ฌธ์ด ์—†์–ด์„œ ๊ทธ๊ฒŒ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ๋‹ค..(์ž˜ํ•ด์„œ ๊ทธ๋Ÿฐ๊ฑฐ๊ฒ ์ง€?)
๋ฐœํ‘œ์ž๋ฃŒ

๋ฐœํ‘œ ์ž˜ ํ•˜๋Š”๋ฒ•

๋ˆ„๊ตฌ ๋ณด๋‹ค ๋ฐœํ‘œ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋œ๋‹ค.

๋Œ์•„๋ณด๋ฉฐ

์ •๋ง ๋ฐ”์œ ํ•œ ํ•™๊ธฐ์˜€๋‹ค. ๋ฐ”๋นด๋˜ ์ด์œ ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ํฐ ๋น„์ค‘์„ ์ฐจ์ง€ํ–ˆ๋‹ค. ๋ถ„๋ช… ๊ณผ์ • ์†์—์„œ๋Š” ํž˜๋“ค์—ˆ์ง€๋งŒ ์ง€๋‚˜๊ณ  ๋ณด๋ฉด ๋ฟŒ๋“ฏํ•˜๊ณ  ๋ฐฐ์šด๊ฒŒ ๋งŽ๋‹ค. (๋‚˜ ์ž์‹ ์ด ๋Œ€๊ฒฌํ•ด!)

์–ด๋ ค์› ๋˜์  ๊ทธ๋ฆฌ๊ณ  ๋ฐฐ์šด์ 

๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ

์„œ๋ฒ„์—์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ ์ž ๊น ์–ด๋ ค์› ๋˜ ๊ฒƒ์€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜€๋‹ค. Nodel.js์—์„œ Kakao API๋กœ ์š”์ฒญ ๋ณด๋‚ด๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. ์‘๋‹ต์„ ๋ฐ›์•„์˜ค๋Š” ์‹œ๊ฐ„์ด ์žˆ๋‹ค ๋ณด๋‹ˆ ์‘๋‹ต์„ ๋ฐ›์€ ๋’ค์— ์ž‘๋™ํ•ด์•ผ ํ•  ์ฝ”๋“œ๊ฐ€ ์‘๋‹ต์ด ์˜ค๊ธฐ ์ „์— ์ž‘๋™ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ด๋•Œ๊นŒ์ง€ ๋น„๋™๊ธฐ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค..

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. Kakao API ์‘๋‹ต์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ๋ฉด ๋๋‹ค. async & await๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋•๋ถ„์— ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์™€ Promise์— ๋Œ€ํ•ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํŒ€ ๋ฆฌ๋”

๋‚˜๋ฆ„์˜ ์š•์‹ฌ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒ€์žฅ์„ ํ•˜๊ฒŒ ๋๋‹ค. ๋ฌผ๋ก  ํŒ€์žฅ์œผ๋กœ์„œ ๋งค์šฐ ๋ถ€๋‹ด์ด ๋์—ˆ์ง€๋งŒ ๋‚˜์—๊ฒŒ ์ž˜ ๋งž๋Š” ์—ญํ• ์ธ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค.

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

๊ทธ๋ž˜๋„ ํŒ€์ด๋ผ๋Š” ๊ฒƒ์€ ๋Œ€๋‹จํ•œ ๊ฒƒ์ด์—ˆ๋‹ค!! ๋‚ด๊ฐ€ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์€ ํŒ€์›๋“ค์ด ์ฑ„์›Œ์ฃผ์—ˆ๊ณ  ๋•๋ถ„์— ์ž˜ ๋งˆ๋ฌด๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํ•จ๊ป˜ ๊ณ ์ƒํ•ด ์ค€ ํŒ€์›๋“ค ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค! ๐ŸŒŸ

Project Github repository

profile
์‹ค์ฒœํ•˜๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

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