ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹โ€ฆ)

ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹...)

ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹โ€ฆ)

1๋ถ€, ๊ฐœ์š”

๋ธ”๋ฃจํˆฌ์Šค 4.0์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์–‘์ด ๋ฐœํ‘œ๋œ ์ง€ ๋ฒŒ์จ ๊ฝค ์˜ค๋žœ ์‹œ๊ฐ„์ด ํ˜๋ €์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  BLE ์ฃผ์ œ๋Š” ๋งค์šฐ ํฅ๋ฏธ๋กญ์ง€๋งŒ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ์—ฌ์ „ํžˆ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ฅผ ๋ฐฉํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๊ธ€์—์„œ๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์ธ Link Layer์™€ Physical Layer๋ฅผ ์ฃผ๋กœ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ์†์„ฑ ํ”„๋กœํ† ์ฝœ(ATT) ๋ฐ ์ผ๋ฐ˜ ์†์„ฑ ํ”„๋กœํ•„(GATT)๊ณผ ๊ฐ™์€ ๋ณต์žกํ•˜๊ณ  ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ฐœ๋…์— ์˜์กดํ•  ํ•„์š”๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐˆ ๊ณณ์ด ์—†์œผ๋ฉฐ, ์ด๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ํ˜ธํ™˜ ์žฅ์น˜๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์ €๋Š” ์ด ์ง€์‹์„ ์—ฌ๋Ÿฌ๋ถ„๊ณผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ธฐ์‚ฌ์—์„œ ๋‚˜๋Š” ์˜์ง€ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ๊ต๊ณผ์„œ ๋ถ์œ ๋Ÿฝ ์›น์‚ฌ์ดํŠธ์˜ ์ดˆ๋ณด์ž์šฉ. ๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์™œ ๋ชจ๋“  ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์Šต๋‹ˆ๊นŒ?

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

BLE ํ”„๋กœํ† ์ฝœ ๋‹ค์ด์–ด๊ทธ๋žจ์ด ๊ทธ๋ ค์ง„ ๊ทธ๋ฆผ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‚ฎ์€ PHY(๋ฌผ๋ฆฌ ๊ณ„์ธต)๋Š” ์žฅ์น˜์˜ ๋ฌด์„  ์ฑ„๋„์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ ๊ณ„์ธต(LL)์€ ์ „์†ก๋œ ๋ฉ”์‹œ์ง€์˜ ์ „์ฒด ๋ฐ”์ดํŠธ ์‹œํ€€์Šค๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๊ธฐ์‚ฌ์—์„œ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ •ํ™•ํžˆ ์—ฐ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ์ปจํŠธ๋กค๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค(HCI)๋Š” ์ปจํŠธ๋กค๋Ÿฌ์™€ ํ˜ธ์ŠคํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ์นฉ์— ๊ตฌํ˜„๋˜๋Š” ๊ฒฝ์šฐ BLE ๋ ˆ์ด์–ด ๋˜๋Š” ์นฉ ๊ฐ„์˜ ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. L2CAP(Logical Link Control and Adaptation Protocol)๋Š” ํŒจํ‚ท ํ˜•์„ฑ, ํ”„๋ ˆ์ด๋ฐ, ์˜ค๋ฅ˜ ์ œ์–ด ๋ฐ ํŒจํ‚ท ์กฐ๋ฆฝ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. SMP(Security Manager Protocol)๋Š” ํŒจํ‚ท ์•”ํ˜ธํ™”๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์•ก์„ธ์Šค ํ”„๋กœํ•„(GAP)์€ "๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€"๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์žฅ์น˜ ๊ฐ„์˜ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์Šค์บ๋‹ ๋ฐ ๊ด‘๊ณ ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ํ”„๋กœํ† ์ฝœ์˜ ๋‚˜๋จธ์ง€ ๋‘ ๋ถ€๋ถ„์ธ GATT์™€ ATT์— ์ค‘์ ์„ ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. GATT๋Š” ATT์˜ ์ƒ๋ถ€๊ตฌ์กฐ์ด๋ฏ€๋กœ ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹...)

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

์žฅ์น˜๋ฅผ ๊ฐœ๋ฐœํ•ด ๋ณธ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋งŽ์€ ํ”„๋กœ์ ํŠธ์— ์œ ์‚ฌํ•œ ์ฝ”๋“œ ์กฐ๊ฐ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋งŽ์€ ์žฅ์น˜๊ฐ€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์žฅ์น˜๊ฐ€ ๋ฐฐํ„ฐ๋ฆฌ๋กœ ๊ตฌ๋™๋˜๋Š” ๊ฒฝ์šฐ ์ถฉ์ „ ๋ฐ ๋ ˆ๋ฒจ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฌธ์ œ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์„ผ์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ์‹ค์ œ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ ‘๊ทผ ๋ฐฉ์‹์€ "์†์„ฑ๊ณผ ๋™์ž‘์„ ์ž์ฒด ํฌํ•จ๋œ ๊ณต์šฉ์ฒด๋กœ ๊ฒฐํ•ฉํ•œ ํ›„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.". ์ œ ์ƒ๊ฐ์—๋Š” BLE๋„ ๋น„์Šทํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‹œ๋„ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ•„์€ Bluetooth SIG(Special Interest Group)์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ”„๋กœํ•„์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ์ œ์กฐ์—…์ฒด์˜ ์žฅ์น˜๋Š” ์„œ๋กœ ์–ด๋ ค์›€ ์—†์ด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ•„์€ ์„œ๋น„์Šค์™€ ์„ค๋ช…์ž๋กœ ๋ณด์™„๋œ ํŠน์„ฑ ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹...)

์˜ˆ๋ฅผ ๋“ค์–ด ์‹ฌ๋ฐ•์ˆ˜ ๋ชจ๋‹ˆํ„ฐ(ํ”ผํŠธ๋‹ˆ์Šค ํŒ”์ฐŒ)์˜ ํ”„๋กœํ•„ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ๋‘ ๊ฐ€์ง€ ์„œ๋น„์Šค์™€ ์—ฌ๋Ÿฌ ํŠน์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ํ”„๋กœํ•„ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ์ฆ‰์‹œ ๋ช…ํ™•ํ•ด์ง‘๋‹ˆ๋‹ค. ์ฒดํฌํฌ์ธํŠธ ํŠน์„ฑ์€ ์ด ์นผ๋กœ๋ฆฌ ์†Œ๋น„๋Ÿ‰์„ XNUMX์œผ๋กœ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

1. ์‹ฌ๋ฐ•์ˆ˜ ์„œ๋น„์Šค์—๋Š” ์„ธ ๊ฐ€์ง€ ํŠน์„ฑ(0x180D)์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
    a) ํ•„์ˆ˜ ์‹ฌ๋ฐ•์ˆ˜ ํŠน์„ฑ(0x2A37)
    b) ์˜ต์…˜ ๋ฐ”๋”” ์„ผ์„œ ์œ„์น˜ ํŠน์„ฑ (0x2A38)
    c) ์‹ฌ๋ฐ•์ˆ˜ ์กฐ์ ˆ์ (0x2A39)์˜ ์กฐ๊ฑด์  ํŠน์„ฑ
2. ๋ฐฐํ„ฐ๋ฆฌ ์œ ์ง€๊ด€๋ฆฌ ์„œ๋น„์Šค(0x180F):
    a) ํ•„์ˆ˜ ๋ฐฐํ„ฐ๋ฆฌ ์ถฉ์ „๋Ÿ‰ ํŠน์„ฑ(0x2A19)

UUID

ํ”„๋กœํ•„ ์š”์†Œ(์„œ๋น„์Šค, ํŠน์„ฑ ๋ฐ ์„ค๋ช…์ž)์— ๊ณ ์œ ํ•˜๊ฒŒ ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ๋“  ๋ชจ๋“  ์š”์†Œ์— ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด UUID(Universally Unique ID) ๋˜๋Š” Universally Unique Identifier์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. UUID๋Š” ๊ฐ ์ค„์˜ ๊ด„ํ˜ธ ์•ˆ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์—๋Š” ํ•œ ๊ฐ€์ง€ ํŠน์ดํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. UUID์˜ ๊ฒฝ์šฐ ๊ธธ์ด๊ฐ€ 16๋น„ํŠธ์™€ 128๋น„ํŠธ์ธ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ์š”? BLE ํ”„๋กœํ† ์ฝœ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์—๋„ˆ์ง€ ๋ณด์กด์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 16๋น„ํŠธ ํฌ๊ธฐ๋Š” ์ƒ๋‹นํžˆ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— 65๊ฐœ ์ด์ƒ์ด ์ƒ์„ฑ๋  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋…ํŠนํ•œ ์„œ๋น„์Šค์™€ ํŠน์ง•. ํ˜„์žฌ๋กœ์„œ๋Š” ๊ทธ๋“ค์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ด๋ฏธ ๊ณ„์‚ฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์ด ๋ง์ด ์–ด๋””์„œ ์™”๋Š”์ง€ ๊ธฐ์–ตํ•˜์„ธ์š” - "๊ทธ๋Š” ๋‹น์‹ ๋„ ๊ณ„์‚ฐํ–ˆ์Šต๋‹ˆ๋‹ค" :-)) ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„ ์š”์†Œ ํ”„๋กœํ•„, ์„œ๋น„์Šค, ํŠน์„ฑ ะธ ์„ค๋ช…์ž ๋งํฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ธํ„ฐ๋„ท์ƒ์˜ 4๋ฐ”์ดํŠธ IP ์ฃผ์†Œ์— ๊ด€ํ•œ ์ด์•ผ๊ธฐ๋Š” ๋‹ค๋“ค ๊ธฐ์–ตํ•˜์‹ค ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹6๋ฐ”์ดํŠธ ์ฃผ์†Œ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹ค์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ณ  DIYer์˜ ์žฅ๋‚œ์Šค๋Ÿฌ์šด ์†๊ธธ์„ ์ž์œ ๋กญ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด SIG๋Š” ์ฆ‰์‹œ 128๋น„ํŠธ UUID๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐœ์ธ์ ์œผ๋กœ ๋ผ๋””์˜ค ์ฑ„๋„์—์„œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ Kulibins์—๊ฒŒ ์ œ๊ณต๋˜์—ˆ๋˜ ๋ฌด๋ฉดํ—ˆ 433MHz ๋Œ€์—ญ์„ ์ƒ๊ฐ๋‚˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์„œ๋น„์Šค ๋ฐ ํŠน์„ฑ์— ๋Œ€ํ•œ 128๋น„ํŠธ ์‹๋ณ„์ž๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์„œ๋น„์Šค์™€ ์žฅ์น˜์— ๋Œ€ํ•ด ๊ฑฐ์˜ ๋ชจ๋“  128๋น„ํŠธ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋™์ผํ•œ UUID๊ฐ€ ๋‚˜์˜ฌ ํ™•๋ฅ ์€ XNUMX์ด ๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์งง์€ 16๋น„ํŠธ UUID๋Š” 128๋น„ํŠธ ๊ฐ’์œผ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์–‘์—์„œ ์ด ํ™•์žฅ์€ Bluetooth Base UUID๋ผ๊ณ  ํ•˜๋ฉฐ ๊ฐ’์€ 00000000-0000-1000-8000-00805F9B34FB์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 16๋น„ํŠธ ์†์„ฑ UUID์˜ ๊ฐ’์ด 0x1234์ธ ๊ฒฝ์šฐ ํ•ด๋‹น 128๋น„ํŠธ UUID์˜ ๊ฐ’์€ 00001234-0000-1000-8000-00805F9B34FB์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๊ณต์‹๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

                                128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID

์ด ๋งˆ๋ฒ•์˜ ์ˆซ์ž๊ฐ€ ์–ด๋””์„œ ์™”๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋…์ž ์ค‘ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€์— ์ ์–ด์ฃผ์„ธ์š”. (Sinopteek๋ผ๋Š” ๋‹‰๋„ค์ž„์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€์„ ์ฐธ์กฐํ•˜์„ธ์š”.) 128๋น„ํŠธ UUID๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์›์น™์ ์œผ๋กœ ํŠน์ˆ˜ํ•œ UUID๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ์ „๊ธฐ์— ์˜ํ•œ๋ˆ„๊ฐ€ ๋‹น์‹ ์„ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„ํ‹ฐ ๊ฐ€ํ‹ฐ...

์‹ค์ œ๋กœ ์žฌ๋ฏธ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ATT๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ด€๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค๋Š” ์ ์„ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ์„œ๋ฒ„ ์žฅ์น˜๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์„ผ์„œ ๊ฐ’, ์ „๋“ฑ ์Šค์œ„์น˜ ์ƒํƒœ, ์œ„์น˜ ๋ฐ์ดํ„ฐ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  "ํผ๋ ˆ์ด๋“œ ์ฐธ๊ฐ€์ž"์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์กŒ์œผ๋ฏ€๋กœ ์–ด๋–ป๊ฒŒ๋“  ๊ทธ๋“ค์„ ์žฅ์น˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์†์„ฑ ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ํ…Œ์ด๋ธ”์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ž˜ ๊ธฐ์–ตํ•˜์„ธ์š”. ์ด๊ฒƒ์ด ๋ฐ”๋กœ BLE์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๋” ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ๊ฐ ์ค„์„ ์†์„ฑ์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ํ…Œ์ด๋ธ”์€ ์Šคํƒ ๊นŠ์ˆ™ํ•œ ๊ณณ์— ์œ„์น˜ํ•˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์ ‘๊ทผํ•˜์ง€๋งŒ, ๋‚ด๋ถ€์—์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์€ ์ผ๊ณฑ ๊ฐœ์˜ ๋ด‰์ธ ๋’ค์— ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์–‘์˜ ๊ทธ๋ฆผ์„ ์‚ดํŽด๋ณด๊ฒ ์ง€๋งŒ, ๊ทธ ์ „์— ์šฉ์–ด, ์ฆ‰ ์„ค๋ช…์ž์—์„œ ์ž์ฃผ ํ˜ผ๋™๋˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ฆ‰์‹œ ์ฃผ๋ชฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์ž์˜ ์—ญํ• ์€ ํŠน์„ฑ ์„ค๋ช…์„ ๋ณด์™„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์„ค๋ช…์ž๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์†์„ฑ์ด๊ธฐ๋„ ํ•˜๋ฉฐ ์„œ๋น„์Šค ๋ฐ ํŠน์„ฑ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์†์„ฑ ํ…Œ์ด๋ธ”์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋กœ๋Š” ์„ค๋ช…์ž๊ฐ€ ์†์„ฑ ํ…Œ์ด๋ธ”์˜ ํ–‰ ๋ฒˆํ˜ธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ์„ ๋ช…์‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜ผ๋ž€์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ๋ชฉ์ ์œผ๋กœ "์†์„ฑ ํฌ์ธํ„ฐ"๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹...)

๋”ฐ๋ผ์„œ ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์„ฑ์ด ์—ฐ๊ด€๋œ ๊ฐœ๋ณ„ ๊ฐ’์ž…๋‹ˆ๋‹ค.
1. ์†์„ฑ ํ•ธ๋“ค์€ ์†์„ฑ์— ํ•ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ” ์ธ๋ฑ์Šค์ž…๋‹ˆ๋‹ค.
2. ์†์„ฑ ์œ ํ˜•์€ ํ•ด๋‹น ์œ ํ˜•์„ ์„ค๋ช…ํ•˜๋Š” UUID์ž…๋‹ˆ๋‹ค.
3. ์†์„ฑ ๊ฐ’์€ ์†์„ฑ ํฌ์ธํ„ฐ์— ์˜ํ•ด ์ƒ‰์ธํ™”๋œ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.
4. ์†์„ฑ ๊ถŒํ•œ์€ ์†์„ฑ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์—†๋Š” ์†์„ฑ, ์ฆ‰ ๊ถŒํ•œ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ดํ•ดํ•ฉ๋‹ˆ๊นŒ? ์†์„ฑ ํฌ์ธํ„ฐ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์šฐ๋ฆฌ ํ…Œ์ด๋ธ”์˜ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์š”์ฒญ์—์„œ ์†์„ฑ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0x0001๋ถ€ํ„ฐ 0xFFFF๊นŒ์ง€ ํ–‰(์†์„ฑ) ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ…์žฅ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ด๊ฒƒ์€ ์ข…์ด ์นดํƒˆ๋กœ๊ทธ์˜ ์นด๋“œ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋„์„œ๊ด€ ๋ชฉ๋ก๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์นด๋“œ๋Š” ์ˆซ์ž๊ฐ€ ๋งŽ์€ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํ›„์† ๋ผ์ธ์˜ ๋ฒˆํ˜ธ๋Š” ์ด์ „ ๋ผ์ธ๋ณด๋‹ค ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„์„œ๊ด€๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ผ๋ถ€ ์นด๋“œ๊ฐ€ ๋ถ„์‹ค๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ค„ ๋ฒˆํ˜ธ์— ๊ณต๋ฐฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ ์ง„์ ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†์„ฑ ์œ ํ˜•์€ ์†์„ฑ์ด ๋‚˜ํƒ€๋‚ด๋Š” ๋‚ด์šฉ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. C์–ธ์–ด์™€ ๋น„์œ ํ•˜์ž๋ฉด,
๋ถ€์šธ, ์ˆซ์ž ๋ณ€์ˆ˜ ๋ฐ ๋ฌธ์ž์—ด์ด ์žˆ๋Š” ๊ณณ์— ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ธ์‹ํ•˜๋Š” ์†์„ฑ ์œ ํ˜•์œผ๋กœ
์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋ฃจ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€, ์ด ์†์„ฑ์„ ์–ด๋–ป๊ฒŒ ๊ณ„์†ํ•ด์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€. ์•„๋ž˜์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ํŠน์ • ์œ ํ˜•์˜ ์†์„ฑ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์„œ๋น„์Šค ์„ ์–ธ"(0x2800), "ํŠน์„ฑ ์„ ์–ธ"(0x2803), "์„ค๋ช…์ž ์„ ์–ธ"(0x2902)์ž…๋‹ˆ๋‹ค.

์†์„ฑ์˜ ๊ฐ’์€ ์‹ค์ œ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ๋™์–ด๋ฐ˜๋ณต์„ ์šฉ์„œํ•˜์„ธ์š”. ์†์„ฑ ์œ ํ˜•์ด ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ ์†์„ฑ ๊ฐ’์€ ์˜ˆ๋ฅผ ๋“ค์–ด "Hello World !!!"๋ผ๋Š” ์Šฌ๋กœ๊ฑด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†์„ฑ ์œ ํ˜•์ด "์„œ๋น„์Šค ์„ ์–ธ"์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’์€ ์„œ๋น„์Šค ์ž์ฒด์ž…๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๋‹ค๋ฅธ ์†์„ฑ๊ณผ ํ•ด๋‹น ์†์„ฑ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์— ๋Œ€ํ•œ ์ •๋ณด์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ๊ถŒํ•œ์„ ํ†ตํ•ด ์„œ๋ฒ„๋Š” ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๊ถŒํ•œ์€ ์†์„ฑ ๊ฐ’์—๋งŒ ์ ์šฉ๋˜๋ฉฐ ํฌ์ธํ„ฐ, ์œ ํ˜• ๋˜๋Š” ๊ถŒํ•œ ํ•„๋“œ ์ž์ฒด์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ์†์„ฑ ๊ธฐ๋ก์ด ํ—ˆ์šฉ๋˜๋ฉด ์˜ˆ๋ฅผ ๋“ค์–ด "Hello World !!!" ์ค„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "์ข‹์€ ์•„์นจ"์ด๋ผ๋Š” ์ค„์—. ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ๋กœ์šด ๋ผ์ธ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜ ์†์„ฑ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๊ณ  ํ•ด๋‹น ๋ผ์ธ์„ โ€œ์„œ๋น„์Šค ์„ ์–ธโ€์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น ์†์„ฑ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ฌด์—‡์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ ์ฝ๊ณ  ์“ธ ํ•„์š”๋Š” ์—†์ง€๋งŒ.

์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€

GATT์˜ ๊ฐœ๋…์€ ์†์„ฑ ํ…Œ์ด๋ธ”์˜ ์†์„ฑ์„ ๋งค์šฐ ๊ตฌ์ฒด์ ์ด๊ณ  ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์‹ฌ๋ฐ•์ˆ˜ ํ”„๋กœํ•„์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ํ…Œ์ด๋ธ”์˜ ๊ฐ€์žฅ ์™ผ์ชฝ ์—ด์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ˆœํžˆ ์ด ํ–‰(์†์„ฑ)์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์—ด์€ ์ด๋ฏธ ์šฐ๋ฆฌ์—๊ฒŒ ์นœ์ˆ™ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹...)

๊ฐ ๊ทธ๋ฃน์˜ ์ƒ๋‹จ์—๋Š” ํ•ญ์ƒ ์„œ๋น„์Šค ์„ ์–ธ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์œ ํ˜•์€ ํ•ญ์ƒ 0x2800์ด๋ฉฐ ํฌ์ธํ„ฐ๋Š” ํ…Œ์ด๋ธ”์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์†์„ฑ ์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ถŒํ•œ์€ ์ธ์ฆ์ด๋‚˜ ์Šน์ธ ์—†์ด ํ•ญ์ƒ ์ฝ๊ธฐ ์ „์šฉ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์กฐ๊ธˆ ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ’์€ ์„œ๋น„์Šค๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‹๋ณ„ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ UUID์ž…๋‹ˆ๋‹ค. ํ‘œ์—์„œ ๊ฐ’์€ 0x180D๋กœ Bluetooth SIG์—์„œ ์‹ฌ๋ฐ•์ˆ˜ ์„œ๋น„์Šค๋กœ ์ •์˜ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค.

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

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

ํ˜„๋ฏธ๊ฒฝ์œผ๋กœ ๋ณธ BLE(ATTั‹ GATTั‹...)

๋ณด์‹œ๋‹ค์‹œํ”ผ ์—ฌ๊ธฐ์—๋Š” ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ•„๋“œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์†์„ฑ ๋ฐ ์†์„ฑ์— ๋Œ€ํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน์„ฑ๊ฐ’์— ๋Œ€ํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ? ํ•ญ์ƒ ๋™์ผํ•ด์•ผ ํ•˜์ง€ ์•Š๋‚˜์š”? ์‚ฌ์‹ค ํŠน์„ฑ ๊ฐ’์˜ ์†์„ฑ์€ ์‹ค์ œ๋กœ GATT ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์„ฑ ์„ ์–ธ ์†์„ฑ์—์„œ ๋ฌด์—‡์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋‹จ์ˆœํ•œ ํžŒํŠธ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์†์„ฑ์—๋Š” ์–ด๋–ค ์œ ํ˜•์˜ ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

1. ์ ‘๊ทผ ๊ถŒํ•œ:
     - ๋…์„œ
     - ๊ธฐ๋ก
     - ์ฝ๊ณ  ์“ฐ๊ธฐ
2. ์ธ์ฆ ๊ถŒํ•œ:
     - ์ธ์ฆ ํ•„์š”
     - ์ธ์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
3. ์Šน์ธ ๊ถŒํ•œ:
     โ€” ์Šน์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค
     - ์Šน์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

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

์„ค๋ช…์ž

์šฐ๋ฆฌ ํ…Œ์ด๋ธ”๋กœ ๋Œ์•„๊ฐ€์ž. ํŠน์„ฑ ๊ฐ’์„ ์„ ์–ธํ•œ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์„ฑ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
1. ์ƒˆ๋กœ์šด ํŠน์„ฑ ์„ ์–ธ(์„œ๋น„์Šค๋Š” ๋งŽ์€ ํŠน์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ)
2. ์‹ ๊ทœ ์„œ๋น„์Šค ์„ ์–ธ(ํ‘œ์— ๋‹ค์ˆ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ)
3. ํ•ธ๋“ค ์„ ์–ธ

์‹ฌ๋ฐ•์ˆ˜ ์ธก์ • ํŠน์„ฑ์˜ ๊ฒฝ์šฐ, ๋ณธ ํ‘œ์—์„œ๋Š” ํŠน์„ฑ๊ฐ’ ์„ ์–ธ๊ณผ ํ•จ๊ป˜ ๋””์Šคํฌ๋ฆฝํ„ฐ ์„ ์–ธ์„ ๋™๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์ž๋Š” ํŠน์„ฑ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์„ค๋ช…์ž์—๋Š” ์—ฌ๋Ÿฌ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ ์ด์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ CCCD(ํด๋ผ์ด์–ธํŠธ ํŠน์„ฑ ๊ตฌ์„ฑ ์„ค๋ช…์ž)๋งŒ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. UUID๋Š” 0x2902์ž…๋‹ˆ๋‹ค. ์ด ์„ค๋ช…์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—์„œ ํ‘œ์‹œ ๋˜๋Š” ์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์‚ฌ์ด์˜ ์ฐจ์ด๋Š” ์ž‘์ง€๋งŒ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ†ต์ง€์—๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ˆ˜์‹  ํ™•์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‘œ์‹œ์—๋Š” ์ด๊ฒƒ์ด ํ•„์š”ํ•˜์ง€๋งŒ GATT ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์ ์šฉ ์ˆ˜์ค€์—๋Š” ๋„๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋ ‡์Šต๋‹ˆ๊นŒ? ์•„์•„, ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ชจ๋ฅธ๋‹ค. ๋ถ์œ ๋Ÿฝ ์ „๋ฌธ๊ฐ€๋“ค์€ ์•Œ๋ฆผ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ํŒจํ‚ค์ง€ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ(CRC ์‚ฌ์šฉ)๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๊ธ€์„ ๋งˆ์น˜๋ฉฐ ์ด๋ ‡๊ฒŒ ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ํ‘œ๋Š” ์•ฝ๊ฐ„ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์—์„œ ์ œ๊ณต๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ, ๋‚ด๊ฐ€ ์˜์กดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด ๊ธฐ์‚ฌ์˜ ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ๋Š” BlueTooth 4.0 ์‚ฌ์–‘์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋” ์ •ํ™•ํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ทธ๋ฆผ์ด ์šฐ๋ฆฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ๋Š” ๊ฐ€์ ฏ ์ค‘ ํ•˜๋‚˜์—์„œ Wireshark ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์€ ๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์—ฐ๊ตฌ ์ค‘์ธ ๋ชจ๋“  ์ด๋ก ์„ "์‹ค์‹œ๊ฐ„"์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฃน์‚ฌ ์ง์› "์นด์ด์‚ฌ๋ฅด ์œ„์„ฑ"
ํŽ˜์ฒด๋ฅด์Šคํ‚คํฌ ๋ธ”๋ผ๋””๋ฏธ๋ฅด

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€