HC-06은 매우 유명한 장치입니다. 소스가 없을 리가 없죠. 검색 한번만 하니 여러개 뜨네요.
http://www.hardcopyworld.com/ngine/aduino/index.php/archives/177
외국에는 블루투스만 평생 개발하는 개발자가 있을 정도입니다. 배워야 할 것은 너무 많죠.
그러나 우리는 하드웨어나 주파수의 통신 원리를 이해할 필요는 없고, 응용프로그램의 로직만 이해하면 되기 때문에,
굳이 미리 무언가를 공부할 필요는 없다고 생각합니다.
가장 중요한 것은 관련된 소스를 다수를 다운로드 받아서, 그중에서 가장 괜찮은 것 같은 소스 (예를들면 Github의 Issues 탭에 질문 답변이 활발한 소스, 그리고 좋은 소스는 Readability가 뛰어나고 쉽게 코딩되어 있는 편입니다)를 골라서 다양한 패턴을 이해하는 것이 좋습니다.
예를들어 블루투스 클래식의 경우 (HC-06이니 BLE는 아닐 겁니다) 연결 타입이 다양합니다. 헤드셋이나 스피커, 데이터 통신 등의 다양한 프로파일 타입별로 통신 예제를 파악하면 훨씬 좋죠. 그리고 Pairing을 하는 경우, Pairing 없이 연결하는 경우 등..
BLE의 경우(HM-10)에는 장비를 검색하고 RSSI를 측정하는 것(블루투스 클래식도 RSSI는 받을 수 있습니다만), Connection하고 데이터를 Write하는 경우, Read하는 경우, Notification을 받는 경우, 물론 Connection시 Pairing을 하는 경우도 있죠.
등등의 다양한 샘플들의 구현을 보고 이해하면 더 좋겠죠.
소스에서 사용하는 라이브러리가 이해가 가지 않는다면, 해당 라이브러리 이름으로 구글링하면 많은 설명이 나와 있을 겁니다.
좋은 오픈소스를 하나 찾아서 익숙해 지면, 많은 부분에서 성장을 합니다.
좋은 오프소스라면 매우 경험많은 개발자가 코딩을 했을 것이기 때문에, 앱의 아키텍쳐부터, 변수의 네이밍까지 다양한 부분을 보고 배울 수 있죠.