본문 바로가기
AI

ChatGPT로 코드 작성 없이 자바 오픈소스 라이브러리 만들기

by RevFactory 2023. 10. 7.

개인 토이프로젝트로 오픈소스 개발 및 배포에 이르는 전 과정을 ChatGPT 가 생성한 내용으로만 처리해 보았습니다.


오픈소스 이름은 "Sub Link Extractor" 이며, https://github.com/revfactory/sub-link-extractor 에서 확인 가능합니다. 또한 아래의 gradle depenency 추가를 통해 프로젝트에서 사용 가능합니다. 

implementation 'io.github.revfactory:sub-link-extractor:0.1.1'

* 실험 버전이라 테스트 용도로 사용하시길 권장드려요


1. 목적

입력받은 URL 하위의 모든 URL 을 추출 경로가 /docs 와 같은 기술 문서들을 모두 학습할 때 사용
예를 들어, https://tailwindcss.com/docs 를 입력하면 하위의 모든 기술문서 링크를 반환합니다. 간단하죠?


2. 주요 기능

 - 하위 페이지 탐색 후 하위 모든 링크 추출합니다
 - site robots 설정 체크 및 크롤링 시 블럭을 고려해 크롤링 속도를 제어 합니다.
 - GitHub에서 버전 릴리즈 시 GitHub Action 을 통해 Maven Central 에 배포합니다.


3. 진행 프로세스

아래와 같은 순서로 진행했습니다.
1단계 - 초기 코드 작성 및 배포 프로세스 정립

 - 테스트 코드 작성과 매우 심플한 기능 개발 요청 (1차)
 - 해당 코드 오픈소스화 프로세스 요청
 - 주석, 예외처리 등 룰 정의를 요청하고 그에 맞게 수정 요청
 - Readme 작성
 - Gradle 설정 및 GitHub Action workflow 작성 요청
 - 초기 버전 1차 패키징 및 배포


2단계 - 기능 개선 및 다음 버전 릴리즈

 - 기능 개선 사항 리스트업 요청
 - 추가 기능 결정하고 해당 기능 개발 요청 (2차)
 - 테스트 수행
 - 작성된 코드를 다시 한번 점검하고 수정 요청
 - 수정된 코드 테스트 수행
 - 버전 릴리즈 노트 작성 요청
 - Readme 업데이트 요청
 - 2차 버전 패키징 및 배포


4. ChatGPT가 자동으로 작성해준 부분

 - 주석을 포함한 전체 코드 작성
 - 기존 코드 개선 제안 및 리팩토링
 - 테스트 코드 작성
 - Readme 문서 작성
 - 릴리즈노트 작성
 - GitHub Action workflow 작성
 - Gradle publish를 위한 Gradle 설정 작성
 - 오픈소스 라이선스 처리


5. 휴먼 작업

 - ChatGPT 채팅을 통해 Maven OSSRH 등록 및 인증서 GPG 처리
 - 복사-붙여넣기
 - 코드 개선사항 있는지 물어보기


6. 제한사항

 - 코드가 길어지는 경우 일관성이 떨어지는 문제
 - 잘못된 길로 들어섰을 때 할루시네이션으로 미동작 코드 생성 문제

 

 

7. 스크린샷

8. 추가로 해볼만 한 것

 - 동일한 프로세스의 유사 작업을 Agent 로 자동화 하기
 - 지속적인 기능 개선과 버전 관리 자동화