2023๋…„ 10์›” 02์ผยท1๋ถ„ ์ฝ๊ธฐ

AppMaster ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ ์ตœ์‹  ์—…๋ฐ์ดํŠธ | 2023๋…„ 9์›”

์ฝ”๋“œ ์—†๋Š” ์•ฑ ๊ฐœ๋ฐœ ์„ธ๊ณ„์—์„œ ๊ฐœ๋ฐœ์ž์™€ ๋น„์ฆˆ๋‹ˆ์Šค์— ํž˜์„ ์‹ค์–ด์ฃผ๋Š” ์ตœ์‹  ๊ฐœ์„  ์‚ฌํ•ญ๊ณผ ๊ธฐ๋Šฅ์„ ์•Œ์•„๋ณด์„ธ์š”.

AppMaster ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ ์ตœ์‹  ์—…๋ฐ์ดํŠธ | 2023๋…„ 9์›”

์ด๋ฒˆ ๋‹ฌ์—๋Š” AppMaster ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ํ›Œ๋ฅญํ•œ ์ƒˆ ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์†Œ๊ฐœํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ 9์›” ์—…๋ฐ์ดํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์•ฑ ๊ฐœ๋ฐœ์„ ๋”์šฑ ์‰ฝ๊ณ  ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”์ง€ ์•Œ์•„๋ณด์„ธ์š”.

AppMaster ๋ฅผ ํ†ตํ•ด ์•ฑ ์ œ์ž‘์˜ ๋ฏธ๋ž˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ํƒํ—˜ํ•ด ๋ณด์„ธ์š”!

๋ชจ๋ฐ”์ผ ์œ„์ ฏ

์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด๋Ÿฌํ•œ ํ†ตํ•ฉ ์•ฑ ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ฏธ์  ์ธก๋ฉด๊ณผ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ผ๋ จ์˜ ์ƒˆ๋กœ์šด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋ฐ”์ผ ์Šฌ๋ผ์ด๋” ์œ„์ ฏ์— ๋„์ž…ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. "active_track_color", "inactive_track_color" ๋ฐ "thumb_color"๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์œ„์ ฏ ์‚ฌ์šฉ์ž ์ •์˜์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ด๊ณ  ๋ฏธ๋ฌ˜ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ด‰์ง„ํ•˜๊ธฐ ์œ„ํ•ด ์ „๋žต์ ์œผ๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

"active_track_color" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์Šฌ๋ผ์ด๋” ํŠธ๋ž™์ด ํ™œ์„ฑ ์ƒํƒœ์ผ ๋•Œ ์ƒ‰์ƒ์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์— ์ง๊ด€์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๋™์ ์ด๊ณ  ์‹œ๊ฐ์ ์œผ๋กœ ๋งค๋ ฅ์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ, "inactive_track_color" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์Šฌ๋ผ์ด๋”๊ฐ€ ๋น„ํ™œ์„ฑ ์ƒํƒœ์ผ ๋•Œ ํŠธ๋ž™ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋””์ž์ธ ๋‚ด์—์„œ ์ผ๊ด€์„ฑ๊ณผ ์‹œ๊ฐ์  ์กฐํ™”๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

BP๋ฅผ ์œ„ํ•œ STF ์šด์˜

๋˜ํ•œ ๋ฐฑ์—”๋“œ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค(BP)๋ฅผ ์œ„ํ•œ STF(Scheduled Task Force) ์ž‘์—… ๊ตฌํ˜„์„ ๋ฐœํ‘œํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „๋žต์  ์ถ”๊ฐ€๋Š” BP ์‹คํ–‰์„ ์œ„ํ•ด ์‚ฌ์ „ ์ •์˜๋œ ์ผ์ •์„ ํ—ˆ์šฉํ•˜๊ณ  ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผœ ํ”Œ๋žซํผ์˜ ์šด์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋Š” ๊ธฐ์ˆ  ๋™ํ–ฅ์„ ์„ ๋„ํ•˜๊ณ  ์ง„ํ™”ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ฒจ๋‹จ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋ ค๋Š” ์šฐ๋ฆฌ์˜ ๋…ธ๋ ฅ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ž๋™ํ™”ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด ์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์‹ญ์‹œ์˜ค.

iOS์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ

์ตœ์‹  AppMaster ์—…๋ฐ์ดํŠธ๋Š” iOS ๊ฐœ๋ฐœ ํˆดํ‚ท์— ์ผ๋ จ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ–ฅ์ƒ๋œ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” iOS ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๋”์šฑ ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • BLE(Bluetooth Low Energy) ์ง€์›: IoT ์žฅ์น˜์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ๊ณผ iOS ์•ฑ์˜ ํ–ฅ์ƒ๋œ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•œ BLE ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ JSON ์ฒ˜๋ฆฌ: JSON ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๋ฐ ์กฐ์ž‘์ด ๊ฐ„์†Œํ™”๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ ์ž‘์—…์ด ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค.
  • ๋ฆฌํŒฉํ„ฐ๋ง๋œ ์ž…๋ ฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜: ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ž…๋ ฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ–ฅ์ƒ๋˜์–ด iOS ์•ฑ ์ „์ฒด์˜ ์œ ์šฉ์„ฑ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™”๋ฉด์šฉ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค(BP) ๋ธ”๋ก: ์‚ฌ์šฉ์ž๋Š” BP ๋ธ”๋ก์„ ํ†ตํ•ด ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฐจํŠธ ํ†ตํ•ฉ: ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ์ฐจํŠธ ํ†ตํ•ฉ์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ์‚ฌ์šฉ์ž ์ฐธ์—ฌ๋ฅผ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • BP ๋ธ”๋ก์ด ํฌํ•จ๋œ ์„œ๋ช… ํŒจ๋“œ: ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋ช… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ iOS ์•ฑ์˜ ์ƒํ˜ธ ์ž‘์šฉ ์˜ต์…˜์„ ๋”์šฑ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์—…๋ฐ์ดํŠธ๋Š” iOS ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋›ฐ์–ด๋‚œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ํˆดํ‚ท์„ ์ œ๊ณตํ•˜์—ฌ ๊ทธ๋“ค์ด ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์˜ ์„ ๋‘์— ์„œ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ์—…๋ฐ์ดํŠธ

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€ํ•˜์„ธ์š”
์ธ์ฆ, ๊ฒฐ์ œ, ๋ฉ”์‹œ์ง•์„ ํ•„์š”ํ•  ๋•Œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ๋กœ ์—ฐ๊ฒฐํ•˜์„ธ์š”.
์•ฑ ๋งŒ๋“ค๊ธฐ

  • ์›น ์•ฑ์˜ WSS: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ WSS(์›น ์†Œ์ผ“ ๋ณด์•ˆ)๋ฅผ ๋Œ€ํญ ๊ฐœ์„ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™” ๋ฐ ์ธ์ฆ์„ ๊ฐ•ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—…๋ฐ์ดํŠธ๋Š” ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๋ฐ ๋ณดํ˜ธ์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ์•ฝ์†์„ ๊ฐ•์กฐํ•˜์—ฌ ๋ณด๋‹ค ์•ˆ์ „ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • Docker ์ปจํ…Œ์ด๋„ˆ: ๋ชจ๋“  ๊ฒƒ์„ Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋™ํ•˜์—ฌ ์•ฑ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋นŒ๋“œ ์†๋„์™€ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋ชจ๋‘ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด์ œ AppMaster ์‚ฌ์šฉ์ž๋Š” ๋” ๋น ๋ฅธ ๊ฐœ๋ฐœ๊ณผ ํ–ฅ์ƒ๋œ ์•ˆ์ •์„ฑ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์—ด๊ฑฐํ˜• ๋ณ€๊ฒฝ ์‚ฌํ•ญ: ์—ด๊ฑฐํ˜• ์‹๋ณ„์ž๊ฐ€ ์ด์ œ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์—…๋ฐ์ดํŠธ๋Š” ์ฝ”๋“œ ๋ช…ํ™•์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผœ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด๋‹ค ์ง๊ด€์ ์ด๊ณ  ํ‘œํ˜„๋ ฅ์ด ํ’๋ถ€ํ•œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.
  • ์—”๋“œํฌ์ธํŠธ: ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด endpoints ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ URL ๋์— ์Šฌ๋ž˜์‹œ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์„œ๋ฒ„๊ฐ€ ์ผ๊ด€๋˜๊ฒŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋Š” API ์ƒํ˜ธ ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๋” ์›ํ™œํ•˜๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  ์•ฑ ๊ฐœ๋ฐœ์˜ ์ง„ํ™”ํ•˜๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋žซํผ์˜ ๊ธฐ๋Šฅ์„ ์ง€์†์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋™์•ˆ ๋”์šฑ ํฅ๋ฏธ๋กœ์šด ์—…๋ฐ์ดํŠธ๋ฅผ ๊ณ„์† ์ง€์ผœ๋ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
AppMaster ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ ์ตœ์‹  ์—…๋ฐ์ดํŠธ | 2023๋…„ 9์›” | AppMaster