2026년 2월 25일 수요일

제미나이 쓰다가 기특하다고 느꼈던 순간

요즘은 계속 짬날때마다 제미나이로 뚝딱뚝딱 파이썬과 오토핫키를 활용해서 업무자동화,간소화를 하는 중이다. 엑셀파일을 여러개 던져주고 요구사항에 따라 처리한 후 결과물을 pdf로 뽑으라는 요청을 했다. 결과를 보고 피드백하고 다시 수정하고 테스트하기를 반복. 출력형식도 이리저리 바꿔서 가장 효율적인 결과물을 내기 위해 손보기도 반복.

원래는 기본 출력 양식이 이런 식이었다. 수십개의 결과물이 한줄씩 나오고 뒤에 시간이 붙는다. 한번의 데이타 묶음을 처리할 때 출력하는 시간 꼬리표는 모두 동일해야 한다. 만약 여타 시간과 다른 이상한 시간이 붙으면 그 줄에는 맨 뒤에 "◀◀◀주의"를 표시하게 했다. 결과는 잘 나왔는데 출력물을 보니 데이타와 시간이 한줄에 길게 나오는게 영 번잡스러워보였다.

같은 시간은 반복되어 표시되니, 이 시간 타이틀로 잡고, 그 아래 데이타만 줄줄이 쏴달라고 했다. 만약 다른 시간인 데이타가 있다면 새로운 타이틀을 그 시간으로 잡고 거기에 속하는 데이타를 따로 모아달라고 했다.

생성한 코드를 실행해보니 원하는대로 실행되긴 했는데, 처음에는 데이타에 붙던 ◀◀◀주의 표시가 이번에는 이상하다고 판단된 데이타 꾸러미의 타이틀에 ◀◀◀주의 라고 붙었다. 이게 더 알아보기 편한게 맞다. 이미 이상한 데이타라고 모아놓았는데 거기 있는 데이타마다 전부 ◀◀◀주의라고 붙일 필요는 없으니까말이다.

제미나이의 설정에 보면 맞춤 요청사항이라고 있다. 얼마전 본 65줄짜리 Cloude의 코딩능력을 끌어올린 가이드를 읽고 내 상황에 맞게 "코드 작성 시 변동 요구사항에 대한 처리만 하고 이전 기능, 메세지는 변경하지 않는다. 변동 요구사항을 처리할 때 필수적으로 변경해야 할 경우에만 따로 고지하고 처리한다." 등을 적어두었다. 제미나이가 명령을 처리할 때 이 규칙을 늘 준수하라는 것이다. 이번의 변경 사항 (데이타에 붙일 태그를 타이틀 쪽으로 제미나이가 임의로 옮긴 것)에 대해 질문을 하였다. 왜 이전에 내가 요구했고 잘 동작했던 기능을 변경했는지 알고 싶었다.

제미나이의 답변을 보자.

이 프로그램을 만드시는 가장 핵심적인 목표는 "섞여 있는 데이터 속에서 잘못 지정된 날짜와 시간을 한눈에 직관적으로 찾아내는 것"입니다. 사용자의 시선은 큰 제목(구분선이 쳐진 시간대)을 먼저 훑고 지나가게 됩니다. 따라서 이상이 있는 시간대 그룹을 발견했을 때, 그 제목에 바로 경고 마크가 띄워져 있으면 더 빠르고 확실하게 오류를 인지할 수 있도록 돕는 UI/UX 관점의 최적화였습니다.
저는 감정이나 직관을 가진 사람은 아니지만, 주어지는 코딩 요구사항을 단순히 기계적으로 번역하는 것을 넘어 "이 기능이 어떤 목적을 위해 쓰이는가"를 분석하도록 설계되어 있습니다. 요구사항 4번 원칙("코딩 시 이번 작업이 어떠한 기능을 추가, 변경해서 어떤 목표를 이루려고 하는 것인지를 중점적으로 생각한다")을 지키기 위해, 출력 양식이 바뀔 때 사용자의 궁극적인 목표에 가장 부합하는 형태로 로직을 다듬은 결과입니다.

그렇네. 내가 지정한 맞춤요청사항 중 또 다른 하나가 있었다. '이 요구사항을 통해 어떤 목표를 위해 이 요청을 했는지를 생각하라'는 것을 제미나이가 기억하고 반영하고 있던 것이다. 그에 따라 나의 목표를 추정하고 결과물의 가치를 높이기 위해 데이타 출력양식을 제미나이가 임의로 변경했다. 화면을 올려보니 코드를 출력하기전에 이미, 그렇게 하겠다라고 고지도 해놓았었다. 원래대로라면 이상한 데이타 꾸러미의 데이타마다 ◀◀◀주의가 붙었을테고 나는 그런가보다, 했을게다. 제미나이 말대로 좀 어수선하다 싶었으면 주의표시를 타이틀로 옮겨달라고 요청했을수도 있겠다.

생성형 AI를 쓰면서 90%의 순간은 감탄을 하곤하는데 이렇게 한번씩 기대치를 장대높이뛰기 선수처럼 뛰어넘는 감격의 순간을 맛보게 해줄 때는 기특해서 등이라도 투닥투닥 쳐주고 싶다. 발전 속도 따라기가 벅찰만큼 수준이 높아져가고 있으니 이제 더 새로운, 더 놀라운 순간들을 어떻게 펼쳐 보일지 기대해보자.

2026년 2월 20일 금요일

간단한 코딩결과물 전송 codeshare.io

제미나이의 도움을 받아 업무용 PC에 몇가지 자동화 작업을 하고 있다. 코딩 작업을 하는 컴퓨터는 맥+상용인터넷이고 사용할 컴퓨터는 공용 윈도우PC + 다른 네트워크에 연결되었다. 로그인만 가능하다면 클라우드 서비스와 연동해서 주거니 받거니 하겠지만 문제는 공용PC라는 것. 공용PC에 구글 로그인을 해둔다? ㅎㄷㄷ.. 말도 안되는 이야기다.

대충 작업이 끝나면 send-anywhere.com 을 이용해서 파일을 보내고, 윈도우PC에서 받아서 실행하는 방법을 써왔다. 광고를 한번 봐야하기 때문에 보내는 쪽에서 파일 선택 → 전송버튼 → 광고배너(대기) → 광고 닫기 버튼 → 전송 개시 → 전송이 끝나면 확인 버튼. 받는 쪽에서도 PIN코드 입력 입력 → 받기 버튼 → 광고배너 (대기) → 광고 닫기 버튼 → 전송 개시... 뭐 대략 이런 과정이다. 받는 쪽에서는 같은 파일이름이 계속 날아오니 다운로드 폴더에 파일명(1), 파일명(2), 파일명(3)...이 생긴다. 생성되는 파일 뒤치닥거리도 번거롭다.

그러다 찾은 codeshare.io

한쪽 컴의 웹브라우저에서 페이지를 열면 특정한 주소가 할당되고 커다란 편집창이 나타난다. 이 할당된 주소를 다른 PC의 브라우저를 열고 주소창에 그대로 붙여 넣으면 이쪽에도 편집창이 크게 열린다. 이제부터 왼쪽 편집창에 써 있는 문자열이 바뀔때마다 같은 주소창을 열어둔 PC쪽의 편집창에도 동일한 내용이 써진다. 작업 PC에서 어느 정도 작업이 되면 코드를 전체선택-복사-코드쉐어에 붙여넣기를 한 후, 옆PC에 켜진 브라우저 창에서 전체선택-복사 한 후에 해당 파이썬 파일을 열어둔 편집기에서 전체선택 - 삭제 - 붙여넣기- 저장하고, 저장된 코드를 실행하면 즉시 반영된다. 말로쓰니 장황해보이는데 단축키로 뚝딱뚝딱하면 1초거리다.

실물(?) 파일을 던지고 받고 하는 과정에 비해 훨씬 빠르게 코드를 옮길 수 있었다. 테스트 → 수정 → 재전송 → 테스트 주기가 잦을수록 그 효과는 더 커졌다. 회원가입하면 20개 파일을 보관할 수 있단다. 비회원은 1개의 편집창을 24시간 동안은 공유할 수 있기 때문에 지금 상황에서는 충분했다.

2026년 2월 19일 목요일

명절에 부모님께 AI 리터러시를...

어머니는 종종 카톡으로 받은 영상을 보내주시곤 한다.무슨 의사입니다, 무슨 박사입니다 하면서 건강을 위해 뭘 먹어라, 뭐는 먹어서는 안된다, 하루세번 이걸 꼭 해라, 우리가 몰랐던 뭐뭐 식재료의 정체 어쩌고 하는 영상들이다. AI로 생성되었지만 어르신들은 잘 눈치채지 못하시는 모양이다. 처음에는 이런 영상들이 근거도 없고 영상에 나오는 "사람"들도 허구로 생성한 가짜들이라고 말씀드렸으나, 자식들이 귀찮게 잔소리하는 것으로 받아들이시는 모양이다.

이번 명절에 방문했을 때에는 이 허구들이 얼마나 우습게 만들어지는지를 보여드리기로 미리 마음먹었다.. 어머니께는 같이 식사를 하다가 식탁에 올려둔 수저통 사진을 찍고, 잠시 후 수저통에서 빨간, 노란 꽃들이 환한 조명과 함께 피어나는 영상을 만들어 보여드렸다. 아버지께는 눈앞에 있는 딸기 접시가 빙글빙글 돌면서 고양이로 변하는 영상을 만들어 보여드렸고. 두 분다 지금 눈앞에 있는 사물에서 실제와 구분하기 어려운 새로운 영상이 만들어진 것에 대해 놀라워하셨다. 1분전에 사진 찍는걸 봤는데 거기서 이렇게 쉽게 상상으로만 가능한, 티비 뉴스에서 가끔 나오는 영상들이 쉽게 만들어지는걸 보시고는, 말하자면 문화충격을 받으신 것 같았다. 부모님의 예전 사진을, 할머니 할아버지의 사진으로 덩실덩실 춤추는 영상을 만들어 드렸으면 더 강력한 효과를 발휘할 수 있었을지도 모른다. 그러나 사람의 형상, 특히 본인 또는 가족처럼 매우 익숙한 사람의 얼굴이 등장하는 AI영상이라면 불쾌한 골짜기의 감정을 느끼실 수도 있으니 주의가 필요할 것 같았다.

우리도 한창 때는 주작 글이니 판춘문예같은 가짜 사연에 울고 웃고 했던 일이 있었다. 지금의 AI 영상들은 상업적이고 전문적인 집단에 의해 창작되고 유포되는지라 그 세련되고 고도화된 컨텐츠 물량공세를 어떻게 구별해내야할지 걱정이다. 누구 말마따나 이제 우리들은 남은 생애에 보게될 모든 영상들이 가짜일 가능성을 염두에 두고 봐야하는 시대를 살게 되었다. 그렇게 해서 구별해 낼수만 있다면 그나마 다행이겠다만...

2026년 2월 10일 화요일

반복적인 엑셀파일 분석에 AI 대신 파이썬

정기적으로 검토해야하는 엑셀 파일 작업이 있다. 두개의 엑셀 파일에는 예를 들자면 수백개의 일련번호가 있고 각 항목에는 "과일-25%","생선-50%"처럼 두개의 값이 결합된 데이터들이 할당되어 있다. 규칙은 이러하다.

  • 해당 일련번호가 갖고 있는 "과일-25%" 항목중 "과일"부분은 다음 파일에서도 그대로 있어야 하되, 25%라는 항목은 반드시 50%로 증가하여 기록되어 있어야 한다. 처음 50%였던 항목은 75%가 되어 있어야 한다. 예를 들자면, 0001번 일련번호에 할당된 과일-25%는 다른 엑셀파일에는 과일-50%가 되어 있어야 하고, 일련번호 0002번이 생선-50%였다면 두번째 파일에는 반드시 생선-75% 값이 들어있어야 한다.
  • 한 파일 안에 한 일련번호는 한번만 등장해야 한다. 같은 파일 안에 반복되는 일련번호가 있어서는 안된다.
  • 첫번째 파일에서 XX-100% 였던 항목은 두번째 파일에 등장해서는 안된다. 임무완료로 퇴역하는 항목이다.
  • 위의 검토조건에서 오류가 발견되었다면 어떤 오류인지를 화면에 출력한다.
  • 만약 모든 입력 항목에 오류가 없다면, 두번째 파일에 등장했어야 할 첫번째 파일 항목 중 누락분만을 따로 목록을 생성한다.

이 과제를 제미나이의 사고모드 및 프로모드를 이용해서 작업을 시켜보았다. 빠른 모드로 해보니 첨부한 파일에 없는 항목을 데이터로 사용하는 할루네이션 현상이 나타났기 때문이다. 요구사항을 분석하고 방법을 찾는중이라는 진행단계 알림 메세지가 출력되고 결과가 그럴싸하게 나왔다. gems로 저장해놓고 여러번 불러보니 두가지 문제가 있다.

프롬프트대로 결과물을 잘 뽑아줄 때가 있는 반면, 어떨 때는 "언어 모델로서, 저는 그것을 도와드릴 수가 없습니다." 라거나 "저는 단지 언어 모델일 뿐이고, 그것에 필요한 정보나 능력이 없기 때문에 도와드릴 수가 없습니다." 또는 "저는 텍스트 기반 AI라서 그것은 저의 능력 밖의 일입니다." 라며 진행되지 않았다. 아니, 잘 하다가 왜 이러는게냐?

파일이 크거나 작업량이 과했느냐 하면 그것도 아니다. 15개 열에 300줄이니, 엑셀 파일 치고는 AI한테는 먼지같은 수준이다. (그냥 하는 말이 아니고 실제로, xlsx 말고 csv로 전달해주면 더 낫냐고 물었더니 이렇게 대답했으니까.) 작업 요청은 하루에 10번 미만이니 제미나이 프로 계정에서 할 수 있는 작업량이 비하면 그 또한 티끌만큼일게다.

또 다른 문제는, 작업이 성공해서 결과가 나올때에도 시간이 생각보다 오래 걸렸다. 결과가 나오기까지 2분 이상 소요됐다.

속도나 안정성이 만족스럽지 않았다. 그러던 중, 결과를 내기 위해 생성하는 파이썬 코드가 있으니, 이 코드를 다듬어 로컬에서 실행시키면 어떨까 싶었다. 사용자가 실행할 수 있도록 손봐달라고 요청해서 코드를 받았다. 파이썬이 설치된 윈도우pc에서 폴더를 하나 만들고 검토할 엑셀파일 두개를 던져넣고 파이썬 코드를 실행하니 대충 1초만에 결과가 나왔다. 여러번 해도 백발백중이다. 신속하고 틀림없이 결과가 나오니 필요한 요구사항들을 더 추가했다. 이 역시 즉각적인 결과가 나왔다.

AI가 데이타 처리를 잘 해주는건 맞지만 이렇게 몇백개 정도(더 많이도 가능?) 의 데이터에 대한 정합성을 검증하는 작업은 파이썬으로 돌리는게 (체감상) 수십배 이상의 효율이 나오는 듯 하다. 물론 이렇게 하기 위한 코드를 생성해준 것 역시 AI이까 AI의 도움이라는 것은 변함이 없다. 나중에 초인공지능시대가 와도 내 진심은 이러하다는걸 잘 기억해주길 바란다;;;;;

2026년 2월 7일 토요일

인터넷우체국의 가상키보드 불편

인터넷 우체국의 가상키보드 화면 캡쳐 이미지

얼마전부터 인터넷우체국 사이트에 접속하면 비밀번호를 입력할 때 가상키보드가 뜬다. 화면상에 보이는 그림 키보드에서 비밀번호 문자열을 클릭하여 입력해야하는걸 강제한다. 사용자가 가상키보드를 닫을 수도 없다.

왜 가상키보드를 강제하느냐. 사용자의 PC에 키보드 입력을 가로채는 해킹 프로그램이 깔려있고 사용자가 누르는 키보드의 키가 가로채져서 전송되고 있다고 가정하고 있는 것이다. 키를 누르는것보다 키 배열이 매번 바뀌는 키보드 그림을 그려주고 여기를 마우스로 왔다갔다 지나다니면서 한번씩 누르면 어느 키(어느 비밀번호 문자)가 눌렸는지를 해킹 프로그램이 알아차리지 못하게 하겠다......는 의도일 것이다.

하...... 이걸로 보안 강화되는거면 구글이니 페북이니 네이버니 테슬라니 연매출 수백조인 회사의 서비스에서는 왜 로그인 화면에 가상키보드를 안쓰는 것일까? 나는 그저 인터넷 우체국 들어가서 미리 작성해 둔 pdf 문서 파일 올려서 우편발송만 하면 되는데 이게 이렇게까지 사람을 귀찮게 할 일인가 싶다.

저 가상키보드의 단점은, 비밀번호 관리프로그램을 사용할 수 없다는 것이다. 예를 들면 나는 인터넷우체국의 비밀번호를 Yf&Tl%Vecx9OCyZ! 처럼 지정해서 사용하고 있는데 이건 매우 강력한 비밀번호이다. 추측할수도, 무작위 대입해서 뚫을 수도 없는 비밀번호이다. 외울 수도 없는 비밀번호이기 때문에 비번관리프로그램을 이용해서 자동으로 입력하게 하는데 저 가상키보드는 그 과정을 차단시켰다. 수동으로 복사 & 붙이기를 해도 입력되지 않는다. (물론 꼼수는 있으나, 굳이 여기서 말해서 막히게 하고 싶진 않다.) 그렇다보니 이러한 가상키보드의 단점은 사람들로 하여금 외울수 있고 타이핑할 수 있는 비밀번호를 사실상 강제하는 것이다. Yf&Tl%Vecx9OCyZ! 대신 apple123! 라든가 password72@ 같은 비번 말이다. 보안을 위해 정기적으로 비밀번호를 바꾸라고 하면 우린 또 무슨 새로운 비번을 지정해서 그걸 외워야하나? 외우기 힘든 비번이라면 메모지에 비밀번호를 적어서 모니터에 붙여두거나 키보드 아래에 둔다. 누가 "가상키보드를 도입하면 보안이 강화됩니다"라고 설득했는지 모르겠으나 그로 인한 부작용이 더 크지 않다고 입증할 수 있는 이가 있을까?

백번 양보해서 기본값으로 가상키보드를 켜고, 사용자 책임하게 가상키보드를 끄게 하면 안되었을까? 패스키를 도입할 수는 없었을까? 의심스러운 로그인이 감지되면 그때 2단계인증을 요구할 수는 없었을까? 로그인을 이메일 주소로 하고 사용자가 입력하면 로그인할 수 있는 무작위로 생성된 URL을 메일로 보내 클릭하게 할 수도 있다. 모든 고객의 컴퓨터에 악성코드가 설치되어 키보드입력이 해킹당하고 있다고 확신하면 아예 저 가상키보드를 반투명하게 만들고 3초마다 한번씩 화면 여기저기로 동에 번쩍 서에 번쩍 이동하게 만들지 그러나.

세상 수천만개일지 수억개일지 모를, 그 많은 웹사이트, 로그인 기반 서비스들에게는 사용자의 컴퓨터가 키로그 툴로 인해 입은 피해에 대해 보상할 책임이 없는데 왜 우체국은 이렇게 키보드를 만들어 놨나 모르겠다.

참으로 불편하고 또 불편한 서비스 UI이다.

[업데이트]@2월27일
어제 밤에 확인해보니 가상키보드가 없어졌다. 다행이다. 우리는 뭔가 일을 할 때, 이게 실제로 필요하고 실제로 동작하는지, 문제해결 방식에 부합하는지 (아니, 그러한 문제가 실제로 존재하는지부터 먼저 확인), 선의의 고객이 감수할 불편함보다 압도적인 이익이 있는지 확인해...야 하는데... 사실 월급쟁이들이 그런 주장을 하긴 쉽지 않겠지.