블로그 아티클을 AI를 활용하여 자동으로 요약, 직군 분류, 토픽 분류하는 프로그램입니다.
- 요약 생성: 블로그 글을 웹사이트 미리보기용 200자 이내로 요약
- 직군 분류: 아티클을 적절한 직군(FE, BE, ANDROID, IOS, INFRA, NON_TECH)으로 분류
- 토픽 분류: 직군에 맞는 토픽을 1-3개 선택하여 분류
- 처리 방식 선택: 기존 방식(한 번에 저장) 또는 배치 방식(중간 저장) 선택 가능
- 터미널 입력: 실행 시 처리 방식과 배치 크기를 터미널에서 입력
Google Gemini API Key가 필요합니다.
- Google AI Studio 접속
- Google 계정으로 로그인
- "Get API Key" 클릭
- "Create API Key" 선택
- 발급받은 API Key를 복사
참고: API Key는 프로그램 실행 시 터미널에서 입력받습니다. 코드에 직접 입력할 필요가 없습니다.
src/main/resources/input.csv
CSV 파일의 첫 번째 줄부터 데이터를 읽습니다. 엑셀 파일의 경우 CSV로 추출하기 기능을 이용하세요.
| 컬럼 | 설명 | 예시 |
|---|---|---|
| id | 아티클 고유 ID | 1, 2, 3, ... |
| content | 블로그 글 내용 | "React의 성능 최적화에 대해..." |
| sector | 기존 직군 | FE, BE, ANDROID, IOS, INFRA, NON_TECH |
1,"React의 성능 최적화 기법에 대해 설명합니다. useMemo와 useCallback을 활용한 렌더링 최적화 방법을 다룹니다.",FE
2,"Spring Boot에서 JPA를 사용한 데이터베이스 연동 방법을 설명합니다.",BE
3,"GitHub Actions를 활용한 CI/CD 파이프라인 구축 방법을 다룹니다.",INFRA./gradlew run실행하면 다음과 같은 메뉴가 나타납니다:
========== Moaon Data Processing ==========
Gemini API Key를 입력하세요: [여기에 API Key 입력]
처리 방식을 선택하세요:
1. 기존 방식 (모든 데이터 처리 후 한 번에 저장)
2. 배치 방식 (배치 단위로 처리하며 중간 저장)
선택 (1 또는 2):
- 모든 아티클을 처리한 후 한 번에 파일에 저장
- 메모리 사용량이 많지만 처리 속도가 빠름
- 중간에 프로그램이 종료되면 모든 결과가 손실됨
- 배치 크기를 입력받아 배치 단위로 처리
- 각 배치 완료 시마다 결과를 파일에 저장
- 중간에 프로그램이 종료되어도 완료된 배치의 결과는 보존됨
- 장점: 빠른 처리 속도, 메모리 효율적
- 단점: 중간 종료 시 데이터 손실 위험
- 장점: 안전한 처리, 중간 저장으로 데이터 보존
- 단점: 상대적으로 느린 처리 속도
- 배치 크기: 사용자가 직접 설정 (기본값: 10)
프로그램 실행 후 두 개의 파일이 생성됩니다.
위치: src/main/resources/output_article.csv
내용: 아티클별 요약 정보
- 헤더:
id,summary,sector - 각 아티클이 하나의 행을 차지
위치: src/main/resources/output_topics.csv
내용: 아티클-토픽 매핑 정보
- 헤더:
article_id,topics - 아티클 하나당 토픽 하나씩 별도 행으로 작성 (정규화된 형태)