전 시간 관리를 obsidian-ics 플러그인으로 구글 캘린더 - 옵시디언을 사용합니다.
사용하면서 항상 아쉬웠던 것은 제게 필요하지 않은 데이터까지 보여주는 것이었습니다
아래처럼, ics 플러그인 포맷은 [시간] [캘린더 이름] [일정 이름] [recurring] 형태로 나옵니다
하지만, 캘린더 이름까지 나오는게 불편했습니다
그러다 오늘은 여유로워서 “그래, 함 고쳐볼까? GPT로 하면 빨리 만들 수 있을거 같은데?” 싶어 시작했습니다
(옵시디언 플러그인은 보통 github에 오픈소스로 공개 되어 있기 때문입니다)
상황 파악
예상 되는 어려움
- 간단한 플러그인이지만, 기능 개발을 하려면 프로젝트를 이해해야 한다 (가장 큰 난항)
- JS/TS를 다룬 경험이 많지 않다
- 옵시디언 플러그인을 개발한 경험이 없다
- 내가 만든 기능을 반대로 어떻게 플러그인 원작자 분에게 설명 할까
GPT로 해결 할거라 예상 되는 것
- Github Commit/PR 내용 피드백
- 코드가 길지 않으니, 코드 인터프리터로 프로젝트 흐름을 파악 할 수 있다
- 코드 리팩토링 (깔끔하게 수정)
문제 해결 과정
프로젝트 흐름 파악
먼저 빠른 이해를 위해 GPT에게 코드를 주면서, 한글 주석을 달아달라고 합니다
자세한 코드 블럭은 주석을 요구했더니 답을 주지는 않고, 대략적인 함수 기능을 파악 할 수 있었습니다
세부 기능 파악
제게 필요한 기능은 아래와 같습니다
- 설정에서 원하는 출력 데이터 포맷을 수정 할 수 있다
제가 찾고 있는 기능은 아래와 같습니다
- 구글 캘린더에서 데이터를 불러오는 기능
- 구글 캘린더에서 불러온 데이터를 전처리 하는 기능
- 전처리한 데이터를 출력하는 기능
이제 요구사항이 정리가 되었으니, 코드 인터프리터에게 기능 구현 관련 좀 더 자세히 물어봅니다
이 시점부터는 모르는 부분이 나오면 바로 물어보았습니다.
검색 보다 GPT가 제안하고 제가 필터링하는 속도가 더 빠르다 생각했기 때문입니다
그 예시로 최종적으로 일정을 출력하는 부분에서 이벤트를 어디서 가져올지 물어보았습니다
이제 보니, 이 땐 프로젝트가 덜 파악이 되서, 질문을 잘못 던졌습니다
위의 함수는 그냥 이벤트를 가져와서 출력하는 부분이었습니다
GPT는 이부분에 대해 코드 분석을 하고, 제게 잘못 했다고 알려줍니다
위의 응답을 토대로, 구글 캘린더에서 데이터가 어느 부분에서 어떻게 넘어오는지 확인을 하였습니다
보다보니, 플러그인 만든 분이 인터페이스를 만들어두셔서 이 포맷을 GPT에게 주었습니다
그 결과, 만족스러울 인사이트를 주었습니다. GPT가 준 코드를 그대로 사용하진 않았습니다
플러그인 개발자 분이 만드신 프로젝트 흐름을 바꾸고 싶진 않았기 때문입니다
대신, 제가 원하는 포맷 설정을 어떤 식으로 필터링 할 지 힌트를 얻었습니다!
플러그인 만들면서 겪은 에러들의 경우, 문법과 API에 대한 지식의 부족에서 오는 것을 GPT를 통해 빠르게 해결 할 수 있었습니다
그 결과, 기능 구현이 완료되어 아래처럼 세팅 탭에 들어가면 output format 설정하는 부분이 만들어졌습니다
마지막으로 코드 리팩토링을 진행합니다.
바로 원하는 코드를 주진 않고, 제가 불편함과 잘못된 부분을 짚어주면 해결 되었습니다
Pull Request 요청
Commit과 PR을 작성하는데 있어, 도움을 많이 받았습니다
만든 기능을 글로 상대방이 이해하기 쉽게할까? 고민을 덜 수 있었습니다
GPT에게 만들어진 Commit을 토대로 PR을 작성해달라고 합니다
결론
자 이제 PR도 작성해서 보냈고, 기능도 완성 되었습니다!
옵시디언 플러그인을 GPT와 함께 만들면서 얻은 것을 정리해봅시다
개인적으로 GPT를 사용해서 초보 개발자인 제가 느낀 이득은 아래와 같습니다
- 함수 단위로 코드 분석을 하는데 유리함이 있습니다
GPT에게 여러 함수가 있는 코드를 주면서 코드 분석하라는 것보다, 함수 명과 궁금한 부분을 짚어서 물어보면 흐름과 어떤 목적인지를 알 수 있습니다
- 자잘한 버그를 빠르게 찾을 수 있습니다
제가 짠 코드도 버그 찾기 어려울 때가 있으니, 다른 사람이 짠 코드는 당연히 읽고 기능을 추가하는게 더 어려웠습니다
이 때 에러가 터지면, 에러 터진 부분과 에러 로그 그리고 제가 의심 되는 문제를 적어 알려주면 괜찮은 피드백을 받을 수 있습니다
마치며
적고보니, 일반적인 GPT의 장점 그리고 잘 사용하는 방법과 크게 다르지 않습니다
오늘의 수익이라면, 처음 만들어보는 옵시디언 플러그인으로 오픈 소스 기여를 했고, 생각보다 오래 걸리지 않았습니다
꽤나 즐거움 경험을 했다 생각합니다
와! 다 해주는구나보다 월급 20달러에 비해 일을 잘하는 조수인거 같습니다
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'ETC > Obsidian' 카테고리의 다른 글
Quickadd 활용법 - Daily Logging (0) | 2024.02.28 |
---|---|
Obsidian Tistory 플러그인 버그 수정 (0) | 2023.08.16 |
♦️ 옵시디언 최적화 (0) | 2023.08.02 |
가독성 향상을 위한 Obsidian Minimall Theme CSS (4) | 2023.02.15 |
나는 옵시디언으로 나를 해킹한다 (2) | 2023.02.13 |