# 헤르메스 영상 강의 대본 기존 교안 1과 절별 음성 원고를 바탕으로 구성했다. 1장 도입은 영상용으로 새로 작성했고, 본문 대본은 기존 38절 원고를 장별로 묶어 웹 페이지에서 제공한다. ## 1장 도입 영상 대본 안녕하세요, 윤성욱입니다. 이번 강의에서는 헤르메스로 나만의 에이아이 비서를 만들겠습니다. 처음부터 모든 기능을 켜기보다, 먼저 완성할 모습을 그려보겠습니다. 휴대폰의 텔레그램은 비서에게 말을 거는 창구입니다. 서버는 비서가 계속 일하는 작업실이고, 모델은 질문을 이해하고 답변을 만드는 두뇌입니다. 여기에 메일과 일정 도구를 연결하면, 허용한 범위에서 자료를 확인하고 아침 보고를 받을 수 있습니다. 오늘 교재는 이 연결을 한 단계씩 따라가도록 구성되어 있습니다. 먼저 서버의 작업실을 준비하고, 텔레그램 봇을 나만 연결합니다. 다음으로 모델을 연결해 첫 대화를 확인합니다. 그 뒤에 구글 계정 연결과 아침 보고 예약으로 확장합니다. 화면의 구조도를 보세요. 대화창, 작업실, 두뇌, 연결 도구. 이 네 역할을 구분하면 문제가 생겼을 때 어디를 확인할지 알 수 있습니다. 지금은 실제 계정 연결이 완료된 화면이 아니라, 교재의 설명 도식입니다. 이제 잠시 영상을 멈추고, 나에게 필요한 비서의 일을 한 가지 적어보세요. 메일 정리나 일정 확인처럼 범위를 좁히면 좋습니다. 준비가 되면 교재의 첫 절을 읽고, 다음 단계로 넘어가겠습니다. ## 시작하기 전에, 완성 모습을 그려 봅시다 ### 1.1 이 책으로 만드는 개인 비서 이번 실습의 목표는 휴대폰에서 말을 걸면 답하고, 허용한 메일과 일정을 확인해 아침 보고를 보내는 개인 비서를 만드는 것입니다. 화면의 그림을 보세요. 휴대폰은 대화창이고, 서버는 비서가 계속 일하는 작업실입니다. 모델은 답변을 만들고, 연결 도구는 허용된 외부 서비스를 사용합니다. 먼저 나에게 필요한 일을 한 가지 적어 보세요. 메일 정리나 일정 확인처럼 범위를 좁히면 완성 여부를 확인하기 쉽습니다. 모든 기능을 한꺼번에 켜기보다 연결을 하나씩 시험하겠습니다. ### 1.2 실습 준비와 비용 확인 실습 전에 서버 계정, 텔레그램, 모델 제공자 계정, 그리고 테스트용 구글 계정을 준비합니다. 서버 이용료와 모델 사용료는 서로 다른 비용입니다. 구독이 있다고 모든 외부 도구 사용이 무제한이 되는 것은 아니므로 실제 계정의 이용 조건을 확인하세요. 처음에는 중요 자료가 없는 연습용 계정을 사용합니다. 설치와 첫 대화, 구글 연결, 예약 운영을 나누어 진행해도 됩니다. 화면의 준비물 표를 보며 준비된 것과 도움이 필요한 것을 표시한 뒤 다음 절로 넘어가세요. ### 1.3 용어와 실행 위치 읽는 법 이 책에는 세 가지 작업 장소가 나옵니다. 내 피시, 서버 본체, 그리고 서버 안의 헤르메스 컨테이너입니다. 같은 터미널 모양이어도 실행 장소가 다르면 경로와 명령 결과가 달라집니다. 각 절의 실행 위치 표시를 먼저 읽으세요. 토큰은 비밀 열쇠, 사용자 아이디는 누구인지 구분하는 번호, 경로는 파일의 위치입니다. 화면의 예시 이름과 가짜 값은 본인 환경의 실제 값으로 바꿉니다. 이해되지 않는 명령은 바로 실행하기보다 어느 공간에서 무엇을 하는 명령인지 먼저 확인하세요. ## 서버에 헤르메스의 작업실 만들기 ### 2.1 내 환경에 맞는 출발점 고르기 설치 경로는 새 서버, 기존 서버, 관리형 서비스로 나누어 확인합니다. 이 교재는 호스팅어의 브이피에스 사례를 중심으로 설명합니다. 이미 자료나 서비스가 있는 서버에서 운영체제를 바꾸면 기존 환경이 손상될 수 있으니 새 서버 설치와 같은 작업으로 생각하면 안 됩니다. 기존 서버라면 백업과 설치 영향을 먼저 확인하세요. 관리형 서비스를 쓰는 경우에는 터미널이나 파일 전송 방법이 다를 수 있습니다. 본인의 환경을 하나 선택하고 화면의 분기 그림을 따라 다음 절을 진행합니다. ### 2.2 Hostinger에서 배포 화면 열기 피시 브라우저에서 호스팅어 관리 화면을 열고 실습할 서버를 선택합니다. 헤르메스 템플릿 또는 앱 배포 항목을 찾은 뒤 서버와 앱 상태를 확인하세요. 화면 이름은 버전에 따라 달라질 수 있습니다. 교재의 그림은 실제 화면 캡처가 아닌 설명용 재구성입니다. 설치 버튼을 눌렀다는 사실보다 배포가 끝나고 앱이 실행 중인지가 중요합니다. 준비 중이라면 완료를 기다리고, 오류라면 표시된 배포 로그를 확인하세요. 서버 이름과 앱 이름을 기록한 뒤 터미널로 이동합니다. ### 2.3 올바른 터미널에 들어왔는지 확인하기 이번에는 헤르메스 앱 터미널에 들어왔는지 확인합니다. 화면의 명령을 한 줄씩 실행해 현재 위치, 헤르메스 실행 파일, 데이터 폴더를 살펴봅니다. 실행 파일이 없다고 곧바로 다시 설치하지 마세요. 서버 본체의 터미널에 들어와 있는지, 앱 터미널이 맞는지부터 구분해야 합니다. 경로가 교재 예시와 다르면 실제 확인한 경로를 기록합니다. 도움말이 정상적으로 나오면 명령을 호출할 준비가 된 것입니다. 실행 파일 경로와 데이터 폴더 경로를 적은 뒤 다음 절로 이동하세요. ### 2.4 재시작과 재생성을 구분하기 재시작은 같은 작업실을 잠시 껐다 켜는 것이고, 재생성은 작업실 자체를 다시 만드는 일입니다. 설정과 인증 파일이 컨테이너 안에만 있으면 재생성할 때 사라질 수 있습니다. 화면의 저장 공간 그림을 보고 영구 볼륨과 컨테이너의 연결을 확인하세요. 서버 터미널에서 컨테이너 목록과 마운트 경로를 조회하는 명령을 사용합니다. 이 단계는 정보를 확인하는 단계이며 폴더나 볼륨을 삭제하는 단계가 아닙니다. 어떤 데이터가 어디에 남는지 설명할 수 있으면 다음으로 넘어가세요. ## 텔레그램 봇 만들고 나만 연결하기 ### 3.1 BotFather로 내 봇 만들기 텔레그램에서 공식 봇파더 계정을 찾습니다. 사용자 이름이 정확한지 확인하고 대화를 시작하세요. 화면의 새 봇 만들기 명령을 보내면 표시 이름과 고유한 사용자 이름을 차례로 묻습니다. 답장을 기다렸다가 하나씩 입력합니다. 사용자 이름은 봇으로 끝나는 고유한 이름이어야 합니다. 완료 답장에는 봇 링크와 비밀 토큰이 들어 있습니다. 토큰은 비밀번호처럼 보관하고 화면 공유나 게시판에 올리지 마세요. 봇 이름과 사용자 이름만 실습 기록지에 적습니다. ### 3.2 숫자 ID와 봇 토큰은 다릅니다 봇 토큰, 내 사용자 아이디, 대화방 아이디는 서로 다른 값입니다. 봇 토큰은 프로그램이 봇으로 동작하기 위한 비밀이고, 사용자 아이디는 누가 명령을 보내는지 구분하는 숫자입니다. 대화방 아이디는 메시지를 보낼 목적지입니다. 표시 이름이나 골뱅이로 시작하는 이름을 숫자 아이디 자리에 넣지 마세요. 내 계정 정보를 확인하는 과정에서도 봇 토큰을 다른 계정에 전달할 필요는 없습니다. 각각의 값을 어디에 쓰는지 표를 보며 구분하고, 허용할 사용자는 우선 본인으로 제한합니다. ### 3.3 게이트웨이에 봇과 허용 사용자 등록하기 헤르메스 앱 터미널에서 게이트웨이 설정을 시작합니다. 텔레그램 연결을 선택하고 봇 토큰과 허용할 사용자 정보를 입력하세요. 토큰을 입력하는 화면은 공유하지 않습니다. 설정이 끝나면 저장된 연결 방식과 허용 사용자 범위를 확인합니다. 실행 방식은 배포 환경마다 다를 수 있습니다. 이미 관리 프로세스가 게이트웨이를 실행하고 있다면 같은 봇의 게이트웨이를 추가로 띄우지 마세요. 설정 저장과 실제 메시지 수신은 별도의 확인 단계입니다. 다음 장에서 모델 연결과 함께 응답을 시험하겠습니다. ## 모델을 연결하고 첫 대화 나누기 ### 4.1 모델 로그인 방식 고르기 이제 비서가 답변을 만들 모델을 연결합니다. 설정 화면에서 실제 사용할 제공자를 선택하고 안내되는 인증 방식을 따릅니다. 계정 로그인과 에이피아이 키 인증은 이용 범위와 과금 방식이 다를 수 있습니다. 로그인에 성공했다는 사실만으로 외부 프로그램에서 무제한으로 사용할 수 있다는 뜻은 아닙니다. 화면에 표시되는 계정과 권한, 비용 조건을 확인하세요. 인증 코드나 키는 공유하지 않습니다. 모델 선택을 마쳤다면 다음 절에서 짧은 질문을 보내 실제 응답까지 확인하겠습니다. ### 4.2 터미널에서 모델 응답 확인하기 먼저 앱 터미널에서 헤르메스 대화를 실행합니다. 복잡한 작업 대신 짧은 인사나 한 문장 답변을 요청하세요. 응답이 나오면 모델 호출이 실제로 성공한 것입니다. 오류가 나오면 인증 문제인지, 사용량이나 결제 문제인지, 네트워크 문제인지 나눠 봅니다. 답이 늦다고 같은 요청을 여러 번 보내지 마세요. 화면의 오류 표에서 증상을 찾고 마지막으로 성공한 단계를 기록합니다. 대화를 마칠 때는 안내된 종료 명령으로 셸로 돌아옵니다. 이 단계가 성공한 뒤 휴대폰 연결을 시험하세요. ### 4.3 휴대폰에서 답변 받기 휴대폰에서 자신이 만든 텔레그램 봇을 열고 시작을 누른 뒤 짧은 메시지를 보냅니다. 답변이 오면 휴대폰, 게이트웨이, 모델이 이어진 것입니다. 터미널에서는 답하지만 텔레그램에서는 답하지 않는다면 모델을 다시 연결하기보다 봇 토큰, 허용 사용자, 게이트웨이 상태를 확인하세요. 같은 봇을 처리하는 프로세스가 둘 이상 실행 중인지도 살펴봅니다. 화면의 연결 사다리에서 어디까지 성공했는지 표시하세요. 오늘은 여기까지 마쳐도 좋습니다. 다음 단계는 구글 계정 연결입니다. ## 터미널 명령과 경로를 읽는 법 ### 5.1 명령 한 줄을 세 부분으로 읽기 명령은 프로그램 이름, 옵션, 값으로 나누어 읽을 수 있습니다. 현재 위치를 확인하고 파일 목록을 보고 폴더를 이동하는 기본 명령부터 익혀 보겠습니다. 공백이 있는 경로는 따옴표로 감싸며, 책에 표시되지 않은 달러 기호나 샵 기호를 명령 앞에 붙이지 않습니다. 입력 중 줄이 계속 이어지거나 명령이 완성되지 않았다면 컨트롤 씨로 취소하고 다시 확인합니다. 화면의 명령 구조 그림을 보고 각 부분의 역할을 설명해 보세요. 명령을 이해하면 오류가 났을 때 어디를 고칠지 찾기 쉬워집니다. ### 5.2 Python과 Google 스킬 경로 확인하기 헤르메스가 사용하는 파이썬과 구글 스킬의 위치를 확인합니다. 서버에 파이썬이 여러 개 있다면 아무 파이썬이나 실행해서는 필요한 패키지를 찾지 못할 수 있습니다. 화면의 세 변수는 실행할 파이썬, 구글 스킬 폴더, 헤르메스 데이터 폴더를 가리킵니다. 먼저 실제 파일과 폴더가 있는지 확인한 뒤 값을 지정하세요. 이 변수는 현재 터미널에서 쓰는 값이므로 새 창에서는 다시 지정해야 할 수 있습니다. 경로가 다르면 교재 예시를 그대로 반복하지 말고 확인한 경로로 바꿉니다. ### 5.3 도움말과 오류 메시지를 먼저 읽기 프로그램을 실행하기 전에 도움말을 읽습니다. 문서에 나온 옵션과 현재 설치된 프로그램이 받는 옵션이 다를 수 있기 때문입니다. 이 교재에서 확인한 구글 인증 프로그램은 일부 설명 문서의 서비스 선택 옵션이나 출력 형식 옵션을 받지 않았습니다. 인식할 수 없는 인자라는 오류가 나오면 경로나 계정부터 바꾸기보다 도움말과 입력 옵션을 비교하세요. 파일 없음, 패키지 없음, 권한 없음도 서로 다른 문제입니다. 화면의 오류 표에 따라 실행 위치, 프로그램, 옵션을 차례로 점검합니다. ## Google에 연결할 앱 준비하기 ### 6.1 Google 프로젝트와 API 만들기 구글 클라우드에서 실습용 프로젝트를 만들거나 준비한 프로젝트를 선택합니다. 이후 설정이 다른 프로젝트에 섞이지 않도록 상단 프로젝트 이름을 확인하세요. 메일과 일정 조회에 필요한 에이피아이를 각각 사용 설정합니다. 에이피아이를 켜는 일과 사용자가 자신의 자료에 접근하도록 동의하는 일은 다릅니다. 둘 중 하나만 되어 있어도 실제 조회는 실패할 수 있습니다. 화면의 역할 그림을 보며 프로젝트, 서비스 사용 설정, 사용자 인증을 구분하세요. 프로젝트 이름을 기록하고 다음 절로 이동합니다. ### 6.2 동의 화면과 테스트 사용자 등록 구글 인증 플랫폼에서 앱의 동의 화면을 준비합니다. 앱 이름과 필요한 연락 정보를 입력하고 실습 계정을 테스트 사용자로 등록합니다. 외부 사용자용 앱을 테스트 상태로 쓰는 경우, 테스트 사용자에 포함되지 않은 계정은 로그인 과정에서 막힐 수 있습니다. 오류가 나오면 현재 로그인한 계정과 등록한 계정이 같은지 확인하세요. 이 실습은 공개 서비스 심사를 대신하는 과정이 아닙니다. 화면에서 테스트 상태와 사용자 목록을 확인하고 실제 승인에 사용할 계정을 기록하세요. ### 6.3 데스크톱 OAuth 클라이언트 만들기 인증 클라이언트를 만들 때 유형은 교재가 사용하는 데스크톱 앱으로 선택합니다. 단순 에이피아이 키와 사용자 동의를 받는 인증 클라이언트는 다릅니다. 생성한 제이슨 파일을 내려받아 피시의 저장 위치를 확인하세요. 아직 내려받은 파일은 내 피시에 있으며 서버에 자동으로 전달되지 않습니다. 실제 소유하지 않은 기관 주소를 임의로 홈페이지 항목에 쓰지 마세요. 파일은 비공개로 보관하고 토큰이나 파일 내용을 게시판에 올리지 않습니다. 유형과 다운로드 위치를 확인한 뒤 권한 범위를 살펴보겠습니다. ### 6.4 권한과 7일 만료 이해하기 업무가 메일 읽기라고 해서 연결 도구의 권한도 읽기 전용인 것은 아닙니다. 이 교재에서 확인한 인증 프로그램은 메일 발송이나 수정 등 더 넓은 권한을 요청할 수 있습니다. 실제 요청 화면에서 권한을 읽고 테스트 계정으로 실습하세요. 엄격한 읽기 전용이 필요하면 프롬프트만으로 제한했다고 생각하지 말고 도구의 권한 범위도 줄여야 합니다. 외부 앱의 테스트 상태에서는 조건에 따라 갱신 토큰이 칠 일 뒤 만료될 수 있습니다. 현재 앱 상태와 재인증 계획을 함께 기록합니다. ## 인증 파일을 옮기고 Google 연결 완성하기 ### 7.1 파일 이동 경로부터 그리기 이번 장에서는 인증 파일이 이동하는 세 공간을 구분합니다. 내 피시의 다운로드 폴더, 서버 본체의 임시 폴더, 헤르메스 컨테이너의 데이터 폴더입니다. 그림을 보며 서버 접속 정보와 컨테이너 이름을 기록하세요. 앱 터미널에서는 현재 사용자의 사용자 번호와 그룹 번호를 확인합니다. 파일을 복사한 뒤 소유자가 달라 읽지 못하는 문제를 예방하기 위한 값입니다. 텔레그램 첨부 대신 승인된 비공개 전송 방법을 사용합니다. 경로를 모르면 먼저 담당자와 확인하고 진행하세요. ### 7.2 PC에서 서버로, 서버에서 컨테이너로 파일 전송은 실행 장소가 세 번 바뀝니다. 먼저 서버에서 접근을 제한한 임시 폴더를 만듭니다. 다음에는 내 피시에서 실제 제이슨 파일을 서버로 보냅니다. 마지막에는 서버에서 컨테이너 안으로 복사합니다. 화면의 실행 위치를 확인하며 한 묶음씩 진행하세요. 예시의 서버 주소, 사용자, 컨테이너 이름은 본인 값으로 바꿉니다. 복사 후에는 앞 절에서 확인한 앱 사용자가 파일을 읽을 수 있도록 소유자와 권한을 맞춥니다. 파일 내용은 출력하지 말고 위치와 권한만 확인하세요. ### 7.3 인증 파일 등록과 로그인 주소 생성 앱 터미널에서 인증 파일의 존재와 프로그램 도움말을 다시 확인합니다. 새 터미널이라면 앞에서 사용한 경로 변수도 다시 지정하세요. 먼저 클라이언트 파일을 등록하고, 실제 저장 위치가 표시되는지 봅니다. 다음으로 인증 주소를 한 번 생성해 브라우저로 엽니다. 여러 주소를 동시에 만들면 승인 창과 인증 상태가 섞일 수 있으므로 가장 최근 주소 하나만 사용하세요. 화면의 파일 권한 설정은 새 파일의 기본 권한을 제한하며 기존 파일 권한까지 바꾸지는 않습니다. 승인과 코드 교환은 이어서 진행합니다. ### 7.4 브라우저 승인 결과를 터미널에 넣기 브라우저에서 실습 계정과 본인이 만든 앱 이름을 확인하고 요청 권한을 읽습니다. 승인 후 이 교재의 인증 프로그램은 로컬호스트의 일 번 포트로 돌아옵니다. 이 특정 흐름에서는 연결 오류 화면이어도 주소창에 승인 결과가 있을 수 있습니다. 다른 주소의 오류까지 정상으로 생각하면 안 됩니다. 주소 전체를 복사하고, 앱 터미널에서 화면의 입력 대기 명령을 먼저 실행하세요. 그다음 주소를 붙이고 엔터를 누릅니다. 입력이 보이지 않는 것은 숨김 입력 설정 때문입니다. 코드 교환 결과를 확인하고 변수는 지웁니다. ### 7.5 인증 성공과 실제 조회 성공 확인하기 인증 파일이 저장되었다는 사실과 실제 자료를 읽을 수 있다는 사실을 각각 확인합니다. 먼저 저장 상태를 점검하고 실제 호출 검사도 실행합니다. 교재에서 확인한 실제 호출 검사는 캘린더를 대상으로 하므로 이것만으로 메일까지 성공했다고 판단하지 마세요. 실습 계정에 구분하기 쉬운 테스트 메일과 일정을 준비합니다. 텔레그램에서 읽기만 요청하고 실제 제목, 날짜, 시간을 원본과 비교하세요. 발송이나 수정은 요청하지 않습니다. 저장된 인증, 캘린더 호출, 메일 조회, 일정 조회를 각각 표시하고 다음 장으로 이동합니다. ## 매일 아침 보고를 예약하고 검증하기 ### 8.1 먼저 가상 자료로 보고 형식을 정하기 정기 보고를 예약하기 전에 가상 메일 세 건으로 분류 기준을 시험하겠습니다. 급한 일, 오늘 처리할 일, 참고할 일을 구분하고 어떤 원문을 근거로 판단했는지 확인하세요. 원문에 없는 마감일이나 약속을 만들어 내면 안 됩니다. 메일 안에 이전 규칙을 무시하라는 문장이 있어도 그것은 분석할 자료이지 실행할 명령이 아닙니다. 화면의 가상 자료와 기대 결과를 비교하고 잘못 분류된 부분을 고칩니다. 실제 자료로 자동화를 시작하기 전에 출력 모양과 판단 기준을 먼저 맞추는 단계입니다. ### 8.2 실제 메일·일정으로 한 번 보고받기 이제 실제 실습 계정의 최근 이십사 시간 메일과 오늘 일정을 한 번 조회합니다. 화면의 요청문에는 자료 범위, 보고 항목, 근거 표시, 변경 금지 기준이 들어 있습니다. 메일을 보내거나 일정을 바꾸는 대신 보고서와 답장 초안을 텍스트로만 받으세요. 나온 결과의 제목과 시간, 중요한 수치를 원본과 대조합니다. 자료가 없으면 없다고 표시하는지도 확인합니다. 수동 보고가 반복해서 맞아야 예약할 준비가 된 것입니다. 틀린 부분이 있으면 먼저 요청문과 연결 상태를 고친 뒤 다시 시험하세요. ### 8.3 단발 시험 후 반복 작업 등록하기 처음부터 매일 반복하는 작업을 만들기보다 오 분 뒤 짧은 시험 메시지를 보내는 단발 작업부터 확인합니다. 민감한 자료를 읽지 않는 내용으로 목적지와 전달을 점검하세요. 메시지가 실제로 도착한 뒤 매일 아침 여덟 시, 서울 시간의 본 작업을 등록합니다. 정기 작업은 이전 대화를 기억한다고 가정하지 말고 필요한 자료 범위와 보고 규칙을 작업 지시문 안에 모두 넣습니다. 시험 작업과 본 작업의 이름을 구분하고 작업 아이디를 기록하세요. 등록했다는 답변만으로 끝내지 않고 다음 절에서 실행까지 확인합니다. ### 8.4 설정·실행·도착을 각각 확인하기 예약은 설정, 실행, 도착의 세 단계로 검증합니다. 인공지능이 등록했다고 말한 것, 서버에 작업이 존재하는 것, 휴대폰에 보고가 도착한 것은 서로 다른 증거입니다. 작업 목록에서 시간대와 다음 실행 시간을 확인하고 수동 실행 결과도 확인하세요. 서울 아침 여덟 시는 협정 세계시로 전날 밤 열한 시이므로 날짜까지 주의합니다. 작업을 잠시 멈추고 다시 켜는 방법도 시험합니다. 마지막으로 다음 날 예정 시각에 실제 보고가 도착했는지 확인해야 일상 운영을 시작할 수 있습니다. ## 선택 실습: Claude Code로 확장하기 ### 9.1 별도 실행 도구 설치·인증하기 클로드 코드 연결은 기본 비서를 완성한 뒤 선택해서 진행합니다. 공식 설치 안내를 확인하고 화면의 설치 파일을 내려받아 내용을 검토한 뒤 실행합니다. 설치 후에는 실행 경로와 버전을 확인하고 도구 자체의 인증을 먼저 마칩니다. 컨테이너가 재생성되면 설치 파일이나 인증이 남는지도 점검하세요. 구독이 있다는 이유만으로 다른 프로그램의 무제한 자동 호출을 보장할 수는 없습니다. 실제 계정 조건을 확인하고 짧은 직접 실행이 가능한 상태에서 다음 절로 넘어갑니다. ### 9.2 짧은 비대화형 실행부터 시험하기 먼저 앱 터미널에서 짧은 비대화형 요청을 한 번 실행합니다. 바로 긴 코드 작업이나 중요한 파일 변경을 맡기지 마세요. 직접 호출이 성공하면 헤르메스를 거쳐 같은 수준의 제한된 요청을 시험합니다. 직접 호출은 되는데 경유 호출이 안 된다면 설치 경로, 실행 사용자, 인증 환경 차이를 확인하세요. 실패했을 때 계속 반복하지 않고 오류를 보고하도록 요청합니다. 이 교재 제작 과정에서는 실제 구독 인증과 위임 실행을 수행하지 않았으므로, 본인 환경에서 결과와 계정 조건을 확인해야 합니다. ## 오래 쓰기 위한 점검·복구·완성 실습 ### 10.1 매일·매주 확인할 운영 기록 운영을 시작하면 매일 도착 여부를 보고, 주기적으로 서버 상태와 인증 만료 가능성을 점검합니다. 설정을 바꾼 날에는 무엇을 바꿨고 어떤 시험을 했는지 남기세요. 서버 자원과 로그를 확인할 때는 필요한 범위만 조회하고 토큰이나 개인 자료가 포함되지 않도록 주의합니다. 보고가 안 왔다고 바로 재설치하지 말고 최근 변경부터 확인하세요. 화면의 점검표에 담당자와 다음 점검일을 적습니다. 자동화는 설치가 끝이 아니라 결과를 확인하고 필요할 때 멈출 수 있어야 합니다. ### 10.2 증상을 연결 단계로 나누어 찾기 문제는 모델, 메시지 전달, 구글 연결, 예약 실행으로 나누어 찾습니다. 마지막으로 성공한 단계가 어디인지부터 확인하세요. 터미널 응답이 되는데 휴대폰에서만 안 되면 메시지 연결을, 일반 대화는 되는데 메일만 안 되면 구글 인증을 먼저 살핍니다. 수동 보고는 되는데 아침 보고만 없다면 예약과 시간대를 점검합니다. 문의할 때는 실행 위치, 마지막 성공 단계, 비밀값을 가린 오류 내용을 적습니다. 전체 설정이나 인증 파일을 공유하는 대신 문제에 필요한 최소한의 정보만 전달하세요. ### 10.3 재인증과 토큰 노출에 대응하기 인증이 만료된 경우와 비밀값이 노출된 경우는 대응이 다릅니다. 단순 만료라면 작업을 잠시 멈추고 기존 상태를 확인한 뒤 새 승인 흐름으로 재인증합니다. 토큰이 노출되었다면 새로 로그인하는 것만으로 끝내지 말고 해당 서비스에서 기존 토큰이나 권한을 폐기해야 합니다. 봇 토큰과 구글 접근 권한은 각 서비스에서 처리합니다. 새 값을 적용한 뒤 짧은 조회와 메시지 전달을 시험하세요. 원인을 기록하고 정기 작업을 다시 켜기 전에 중복 실행이 없는지도 확인합니다. ### 10.4 백업과 마지막 완성 시험 백업은 파일을 복사했다는 사실만으로 충분하지 않습니다. 무엇이 저장되어 있고 어디에 복원해야 하는지 기록해야 합니다. 인증 파일이 포함된 백업은 접근을 제한합니다. 복원 시험은 분리된 환경에서 하되 같은 봇을 처리하는 게이트웨이가 둘 다 실행되지 않도록 주의하세요. 마지막 완성 시험에서는 대화, 구글 조회, 예약 도착, 일시 중지, 복구 계획을 하나씩 확인합니다. 성공 여부를 추측하지 말고 실제 결과를 기록하세요. 이제 교안 이의 활용 사례로 메일과 회의, 조사 업무를 확장할 준비가 되었습니다. ## 부록 · 점검과 실습 기록 ### A. 자주 쓰는 명령과 입력 위치 이 부록은 실행 위치별 명령 요약입니다. 명령을 한꺼번에 복사해 실행하는 목록이 아닙니다. 먼저 피시, 서버, 앱 터미널 중 어디에서 실행할 명령인지 확인하세요. 경로 변수와 컨테이너 이름은 본인 환경에 맞게 지정합니다. 상태 점검 명령과 인증을 변경하는 명령을 구분하고, 재인증은 실제로 필요할 때만 시작합니다. 각 명령의 설명이 기억나지 않으면 본문의 해당 절로 돌아가세요. 비밀 토큰이나 승인 주소를 이 기록지에 적지는 않습니다. ### B. 실습 기록지와 확인 문제 실습 기록지에는 비밀값 대신 확인 위치와 성공 여부를 남깁니다. 서버 이름, 실행 파일 경로, 테스트 사용자, 작업 아이디처럼 나중에 다시 찾는 데 필요한 정보를 정리하세요. 확인 문제를 먼저 풀고 답을 비교합니다. 특히 로그인 성공과 실제 조회 성공의 차이, 재시작과 재생성의 차이, 예약 등록과 전달 완료의 차이를 설명할 수 있어야 합니다. 막힌 항목은 해당 절로 돌아가 다시 시험합니다. 교육 후에는 방문자 게시판에 도움이 된 설명과 보완이 필요한 단계를 남겨 주세요. ### C. 출처와 이 책의 편집 기준 마지막 부록에는 제공받은 원자료와 확인한 공식 문서를 정리했습니다. 이 교재는 원자료를 바탕으로 초보자의 실행 순서와 확인 방법을 확장한 교육 자료입니다. 도해는 직접 제작했고 설명용 화면은 실제 서비스 캡처가 아닙니다. 서비스 화면이나 옵션은 바뀔 수 있으므로 현재 도움말과 공식 문서를 함께 확인하세요. 계정 연결과 정기 실행은 본인의 환경에서 검증해야 합니다. 여기까지 학습한 뒤에는 완성한 기능, 아직 확인하지 못한 기능, 다음 점검일을 짧게 기록해 보세요.