시각장애인의 gemini cli 사용 경험담
- 요새 내가 출근하고 있는 곳은 모든 ai 웹싸이트가 보안 상 막혀 있습니다. 접속하면 403 포비든이 뜨죠. chatgpt, gemini 다 막혀있어요.
- 그러던 중 혹시나 하고 gemini cli를 설치 해봤는데 이건 또 잘 되는거에요. 아마 보안 팀에서 빼먹었나 보네요.
- 며칠 잘 가지고 놀던 중, 얘는 시각장애인에 대한 접근성 고려가 안되 있어서 많이 불편 했어요. 아스키 캐릭터로 박스를 많이 그리는데 그걸 스크린리더가 읽어 줄 때 이상한 잡음처럼 들리거든요.
- 그래서 설치된 gemini cli 소스를 일일히 고쳐서 아스키 박스 캐릭터를 다 지워 버렸어요. 수정한 파일이 3개 정도.
- 또 며ㅣㄹ 잘 쓰던 중 이게 아무래도 터미널 이다보니 시각장애인이 쓰기 불편한 점이 있더라구요. 그래서 혹시나 하고 물어봤죠, '이거 웹페이지로 쓸 수 있니?'
- 그랬더니 '오. 그거 내가 해 줄께. 하더니 xpress 기반으로 프로젝트 하나 뚝딱 만들어서 주더라고요.
- 동작 원리는 index.html 에 사용자 입력을 받고 그걸 server.js 가 받아 가상 터미널을 띄워 gemini cli를 실행 하고 넘겨 주고 그 출력을 웹페이지로 넘겨 주는 방식이더군요.
- 근데 실제로 동작을 안하는 거 처럼 보였어요. 옆에 계신 분에게 물어보니 화면은 나오는데 스크린리더가 읽어 주질 않더군요.
- '스크린리더가 안 읽어줘. 고쳐봐' 했더니 스크린리더에서도 잘 읽어주도록 고쳐 주더군요.
- 또 다른 문제가 있는데, 이게 터미널을 제어 하면서 화면을 그리는 프로그램이다 보니 웹페이지에는 제대로 안나와요. 그 이야길 했더니 가상 터미널을 띄우지 말고 child process 로 띄우자고 하면서 고쳐 주더라고요.
- 그런데 이렇게 하면 child 로 뜬 gemini 가 stdin 이 없으니 바로 죽어 버리더라구요.
- 또 이야길 했더니 그럼 --prompt 옵션으로 사용자 입력을 넘겨주고 줄력을 뿌리도록 수정 하더군요.
- 와. 이제 편하게 web ui 로 gemini cli 를 쓰는구나!! 했는데...
- 다른 문제가 있더군요. 프로세스가 1회 질문을 처리하고 죽어 버리니 문맥 유지가 안되요.
- 이 말을 하니 그럼 server.js 에서 사용자 입력과 ai의 대답을 전부 배열에 넣고 prompt 에 넣어서 보내도록 수정 했어요.
- ㅐㅏ. 이제 잘 되네. 내이름도 잘 기억 하고, 세션 중의 모든 내용을 다 기억 하네요.
- 아. 근데 이러면 gemini가 뜰 때 command line 이 너무 지저분 해지고 대화가 길어 질 수록 command 가 길어져서 보기 안좋은데...
- 라고 말했더니 그러면 pipe 로 바로 stdin 으로 보내도록 수정해줬어요.
- 이제 정말 마음의 평화를 얻었습니다.
- 위 과정 중 아스키 캐릭터 박스 손으로 지운거 빼고는 전부 말로만 지시하고 gemini가 다 해줬어요. 정말 똑똑한 친구.
저도 이제 ai의 노예가 됐습니다.
- 요새 내가 출근하고 있는 곳은 모든 ai 웹싸이트가 보안 상 막혀 있습니다. 접속하면 403 포비든이 뜨죠. chatgpt, gemini 다 막혀있어요.
- 그러던 중 혹시나 하고 gemini cli를 설치 해봤는데 이건 또 잘 되는거에요. 아마 보안 팀에서 빼먹었나 보네요.
- 며칠 잘 가지고 놀던 중, 얘는 시각장애인에 대한 접근성 고려가 안되 있어서 많이 불편 했어요. 아스키 캐릭터로 박스를 많이 그리는데 그걸 스크린리더가 읽어 줄 때 이상한 잡음처럼 들리거든요.
- 그래서 설치된 gemini cli 소스를 일일히 고쳐서 아스키 박스 캐릭터를 다 지워 버렸어요. 수정한 파일이 3개 정도.
- 또 며ㅣㄹ 잘 쓰던 중 이게 아무래도 터미널 이다보니 시각장애인이 쓰기 불편한 점이 있더라구요. 그래서 혹시나 하고 물어봤죠, '이거 웹페이지로 쓸 수 있니?'
- 그랬더니 '오. 그거 내가 해 줄께. 하더니 xpress 기반으로 프로젝트 하나 뚝딱 만들어서 주더라고요.
- 동작 원리는 index.html 에 사용자 입력을 받고 그걸 server.js 가 받아 가상 터미널을 띄워 gemini cli를 실행 하고 넘겨 주고 그 출력을 웹페이지로 넘겨 주는 방식이더군요.
- 근데 실제로 동작을 안하는 거 처럼 보였어요. 옆에 계신 분에게 물어보니 화면은 나오는데 스크린리더가 읽어 주질 않더군요.
- '스크린리더가 안 읽어줘. 고쳐봐' 했더니 스크린리더에서도 잘 읽어주도록 고쳐 주더군요.
- 또 다른 문제가 있는데, 이게 터미널을 제어 하면서 화면을 그리는 프로그램이다 보니 웹페이지에는 제대로 안나와요. 그 이야길 했더니 가상 터미널을 띄우지 말고 child process 로 띄우자고 하면서 고쳐 주더라고요.
- 그런데 이렇게 하면 child 로 뜬 gemini 가 stdin 이 없으니 바로 죽어 버리더라구요.
- 또 이야길 했더니 그럼 --prompt 옵션으로 사용자 입력을 넘겨주고 줄력을 뿌리도록 수정 하더군요.
- 와. 이제 편하게 web ui 로 gemini cli 를 쓰는구나!! 했는데...
- 다른 문제가 있더군요. 프로세스가 1회 질문을 처리하고 죽어 버리니 문맥 유지가 안되요.
- 이 말을 하니 그럼 server.js 에서 사용자 입력과 ai의 대답을 전부 배열에 넣고 prompt 에 넣어서 보내도록 수정 했어요.
- ㅐㅏ. 이제 잘 되네. 내이름도 잘 기억 하고, 세션 중의 모든 내용을 다 기억 하네요.
- 아. 근데 이러면 gemini가 뜰 때 command line 이 너무 지저분 해지고 대화가 길어 질 수록 command 가 길어져서 보기 안좋은데...
- 라고 말했더니 그러면 pipe 로 바로 stdin 으로 보내도록 수정해줬어요.
- 이제 정말 마음의 평화를 얻었습니다.
- 위 과정 중 아스키 캐릭터 박스 손으로 지운거 빼고는 전부 말로만 지시하고 gemini가 다 해줬어요. 정말 똑똑한 친구.
저도 이제 ai의 노예가 됐습니다.
이런 부분에서 참 좋겠다 라는 생각이 들더군요
몇년안에 ai가 화면을 분석하고 글이나 음성으로 알려주는게 가능 하리라고 봅니다.
시험 삼아 NPC에게 현재 상황을 설명해달라는걸 하는데 아직까지는 잘 분석하지 못하는 부분들이 있긴 하더군요
딥마인드에서 만든 프로젝트 아스트라같은게 모바일에도 적용되면 시각 정보를 실시간으로 알려줘서 편할수도 있다는 생각이 듭니다.