
장기렌트 랜딩 페이지를 진행하면서 새로운 업무에 도전해보고자
ai를 이용하여 비교 분석 데이터를 추출해서 보다 보기 쉽게 차량 비교하는 파트를 구현
초기구현 문제점!!
페이지별 api를 호출 -> 비용, 로딩 문제 발생
수정!!
초기 데이터 1회 추출 -> 파일로 저장 -> 디비 삽입
자동차 비교 콘텐츠를 만들 때 가장 번거로운 부분은
차량마다 조건을 조사해서 표로 정리하는 작업이다.
이 글에서는
Gemini API를 이용해 차량명을 던지면
AI가 비교 데이터를 JSON으로 만들고
Node.js가 이를 엑셀로 저장하는 자동화 파이프라인을 구현한다.
차량 리스트 → Gemini API → JSON → Excel(xlsx)
npm install axios xlsx
project/
│── index.js
│── carList.js
│── .env
└── package.json
.env
GEMINI_API_KEY=YOUR_API_KEY
MODEL=gemini-2.5-flash
module.exports = [
{ id: 1, name: "아반떼" },
{ id: 2, name: "쏘나타" },
{ id: 3, name: "그랜저" }
];
async function callGemini(carName) {
const prompt = `
"${carName}" 차량에 대해 다음 항목들의 '장기렌트 vs 자동차리스' 비교 데이터를
JSON 형식으로 만들어줘.
형식:
{
"항목명": {
"장기렌트": "내용",
"자동차리스": "내용"
}
}
항목 목록:
- 초기비용
- 번호판
- 보험료
- 차량관리
- 만기 후
- 세제혜택
- 총평
규칙:
- JSON만 출력
- 설명/문장/불필요한 텍스트 금지
- 아이콘(✅,❌,🚗,🏢 등) 간단히 사용
`;
const url = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent?key=${GEMINI_API_KEY}`;
const body = {
contents: [
{
parts: [{ text: prompt }]
}
]
};
const res = await axios.post(url, body, {
headers: { "Content-Type": "application/json" }
});
const text = res.data?.candidates?.[0]?.content?.parts?.[0]?.text ?? "";
return text.replace("```json", "").replace("```", "");
}
async function run() {
const rows = [];
for (const car of carList) {
console.log(`처리중: ${car.name}`);
const jsonText = await callGemini(car.name);
let parsed;
try {
parsed = JSON.parse(jsonText);
} catch (e) {
console.error("JSON 파싱 오류:", jsonText);
continue;
}
rows.push({
model_id: car.id,
model_name: car.name,
summary_contents: JSON.stringify(parsed, null, 2),
});
await new Promise((res) => setTimeout(res, 1200)); // API 부하 방지
}
/* 엑셀 파일 생성 */
const worksheet = XLSX.utils.json_to_sheet(rows);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, "CarData");
XLSX.writeFile(workbook, "car_summary1.xlsx");
console.log("car_summary1.xlsx 생성 완료!");
}
run();
| model_id | model_name | summary_contents |
|---|---|---|
| 1 | 아반떼 | { "초기비용": {...}, ... } |
| 2 | 쏘나타 | { ... } |
Gemini를 그냥 채팅용으로 쓰지 말고 구조화된 데이터 생성기로 쓰면 업무 자동화에 바로 연결 가능합니다.
이 패턴은 견적서, 상품 비교, 요금표, 스펙표 등
모든 정형 데이터 생성에 그대로 적용 가능
이 글과 코드를 보시고 개선할 부분이나 궁금한 점이 있으면 편하게 댓글이나 메시지로 알려주세요.💪
여러분의 피드백 덕분에 더 나은 콘텐츠를 만들 수 있습니다.
함께 성장해 나가요!