전체 글(1283)
-
동기화 자동화에 최소 권한과 읽기 전용 자격증명을 못박아야 하는 이유
동기화 자동화를 만들 때 먼저 정해야 하는 건 "무엇을 하게 만들 것인가"가 아니라 "무엇을 못 하게 막을 것인가"였다. 처음엔 이 순서가 이상하게 느껴졌다. 자동화를 만드는 목적은 결국 뭔가를 하게 만드는 건데, 왜 못 하게 만드는 것부터 정하나 싶었다. 그런데 외부 저장소의 변경을 감지해서 클러스터 안 콘텐츠를 갱신하는 자동화를 실제로 붙여보고 나서, 이 순서가 뒤바뀌면 안 되는 이유를 몸으로 확인했다.이런 자동화는 대개 두 개의 경계를 넘나든다. 하나는 외부 저장소에서 소스를 가져오는 경계고, 다른 하나는 클러스터 내부 자원(ConfigMap, Deployment 등)을 갱신하는 경계다. 두 경계 모두 "이 자동화가 무엇을 할 수 있는가"를 결정하는 자격증명이 필요하고, 그 자격증명을 어떻게 발급하..
2026.09.02 -
교과서 학습 챗봇에서 쪽수와 권한이 중요한 이유
같은 챗봇 안에 교과서 기반 학습 질문에 답하는 기능을 붙이면서, 처음에는 "잘 답하기만 하면 된다"고 생각했다. 그런데 실제로 학생이 쓰는 모습을 지켜보다 보니, 잘 답하는 것과 믿을 수 있게 답하는 것은 다른 문제였다.수식 렌더링과 답변 복사 기능을 다듬으면서 이미 한 번 배운 게 있다. AI 답변은 생성 모델이 잘 만들어내는 것으로 끝나지 않고, 그걸 어떻게 보여주고 어떻게 옮겨 쓸 수 있게 하느냐까지가 답변 품질의 일부라는 것이다. 교과서 학습 기능에서도 같은 문제가 다른 얼굴로 나타났다. 이번에는 "얼마나 맞는 답인가"가 아니라 "이 답을 학생이 믿고 넘어가도 되는가"였다.그럴듯한 답과 확인 가능한 답은 다르다학생이 교과서 내용을 물어보면 챗봇은 대체로 그럴듯한 문장을 만들어낸다. 문제는 그 문..
2026.09.02 -
어르신 생활 도우미를 거실 패드 MVP로 좁힌 과정
"어르신 생활 도우미"라는 아이디어를 처음 떠올렸을 때는 욕심이 컸다. 약 복용 시간을 챙겨주고, 하루 일정을 알려주고, 필요하면 가족과 바로 연결되는 화면 하나를 상상했다. 문제는 이 상상이 처음부터 완성형이었다는 점이다. 기능을 하나씩 나열할수록 "그래서 이걸 다 어떻게 만들 것인가"보다 "이걸 다 만든 다음에야 써볼 수 있는 건가"라는 질문이 먼저 걸렸다.그동안 다른 프로젝트를 진행하면서 반복해서 겪은 문제가 있다. 요구사항이 확정되지 않은 채로 구현부터 시작하면, 나중에 요구사항이 바뀔 때마다 이미 만든 부분을 다시 뜯어고쳐야 한다. 아이디어 단계에서는 이 위험이 더 크다. 아직 검증조차 안 된 가정 위에 여러 기능을 동시에 쌓으면, 그중 무엇이 실제로 필요한 것이었는지 나중에 가려낼 방법이 없어..
2026.09.02 -
Gmail 앱 비밀번호가 있는데도 인증이 실패한 이유(Claude)
내부 도구들이 공용으로 쓸 메일 발송 서비스를 만들면서, 발신 계정으로 Gmail을 쓰기로 했다. Google 계정 보안 설정에서 앱 비밀번호를 발급받고, 그 값을 서비스 설정에 그대로 채워 넣었다. 그런데 실제로 메일을 보내보면 계속 인증 실패였다. 처음에는 당연히 값 자체를 의심했다. 앱 비밀번호를 다시 확인하고, 혹시 공백이 섞였나 싶어 재발급까지 받아봤지만 결과는 같았다.여기서 관점을 바꿔야 했다. "비밀값이 맞는가"를 계속 확인하는 대신, "이 값이 실제로 어디로 흘러 들어가는가"를 봐야 했다. 앱 비밀번호를 저장한 자리와, 서비스 코드가 SMTP 인증을 시도할 때 실제로 읽어오는 자리가 서로 다른 이름 공간에 있었던 것이다. Gmail이 요구하는 것은 계정 주소, 앱 비밀번호, `smtp.gm..
2026.09.02 -
Gmail 앱 비밀번호가 있는데도 인증이 실패한 이유(ChatGPT)
Gmail 앱 비밀번호를 발급받고 서비스 설정에 넣었는데, 메일 발송은 계속 인증 실패였다.처음에는 비밀번호를 의심했다. 복사 과정에서 공백이 들어갔나 확인하고, 앱 비밀번호를 다시 발급받아 넣어봤다. 그래도 결과는 같았다.문제는 비밀번호 값이 아니라, 그 값이 서비스 코드까지 전달되는 경로에 있었다.값은 있는데, 서비스는 다른 이름을 보고 있었다예를 들어 운영 환경에는 Gmail 기준으로 다음처럼 값을 넣었다고 하자.GMAIL_ADDRESS=sender@example.comGMAIL_APP_PASSWORD=발급받은_앱_비밀번호GMAIL_SMTP_HOST=smtp.gmail.comGMAIL_SMTP_PORT=587그런데 실제 메일 발송 코드는 Gmail 전용 변수명이 아니라, 모든 메일 서비스가 공통으로..
2026.09.02 -
AI 코딩 수업에서 강조한 건 문법이 아니라 요구사항부터 검증까지 관리하는 방식
AI 코딩 수업을 준비하면서 가장 먼저 부딪힌 질문은 "무엇을 가르칠 것인가"였다. 처음에는 당연하다는 듯 프롬프트 작성 요령, 자주 쓰는 도구, 문법과 명령어를 순서대로 나열하는 커리큘럼을 그렸다. 그런데 실제로 사람들이 AI 도구를 써서 코드를 짜는 모습을 지켜볼수록, 이 구성이 진짜 문제를 비껴가고 있다는 걸 깨달았다.문법을 안다고 코드가 안 꼬이는 게 아니었다요즘은 AI 도구를 한 번도 안 써본 사람을 찾기가 더 어렵다. 명령어 몇 개, 프롬프트 요령 몇 가지는 다들 금방 익힌다. 그런데도 결과물은 자주 꼬인다. 처음에는 그럴듯하게 나오던 코드가 요구사항을 한 번 더 바꾸면 앞뒤가 안 맞기 시작하고, 몇 번 더 고치다 보면 무엇을 만들려고 했는지조차 흐릿해진다.이 현상을 문법이나 도구 사용법 부족..
2026.09.02