본문

테크
AI 기반 개인 지식 도우미: 맞춤형 코드 분석 및 문서 관리

작성일 2024년 08월 29일

개요

지난 번 ChatGPT가 모르는 것을 ChatGPT에게 물어보기 아티클에서 ChatGPT에게 비공개 개인 자료에 대해서 질문하는 방법에 대해 알아보았습니다. 이번에는 더욱 개선된 방법과 활용에 대해 소개하고자 합니다.


활용의 예

Notion 문서 요약 및 검색

우선 노션에서 원하는 페이지를 가져와야 합니다. 노션의 오른쪽 글에 메뉴를 클릭하시고 내보내기를 선택합니다.

7baa44f41b87389174872a396c398529_1724642739_9742.png 

이어서 하위 페이지 포함 여부를 결정해야 합니다. '하위 페이지 포함'을 선택하시면 해당 페이지 및 이와 연결된 하위 페이지 모두를 다운 받을 수 있습니다. 선택하셨으면 내보내기 버튼을 클릭합니다.


7baa44f41b87389174872a396c398529_1724642841_7053.png
 

다운 받을 링크는 메일로 받게 됩니다. 링크를 클릭해서 다운 받고, 압축을 푼 다음, 생성된 폴더를 정리해서 모아두세요. 저는 아래 그림과 같이 notion이라는 폴더 하위에 가져온 자료들을 모아 정리하였습니다.


7baa44f41b87389174872a396c398529_1724642870_7964.png
 

설치와 설정 등의 과정은 마지막 부분에서 설명드리겠습니다.

설치와 설정이 모두 완료되었다고 가정하고, 사용 결과부터 살펴보겠습니다. 아래 이미지는 질문에 대한 결과 화면입니다. 질문에 나오는 logsink는 와탭의 기술인데요. 이에 대한 자료를 다운로드 받은 문서들을 모두 검색하여 유사한 내용이 있는 것들을 ChatGPT가 정리하여 답변한 내용입니다. 하단에 보시면 참고했던 노션의 문서 이름도 보입니다.


7baa44f41b87389174872a396c398529_1724642964_3076.png
 

프로젝트 코드 분석

다른 개발자가 진행한 프로젝트를 참고하거나 이어받아야 할 때, 자세한 가이드 문서나 설명이 가능한 상황이 있으면 좋겠지만 그렇지 못한 경우도 많습니다. 설령 그러한 문서가 있다고 해도 현재의 코드 상태와 다른 경우도 많고요.

아래 이미지는 프로젝트 코드 전체를 제공하고 질문한 결과입니다.


7baa44f41b87389174872a396c398529_1724642983_6845.png
 

프로젝트에 대한 각종 다이어그램과 궁금한 부분의 코드 진행 등에 대한 질문을 통해서 프로젝트 전반에 대한 이해를 쉽게 얻을 수 있습니다.

  • 전체 코드베이스에 대한 질문 가능
  • 프로젝트 구조, 주요 기능, 사용된 기술 등에 대한 상세한 설명 제공

페어 프로그래밍

분석과 마찬가지로, 진행 중인 프로젝트 코드 전체를 전달하고 이후 진행에 대해서 의견을 묻거나 추가 개발을 지시할 수 있습니다. 아래 이미지는 기존의 코드에 기능을 추가를 요청한 결과입니다. 내용이 길어서 일부만 캡처를 하였습니다.


7baa44f41b87389174872a396c398529_1724643006_0682.png  

ChatGPT가 기존 프로젝트의 코드를 분석하여 코드를 요청할 때 필요할 거 같은 정보를 구구절절 작성할 필요가 없어졌습니다. 단순하고 추상적으로 원하는 것을 요청하고 이후 부족한 것을 조금씩 붙여 나갈 수 있기 때문에 다른 동료 개발자와 함께 페이 프로그래밍하듯이 개발을 진행할 수 있습니다.

  • 기존 코드를 기반으로 새로운 기능 추가 요청
  • 코드 리팩토링 제안
  • 버그 해결 방안 제시

설치 방법


  1. 이 저장소를 클론하거나 다운받습니다:
    git clone https://github.com/your-repo/CodeSage.git
    cd CodeSage
    
  1. 필요한 패키지를 설치합니다:
    pip install -r requirements.txt
    
  1. OpenAI API 키를 입력합니다:
    • SageSettings.json 파일을 열고 "your_openai_api_key" 대신 API 키를 입력합니다:
      {
        "openai_api_key": "your_openai_api_key",
        "extensions": [".md", ".vue", ".js", ".json", ".css", ".html", ".py", ".java", ".ts", ".jsx", ".tsx", ".php", ".c", ".cpp", ".h", ".cs", ".swift", ".rb", ".go", ".kt", ".sql", ".hpp", ".m", ".mm"],
        "ignore_folders": ["SageLibs", "SageTemplate", "node_modules", "cypress", ".gradle", ".idea", "build", "test", "bin", "dist", ".vscode", ".git", ".github", ".expo"],
        "ignore_files": ["CodeSage.py", "SageSettings.json", "question_history.json", "embeddings.jsonl", "package-lock.json"],
        "essential_files": ["README.md", "package.json", "src/router/index.js"]
      }
      
    • 프로그램 실행 후 설정 페이지에서도 작업할 수 있습니다.

사용방법


  1. 애플리케이션을 실행합니다:
    python CodeSage-Multi.py
    
  1. 웹 브라우저에서 http://localhost:8080에 접속하고, 우측 상단의 폴더 아이콘을 클릭합니다. 6b88ecb59045f9cc1181ebd24dbd5636_1724655605_9021.png
  2. 참고자료가 있는 폴더들을 추가하고, 질문에 사용할 폴더는 체크 버튼을 클릭해서 선택합니다. 선택이 마무리되면 Back to Home 버튼을 클릭해서 홈 페이지로 돌아갑니다. 6b88ecb59045f9cc1181ebd24dbd5636_1724655883_1865.png
  3. "Refresh Embeddings" 버튼을 클릭하여 프로젝트 파일의 임베딩 파일을 생성합니다.
    • 이 과정을 통해서 참조 대상이 되는 모든 파일을 찾아서 벡터로 변환하여 AI가 이해할 수 있도록 준비합니다.
    • 이미 처리된 파일은 중복 처리하지 않습니다. 버튼을 주기적으로 눌러 최신 상태를 유지하세요.
  4. 질문을 입력하고 제출하여 AI의 답변을 받습니다.

주의 및 참고 사항 


  • API 키가 유출되지 않도록 주의하세요.
  • 크기가 너무 큰 파일은 참조 문서에서 제외됩니다. 이 부분은 추후 개선하여 배포할 예정입니다.
  • 텍스트 파일 이외에는 pdf 문서만 지원합니다. 추후 오피스 파일 등을 추가할 예정입니다.

마무리

이번에 소개해드린 CodeSage는 단순한 프로그램이지만, 개발자의 일상 업무를 크게 개선할 수 있는 도구입니다. 프로젝트 분석, 코드 리뷰, 문서화 등 다양한 작업에서 시간을 절약하고 효율성을 높이는데 활용하시기 바랍니다.

CodeSage 프로젝트는 지속적인 업데이트와 피드백을 통해 더욱 발전된 기능을 제공할 예정입니다. 여러분의 의견을 기다리고 있겠습니다.


류종택[email protected]
Development TeamAPM Agent Developer

지금 바로
와탭을 경험해 보세요.