분류 전체보기 200

[Pinot] 오픈소스 기여 프로세스

1. 들어가기 전, 1.1 개발 환경 설정 [Pinot] Apache Pinot 개발 환경 Apache Pinot 운영이 아닌, 개발 및 프로젝트 기여를 목적으로 개발 환경을 설정한다. WSL 환경을 기준으로 한다. Running Pinot locally - Apache Pinot Docs Note that some installations of the JDK do not contain the JNI binding hhlab.tistory.com 1.2 모듈 및 아키텍쳐 pinot-common 프로젝트 전반의 공통 클래스들을 제공 (config, metrics, metadata, pql.parsers, request, response, fs, ...) pinot-trasnport Broker의 분산-수집..

💻/MLOps 2023.03.05

[Pinot] Apache Pinot 개발 환경

Apache Pinot 운영이 아닌, 개발 및 프로젝트 기여를 목적으로 개발 환경을 설정한다. WSL 환경을 기준으로 한다. Running Pinot locally - Apache Pinot Docs Note that some installations of the JDK do not contain the JNI bindings that are necessary to run all tests, if you see any java.lang.UnsatisfiedLinkError while running tests, you may need to change your JDK. If using Homebrew, you may install AdoptOpenJDK docs.pinot.apache.org 1. Java..

💻/MLOps 2023.03.05

[Pinot] Apache Pinot?

Apache Pinot의 공식 문서를 요약한 글입니다. https://docs.pinot.apache.org/ "Apache Pinot은 빠른 응답속도로 많은 분석을 제공할 수 있는, 실시간 분산 OLAP 데이터 저장소" Kafka, Kinesis 같은 스트리밍 데이터 소스들에서 다이렉트로 데이터를 가져올 수 있고, 즉시 쿼리 실행을 위한 이벤트를 가능하게 한다. 스트리밍 뿐 아니라 Hadoop, S3, ADLS, GCS와 같은 배치 데이터 소스에서도 가져올 수 있다. 이 시스템의 중심 부에는, 빠른 응답 속도를 위한 스마트 인덱싱, 데이터 사전 집계 기능을 '곁들인' 컬럼 지향 저장소가 있다. 이 점이 Pinot을 실시간 분석 제공에 완벽한 도구로 만들어준다. 뿐만 아니라, Pinot은 내부 대시보드,..

💻/MLOps 2022.11.05

[블록체인] quorum-dev-quickstart 연동 테스트

Windows WSL2 기준으로 진행 1. Node.js 설치 # 1. cURL 설치 sudo apt-get install curl # 2. nvm 설치(Node.js Version Manager) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh # 3. node.js 설치 nvm install --lts 2. docker desktop 실행 docker --version 3. truffle 설치 npm install truffle -g 4. quorum-dev-quickstart 다운로드 npx quorum-dev-quickstart 5. web3js-quorum 설치 연동할 프로젝트에 web3js-quorum을 설치해주자..

💻/블록체인 2022.09.20

[블록체인] Windows 환경에서 Ganache 네트워크 테스트

Ganache? Ganache는 간이 이더리움 블록체인이다. Ganache를 설치하면, 로컬에서 블록체인 네트워크가 구성되고, 100ETH를 가진 10개의 테스트 계정을 받을 수 있다. 개발 시에 빠르게 환경을 구성할 수 있으며, 메모리 내 블록체인이기 때문에 트랜잭션 테스트 시 실제 블록체인 네트워크에 배포하는 경우 보다 시간을 훨씬 절약할 수 있다. Ganache - Truffle Suite Features VISUAL MNEMONIC & ACCOUNT INFO Quickly see the current status of all accounts, including their addresses, private keys, transactions and balances. trufflesuite.com 개발..

💻/블록체인 2022.08.30

[Backend] AJAX의 이해

AJAX (Asynchronous Javascript And XML) JavaScript를 이용해 요청을 보내고 데이터를 받아와 페이지 새로고침 없이, 화면의 일부를 갱신하는 방식이다. 결국 브라우저가 화면을 띄우기 위해 필요한 것은 HTML/CSS이다. Javascript로 화면이 바뀌는 것도 결국 DOM 객체에 접근해서 HTML 문서를 수정하는 것이다. Javascript가 요청을 보내고 받을 수 있다면, 화면의 특정 부분만을 업데이트 할 수 있다. 이 때 이 요청에 대한 응답을 기다려야 한다면, 응답이 올 때 까지 화면을 제대로 볼 수가 없기 때문에, 당연하게도 비동기적으로 요청해야 한다. 비동기적이란 일을 차례차례 처리하는 것이 아니라, 특정 업무를 다른 곳에 의뢰하고, 끝난 일을 택배함에 놓고 ..

💻/웹 2022.07.11

[Javascript] 비동기 프로그래밍(싱글 쓰레드, 넌-블로킹)

Javascript는 싱글 스레드(Single Thread)와 넌-블로킹(Non-Blocking)이라는 두 가지 특성을 가지고 있다. 얼핏 보면 이 두가지 특성은 양립 불가능해보인다. "어떻게 동시에 여러 개의 일을 할 수 없으면서, 하나의 일이 끝날 때 까지 기다리지 않고 동시에 처리할 수 있지?" 답은 JS 엔진과 브라우저의 동작 구조에 있다. JS 엔진 자체는 싱글 쓰레드로 한 가지 일만 집중할 수 있는 친구다. 고맙게도 이 단순한 친구를 위해 브라우저에서 여러가지 기능을 Web API라는 이름으로 제공하고 있다. JS 엔진은 동시에 처리해야하는 일을 Web API에 요청해 놓고, 본인이 늘 하던대로 한 번에 하나씩만 일을 처리하는 것이다. Web API는 본인이 처리한 결과를 Callback Qu..

💻/웹 2022.07.11

[CI/CD] Vue 프로젝트를 Jenkins (docker-in-docker) 배포하기

📃개요 도커로 Jenkins 컨테이너를 실행한다. Jenkins 컨테이너에 docker-in-docker 관련 세팅을 한다. GitLab 리포지토리에 커밋이 발생하면, 설정한 Dockerfile을 실행하도록 Jenkins를 설정한다. 소스를 빌드하고, 결과를 nginx 컨테이너를 실행해 적재하도록 Dockerfile을 작성한다. 소스를 수정하고 커밋하면, Jenkins가 자동으로 빌드/배포해서 결과를 공유할 수 있다. 🎯 작업환경 구성 1. WSL2 설치 마침, 얼마전 컴퓨터를 포맷해서 WSL이 지워진 상태였다. 마이크로소프트에서 제공하는 친절한 가이드를 보고 WSL2를을 다시 설치했다(1). 리눅스 환경을 더 쾌적하게 사용하고자 터미널을 설치하고(2), 편의성을 위해 관리자 권한의 바로가기를 바탕화면에..

💻/인프라 2022.07.08

[BackEnd] CI/CD, Jenkins란?

? 개발자는 개발만 잘하면 되는 거 아니였나? 개발자를 방해하는 개발 외적인 문제가 여러가지 있겠지만, 여기선 2가지 문제를 살펴보자. 문제 1. 코드를 하나로 통합하는 과정이 너무 스트레스야 하나의 프로젝트에서 10명의 개발자가 파트를 나눠 개발하는 모습을 상상해보자. 각자 개발한 코드를 하나로 통합하기 위해, 기능이 추가될 때 마다 개발자들은 코드 베이스에 커밋을 넣을 것이다. 착하게 합쳐지면 참 좋겠지만 커밋들을 머지하기 시작하면 "마지막 커밋 누구야, 내 꺼 안 되잖아! "와 같은 아우성이 터져나오기 마련이다. 이를 'Merge hell'이라고 부르기도 한다. 위와 같은 사태를 막을 방법이 하나 있다. 커밋을 할 때 마다 코드에 대해 테스트와 빌드를 실행해보는 것이다. 당연히 개발자 입장에서는 귀..

💻/인프라 2022.06.28