전체 글 63

한글(HWP) 문서 정복 — Upstage API로 만든 HWP Intelligence Skill

Claude Code에 .hwp 파일을 던지면,AI가 한글 문서를 Markdown으로 변환하고, 표·이미지를 분리 추출하고,계약·공문서에서 핵심 필드(날짜·금액·당사자)를 JSON으로 뽑고,요약·번역·공문 어투 교정까지 한 번에 처리해주는 Skill을 만들었습니다.Upstage AI Ambassador 2기 활동의 두 번째 미션으로 "Upstage API를 활용한 Claude Code Skill" 를 개발했습니다. 한국 실무 현장에서 가장 많이 쓰이면서도 AI 도구 연동이 가장 뒤처져 있던 HWP 포맷을 타깃으로 삼아, Document Parse와 Solar LLM을 결합한 upstage-hwp-skill을 구현한 과정을 공유합니다. 1. 프로젝트 계기한국인이라면 누구나 한 번쯤 마주쳤을 문제가 있습니다..

내 필기까지 읽어주는 AI — 강의 PDF 하나로 예습·복습·Q&A 자동화 (n8n x Upstage)

Slack에 강의자료 PDF를 올리면, AI가 슬라이드별 설명 카드·예습 문제·복습 퀴즈를 만들고, 이후 반복 복습과 강의자료 기반 Q&A까지 제공하는 학습 워크플로우를 만들었습니다.여기에 손글씨 필기본까지 함께 읽어 원본 강의자료와 비교 분석하는 기능도 추가했습니다. Upstage AI Ambassador 2기 활동의 첫번째 미션으로 "강의 PDF 하나로 내 필기까지 인식하여 예습·복습·Q&A 자동화"해주는 프로젝트를 구현했습니다. n8n과 Upstage API를 활용한 학습 자동화 워크플로우 구현 과정을 공유합니다. https://www.youtube.com/watch?v=3JOgqlr4JNw 1. 프로젝트 계기학기 중에 5~7개의 과목을 들으며 매주 쏟아지는 강의자료를 소화하는 건 쉬운 일이 ..

SolarStage: 강의계획서 기반 AI Agent 분석 서비스 개발 프로젝트 정리

SolarStage: 강의계획서 기반 AI Agent 분석 서비스 수강신청 시즌, 여러 교수님의 강의계획서를 하나하나 열어보며 비교하던 경험이 있으신가요?SolarStage는 강의계획서 PDF만 업로드하면 AI가 자동으로 핵심 정보를 추출하고, 과목 간 비교와 피크 타임 일정 분석까지 해주는 웹 서비스입니다. 1. 문제 정의대학생의 수강신청, 왜 이렇게 불편할까?매 학기 수강신청 시즌이 되면 학생들은 이런 고민을 합니다."같은 과목인데 A교수님이랑 B교수님 중 누가 낫지?" — 두 강의계획서를 나란히 열어놓고 성적 비율, 과제 양, 시험 방식을 하나하나 비교해야 합니다."이번 학기 과제 폭탄 주간이 언제지?" — 여러 과목의 과제·시험·발표 일정을 달력에 옮겨 적어야 겹치는 주간을 알 수 있습니다."이..

카테고리 없음 2026.02.01

트랜잭션이란 무엇인가?(트랜잭션의 격리 수준과 동시성 제어) - Part2

트랜잭션이 데이터 정합성을 보장하려면 여러 개의 트랜잭션이 동시에 실행될 때도 문제가 없어야해요하지만 무조건 트랜잭션 간의 독립성을 보장하면 성능이 저하될 수도 있어요이번 글에서는 트랜잭션이 동시에 실행될 때 발생하는 문제, 이를 해결하는 격리 수준(Isolation Levels), 동시성 문제를 해결하는 기법, 교착 상태(Deadlock) 방지 방법도 함께 살펴볼게요.  ☑️ 1편: 트랜잭션의 개념과 ACID 원칙✅2편: 트랜잭션의 격리 수준과 동시성 제어 (이번 글)☑️ 3편: 트랜잭션의 내부 동작과 분산 트랜잭션☑️ 4편: 트랜잭션의 동작 원리와 직렬성 격리     1. 트랜잭션이 동시 실행될 때 발생하는 문제들여러 개의 트랜잭션이 동시에 실행되면 데이터 일관성이 깨질 위험이 있어요.이런 문제를 방..

트랜잭션이란 무엇인가?(트랜잭션의 기본 개념, 중요성, ACID 원칙) - Part1

트랜잭션은 DB에서 데이터 정합성과 일관성을 보장하는 핵심 개념이에요.데이터베이스는 여러 사용자가 동시에 접근하거나 예상치 못한 오류나 장애가 발생할 수 있기 때문에 트랜잭션을 통한 안전한 데이터 처리가 필요합니다.이번 글에서는 트랜잭션의 기본 개념, 중요성, ACID 원칙에 대해 살펴볼 거예요.이후 시리즈에서는 트랜잭션의 동시성 제어와 격리 수준부터 분산 환경에서의 트랜잭션까지 차근차근 다룰 예정이에요. ✅ 1편: 트랜잭션의 개념과 ACID 원칙 (이번글)☑️ 2편: 트랜잭션의 격리 수준과 동시성 제어☑️ 3편: 트랜잭션의 내부 동작과 분산 트랜잭션☑️ 4편: 트랜잭션의 동작 원리와 직렬성 격리        1. 트랜잭션이란?트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를..

Reranker(리랭커) 완전 정복 - Part 1

Reranker에 대해 3편에 걸쳐 다뤄볼 예정이에요.이번 포스팅에서는 Retriever만으로는 부족한 이유, 그리고 Reranker의 역할에 대해서 알아보겠습니다. ☑️ Part 1 (이번 글): Retriever만으로 부족한 이유, 그리고 Reranker가 필요한 이유☑️ Part 2: Reranker 모델의 종류와 RAG(Retrieval-Augmented Generation)과의 연계☑️ Part 3: 최신 연구 동향과 실무 적용 사례   1. Retriever만으로는 왜 부족할까?요즘 검색 시스템에서 Retriever는 벡터 임베딩(Vector Embedding)을 활용해 의미 기반 검색을 할 수 있어요.그렇다면 Retriever만으로도 충분하지 않을까요?사실 그렇지 않아요. Retriever는..

NLP 2025.02.12

AI 개발을 위한 Conda 환경 설정 완벽 가이드

이번 포스팅에서는 Coda 환경이 필요한 이유, 설치 방법, 환경 생성 및 삭제, 관리 방법에 대해서 정리해보겠습니다. 1. 왜 Conda 환경 설정이 중요한가? 개발자 A: "이거 코드 실행 안 되는데요? 분명히 scikit-learn을 설치했는데 버전이 다르다고 오류가 나요."개발자 B: "아, 제 환경에서는 scikit-learn 0.24.2를 쓰고 있어요. 아마 버전이 맞지 않아서 그런 것 같네요."개발자 A: "그럼 저도 같은 버전을 설치하면 되겠네요. 근데 다른 패키지가 깨지면 어떡하죠?"개발자 B: "그래서 우리가 Conda를 쓰는 거죠. 환경을 만들어서 필요한 패키지를 한 번에 관리하면 재현성이 훨씬 좋아져요. 하지만 그래도 완벽하진 않아서, 정말 확실한 재현이 필요하면 Docker 같은 ..

MLOps 2025.02.10

[NVIDIA] Failed to initialize NVML: Driver/library version mismatch 오류 해결

[NVIDIA] Failed to initialize NVML: Driver/library version mismatch 오류 해결 방법에 대해 학습 후 정리한 포스팅 입니다. 이번 포스팅에서는 [NVIDIA] Failed to initialize NVML: Driver/library version mismatch 오류 해결 방법에 대해 학습합니다. 1. 에러 발생 GPU 상태를 확인하기 위해 `nvidia-smi` 명령어를 실행하자, 다음과 같은 에러가 발생했습니다. Failed to initialize NVML: Driver/library version mismatch 이 에러는 NVIDIA 드라이버가 업데이트된 후에 커널 모듈의 버전과 라이브러리 버전이 서로 일치하지 않을 때 발생합니다. 드라이버가..

etc 2023.11.07

[Python] 문자열 내 문자 및 인덱스 찾기 (count(), find(), index())

[Python] 문자열 내 문자 및 인덱스 찾기 (count(), find(), index())에 대해 학습 후 정리한 포스팅 입니다. 이번 포스팅에서는 [Python] 문자열 내 문자 및 인덱스 찾기 (count(), find(), index())에 대해 학습합니다. Python에서 문자열 내 특정 문자나 부분 문자열의 인덱스를 찾기 위한 주요 메서드는 count, find, index입니다. 각 메서드의 특징과 사용법에 대해 설명하겠습니다. 1. count() 문자열 내에서 특정 문자나 부분 문자열이 몇 번 나타나는지 세어줍니다. 찾는 문자나 부분 문자열이 없으면 0을 반환합니다. s = "hello world" print(s.count("l")) # 출력: 3 2. find() 문자열 내에서 특정 ..

Python 2023.09.15

[Python] 문서 자동화 (docx-template)

[Python] 문서 자동화 (docx-template)에 대해 학습 후 정리한 포스팅 입니다. 이번 포스팅에서는 [Python] 문서 자동화 (docx-template)에 대해 학습합니다. I) docx-template 이란? docx-template는 Python에서 사용할 수 있는 라이브러리로, Word 문서의 템플릿을 쉽게 채울 수 있게 해줍니다. 즉, 문서 자동화를 위한 라이브러리입니다. 아래 링크에서 자세한 document를 확인할 수 있습니다. Welcome to python-docx-template’s documentation! — python-docx-template 0.9.x documentation RichText When you use {{ }} tag in your template..

Python 2023.09.13