안녕하세요 곽은철입니다. 😀
5기 스터디가 막 끝난 이후 일정 관리의 필요성을 느끼면서 앱으로 이런저런 스캐줄러를 사용해봤습니다.
그런데.. 너무… 귀찮습니다… 타고난 귀차니스트인 저에게 일일히 스캐줄을 저장하고 확인하는 과정은 저와는 맞지 않더라구요 때마침 Nest.js를 공부해야할 이유가 생겼고, 잘 생각해보니 어라?
Slack으로 입력받고, GPT한태 편집시켜서 Google Celender에 보내면 내가 딱히 일정을 편집 안해도 될것같은데?
라는 생각을 하게 되었습니다. 하지만 문제가 있습니다. 저는…. Nest.js를 모릅니다. 그거 뭔데… 무서웡….
좀 찾아보니까 ts(타입스크립트)라는것도 알아야하고 node.js가 기반이고 어쩌고.. 저쩌고…
+ API라는것도 써야한답니다… 이건 포기각인가…. 하던차에!
마! 갱상도 싸나이는 이런걸로 기 안죽는다 으이! 그 지피틴가 머시긴가 쓰믄 다 댄다 카드라! 함 무봐라!
언젠가 공부도 해야하고 거기에 재미도 좀 있어보이고 내가 필요도 한 프로젝트를 GPT로 꿀빨면서 할수있다?
이런 막가파식 일처리로 일단 부닥쳐보는 스토~리 입니다.
썰을 풀기에 앞서서 이 내용은 코딩과 거의 관계가 없습니다.
아 이런것도 가능하구나 정도로 생각해주시면 되고, 오 나도 해볼까? 까지 오신다면 더 좋습니다.
먼저 시작할때는 뭘 할지 물어보는것 부터 시작했습니다.
NestJS, 구글 캘린더와 openAI의 GPT-3.5 api, 슬랙 채팅봇을 이용해 일정을 정리하는 슬랙 봇을 만들고싶어.
슬랙 봇을 통해 일정을 입력받으면 gpt를 통해 일정을 정리하고 구글 캘린더에 입력되게 하고싶어.
설치부터 차근차근 알려줘
답변을 바탕으로 이것저것 설치도 합니다
좋습니다. Node.js와 NestJS를 설치하는 단계를 진행하겠습니다.
Node.js 설치:
Node.js 공식 웹사이트 접속: Node.js 다운로드 페이지로 이동합니다.
버전 선택: LTS (Long Term Support) 버전을 다운로드하는 것을 추천합니다.
설치 파일 실행: 다운로드한 파일을 실행하고 설치 마법사를 따릅니다.
검증: 터미널이나 명령 프롬프트에서 node -v 명령어를 실행하여 설치가 정상적으로 완료되었는지 확인합니다.
NestJS 설치:
Nest CLI 설치: 터미널이나 명령 프롬프트에서 다음 명령어를 실행합니다.
bash
Copy code
npm i -g @nestjs/cli
검증: nest --version 명령어를 실행하여 설치가 정상적으로 완료되었는지 확인합니다.
.
.
.
....
이것저것 코딩도 시작합니다.
src/slack/slack.controller.ts 파일에 슬래시 명령어 처리 추가:
슬래시 명령어 엔드포인트 추가: 슬래시 명령어를 처리하는 엔드포인트를 정의합니다.
typescript
Copy code
@Post('command')
handleSlashCommand(@Body() command: any): string {
// 슬래시 명령어 로직 처리
// 예시: 일정 추가 명령어 처리
if (command.command === '/add_schedule') {
// 일정 추가 로직
return '일정이 추가되었습니다.';
}
return '명령어를 인식하지 못했습니다.';
}
이 코드는 /slack/command 엔드포인트에서 슬래시 명령어를 처리합니다. 예를 들어, /add_schedule 명령어를 처리하여 일정을 추가할 수 있습니다.
src/slack/slack.service.ts 파일에 슬래시 명령어 로직 추가 (선택):
필요한 경우, 슬래시 명령어의 로직을 SlackService에 구현하여 컨트롤러를 깔끔하게 유지할 수 있습니다.
typescript
Copy code
// 슬랙 서비스에 메서드 추가
addSchedule(command: any): string {
// 일정 추가 로직
return '일정이 추가되었습니다.';
}
슬래시 명령어 처리 로직이 준비되면, 사용자가 슬랙에서 명령어를 입력하면 봇이 해당 로직을 수행하고 응답을 보냅니다.
이런 과정을 내가 이해하고 만족할때 까지 진행하면 이런 결과물을 얻게 되실겁니다.
프롬프트를 천천히 보시면 아실수있지만 이 과정은 상당히 지루하고 재미없었습니다. 하지만 무언가 하나씩 이루어져 나간다는것을 먼저 알수있었고 이후 다시 한번 똑같은 과정을 거쳐 다시 한번 완성도 있게 만들었을때 보여드린 동영상 수준의 결과물을 5일만에 완성했습니다. 문제를 스스로 정하고 해답을 얻는 과정을 통해 즐거움을 얻고자 하신다면 도전해 보시는걸 추천드립니다!
참고
Custom instructions 참고 : ChatGPT를 GPT-5로 만들기
prompt 기법 참고 : G대넓얕 - GPT와 대화하기 위한 넓고 얕은 지식
전체 프롬프트 1 : https://chat.openai.com/share/0d880512-8b52-40f0-a093-31425687658f
전체 프롬프트 2 : https://chat.openai.com/share/e6d97604-5333-4f74-a296-5c7817b76f8b