범용적 '나만의 예약 앱'으로 주제 변경: 네이버 예약 이상의 활용 범위 목표
오빠두는 당초 계획했던 CGV식 영화 예매 시스템 대신, 네이버 예약보다 훨씬 넓은 활용 범위를 가진 '나만의 예약 앱'을 만드는 방향으로 주제를 변경했습니다. 며칠간 고민 끝에 더 많은 사람에게 도움이 될 수 있는 범용적인 시스템 구축이 낫다는 판단을 내렸습니다. 이번 수업은 이 '나만의 예약 앱' 구축을 위한 실전 예제를 중심으로 진행될 예정입니다.
무료로 나만의 예약 시스템을 구축하는 실전 챌린지의 3주차 진행 상황과 핵심 기능을 다룹니다.
오빠두는 당초 계획했던 CGV식 영화 예매 시스템 대신, 네이버 예약보다 훨씬 넓은 활용 범위를 가진 '나만의 예약 앱'을 만드는 방향으로 주제를 변경했습니다. 며칠간 고민 끝에 더 많은 사람에게 도움이 될 수 있는 범용적인 시스템 구축이 낫다는 판단을 내렸습니다. 이번 수업은 이 '나만의 예약 앱' 구축을 위한 실전 예제를 중심으로 진행될 예정입니다.
개발될 예약 앱은 구글 캘린더에 자동으로 예약 일정을 등록하고, 예약 접수 여부를 즉시 확인할 수 있도록 알림 기능을 연동합니다. 지난주에 다뤘던 카카오톡 알림 전송 기능에 더해, 휴대폰 앱 팝업 알림까지 구현하여 사용자가 실시간으로 예약 현황을 파악할 수 있게 할 예정입니다. 이메일을 통한 초대장 자동 발송 기능도 포함되며, 이 모든 과정은 별도의 앱 설치나 유료 서비스 없이 100% 무료로 구현됩니다. 이는 구글의 다양한 서비스를 통합하여 시트 안에서 연동하는 방식으로 진행됩니다.
오빠두는 마이크로소프트가 기업(B2B) 친화적인 서비스를 제공하는 반면, 구글은 개인 사용자(B2C)에게 폭넓은 무료 환경을 제공한다고 설명했습니다. 구글 캘린더, 구글 지도, 구글 시트 등 모든 구글 서비스가 동일한 생태계 내에 있어 구글 시트 안에서 상호 연동이 가능하다고 강조했습니다. 이러한 통합 연동의 이점을 이번 강의를 통해 보여줄 것이라고 밝혔습니다.
오빠두는 AI 사용 시 발생하는 비용과 느려지는 동작 속도 문제를 지적하며, 어떤 작업에 AI를 사용하고 어떤 작업에는 사용하지 않을지 명확히 구분하는 것이 중요하다고 강조했습니다. 정해진 패턴에 따라 데이터를 가공하는 작업의 경우, 비용이 발생하고 속도가 느린 AI 대신 사용자 정의 함수(UDF)를 활용하는 것이 훨씬 효율적이라고 설명했습니다. 예를 들어 연락처 형식 수정과 같은 특정 작업에는 그에 맞는 도구를 선택하여 최적의 효율을 추구해야 한다고 덧붙였습니다.
구글 시트 앱스 스크립트는 자바스크립트 언어를 기반으로 동작하며, 세미콜론이 없어도 작동하는 경우가 있지만 줄 바꿈 등으로 인해 오류가 발생할 수 있다고 설명했습니다. 따라서 각 문단의 끝에는 세미콜론을 넣어 코드를 명확히 구분하는 습관을 들이는 것이 좋다고 조언했습니다.
오빠두는 간단한 작업까지 무조건 AI에 의존하려는 최근의 문화에 대해 우려를 표했습니다. 비용과 효율성을 고려하지 않고 모든 것을 AI에 맡기면 된다는 식의 접근이 오히려 인간 스스로의 발전을 저해할 수 있다고 지적했습니다. 그는 생각을 덜 하고 AI에만 의존하는 경향이 우리 발전에 걸림돌이 될 수 있다고 강조했습니다.
이는 단순히 값을 붙여넣는 것이 아니라 서식까지 고려하여 데이터를 옮기는 방법입니다.
엑셀을 자주 사용하는 입장에서 마이크로소프트의 서비스는 다소 폐쇄적인 부분이 많아 답답함을 느낀다고 오빠두는 언급했습니다. 반면 구글은 서비스 간의 유기적인 연결 생태계가 잘 구축되어 있어 다양한 자동화가 가능하다는 점을 강조하며, 이러한 구글의 개방성을 장점으로 꼽았습니다.
이를 위해 함수 인수의 형식을 숫자에서 배열로 변경해야 함을 설명했습니다. 배열이 입력되었을 때도 올바른 배열이 출력되도록 함수를 개선하는 과정이 논의되었습니다.
AI 함수는 수동 입력으로는 불가능하거나 비효율적인 작업을 자동화할 때 유용하다고 설명했습니다. 특히 메뉴 설명과 같이 정형화되지 않은 데이터를 자동으로 생성해야 하는 경우에 AI 함수가 필요하다고 강조했습니다. 이를 통해 수동 작업의 한계를 극복하고 데이터 처리의 효율성을 높일 수 있습니다.
이는 개발자 본인뿐만 아니라 모든 직원이 앱에 접근하여 사용할 수 있도록 하기 위함입니다. 권한 승인 과정에서 나타날 수 있는 안전 경고에 대한 대처법도 함께 안내했습니다.
개발 과정에서 코드를 변경하다가 오류가 발생할 경우를 대비하여 버전 관리의 중요성을 강조했습니다. 배포 관리 메뉴를 활용하여 이전 버전으로 쉽게 복구할 수 있으므로, 서비스의 안정성을 확보하는 데 필수적이라고 설명했습니다. 이는 백업을 통해 예기치 않은 문제 발생 시에도 빠르게 대처할 수 있게 합니다.
오빠두는 GPT, 클로드, 픽스필드 등 다양한 AI 도구 구독에 매월 약 150만 원가량을 지출하고 있다고 밝혔습니다. 그는 AI 구독료가 비싸지만, 그 비용보다 훨씬 몇십 배, 몇백 배 이상의 효율성을 창출한다고 판단했습니다. 이러한 경영 철학에 따라 앞으로도 가장 높은 요금제의 AI 서비스를 계속 사용할 것이라고 말했습니다. 그는 AI를 통해 얻는 가치가 지불하는 비용을 훨씬 뛰어넘는다고 확신했습니다.
그는 자신의 '짠돌이 기질'과 환경 보호에 대한 가치관이 이러한 결정에 영향을 미쳤다고 설명했습니다.
OBS 프로그램이 카메라를 점유하고 있어 구글 시트 웹 앱에서 카메라를 호출할 수 없는 문제가 발생했습니다. 이에 오빠두는 스마트폰 브라우저를 통해 웹 앱에 접속하는 방식으로 우회하여 카메라 연동 시연에 성공했습니다.
스마트폰에서 '스시'를 선택하여 투표하자 구글 시트의 데이터가 즉시 업데이트되는 모습을 시연했습니다. 이는 별도의 앱 설치 없이 구글 캘린더 등 구글 생태계의 다양한 서비스를 활용하여 실시간 예약 및 투표 데이터를 동기화하는 것이 가능함을 보여주었습니다. '김치찌개' 등 다른 항목을 선택할 때도 데이터가 즉시 반영되는 것을 확인시켜 주었습니다.
카카오 알림 토큰은 60일마다 갱신해야 하므로, '카카오 알림 자동 실행 켜기' 기능을 통해 이를 관리해야 한다고 설명했습니다. 이 기능을 활성화하면 매주 월요일마다 토큰이 자동 발급되고 만료 알림을 받을 수 있어 서비스 중단을 방지할 수 있습니다.
이 세 함수를 통해 일정 관리의 주요 과정을 자동화할 수 있습니다.
스크립트 편집기의 '서비스' 메뉴에서 구글 캘린더 API를 한 번만 추가하면 모든 기능이 활성화될 수 있습니다.
'1단위 타임'으로 설정하여 매일 오전 9시에 일정이 자동으로 생성되도록 저장하는 과정을 보여주었습니다. 이는 일주일 단위로 데이터가 자동으로 업데이트되도록 하는 데 활용됩니다.
완성된 앱을 배포하는 절차를 안내했습니다. '배포'를 클릭하고 처음 배포하는 것이므로 '새로운 배포'를 선택하여 진행한다고 설명했습니다. 이 과정에서 '코드 GS'와 '인덱스 HTML' 파일의 연동이 이루어집니다.
3주차 챌린지가 마무리되었으며, 이번 주 화요일까지 미션과 학습 기록을 제출하면 챌린지가 완료된다고 공지했습니다. 완주 및 미션 완료자에게는 커피 쿠폰을, 리뷰 작성자에게는 추첨을 통해 네이버 페이 포인트를 증정할 예정입니다. 다음 주는 휴강이며, 다다음 주에는 젠스파크 라이브가 진행될 예정이라고 덧붙였습니다.
오빠두는 편집뿐만 아니라 기획(PD) 역량까지 갖춘 인재를 채용하는 데 어려움을 겪고 있다고 토로했습니다. 두 달간 채용 과정을 진행했으나 최종 단계에서 무산되었으며, 연봉 수준(4천만 원)에 대한 고민과 함께 채용 난항을 겪고 있음을 밝혔습니다. 채널의 기존 스타일과 합을 맞출 인력을 구하는 것이 쉽지 않다고 언급했습니다.
자막에서 근거가 되는 대목을 찾아 답합니다.
오빠두엑셀 l 엑셀 강의 대표채널의 다음 글도 받아볼까요?
오빠두엑셀 l 엑셀 강의 대표채널에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 2편 올렸어요.