전체 글

· Kubernetes
Kubernetes는 대규모 서비스 운영에서 사실상 표준으로 자리 잡았다. 그러나 효율적이고 안정적인 운영을 위해선 견고한 모니터링 시스템을 구축이 필수적이다. 이 글에서 Prometheus와 Grafana를 사용하여 효과적인 Kubernetes 모니터링 시스템을 구축하는 방법을 소개한다. 1. 로컬 환경에서 Docker Desktop을 이용한 Kubernetes 클러스터 구축 로컬 환경에서도 Kubernetes를 설치할 수 있는 방법이 여러 가지가 있다. 그중 Docker Desktop 이용해 Kubernetes 환경을 구축해 보자. Docker Desktop 설치 https://www.docker.com/products/docker-desktop/ 여기에 들어가면 OS별 설치 파일이 제공된다. Ena..
아래 내용은 도서 "트랜스포머를 활용한 자연어 처리"의 내용을 실습한 내용입니다. 트랜스포머를 활용해서 특정 텍스트에 대한 감성을 분류하는 모델을 손쉽게 학습하고자 한다. 데이터셋 준비하기 감성을 분류하는 모델 학습을 위해 특정 데이터에 대한 감성이 분류되어 있는 데이터셋이 준비되어야 한다. HuggingFace에서 제공하는 datasets 라이브러리를 사용하면 손쉽게 트윗에 대한 감성이 분류되어 있는 데이터셋을 불러올 수 있다. from datasets import load_dataset emotions = load_dataset("emotion") emotions["train"].features["label"] # ClassLabel(names=['sadness', 'joy', 'love', 'ang..
개요 Pandas는 데이터를 다루고 분석하기 위한 강력한 도구로, 다양한 직무에서 폭넓게 활용되고 있습니다. 데이터의 가공, 정제, 분석, 시각화 등 다양한 작업을 효과적으로 수행할 수 있는 Pandas는 특히 데이터 분야에서 일하는 전문가들에게 필수적인 라이브러리 중 하나입니다. Pandas의 활용 직무 (당연히 직무별 졸라맨은 의미가 없습니다..) Pandas는 다양한 직무에서 사용되며, 주로 데이터와의 상호 작용을 통해 가치를 창출하는 데 활용됩니다. 몇 가지 주요한 직무는 다음과 같습니다 1. 데이터 분석가 데이터 분석가들은 주로 Pandas를 사용하여 대량의 데이터를 처리하고 분석합니다. 데이터의 형태를 이해하고, 필요한 정보를 추출하며, 통계적인 분석을 수행하는 데에 활용됩니다. 이는 업무 의..
· Kafka
같은 키를 갖는 메시지는 "항상" 같은 파티션에 들어갈까? 위 질문에 대한 답을 구하고자 포스팅을 작성한다. 위 질문에 대한 답이 Yes라면 메시지에 키를 설정하는 것에 대해 회의적일 것이고 No라면 긍정적일 것이다. 메시지의 키의 역할 카프카 토픽에 들어가는 메시지는 key와 value의 쌍이다. 여기서 key는 Optional 필드이고 value를 필수이다. 일반적으로 키는 메시지가 저장되는 파티션을 지정하기 위해 사용되는 정보이며 Partitional(파티셔너)에 의해 특정 파티션으로 메시지가 보내진다. 또한, 이 포스팅의 핵심이라 할 수 있는 기본적인 개념인 "같은 키를 갖는 메시지는 같은 파티션으로 할당"되기에 같은 키를 갖는 메시지에 대해 순서를 보장할 수 있다. 질문의 답이 No 이여야 하는..
· Kafka
지금까지 카프카 토픽에 메시지를 Produce 하고 Consume 했다. 여기서 끝이 아니고 일반적인 서비스에서 생성된 메시지를 가져온 뒤 어떠한 처리 해야 한다. 그러면 어떻게 처리하는 게 좋을까? 대상 독자 카프카 메시지를 스트림 처리하고자 하는 자 Steps 동기로 무한루프 Connector 사용하기 비동기로 무한루프 (FastAPI) 1. 동기로 무한루프 내가 생각하는 가장 쉬운 방식이다. 앞선 포스팅에서 아래와 같은 Consume Loop를 살펴봤었다. while True: message = consumer.poll(1.0) # 메시지를 받을 때까지 최대 1초간 대기 # message를 가지고 지지고 볶고 당연히 위 반복문 안에서 message를 가지고 어떠한 처리건 할 수 있다. 하지만 위 로..
· Kafka
Confluent Kafka를 docker-compose를 이용해 설치하는 방법을 소개했었지만 다른 리소스들과 함께 관리 및 사용하고자 Kubernetes에 올리는 방법도 소개하고자 한다. arm 칩을 사용하는 mac 기준으로 작성되었다. 대상 독자 쿠버네티스에 Confluent를 구축하고자 하는 개발자 Steps 로컬 환경에 Kubernetes 구축 Confluent Kafka 설치 1. 로컬 환경에 Kubernetes 구축 여러 가지 방법이 있을 수 있다. docker-desktop을 이용해 손쉽게 Enable Kubernetes 버튼을 통해서도 구축할 수 있고 k3s와 같은 경량화된 쿠버네티스를 구축해도 된다. 다만 여기선 minikube를 통해 쿠버네티스(이하 k8s)를 구축하려 한다. minik..
· Kafka
앞선 포스팅에서 토픽에 Schema를 등록했다. 이제 토픽에 생성되는 메시지는 해당 스키마를 따른다. 이제 반대로 메시지를 Consume 한 뒤 역직렬화를 수행해 보자. 대상 독자 안전한 메시징 시스템을 구축하고자 하는 개발자. Steps 메시지 소비하기 마무리 1. 메시지 소비하기 2. 파이썬으로 Confluent Kafka의 Consumer 구현하기 에서 Consumer 객체를 정의한 뒤 메시지를 읽고 난 뒤 json.loads를 통해 메시지를 역직렬화를 했었다. 이번 포스팅에서 할 내용은 json.loads를 통해 역직렬화가 아닌 avro deserializer를 통해 역직렬화를 수행하는 것이다. from confluent_kafka import Consumer consumer = Consumer(..
· Kafka
지금까지 토픽에 메시지를 생성하고 소비했다. users라는 토픽에 아래와 같은 메시지를 생성했고 해당 메시지들을 소비했었다. { "userid": , "gender": , "username": } 위와 같은 형태로 입력해 주기로 프로듀서와 컨슈머가 약속했지만 갑자기 알 수 없는 이유로 토픽에 메시지로 “Hello”가 입력되면 시스템 장애가 발생할 것이다. Schema Registry를 통해 검증된 메시지만 생성되도록 하자. 대상 독자 안전한 메시징 시스템을 구축하고자 하는 개발자. Steps Schema 정의하기 토픽에 스키마 등록하기 메시지 생성하기 마무리 1. Schema 정의하기 Schema는 3가지 타입을 통해 정의할 수 있다. JSON Avro Protobuf 이 중 어떠한 것을 선택하든 상관은..
ssuwani
Oops!!