전체 글

· Kafka
앞선 포스팅에서 토픽에 메시지를 생성했다. 이번엔 소비해 보자. 대상 독자 파이썬으로 카프카 토픽에 쌓인 메시지를 소비하고자 하는 개발자 Steps 컨슈머 정의하기 메시지 소비하기 마무리 1. 컨슈머 정의하기 컨슈머(Consumer)는 토픽에 쌓인 메시지를 소비할 수 있는 객체다. 프로듀서와 동일하게 bootstrap.servers 가 필요한데 컨슈머는 추가로 group.id도 필요하다. group.id는 컨슈머 그룹의 고유 ID 값이다. 위 사진으로 알 수 있는 것이 하나의 토픽을 여러 컨슈머가 읽을 수 있다는 것이다. 이를 구분하기 위한 구분자가 group.id 인 것이다. from confluent_kafka import Consumer consumer = Consumer({'bootstrap.se..
· Kafka
앞선 포스팅에서 Confluent Kafka를 설치하고 토픽을 생성했다. 또한 Control Center를 통해 토픽에 메시지를 생성했다. 메시지 생성을 매번 UI를 통해서 수행할 수 없기에 confluent-kafka 라이브러리를 이용해 파이썬으로 메시지를 생성해 보자. 대상 독자 파이썬으로 카프카 토픽에 메시지를 생성하고자 하는 개발자 1. confluent-kafka 설치하기 confluent-kafka 라이브러리는 Kafka에 메시지를 생성하고 소비하는 등의 행위를 파이썬으로 할 수 있게 도와준다. pip install confluent-kafka 나는 2.2.0 버전을 설치했다. 2. 프로듀서 정의하기 프로듀서(Producer)는 토픽에 메시지를 생성할 수 있는 객체다. 그러면 토픽은 어디에 있..
· Kafka
개요 이번 포스팅에서는 Confluent Kafka를 설치하는 방법을 설명하고, 간단하게 Confluent에서 제공하는 Control Center를 사용하여 토픽을 생성하고 메시지를 생성(produce)하는 방법을 알아보겠습니다. 포스팅의 내용을 따라 하면 Confluent Kafka를 실습하기 위한 최소한의 준비를 마친 것으로 간주할 수 있으며, 아래 화면을 확인할 수 있을 것입니다. 대상 독자 Confluent Kafka를 처음 다루는 개발자 로컬에서 Confluent Kafka를 자유롭게 사용하고 싶은 개발자 단계 Confluent Kafka란 무엇인가? Confluent Kafka 설치하기 토픽 생성하기 토픽에 메시지 생성하기 마치며 1. Confluent Kafka란 무엇인가? Confluent..
· Python
개요 작업 A와 작업 B가 서로 독립적으로 실행되어야 하는 상황이 종종 있습니다. 작업 A의 실패 여부가 작업 B에 영향을 미치지 않고 작업 B가 성공적으로 수행되어야 하는 경우가 그중 하나입니다. 이러한 상황에서는 작업 A와 작업 B를 어떻게 처리해야 하는지 살펴보겠습니다. 1. 왜 독립적인 처리가 필요한가? 작업 A와 작업 B는 상호 독립적으로 실행되어야 합니다. 즉, 작업 A의 실패 여부가 작업 B에 아무 영향을 미치지 않아야 합니다. 따라서 작업 A의 결과가 작업 B에 영향을 미치지 않는 한, 작업 B는 성공적으로 실행되어야 합니다. 2. 처리 방법 작업 A와 작업 B를 독립적으로 처리하는 방법에 대해 알아보겠습니다. 2.1. 예외 처리를 통한 처리 만약 작업 A의 결과를 작업 B에서 사용해야 하..
· MLOps
1. Why mlflow 이 그림을 엄청 많이 봤다. 이 그림을 통해 보통 하고자 하는 말은 ML 시스템을 운영하기 위해 ML Code 이외에도 다양한 컴포넌트가 많다는 것이다. 하지만, 머신러닝 애플리케이션에서 가장 핵심적인 컴포넌트는 모델이라고 생각한다. 이 핵심적인 "모델"이 어떻게 학습되었고 어떻게 저장되었으며 어떻게 배포되어 있는지 이를 제일 잘할 수 있도록 설계된 툴이 MLflow가 아닐까. 2. What we need mlflow의 설명을 보자, "An open source platform for the machine learning lifecycle". 모델의 모든 생애주기 관리하기 위한 플랫폼으로서 mlflow는 발전하고 있다. 그렇게 된다면 유지관리가 엄청 편해지겠지만 그렇기엔 아직 성..
· ETC
1. 왜 불편하게 살았는가? 할 일들은 많고 시간은 한정되어 있다. 그렇기 때문에 나의 리소스를 어떻게 할당해서 사용하느냐는 너무너무 중요한 문제임을 느끼고 있다. 또한, 회사의 규모와 문화에 따라 특정 직무가 수행하는 "일반적인 일"이 달라지기도 하고 추가로 다른 직무의 일도 하기도 한다. 나에게 Terraform 코드를 관리하는 일이 조금 그러했다. 담당하는 MS에 필요한 데이터독 Integration, Monitor, Metric 등의 리소스를 관리해야 했다. 이를 잘 관리하기 위해선 HCL 언어에 대한 이해도 필요하고 CI / CD도 필요하고 PR 정책 등도 필요하겠지만 많은 시간을 투자하지 않았다. 이게 허용이 되는 기준은 "운영상의 문제가 없는 한" 이라고 생각한다. 운영상의 문제가 있을 것이..
· Kubernetes
1. Helm 이란 Helm의 정의를 CircleCI 블로그에서 가져왔다. Helm은 설정 파일을 하나의 재사용 가능한 패키지로 결합하여 Kubernetes 애플리케이션의 생성, 패키징, 설정, 배포를 자동화하는 도구입니다. 내가 생각하는 Helm의 핵심 기능은 "패키징"이라고 생각한다. 패키지를 만들고 잘 만들어둔 패키지는 다양한 곳에서 사용할 수 있다. 마치 만능 양념장과 같다. 쿠버네티스 스터디 중 "Helm을 언제 사용하는 건지 이해가 안되니 개념도 이해가 잘 안 된다"라는 이야기를 하신 분이 있었다. 그에 대한 대답으로 나는 "필요하다고 느껴질 때 사용하게 될 것이다"라고 생각한다. nginx 웹 서버를 하나를 쿠버네티스에 배포한다고 해보자. 그러면 일반적으로 Deployment 리소스를 생성할..
· Kubernetes
개인 로컬 환경에서 손쉽게 쿠버네티스 환경을 구성할 수 있는 방법을 알아보자. Steps Docker Desktop 설치 Kubernetes 사용 설정 Pod 생성해 보기 1. Docker Desktop 설치 Docker Desktop은 도커 환경을 쉽게 구성할 수 있게 도와주는 데스크톱 애플리케이션이다. 도커 설치법을 찾아보면 대게 Docker Desktop 설치가 가이드된다. 도커 데스크톱은 도커의 핵심이 되는 도커 엔진에 그리고 도커를 쉽게 사용하기 위한 GUI 툴 정도라고 이해하고 있다. Docker Desktop = Docker Engine + 이외의 유용한 기능들 이외의 유용한 기능들에 Kubernetes 클러스터를 구성할 수 있게 도와주는 게 포함되어 있다! Docker Desktop 설치 ..
ssuwani
Oops!!