목록전체 글 (67)
The Boxer
함수를 wrapping하여 함수에 추가 구문 적용을 재사용 가능하게 만드는 기능 쉽게 말하자면 함수의 호출 시점에 추가적인 작업을 적용 할 때 이를 재사용 가능하게 하는 기능이다 decorator가 없는 경우 def get_data_from_database(): print("start db connect") ... print("finish db connect") 위와 같이 함수 실행과 끝을 관제하는 로그를 추가한다고 하면 함수의 실행 앞뒤로 로그를 추가해야 한다. 다만, 위와 같은 관제 기능이 모든 함수에 추가되어야 한다고 하면, 모든 부분에 동일한 소스코드를 추가해야 한다. decorator를 통해 위 기능을 재사용 가능하게 만들어 모든 코드에 공통적으로 적용한다. decorator 사용 def fun..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/laEff/btrIGzlL4pP/nvS0Cewojiv3pGudKt1241/img.png)
정의: 규모에 상관없이 빠르고 유연한 완전관리형 NoSQL 데이터베이스 서비스 NoSQL DB 서비스이긴 한데 완전관리형이다. 완전관리형이란 AWS가 리소스 관리를 대신해준다는 의미이며, 서버 관리 auto scaling등에 대한 인프라 적인 관리는 AWS가 대신하게 된다. 구성 요소 table, item, attribute table: RDB와 마찬가지로 데이터가 테이블 item: table에는 0개 이상의 item이 속함. attribute의 집합체로 볼 수 있으며, 각 item들은 서로 구별되는 고유한 값이다. attribute: 각 item은 1개 이상의 attribute로 구성되어 있음. dynamodb 데이터의 가장 작은 단위 구성 예시 위 예시에서 table: People item: Peop..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TO7sy/btrIjODXtmy/yhlRHUc2jSgYat98H0pwu1/img.png)
druid의 구조는 process(service)로 구성된다. 각 server는 process가 배포되는 단위이며 process는 운영상의 유연함을 위해 3개 type의 서버로 나눠 배포된다. process(service) Coodinator Overlord Broker Historical Middleware manager and Peon Indexer Router server Master Query Data 전체 구조 ref: https://druid.apache.org/docs/latest/design/processes.html Druid process and server Master server Master server는 데이터 적재와 가용성을 책임진다. 실질적으로 새로운 적재 작업을 실행시키며 D..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nJxWo/btrIhiLtiW6/jcjjg8JM4vigeClJyWDyRk/img.png)
# 이 글은 druid segment 를 참고하여 정리한 글입니다. druid는 index 정보를 시간에 따라 파티셔닝된 segment 파일에 저장한다. 여기서 파티셔닝이 되는 시간 단위는 segmentGranularity 값을 통해 설정 가능한다. 보통 druid가 무거운 쿼리를 적절한 성능으로 처리하기 위해서 segment 파일은 300 MB ~ 700 MB 사이를 유지할 것을 권장한다. 만약 해당 segment의 용량이 해당 값 범위 밖에 있다면 segmentGranularity 값을 조정해야 한다. segment 파일의 구조 컬럼 지향(columnar): druid의 특징으로 각 column의 데이터가 분리되어 저장되었음을 것을 의미한다. column 데이터를 분리하여 저장함으로써, 필요한 col..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SsRvZ/btrIeMkqQUj/HKOmkx5ai10S0IaE4lFlUK/img.png)
# 이 글은 druid 공식문서의 design 파트를 정리한 글입니다. druid는 클라우드 서비스에 적용하기 쉬운 분산 구조로 이루어져 있다. 이러한 구조 덕분에 몇가지 설정만으로 쉽고 유연하게 스케일 조절도 가능하며, 장애 복구 기능도 제공한다. 전체 구조 출처: https://druid.apache.org/docs/latest/design/architecture.html 드루이드 서비스 드루이드는 다음의 서비스로 구성되어 있다. coodinator service: 데이터 가용성을 책임지는 서비스 overlord service: 데이터 적재 작업을 제어 broker: 외부 클라이언트에서 들어온 쿼리문 제어 router service: request를 broker, coodinator, overlord..