개요 Presto는 페이스북이 최초 개발하여 오픈 소스로 공개한 대화식 데이터 쿼리 서비스이다. 이를 이용해 다양한 데이터베이스에 대한 일관된 ANSI SQL 질의가 가능하다. 특징 운영 레벨의 다양한 데이터 소스의 데이터를, 주기적인 배치로 복잡한 ETL 정제 후 Data Warehouse에 저장하는 전통적인 방식과 다르게, 다양한 데이터 소스를 직접 조회할 수 있다. 놀라운 것은 각 데이터베이스의 쿼리 문법을 몰라도 공통된 ANSI SQL을 제공하여 일관된 쿼리 실행이 가능하다. 댜양한 데이터 소스 간의 조인과 집합 연산도 가능한데, 빠른 속도를 보장하기 위해 엔진 레벨에서 분산 컴퓨팅 기법이 사용된다.페이스북의 내부 직원 약 1,000명은 매일 300PB(페타바이트)에 달하는 페이스북의 데이터를 P..
개요 Spring Boot 기반의 웹 애플리케이션은 기본적으로 각 요청에 대해 동기 방식으로 로직을 실행한다. 하지만, 필요에 따라 비동기 방식으로 로직을 실행해야 하는 경우도 있다. 예를 들면 I/O 부하가 많이 발생하는 배치 작업을 싱글 쓰레드로 처리하면 CPU와 메모리는 남아도는데, 병목이 생겨 느려지기 쉽상이다. 이런 경우 적절히 n개의 멀티 쓰레드로 쪼개어 배치 작업을 실행하면 처리 시간을 경우에 따라 드라마틱하게 단축할 수 있다. 이번 글에서는 이러한 사례를 해결하기 위한 비동기 방식의 실행 방법에 대해서 설명하고자 한다. RejectedExecutionHandler 구현체 작성 ThreadTaskExecutor에 의해 관리되는 쓰레드 풀의 가용 쓰레드가 한계치에 도달할 경우, TaskReje..
개요 MongoDB는 수년간 대표적인 NoSQL 제품으로 자리 잡았다. 특히, 전통적인 RDBMS 대비 우월한 샤드 및 스케일 아웃 능력으로 대량 트래픽, 대량 데이터가 발생하는 모던 웹 시대에 걸맞는 저장소로 널리 쓰이고 있다. 설치 및 운영 MongoDB를 개발 및 테스트 목적으로 활용한다면 로컬 내 가상머신이나 AWS EC2와 같은 클라우드 환경에 직접 설치하는 것으로 충분하다. 설치 방법은 본 블로그의 이 글을 참고한다. 실제 운영 목적이라면 이야기가 달라진다. MongoDB는 관리 측면에서 굉장한 전문성과 노력이 필요하다. 제작사가 직접 제공하는 MongoDB Atlas 유료 클라우드 서비스 이용을 추천한다. 데이터 증가에 따른 스케일 아웃 같은 까다롭고 어려운 관리 이슈를 대부분 자동으로 수행..
개요 Java, Kotlin은 매우 강력한 정적 타입 언어이지만 때때로 요구사항에 따라 동적으로 변화되는 객체를 다뤄야하는 상황에 직면할 때가 있다. Map, List, JSON 문자열의 String 타입이 가장 대표적인 예인데, 이 데이터들을 읽어들이고 추가, 수정하는 것은 여간 번거로운 일이 아닐 수 없다. Jayway JsonPath를 이용하면 Path 기반으로 굉장히 우아하고 손쉬운 방법으로 데이터를 제어할 수 있다. build.gradle.kts 프로젝트 루트의 build.gradle.kts 파일에 아래 내용을 추가한다. dependencies { implementation("com.jayway.jsonpath:json-path:2.5.0") } JsonPath 객체 초기화 원본 소스로부터 Js..
- Total
- Today
- Yesterday
- JavaScript
- Eclipse
- jsp
- Spring MVC 3
- chrome
- 태그를 입력해 주세요.
- 자전거
- DynamoDB
- JHipster
- Docker
- Spring Boot
- maven
- Kendo UI Web Grid
- bootstrap
- node.js
- spring
- java
- 로드바이크
- 평속
- MySQL
- Tomcat
- Kendo UI
- jpa
- kotlin
- jstl
- CentOS
- 알뜰폰
- 구동계
- graylog
- 로드 바이크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |