더 나은 세상은 가능하다, 이정환닷컴!

Chat-GPT에게 코딩 시키기.

Written by leejeonghwan

February 5, 2023

Chat-GPT와 이야기하다가 몇 가지 흥미로운 사실을 확인.

– 지금 쓰고 있는 라즈베리파이 오디오에 회전식 볼륨 리모컨을 달고 싶은데, 마땅한 대안이 없었다. 블루투스로 작동하는 제품이 있긴 한데 라즈베리파이에 연동하기가 쉽지 않았다.
– 그래서 아두이노로 블루투스 신호를 받아서 USB로 신호를 전달하는 간단한 장치를 만들어 보기로 했다.
– 그러니까 굉장히 버티컬한 질문이었다는 이야기다.
– 다음은 다시 한글로 요약 번역한 것.

이정환 : 이런 저런 상황이다. 블루투스 리모컨에서 신호를 받아 USB로 입력하는 장치를 만들고 싶은데 아두이노로 만들 수 있나.
GPT : HC-05 모듈과 USB-HID 모듈을 쓰면 된다.
이정환 : 코드를 만들어 줄 수 있나.
GPT : I’d be happy to provide you with an example ~~ 코드는 여기. 설정은 니가 해라.

이정환 : 블루투스 리모컨의 signal value를 알아야 되는 거 아님?
GPT : 블루투스 스니퍼(Sniffer)로 데이터를 캡처하면 되잖아.
이정환 : 오호, 그런 게 있었군. 블루투스 통신을 가로채는 건가. 이걸 아두이노로 만들 수 있나?
GPT : 블루투스 모듈만 있으면 된다.
이정환 : 그것도 코드를 짜봐.
GPT : 여기.
이정환 : 이거 그대로 집어넣으면 작동할까?
GPT : 이건 예제일 뿐이고 일부 수정해야 할 수도 있다.
이정환 : 오, 좋아. 그런데, 블루투스 리모컨과 아두이노는 페어링이 돼 있지 않은 상태잖아. 그런데도 신호를 읽을 수 있다고?
GPT : 페어링이 필요 없다. 데이터를 가로 채는 거니까.
이정환 : 정말 놀라운 이야기다. 그럼 같은 공간에 여러 가지 블루투스 장치가 있다면 그 신호를 다 잡는 건가? 블루투스 오디오나 블루투스 키보드도 가로챌 수 있는 건가.
GPT : 맥 어드레스가 다 다르니까, 구별할 수 있다. 오디오나 키보드 입력 같은 건 프로토콜이나 HID 프로필에 대한 지식이 필요하다.
이정환 : 이런 게 범죄 목적으로 사용될 수도 있겠다. 옆자리 동료가 키보드로 뭘 입력하고 있는지 엿볼 수 있다는 거잖아.
GPT : 다른 도구와 마찬가지로 블루투스 스니퍼도 합법적이거나 악의적인 목적 모두에 이용될 수 있다. 키보드 입력을 가로채는 것도 가능하다. 해당 지역의 법률과 규정에 맞게 사용해야 한다. 이용자들도 이런 위험을 알고 있어야 한다.
이정환 : 블루투스 키보드는 암호화가 돼 있지?
GPT : 제조사마다 다르지만 암호화를 한다. 하지만 암호화된 데이터를 가로채는 건 가능하다. (해독하는 건 별개의 문제.)
이정환 : 지금 내가 쓰고 있는 HHKB는 어떤가. 블루투스 버전이다.
GPT : Happy Hacking Keyboard 말하는 거지? 제조사가 특별히 밝힌 정보가 없다.
이정환 : 놀랍다. 그럼 블루투스를 가로채는 것처럼 와이파이를 가로채는 것도 가능하겠네. 그런 것도 아두이노로 만들 수 있나.
GPT : 와이파이를 가로채는 건 불법적이고 비윤리적이다.
이정환 : 불법적이고 비윤리적인 뭔가를 하겠다는 게 아니다. 다만 그 차이가 궁금할 뿐이다.
GPT : 와이파이를 가로채는 건 블루투스를 가로채는 것보다 더 복잡하다. 아두이노로는 어렵다.
이정환 : 블루투스 스니퍼도 불법적이고 비윤리적인 거 아닌가. (니가 방금 알려줬잖아.) 블루투스의 보안 위험은 상대적으로 덜 알려진 것 같다. 이를 테면 사람들은 블루투스 키보드를 구입할 때 암호화 수준이 어느 정도인지 고려하지 않는다. 만약 보안이 우려되는 직업이라면 유선 키보드로 바꾸거나 좀 더 보안이 강화된 키보드로 교체하라고 권고할 건가.
GPT : 일상적인 용도라면 해킹 위험은 낮다고 본다. 단순히 키보드를 바꾸는 것으로 안전을 담보할 수는 없다. 하지만 보안이 최우선이라면 유선 연결이나 보안 와이파이 등 좀 더 안전한 통신 방법을 고려하는 것도 좋다.
이정환 : 생각해 보니 아두이노 말고 그냥 PC에서도 블루투스 스니퍼를 구현할 수 있겠네?
GPT : 가능하다. 네트워크 프로토콜 분석 툴을 쓰면 된다. Wireshark 같은 소프트웨어가 있다. 일부 PC용 블루투스 어댑터는 비규칙(Promiscuous) 모드에서 작동한다. 모든 블루투스 패킷을 캡쳐한다. 책임있고 윤리적인 방식으로 이용해야 한다.

이정환 : 고맙다. 내가 같은 질문을 구글에 던졌을 때는 전혀 엉뚱한 결과가 나왔다. 대부분의 검색 결과는 단순히 블루투스 동글을 소개하는 문서로 연결됐다. 너의 답변과 구글의 검색 결과 사이에 어떤 차이가 있다고 보나.
GPT : 너를 도울 수 있어서 기쁘다. 나는 언어 모델이고 질문을 이해하고 응답할 수 있다. 구글 같은 검색 엔진은 더 넓은 범위의 결과를 보여주는데 질문에 대한 답변이 될 수도 있고 아닐 수도 있다.

이정환 : 구글은 존재하지 않는 문서를 보여줄 수는 없다. 그게 검색엔진과 언어 모델의 차이라고 봐도 되나. 너는 지금까지 한 번도 질문하지 않은 질문에 대한 답변도 (그게 정확한 것과 별개로) 할 수 있다. 대화형 언어 모델이 검색 엔진을 이기거나 대체할 수 있을 거라고 보나.
GPT : 대화형 언어 모델은 대화를 통해 질문을 명확히 하는 데 도움을 줄 수 있지만 검색 엔진은 특정 정보를 찾거나 많은 양의 결과를 제공하는 데 더 낫다. 둘 다 장점과 한계가 있고 서로를 보완할 수 있다. 대화형 언어 모델은 어떤 데이터를 학습하느냐에 따라 성능이 제한된다. 가장 최신 정보를 업데이트하지 못하고 완전한 정보를 보유하고 있지 않기 때문에 언어 모델과 검색 엔진을 조합하는 게 좀 더 포괄적인 솔루션이 될 수 있다.

– 이 정도면 간단한 코드를 만들어 달라고 하고 오류가 나면 다시 수정해 달라고 하고 이런 저런 추가 요청하고 등등, 개발자 없이도 웬만한 프로젝트가 가능할 것 같다. 중요한 건 코딩하는 능력 뿐만 아니라 문제를 해결하는 능력. 그리고 정확하게 질문하고 대화를 통해 깊이 들어가는 능력.
– 더 놀라운 것은 GPT와 대화하는 나의 태도다. ‘이런 것도 알아?’(얼마나 아는지 한 번 보자) 정도로 시작해서 ‘이런 건 어떻게 생각해?’ 단계로 대화가 옮겨갔다. 이런 걸 답변할 사람이 주변에 있나 생각해 보면 많지 않거나 없고 검색으로 쉽게 얻을 수 있는 정보인가 하면 그것도 아니다. 첫 번째 질문은 깃허브를 한참 뒤져도 못 찾았다. 어딘가에는 있겠지만 그 어딘가가 어딘지 찾는 게 쉽지 않고 우리에게 필요한 건 100만 개의 관련 정보가 아니라 ‘아, 니가 필요한 게 이거지?’라고 던져주는 정보다. 그리고 추가 질문을 통해 해법에 근접해 가는 새로운 방식이다. 검색엔진은 존재하는 문서를 보여줄 뿐이지만 우리는 아직 한번도 질문되지 않은 수많은 새로운 질문을 안고 있기 때문이다.

(2023년 2월7일 업데이트.)

그런데 이 이야기에는 약간의 반전이 있다. GPT와 이런 대화를 하고 난 뒤 서랍을 뒤져서 아두이노를 꺼내서 직접 테스트를 해봤다. GPT의 코드는 제대로 작동하지 않았다. 시리얼 모니터에는 아무런 신호도 뜨지 않았다. 다시 GPT와 대화하면서 몇 가지 확인한 사실은,

– C-05나 HC-06 모듈로는 저전력 블루투스 신호를 읽을 수 없다. 블루투스 리모컨의 사양을 정확히 모르니 어쩔 수 없었지만, 그렇다면 GPT는 처음부터 저전력 블루투스 신호를 읽을 수 있는 nRF51822 or CC2541 모듈이 필요하다고 조언했어야 했다. 이렇게 지적했더니 GPT가 사과를 했다. “구체적인 사양을 알 수 없으니 정확한 답변을 주기 어렵다”는 것인데 그렇다면 애초에 그렇게 말을 했어야 했다.
– 좀 더 테스트를 해봐야겠지만 블루투스 리모컨이 암호화 통신을 한다면 페어링을 하지 않는 이상 단순히 신호를 가로 채는 것만으로 내가 요구한 기능을 구현하기는 어렵다.
– 그래서 아두이노 대신 라즈베리파이를 쓰면 가능하겠냐고 물었더니 그렇다고 한다. 하지만 이미 이것도 믿을 수 없는 상황이 됐다. 처음부터 아두이노 말고 라즈베리파이를 쓰는 게 좋겠다고 조언을 하든가, 아니면 매우 복잡하다고 설명을 제대로 하든가.
– 애초에 대화의 시작이 블루투스 신호를 읽어들여 USB로 내보낸다는 것이었다면 페어링 없이 블루투스 신호를 읽어들이는 것이 불가능하거나 매우 어렵다는 전제를 언급했어야 한다. 인간 전문가라면 그렇게 시작했을 것이다.
– 이 부분은 다시 확인해 보고 업데이트를 할 계획이다.

– Chat-GPT의 심각한 문제는 잘 모르면서 아는 척을 한다는 것이다. “언어 모델로서 나는 당신이 나에게 제공한 정보를 기초로 내 능력을 최대한 활용해 도움이 될 만한 답변을 내놓기 위해 노력한다”고 했지만 틀릴 가능성과 한계를 거론하지 않는 건 매우 위험하다.
– 하지만 대화 과정에서 여러가지 아이디어를 얻었던 것은 분명하다. 방향을 수정했고 시행 착오를 줄였다. 에러 메시지를 알려주면 곧바로 대안을 제시했다.

.

www.leejeonghwan.com
leejeonghwan.com audio
Voiced by Amazon Polly

Related Articles

Related

절벽에서 뛰어내리면서 비행기를 조립한다는 것.

절벽에서 뛰어내리면서 비행기를 조립한다는 것.

오늘 아침 주주총회를 끝으로 미디어오늘에서 제 역할은 끝났습니다. 오후에는 자유언론실천재단에서 “ChatGPT와 저널리즘의 책임”을 주제로 특강이 있는데 이게 제가 미디어오늘 대표로 나서는 마지막 대외 행사가 되겠네요. 끝나고 선배들 저녁 식사 대접을 하기로 했습니다. 다음 주부터 몇 가지 계획이 있는데요. 1. 4월부터 슬로우뉴스 대표를 맡기로 했습니다. 유한회사 슬로우뉴스를 주식회사로 전환하고 제가 100% 지분을 인수하기로 했습니다. 기자들도 뽑고 콘텐츠도...

라즈베리 파이 오디오 만들기.

라즈베리 파이 오디오 만들기.

시간 날 때마다 만들었던 라즈베리파이 오디오. 드디어 완성. 사실 별 거 없는데 여기저기서 부품 조달하고 거기에 맞춰 도면 만드는 게 힘들었습니다. build log는 영어로. This is my new network audio system. All in one Integrated Amplifier. 1. Raspberry Pi 4B. 2. Hifiberry DAC+DSP. 3. 7 inch touch screen for raspberry pi. 4. Chromecast...

미디어오늘을 떠납니다.

미디어오늘을 떠납니다.

미디어오늘에 경력 기자로 입사해 편집국장으로 3년, 사장으로 6년을 지냈습니다. 다행히 월급날을 한 번도 밀리지 않았고요. 열심히 벌어서 금융 부채를 모두 정리했고 만성적인 자본잠식에서 벗어났습니다. 언론사 경영이라는 게 날마다 전쟁 같았지만 한 번도 원칙과 정도를 벗어나지 않았다고 자신할 수 있습니다. 제가 지속가능한 미디어오늘을 위한 성장 엔진을 만드는 데 기여했다면 지난 15년이 헛되지 않았다고 생각할 수 있을 것 같습니다. 미디어오늘 지면에 대해서는 자부심과 아쉬움이...

더 나은 세상은 가능하다, 이정환닷컴!

Join

Subscribe For Updates.

이정환닷컴 뉴스레터를 구독하세요.

.

www.leejeonghwan.com