제임스딘딘의
Tech & Life

개발자의 기록 노트

ChatGPT : 거짓 정보를 그럴듯하게 포장해내는 인공지능

제임스-딘딘 2023. 5. 13. 13:48

ChatGPT 라는 인공지능 언어모델 서비스가 최근 인기입니다.
'언어모델' 이라는 단어에서 알 수 있듯이 사용자가 특정 언어로 질문을 하면 같은 언어로 대답을 해주는 인공지능입니다. 현재는 웹사이트에서 '문자' 로 사용가능한데, '음성-문자 변환' 기술을 잘 이어붙여주기만 하면 음성을 문자로 변환하는 것은 가능한 일이니, 곧 음성으로도 서비스 할 것 같아요.

저도 호기심에 몇번 ChatGPT사용을 해보다가, 사용을 해보니 뭔가 쓸만(?) 한 정보를 주는 것 같아서 종종 회사업무에도 활용합니다. 예를 들면 아래와 같이요.

웹브라우저의 ChatGPT 첫 화면

최근에 회사에서 SMB 프로토콜을 사용하는 네트워크 파일 서버에 연결하는 안드로이드 기반 파일탐색기 앱에서 '이미지 미리보기' 기능을 구현할 수 있는지를 빠르게 검증해보라는 상사의 요구사항이 있었습니다. 제 담당업무는 안드로이드 프레임워크의 Wi-Fi 부분인데, 관련성이 상당히 떨어지는 분야였죠. 그렇다고 SMB 프로토콜에 경험이 있는 상태도 아니었습니다. 그래서 ChatGPT 를 활용해 봤습니다.

나 > 네트워크 드라이브 프로토콜 SMB 에 대해 설명해줘

ChatGPT >
SMB는 Server Message Block의 약어로, 네트워크 상에서 파일 공유, 프린터 공유 등을 위한 프로토콜입니다. Microsoft에서 개발한 프로토콜로, Windows 운영체제에서 주로 사용됩니다.

SMB는 클라이언트-서버 모델을 기반으로 하며, 클라이언트에서 요청한 파일이나 자원에 대해 서버에서 응답합니다. 이를 위해 네트워크를 통해 데이터를 전송하는 방식으로 작동합니다. SMB는 파일 공유, 프린터 공유, 디렉토리 공유 등을 위한 다양한 기능을 제공합니다.

SMB는 최근에는 SMBv3.1.1까지 발전하여, 보안 및 성능 개선 등 다양한 기능이 추가되었습니다. SMBv3.1.1은 SMB 프로토콜의 버전 중 가장 최신 버전으로, Windows 8 및 Windows Server 2012 이상에서 지원됩니다.

SMB는 네트워크 상에서 파일 및 자원 공유를 효율적으로 처리할 수 있도록 도와주는 중요한 프로토콜입니다.

 

SMB가 대충 뭔지 감을 잡고, 아래와 같이 다시 ChatGPT에게 질문해봤다.

 

나 > SMB 프로토콜을 사용하는 파일브라우저 앱을 만들때 이미지 미리보기를 구현하려면 어떻게 해야할까?

ChatGPT >
SMB 프로토콜을 사용하는 파일 브라우저 앱에서 이미지 미리보기를 구현하려면 다음과 같은 절차를 따를 수 있습니다.

1. SMB 프로토콜을 이용하여 네트워크 공유 폴더에서 이미지 파일 목록을 가져옵니다.
2. 가져온 이미지 파일 목록에서 각 이미지 파일의 경로를 사용하여 이미지 파일을 로드합니다.
3. 이미지 파일을 로드한 후, 이미지 파일을 미리보기 화면에 표시합니다. 이를 위해서는 이미지 파일을 화면에 표시할 수 있는 형식으로 변환하는 작업이 필요할 수 있습니다. 예를 들어, JPEG, PNG, BMP 등의 이미지 형식을 지원하는 라이브러리를 이용하여 이미지를 표시할 수 있습니다.
4. 미리보기 화면에서 사용자가 이미지 파일을 클릭하면, 해당 이미지 파일의 상세 정보를 표시하는 화면으로 이동할 수 있습니다.

이를 위해서는 SMB 프로토콜을 이용하여 파일을 가져오는 기능과, 이미지 파일을 로드하고 표시하는 기능이 필요합니다. 또한, 이미지 파일을 표시하기 위한 라이브러리나 프레임워크를 사용하여 이미지를 변환하고 화면에 표시할 수 있어야 합니다.

 

그렇다고 한다. 하나하나 읽어보니 어찌보면 너무나도 당연한 내용이었다.
당연히 이미지 파일 목록 가져와서, 이미지를 로드한 뒤, 미리보기 영역에 그려주는 작업을 하면 미리보기 기능을 만들 수 있게되겠지. 다시 곰곰히 생각해보니 사실 내가 궁금한건 SMB 프로토콜이 이미지 미리보기 기능을 지원하는 규격을 가지고 있는지 였다.

질문을 봐꿔서 다시 ChatGPT에게 물어봤다.

 

나 > SMB프로토콜 자체에 이미지 미리보기 기능을 지원하기 위한 규격이 있을까?

ChatGPT >
SMB 프로토콜 자체에는 이미지 미리보기를 위한 규격이 존재하지 않습니다. SMB 프로토콜은 파일 공유 및 자원 공유를 위한 프로토콜로, 파일의 내용에 대한 구체적인 형식이나 처리 방법에 대한 규격은 포함하지 않습니다.

따라서, 이미지 미리보기 기능을 구현하려면 SMB 프로토콜 자체에서는 지원하지 않으므로, 파일을 가져온 후에 해당 파일이 이미지 파일인지 확인하고, 이미지 파일인 경우 이미지를 로드하여 표시해야 합니다. 이를 위해 이미지 파일의 형식을 확인하고, 해당 형식에 맞는 이미지 뷰어나 라이브러리를 사용하여 이미지를 표시할 수 있습니다.

또한, SMB 프로토콜을 이용하여 파일을 가져올 때, 파일의 메타데이터 정보 중 이미지 파일의 해상도, 크기, 생성일자, 수정일자 등을 가져올 수 있으며, 이 정보를 활용하여 이미지 파일에 대한 추가 정보를 표시할 수도 있습니다.

 

그래 이거였다. SMB 자체는 파일 내용에 대한 어떤 구체적인 처리방법에 대한 규격을 가지고 있지 않다. 그러므로 이미 미리보기 구현을 위한 규격이 없다.

결론적으로는 '순수 SMB 프로토콜 자체만으로' 미리보기 구현을 위해서는 아래방법뿐이라는 얘기.

1. 미리보기 할 파일 1개가 있다면, 원격지에 있는 해당 이미지 파일 하나의 '내용 전부' 다운로드
(왜냐하면 앱의 미리보기 영역에 그려줘야 하니까)
2. 다운로드 된 이미지를 미리보기 영역에 맞게 줄이고 잘라넣기. → 'Resize'  & 'Crop'

결론은 미리보기 기능자체는 이미지 전체를 다운로드 받아야 해서, 비용이 크고, 속도가 느리고, 비효율적이다.
물론, '추가적인 규격' 을 구현해 넣는다면 효율적으로 만들어 낼 수 있겠지만, 이는 General하지 못한.. 즉 '추가적인 규격'을 구현한 서버 한정이 될 것이다. 

 


 

그런데, 종종 이 ChatGPT는 거짓말도 '사실'인 척 아무렇지 않게 말한다.
내가 운영하는 이 블로그에 대해 물어봤다.

 

이렇듯 ChatGPT는 거짓말을 사실인 양, 줄줄줄 늘어놓는다.
이 블로그가 일본어로 작성되어 있다느니, 일본에 위치한 Gurucat 이라는 회사의 기술블로그라느니.

그래서 거짓말 말라고 해줬다.
ChatGPT의 잘못인정과 사과는 빠른편.

암튼 그렇다.
요약하면,


ChatGPT가 하는 말을 무조건 신뢰할 수 없다.