전체 글 61

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

[Numpy] squeeze & unsqueeze - 배열의 모양 변경

[Numpy] squeeze & unsqueeze - 배열의 모양 변경에 대해 학습 후 정리한 포스팅 입니다. 이번 포스팅에서는 [Numpy] squeeze & unsqueeze - 배열의 모양 변경에 대해 학습합니다. I) squeeze & unsqueeze 란? numpy에서 사용되는 squeeze 와 unsqueeze는 배열의 차원을 조절하거나 모양을 변경할 때 유용합니다. II) AI에서 squeeze & unsqueeze 학습 데이터가 (batch_size, sequence_length) 형태로 되어 있는데, 모델이 이를 처리하려면 3D 텐서 형태인 (batch_size, sequence_length, input_dim)로 변환해야 할 수 있습니다. 이런 상황에서 unsqueeze를 사용하여 필..

Python 2023.08.19

[Python] 리스트 컴프리헨션(List Comprehension)

[Python] 리스트 컴프리헨션(List Comprehension)에 대해 학습 후 정리한 포스팅 입니다. 이번 포스팅에서는 [Python] 리스트 컴프리헨션(List Comprehension)에 대해 학습합니다. I) 리스트 컴프리헨션(List Comprehension) 이란? 리스트 컴프리헨션(List Comprehension)은 파이썬에서 리스트를 생성하는 간결한 방법 중 하나입니다. 리스트 컴프리헨션은 기존의 for 루프와 append() 메서드를 사용하여 리스트를 생성하는 방식보다 더 간결하고 가독성이 좋은 코드를 작성할 수 있게 해줍니다. 리스트 컴프리헨션이 있음에 너무 감사합니다. 리스트 컴프리헨션을 사용해 리스트 생성을 1줄 코드로 작성할 수 있습니다. II) 리스트 컴프리헨션의 기본 구..

Python 2023.08.18