모두의 연구소 X 테크포임팩트 활동으로, 누구나 리포터 Lab 에서 ‘비영리단체의 모금 활동 분석을 해주는 LLM 기반의 데이터 분석가 챗봇 서비스’를 개발하고 있다. 지난달에 람다 기반의 도커 컨테이너를 배포하는 CICD 파이프라인에 대해서 정리해보았다. 그렇지만 '카카오톡 챗봇' 이라는 형식과 '쉬운 유지보수'를 위한 개발팀의 고민과 선택들로 아키텍처가 많이 변경되었다 !! 지난 글 보기 https://minjiwoo.kr/645 [테크포임팩트] Lambda Docker 컨테이너 배포를 위한 CI/CD 파이프라인 구축하기모두의연구소 & Tech4Impact 활동으로 활동을 진행하고 있습니다. 누구나 리포터 Lab은 비영리 단체들이 데이터 기반의 의사결정을 통해 선한 영향력을 펼칠 수 있도록 지원하기 ..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻❄️☁️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..
고객 집착 (Customer Obsession)리더는 고객으로부터 시작해서 그에 맞춰 일합니다. 고객의 신뢰를 얻고 유지하기 위해 열정적으로 일합니다. 리더는 경쟁자에게 주의를 기울이지만 고객에게는 집착합니다.주인 의식 (Ownership)리더는 주인입니다. 리더는 장기적 관점에서 생각하고 단기간의 성과를 위해 장기적 가치를 희생하지 않습니다. 리더는 자신의 팀을 넘어서 회사 전체를 위해 행동해야 합니다. 리더는 절대 "그건 내 일이 아니야"라고 말하지 않습니다.창조하고 간소화하라 (Invent and Simplify)리더는 팀에게 혁신과 창조를 기대하고 요구하며 언제나 간소화할 방법을 찾습니다. 리더는 회사 밖에서 벌어지는 일을 잘 알고 있고, 모든 곳에서 새로운 아이디어를 얻으며, "여기에서 만들지 ..
회사에 입사하고 나서 처음으로 프로덕션 환경에서 데이터 파이프 라인을 구축하고 배포한 경험을 정리해보고자 한다. 사실 프로젝트 끝난지는 한달정도가 되어가는데.. 내일 새로운 빅데이터 플랫폼 구축 프로젝트가 시작되기 전에 나의 첫 프로젝트를 먼저 회고해보기로 했다. 나는 6개월짜리 Databricks 기반의 빅데이터 플랫폼을 구축하는 프로젝트에서 데이터 엔지니어링을 담당했다.실제로는 4개월 정도 참여했으나, 프로젝트가 특이하게도 1차 배포 - 2차 배포 + 운영 의 프로세스로 진행되어 운좋게도 인프라 구축부터 파이프라인 개발, 운영 모니터링 과정의 ETL 파이프라인 개발의 한 cycle을 경험할 수 있었다. 총 4개월 - 길면 길고 짧다면 짧지만 - 동안 택시도 타고 주말도 반납하면서 실전에서 부딪히며 느..
SQL 실행 순서 SQL 쿼리를 작성할 때 JOIN 절이나 GROUP BY 절의 위치가 종종 헷갈렸는데, 이는 결국 SQL 쿼리가 실행되는 순서와 관련이 있다. FROM : 테이블 선택 JOIN : 테이블 간 결합하기 WHERE : 조건에 따라서 행을 필터링하기 GROUP BY : 필터링된 데이터를 그룹화하기 HAVING : 그룹화 된 데이터에 대해서 필터링하기 SELECT : 필요한 열을 선택하기 ORDER BY : 결과에 대해 정렬하기SELECT column_name, SUM(another_column)FROM table1JOIN table2 ON table1.id = table2.idWHERE conditionGROUP BY column_nameORDER BY column_name; JOIN 이 G..
참고 : Ubuntu 22.04 LTS 환경에서 작업했습니다. 사이드 프로젝트 서비스 배포 준비를 하며 Dockerfile 빌드를 하던 중, No space left on device 에러가 발생했다. 원래 EC2에 연결되어 있던 EBS 볼륨의 크기는 8GB였다. 도커 파일 빌드 시에 ML 관련 패키지들이 무거운 것들이 있어서인지 df -h 명령어로 파일시스템을 확인하면 빌드가 진행되면서 사용률이 늘어나는 것을 확인할 수 있었다. EC2 인스턴스 > 스토리지 > 블록 디바이스를 선택한다. 수정할 EBS 를 선택하고 볼륨 수정을 선택한다. 나의 경우 16GB로 늘려주었다. 아직 xvda 1 는 7.9G 가 할당된것을 볼 수 있다. 루트 파티션 xvda1 이 전체 공간을 사용할 수 있도록 확장하는 작업이 필..