분류 전체보기 203

[programming in Scala] 01. 스칼라 환경 설정

# 0. jdk 설치 sudo apt install openjdk-11-jdk # 1. Scala 설치 (cs setup) curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup # 2. IntelliJ Scala Plugin 설치 # 3. IntelliJ 에서, Settings > Build, Execution, Deployment > Build Tools > sbt > sbt project: sbt shell > Allow overring sbt version 을 uncheck. build.properties에 버..

Apache Cassandra

개요 아파치 카산드라(Apache Cassandra)는 오픈 소스로 개발된 분산형 NoSQL 데이터베이스입니다. 이는 파티션된 넓은 열(column) 저장 모델을 제공하며, 최종 일관성(eventual consistency)을 가진다. 아파치 카산드라는 원래 Facebook에서 설계되었으며, staged event-driven architecture (SEDA)를 사용하여 구현되었습니다. 이는 Amazon의 Dynamo 분산 저장 및 복제 기술과 Google의 Bigtable 데이터 및 저장 엔진 모델의 결합을 구현하기 위해 만들어졌습니다. Dynamo와 Bigtable은 모두 확장 가능하고 신뢰성이 높으며 고가용성을 갖춘 저장 시스템의 요구 사항을 충족시키기 위해 개발되었습니다. 그러나 각각은 개선할 ..

💻/MLOps 2023.07.31

[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