이 방송의 핵심 목표는 Google Docs나 Dropbox Sign을 통해 서명된 계약서 PDF 파일을 이메일 첨부 형태로 Rails 애플리케이션이 수신하고, 이를 내부 CRM의 계약 레코드에 자동으로 연결하는 기능을 구현하는 것이었습니다. 기존 Google Drive 통합 방식의 불안정성으로 인해 수동 작업이 필요했던 문제를 Action Mailbox를 통해 자동화하고자 했습니다. 개발자들은 Action Mailbox가 Rails 6에 통합되어 Griddler와 같은 기존 젬을 대체했음을 언급하며, Rails 내장 기능의 이점을 강조했습니다.
Clarabortis는 자신의 주된 개발 보조 도구로 ChatGPT를 활용하는 워크플로우를 소개했습니다. 그는 ChatGPT를 아이디어 검증, 브레인스토밍, 그리고 때로는 디버깅에 사용하며, 특히 광범위한 컨텍스트를 요구하는 작업에 선호한다고 밝혔습니다. 반면 GitHub Copilot은 자동 완성이나 작은 코드 스니펫 리팩토링에 주로 사용한다고 설명했습니다. Clarabortis는 ChatGPT의 ‘pleaser’ 경향 때문에 자신의 해결책을 직접 제시하기보다는 문제에 대한 AI의 접근 방식을 먼저 묻는 것이 더 효과적이라고 조언했습니다. 또한, AI가 모든 컨텍스트를 자동으로 파악하지 못하므로 개발자가 적절한 질문을 통해 필요한 정보를 얻어내야 한다고 강조했습니다. 예를 들어, Action Mailbox의 존재 여부를 AI가 즉시 제안하지 않았던 사례를 통해 개발자의 도메인 지식과 판단의 중요성을 부각했습니다.
구체적인 개발 과정에서는 Action Mailbox 설정, 이메일 라우팅, 첨부 파일 처리, 그리고 계약 ID 추출(파일 이름에서)과 같은 기술적 세부 사항을 다뤘습니다. 특히 테스트 코드 작성 시 receive_inbound_email_from_mail
과 같은 Action Mailbox의 헬퍼 메서드 사용법을 탐구했으며, RSpec 환경에서 Rails의 MiniTest용 매처(route_to_mailbox
)가 작동하지 않는 문제에 직면하며 AI의 답변을 맹목적으로 신뢰하지 않고 검증하는 과정의 중요성을 다시 한번 상기시켰습니다. 또한, Contract
모델에 Google Drive 파일 업로드 로직을 직접 포함하기보다는, 향후 리팩토링을 통해 Google 상호작용 관련 로직을 별도의 서비스 객체로 분리할 필요성을 언급하며 코드 구조 개선에 대한 고민도 공유했습니다.