데이터 공부 72

Kafka Producer 애플리케이션 개발 - Python (Local Server 기반)

해당 프로젝트는 로컬 서버를 기반으로 카프카 프로듀서 애플리케이션을 개발하는 프로젝트에 대한 포스팅이다. 컨플루언트 기반 클러스터에서 카프카를 실행하기 전, 카프카의 동작 원리를 이해하기 위해 로컬에 직접 설치 및 실행해보았다. 목차 카프카 로컬 설치 서버 실행 Python Producer 개발 01. 카프카 로컬 설치 카프카 설치를 위해서는 공식 사이트를 이용해 파일을 다운로드 받아야 한다. 아래 공식다운로드 홈페이지 링크를 통해 접속하여, 파일을 다운받는다. 난 여기서 kafka_2.13-3.0.0 버전을 다운받았고, 해당 압축을 풀어주었다. https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Pla..

쿠버네티스 - 디플로이먼트의 배포 방식 :: 롤링 업데이트

목차 배포 방식 - 롤링업데이트 디플로이먼트는 애플리케이션을 배포하고 업데이트를 수행하는 리소스다. 이를 통해 배포하는 방식은 크게 네 가지로 분류되며, 방법마다 장단점이 존재한다. 따라서 서비스에 적합한 배포 방식을 채택해야 한다. 오늘은 가장 기본적이자 대표적으로 쓰이는 롤링업데이트 방식에 대해서 포스팅을 할 예정이다. 01. 배포 방식 - 롤링업데이트 앞선 글에서, 디플로이먼트의 개념 및 이점을 포스팅했었다. (이전 게시물) 쿠버네티스란? 주요 개념 익혀보기 - 레플리카셋, 디플로이먼트, 서비스 목차 쿠버네티스 구성요소 - 레플리카셋 쿠버네티스 구성요소 - 디플로이먼트 쿠버네티스 구성요소 - 서비스 01. 쿠버네티스 구성요소 - 레플리카셋(ReplicaSet) 앞선 글에서 파드(pod)에 대해서 포..

쿠버네티스란? 주요 개념 익혀보기 - 레플리카셋, 디플로이먼트, 서비스

목차 쿠버네티스 구성요소 - 레플리카셋 쿠버네티스 구성요소 - 디플로이먼트 쿠버네티스 구성요소 - 서비스 01. 쿠버네티스 구성요소 - 레플리카셋(ReplicaSet) 앞선 글에서 파드(pod)에 대해서 포스팅을 했었다. (이전 글 참고) 쿠버네티스란? - 노드와 파드, 컨테이너 차이를 이해해보자 목차 쿠버네티스란 쿠버네티스 구성요소 - 노드 쿠버네티스 구성요소 - 파드 01. 쿠버네티스란 도커를 어느 정도 공부하다 보면, 쿠버 네티스에 대해서 많이 들어봤을 것이다. 쿠버네티스는 컨테 eng-sohee.tistory.com 여기서, 레플리카셋은 파드의 수를 보장하기 위한 개념이다. 즉, 레플리카 세트를 3으로 설정했다고 가정할 때, 파드가 삭제되거나 (어떠한 이슈에 의해) 다운돼도, 쿠버네티스가 알아서 ..

Redis - Node.js 연동 - 127.0.0.1 이 아닌 다른 host 로 연결하는 방법

앞서, node js에 redis를 연동하는 방법 + 트러블 슈팅에 대해 포스팅을 했었다. Redis - Node.js 연동 - ClientClosedError: The client is closed 나는 업무 상 redis 를 node js 애플리케이션에 연동해서 수행해야 할 테스트 작업이 있었다. 사실 js 를 잘 다루지 못하지만, 해당 방법에 대해서는 구글링 시 많은 자료가 나오므로 비교적 손쉽게 eng-sohee.tistory.com 나는 GCP memorystore Redis ( = Cloud Redis)에 연결해야 했다. 하지만 연동 과정에서, 127.0.0.1 을 제외한 다른 host로 연결이 안 된다는 이슈가 발생했다. 나는 client configuration 문서를 통해, socket을..

Redis - Node.js 연동 - ClientClosedError: The client is closed

나는 업무 상 redis 를 node js 애플리케이션에 연동해서 수행해야 할 테스트 작업이 있었다. 사실 js 를 잘 다루지 못하지만, 해당 방법에 대해서는 구글링 시 많은 자료가 나오므로 비교적 손쉽게 연동을 할 수가 있었다. 내가 처음에 참고한 블로그는 아래와 같다. https://zzdd1558.tistory.com/232 [Node.js] Node + Redis 연동 후 테스트 Node.js 서버와 Redis를 연동하여 나중에 공부해볼 Redis Session관리를 하기전에 Node 서버와 Redis가 연동이 되어야 하기 때문에 Node와 Redis연동하는 방법을 알아보도록 하겠습니다 . 먼저 Node.js에서 redis zzdd1558.tistory.com 하지만 해당 내용을 참고하며 진행할 ..

쿠버네티스란? - 노드와 파드, 컨테이너 차이를 이해해보자

목차 쿠버네티스란 쿠버네티스 구성요소 - 노드 쿠버네티스 구성요소 - 파드 01. 쿠버네티스란 도커를 어느 정도 공부하다 보면, 쿠버 네티스에 대해서 많이 들어봤을 것이다. 쿠버네티스는 컨테이너 개발에 있어, 컨테이너화된 애플리케이션을 탄력적으로 실행하기 위한 프레임 워크를 말한다. 이는 컨테이너화된 애플리케이션의 로드밸런싱 & 시크릿 관리 등을 원활히 하도록 돕는다. 로드 밸런싱(load balancing): 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 뜻함 (동의어: 부하분산) 이는 배포를 원활히 돕는 것뿐만 아니라, 혹여 배포가 잘못되었을 경우 유연한 대처(롤백 등)가 가능하도록 돕는다. 예를 들어, 쿠버네티스를 이용하면..

Apache Airflow 처음부터 빌드해보기 + 4

현재까지 진행한 내용을 정리하자면, 우리는 VM 안에 새로운 가상환경을 만들어 airflow를 설치했다. 앞으로 우리는 DAG 파일을 만들거고, 가장 먼저 sqlite 에서 데이터를 출력해와 테이블을 생성할 것이다. 이 작업을 함께 진행해보자. 01. DAG 생성 간단한 DAG를 생성해보겠다. Sqlite에 새로운 Table을 주기적으로 생성하는 task을 만들어 볼 것이다! 앞선 포스팅에서 생성한 dags 폴더 안에, dag명을 딴 py 파일을 생성한 뒤, 위와 같이 작성해준다. 설명은 아래와 같다. from airflow.models import DAG - DAG import from airflow.providers.sqlite.operators.sqlite import SqliteOperator -..

Apache Airflow 처음부터 빌드해보기+2

앞서 포스팅은 아래와 같다. https://eng-sohee.tistory.com/108 03. Apache Airflow 처음부터 빌드해보기 + 1 Airflow를 사용해본 경험은 꽤 되지만, 이는 누군가가 Docker로 사용하기 좋게 build해놓은 것을 썼기 때문에 온전히 내 것이라는 느낌이 들지 않았다. 따라서 이번 프로젝트를 진행하면서 Airflow를 처 eng-sohee.tistory.com 이제 이어서, airflow 를 본격적으로 실행하기에 앞서, 초기 사용 방법을 익혀보도록 하겠다. 01. Airflow 시작에 앞서 1-1. 앞서 생성한 가상환경 접속 source sandbox/bin/activate 1-2. airflow에서 사용 가능한 인터페이스 설명 목록 확인 이를 통해, airfl..

06. SQL - SubQuery 활용 방법 (A.K.A 4주차 수업 정리 (1))

SubQuery란? 큰 쿼리문 안에 들어가 있는 쿼리문을 말한다. 테이블 간 Join 작업인데, 더욱 복잡한 명령을 수행한 뒤 Join을 행할 수 있기 때문에 매우 중요한 개념이다. 1-1. Join이 아닌 SubQuery도 사용해야 하는 이유 - Join과 SubQuery 비교 만약, kakaopay로 결제한 user의 id, email, name을 보여달라는 명령을 수행해본다고 가정해본다. 이는 Join을 이용해서 (저번 시간에 배웠던 대로) 문제를 해결할 수 있다. 하지만, 만약 Join해야 할 테이블에 조건을 걸어야 하는 것이 복잡해진다면, join을 쓰기에는 역부족일 수 있다. 이럴 때 SubQuery를 사용한다. SubQuery를 이용한다면 더욱 간단히 문제를 해결할 수 있다. 01. Join..

Pandas - 고객 구매 데이터 데이터 전처리 연습

목차 데이터셋 설명 분석 코드 01. 데이터셋 설명 데이터는 캐글에서 제공하는 고객 구매 데이터를 사용했다. 링크는 아래와 같다. https://www.kaggle.com/vjchoudhary7/customer-segmentation-tutorial-in-python Mall Customer Segmentation Data Market Basket Analysis www.kaggle.com 해당 데이터의 경우, 고객이 특정 몰에서 구매한 데이터 200 raw로 구성돼 있다. 각 칼럼값은 총 4개이며, 컬럼은 아래와 같다. CustomerID (고객ID) Age (나이) Annual Income (k$) (연간 수입) Spending Score (1-100) (지출 지수) 02. 분석 코드 2-1. dat..