오픈 테이블 포맷오픈 테이블 포맷 (Open Table Formats) 는 데이터 레이크(Data Lake) 에 ACID 트랜잭션과, schema 제약조건 강화, time travel 기능 등을 추가한 시스템이다. 기본적으로, 데이터레이크는 빅데이터 패러다임이 등장하면서 확장성, 유연성 그리고 무엇보다 저비용이라는 점에서 장점이 있다. 저렴한 비용으로 정형, 비정형 데이터를 모두 저장할 수 있다는 점에서 널리 쓰인다. 그렇지만 데이터레이크는 데이터베이스와 같은 ACID 트랜잭션을 지원하지 않았다. 데이터 레이크는 csv, json, parquet 과 같은 파일 형식으로 데이터를 저장한다. 따라서 CDC 나 데이터의 일관성 보장에 대해서 처리하기에는 구현하기도 어렵고 파일을 다루다 보니 처리 비용과 시간이..
완화된 격리 수준데이터베이스는 트랜잭션 격리를 제공함으로써, 동시성 문제를 감추려고 함. → 어플리케이션 개발자들의 부담을 줄여줌.직렬성 격리 : 데이터베이스가 여러 트랜잭션들이 직렬적으로 실행되는 것과 동일한 결과가 나오도록 보장한다는 것을 의미함.심지어 RDBMS 에서도 완화된 격리성을 사용하는 경우도 많음. 이런 버그 발생을 반드시 막아주지는 않음.커밋 후 읽기 (read commited)가장 기본적인 수준의 트랜잭션 격리로 이 수준에서는 두 가지를 보장해 준다.데이터베이스에서 읽을 때 커밋된 데이터만 보게 된다(더티 읽기가 없음)데이터베이스에 쓸 때 커밋된 데이터만 덮어쓰게 된다(더티 쓰기가 없음)더티 읽기 방지더티 읽기(dirty read) : 어떤 트랜잭션에서 처리한 작업이 커밋되지 않았는데도..
기존 서비스의 문제점누구나 리포터 Lab 에서 카카오톡 챗봇 개발을 AWS Serverless 서비스들을 이용해서 개발하고 있다. 그런데 기존에 비동기적으로 요청을 처리하지 않아서 AI Agent 와 요청 / 응답을 원활하게 주고받을 수 없었다. 그래서, AI Agent 가 보내는 응답이 유실되는 것 처럼 보였다. 이러한 문제점을 개선하기 위해서 Message Queue 를 도입하는 것이 필요했다. Message Queue 란메시지 큐는 queue 라는 선입선출 (First In First Out) 구조를 가진 자료구조를 채택하여 메세지를 전달하는 시스템이다. queue 라는 자료구조가 두개의 끝을 가지고 있고 각각의 끝은 입구와 출구가 된다. 메세지 큐를 통해서 메세지를 전달하는 시스템에서, 메세지를 ..
0. 2024 회고를 시작하며 벌써 2025년의 1월도 중반이 지났다. 개인 블로그에 일기나 회고보다는 기술이야기를 기재하고자 노력하고 있지만, 그래도 1년이 지난 지금의 시점에서 회고를 하고, 2025년도는 좀 더 나은 방향으로 갈 수 있기를 바라면서 적어보기로 한다. KPT의 약자는 아래와 같다. 회고 방식은 성윤님의 블로그를 참고해보았다. K : Keep. (앞으로도 유지할 것)P: Problem. (개선해야 할 문제 사항)T : Try (시도할 내용)큰 카테고리별로 요약 및 정리하고, KPT 회고를 해본다. 1. 회사 내부에서 진행한 프로젝트 2025.02 ~ 2025.03 : PoC 지원Snowflake와 Databricks 를 비교하는 PoC 에서, Databricks 에 대한 부분을 리딩했..
모두의 연구소 X 테크포임팩트 활동으로, 누구나 리포터 Lab 에서 ‘비영리단체의 모금 활동 분석을 해주는 LLM 기반의 데이터 분석가 챗봇 서비스’를 개발하고 있다. 지난달에 람다 기반의 도커 컨테이너를 배포하는 CICD 파이프라인에 대해서 정리해보았다. 그렇지만 '카카오톡 챗봇' 이라는 형식과 '쉬운 유지보수'를 위한 개발팀의 고민과 선택들로 아키텍처가 많이 변경되었다 !! 지난 글 보기 https://minjiwoo.kr/645 [테크포임팩트] Lambda Docker 컨테이너 배포를 위한 CI/CD 파이프라인 구축하기모두의연구소 & Tech4Impact 활동으로 활동을 진행하고 있습니다. 누구나 리포터 Lab은 비영리 단체들이 데이터 기반의 의사결정을 통해 선한 영향력을 펼칠 수 있도록 지원하기 ..
MLOps 란 MLOps는 머신러닝 시스템을 위한 자동화된 프로세스이다. 좀더 자세히 말하자면, 머신러닝 모델을 효과적으로 배포하고, 성능을 향상시키기 위한 절차들이다. MLOps 는 아래의 DevOps, DataOps, ModelOps 를 포함하게 되기도 한다. MLOps 파이프라인의 코드 변경이 일어난 경우 진행되는 CICD 작업 (DevOps), 모델 학습에 필요한 데이터를 수집하고, 가공하는 파이프라인 (DataOps), 모델을 학습하고 배포하는 단계의 파이프라인 (ModelOps) 로 이루어지게 된다. MLOps 에서 모델의 스테이징 단계 특히, MLOps 에서 Model 은 크게 세 단계로 나뉘게 된다. 어플리케이션 배포 전략과 유사하게 어떻게 정의하느냐에 따라 달라질 수 있지만, Databr..
모두의연구소 & Tech4Impact 활동으로 활동을 진행하고 있습니다. 누구나 리포터 Lab은 비영리 단체들이 데이터 기반의 의사결정을 통해 선한 영향력을 펼칠 수 있도록 지원하기 위해 기획자, 개발자, 분석가 등이 모인 Lab 입니다. 저는 누구나리포터 Lab 의 개발자로 참여하게 되었고 카카오톡 챗봇의 API 개발과 CICD 파이프라인 배포의 역할을 담당하게 되었습니다. 서버리스 서비스가 가져온 혁신누구나 리포터 랩은 누구나 데이터 팀이 실제로 운영중이던 일 단위의 데이터 기반 레포트 서비스를 발전시켜서 Text-to-SQL 기반으로 마치 주니어 데이터 분석가를 고용한 것과 같은 효과를 LLM 으로 대체해보자는 목표를 가지고 있습니다.누구나 데이터 팀은 사회적 기업으로 비영리 단체 (ex. 초록우..
Intro 현재 글또 9기에서 만난 팀원들과 같이 Resumait 라는 제품을 만들고 있다. CS 스터디를 진행하다가 뜻이 맞아서 사이드 프로젝트까지 개발을 하게 되었다. Resumait 은 LLM 을 기반으로, 사용자의 이력서 작성을 도와주는 서비스이다. Resumait는 특히 주니어 및 경력 개발자를 주요 타겟으로하고 있다. 개발자 채용 시장 특성상 하나의 이력서를 기반으로 여러 회사의 공고에 지원하게 되기 때문이다. 뿐만 아니라, 종종 개발자에게도 자기소개서를 요구하는 경우가 많다. Resumait 에서는 Credit 이 서비스를 사용할 수 있는 단위이다. 사용자는 본인의 이력서를 기반으로 자기소개서 글을 작성할 때 Credit 을 소비하게 된다. 그런데 유의할 점은 이 Credit은 사용자가 R..