Mongo db intro & tipsInBum KimThis presentation is used for "MS Open Camp 2016" in Seoul.
I was there to introduce MongoDB & tips.
My experience is in the slide as a tip.
분산저장시스템 개발에 대한 12가지 이야기NAVER D2우리가 이름만 들어도 아는 유명 IT 서비스들의 화려한 웹페이지도, 예쁜 모바일 앱도 그 뒤에는 탄탄하고 강력한 분산 시스템을 기반으로 합니다. 이러한 백엔드 시스템이 부실할 경우 서비스나 앱은 그야말로 사상누각입니다. 본 세미나에서는 이러한 시스템들을 만들때 풀어야 할, 가장 기본이 되는 문제와 이슈들 12가지에 도전해봅니다.
The MongoDB Strikes Back / MongoDB 의 역습Hyun-woo ParkThe MongoDB Strikes Back / MongoDB 의 역습
MongoDB 1.6 에서 2.4 로 업그레이드하며 추가된 기능과 그로 인해 달라진 개발/운영 방향에 대한 내용을 정리해보았습니다.
Redis -- Memory as the New DiskTim LossenThe document discusses how memory is becoming the new disk for data storage due to its faster random access speeds and lower latency compared to hard disks, with examples showing how Redis is a simple and flexible in-memory data structure store that can provide fast performance for common use cases. Key advantages of Redis that are highlighted include its small codebase, support for different data structures and atomic operations, virtual memory handling, replication, and wide client library support in different programming languages.
Redis sentinelinternals deviewDaeMyung Kang1. Redis Sentinel provides high availability for Redis databases by monitoring Redis servers, detecting failures, and initiating failovers to slave servers.
2. When a failure is detected, Sentinel will promote a slave to become the new master, redirect clients to the new master, and reconfigure other slaves to connect to the new master.
3. While Sentinel provides basic high availability, it has some limitations such as not being able to promote a slave if the original master also becomes a slave, and not being able to handle Redis servers that are loading data during startup.
Mongo db intro & tipsInBum KimThis presentation is used for "MS Open Camp 2016" in Seoul.
I was there to introduce MongoDB & tips.
My experience is in the slide as a tip.
분산저장시스템 개발에 대한 12가지 이야기NAVER D2우리가 이름만 들어도 아는 유명 IT 서비스들의 화려한 웹페이지도, 예쁜 모바일 앱도 그 뒤에는 탄탄하고 강력한 분산 시스템을 기반으로 합니다. 이러한 백엔드 시스템이 부실할 경우 서비스나 앱은 그야말로 사상누각입니다. 본 세미나에서는 이러한 시스템들을 만들때 풀어야 할, 가장 기본이 되는 문제와 이슈들 12가지에 도전해봅니다.
The MongoDB Strikes Back / MongoDB 의 역습Hyun-woo ParkThe MongoDB Strikes Back / MongoDB 의 역습
MongoDB 1.6 에서 2.4 로 업그레이드하며 추가된 기능과 그로 인해 달라진 개발/운영 방향에 대한 내용을 정리해보았습니다.
Redis -- Memory as the New DiskTim LossenThe document discusses how memory is becoming the new disk for data storage due to its faster random access speeds and lower latency compared to hard disks, with examples showing how Redis is a simple and flexible in-memory data structure store that can provide fast performance for common use cases. Key advantages of Redis that are highlighted include its small codebase, support for different data structures and atomic operations, virtual memory handling, replication, and wide client library support in different programming languages.
Redis sentinelinternals deviewDaeMyung Kang1. Redis Sentinel provides high availability for Redis databases by monitoring Redis servers, detecting failures, and initiating failovers to slave servers.
2. When a failure is detected, Sentinel will promote a slave to become the new master, redirect clients to the new master, and reconfigure other slaves to connect to the new master.
3. While Sentinel provides basic high availability, it has some limitations such as not being able to promote a slave if the original master also becomes a slave, and not being able to handle Redis servers that are loading data during startup.
몽고디비사용자교육2일차 v0.5seung-hyun ParkThe document is a table of contents that outlines topics related to advanced querying and expressions in MongoDB. It includes sections on installation and operation, installing and checking data in RoboMongo, comparison operations like greater than/less than, string comparisons, searching with regular expressions, array searches, and searching within subdocuments. The document provides structure and overview but no detailed explanations of the topics.
OOPS in javascriptVijaya AnandThe document discusses creating object types and objects in JavaScript. It introduces the concept of a DartFrog type and shows how to define it as a function that accepts name, color, and poisonous properties. It demonstrates adding jump and sing methods to the DartFrog type and then creating individual DartFrog objects, passing values to initialize their properties. Finally, it calls the sing method on each DartFrog object to make them croak.
Redis acc 2015DaeMyung KangRedis Internals and RoadMap from 2.8 to 3.2
Introdução ao GeoServer 2.0Fernando QuadroEste é um tutorial sobre o GeoServer 2.0, um quick start, con o intuito de dar uma noção geral de como utilizá-lo.
MongoDB + GeoServerMongoDBThis presentation will dive into a development team’s use case for choosing MongoDB as their spatially enabled NoSQL solution. The talk will also cover how the integration of GeoServer can expand the accessibility of your data. GeoServer is the open source implementation of Open Geospatial Consortium (OGC) standards and a core component of the Geospatial Web.
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기복연 이MEAN 스택, 서버와 클라이언트를 넘나드는 풀스택 엔지니어의 선택
MEAN은 서버와 클라이언트 양쪽을 모두 다루는 풀스택 엔지니어를 위한 기술이며, 한번 익혀두면 여러 상황에서 돌파구를 발견할 가능성을 높여준다. 그만큼 개발자의 경쟁력을 높일 수 있음을 의미한다. 스택의 모든 구성 요소가 자바스크립트를 사용하므로 진입 장벽이 낮고 팀 내 협업, 노하우 공유, 의사소통에 큰 도움을 준다.
이 책은 오랜 개발과 번역 경험을 두루 갖춘 베테랑 역자가 원서의 예제를 완결된 형태로 재구성해서 독자의 시간을 절약해주고 아쉬운 설명을 보강해 완성도를 높였다. 책의 흐름에 발맞춰 예제를 조금씩 확장해 나가다 보면 어느 순간 자신만의 멋진 풀스택 앱을 만들 수 있을 것이다.
- 지은이 : 애덤 브레츠, 콜린 J. 이릭
- 옮긴이 : 박재호
- ISBN : 978-89-6848-218-2 93000
- 발행일 : 2015년 9월 1일
- 페이지수 : 348
- 정가 : 28,000원
- 구매(예스24) : http://goo.gl/KNlRGg
Big query at GDG Korea Cloud meetupJude Kim2015-01-27 GDG Korea meetup 에서 발표한 자료입니다.
빅쿼리에 대한 가벼운 소개 및
AppEngine 로그를 BigQuery에 저장하여 질의하는 과정에 대해서 설명하였습니다.
NoSQL 동향NAVER D2This document discusses the results of a NoSQL database benchmark test conducted by NHN on Cassandra, HBase and MongoDB. It describes the test environment and four test cases performed: data insertion, random reads and updates on existing data, reads only on existing data, and random reads and inserts with additional data added. The test measured average transactions per second for each database and test case. Cassandra and HBase performance varied depending on compaction levels while MongoDB update and insert performance lagged the others.
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)InBum KimIt's the material announced at the "11th Korea Data Tech Seminar".
제11회 코리아 Data 테크 세미나에서 발표했던
"NoSQL시대의 MongoDB 4.0 활용" 발표 자료입니다.
MultiModal Embedding integrates various data types, like images, text, and au...Tae Young LeeMultiModal Embedding refers to a technique used to integrate and process different types of data. "Modality" refers to the type or form of data, such as images, text, audio, etc. MultiModal Embedding maps these different modalities into a common space, allowing for the integration and correlation of diverse types of data.
Key Concepts
Integration of Different Modalities:
It transforms data from various types, such as images, text, and audio, into a common vector space. In this space, each piece of data is represented as a vector, enabling the understanding and analysis of relationships between different modalities.
Common Embedding Space:
It maps data from different modalities into a shared embedding space, allowing for comparison or combination of data across modalities. This process helps capture the features of the data effectively and understand interactions between multiple modalities.
Training and Application:
MultiModal Embedding models are typically trained on large datasets that incorporate various modalities, helping the model learn from a richer set of information. These trained models can be used in applications such as search, recommendation systems, and question-answering.
Applications
Image and Text Integration:
For tasks such as generating descriptions for images or comparing the similarity between images and text.
Multimodal Search:
For performing image searches based on text queries or extracting textual information from images.
Automatic Translation:
For performing speech recognition and translation simultaneously by integrating text and audio.
Enhanced Model Understanding:
Helps models learn more comprehensive and diverse information by leveraging various modalities.
Examples
CLIP (Contrastive Language-Image Pretraining): Developed by OpenAI, this model understands and correlates both images and text, allowing for matching tasks between the two modalities.
DALL-E: An image generation model that creates images from textual descriptions. It operates by converting text and images into a shared embedding space.
MultiModal Embedding enables the integration of diverse data types, contributing to the development of more sophisticated and useful models.
Infiniflux introductionInfiniFlux Korea[ http://infiniflux.com/download ]
The world's fastest time series DBMS.
What is InfiniFlux?
1) InfiniFlux is a time-series database which performs real-time data processing, i.e., data are inserted at high speed, retrieved and analyzed without elapsed time.
2) InfiniFlux also compresses and stores data in real-time. Its query language and syntax complies with the SQL standard. The extended SQL syntax provides additional features such as the text search tool.
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 APINAVER EngineeringObfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
MySQL Administrator 2021 - 네오클로바NeoClova
MySQL Administrator
Basic course
- MySQL 개요
- MySQL 설치 / 설정
- MySQL 아키텍처 - MySQL 스토리지 엔진
- MySQL 관리
- MySQL 백업 / 복구
- MySQL 모니터링
Advanced course
- MySQL Optimization
- MariaDB / Percona
- MySQL HA (High Availability)
- MySQL troubleshooting
네오클로바
http://neoclova.co.kr/
[Uws] enterprise application architecture, msa, java9, spring 소개HYUN-JOO LEE회사 교육용으로 만든 자료입니다. 엔터프라이즈 어플리케이션 아키텍처의 개념부터 시작하여 마이크로서비스 아키텍처와 기존 모놀리식 아키텍처 비교하고 왜 우리가 자바9에 집중해야 하는지 설명하려고 만든 자료입니다. 현재 회사에서 진행하고 있는 클라우드 어플리케이션 통합/아키텍처링 사업과 PoC 플랫폼 개발을 위한 회사 내부 교육용으로 만들었습니다. MSA 부분은 IBM Blumix 밋업 자료에서 발췌했습니다. 잘못된 부분이나 다른 의견이 있으신 분 댓글이나 메세지 주세요. hjlee@uws.co.kr
Private PaaS with Docker, spring cloud and mesos uEngine SolutionsA tutorial for Implementing a private PaaS with docker, spring cloud (netflix OSS) and mesosphere's DC/OS. Including docker swarm.
6. 1. 개요
6
MongoDB는 고성능, 고가용성, 쉬운 확장성을 제공하는 문서 데이터베이스.
Document Database
High Performance
High Availability
Easy Scalability
- 다큐먼트는 프로그래밍 하기 좋은 데이터 타입입니다
- 내장 다큐먼트와 배열은 join 의 필요성을 낮춰 줍니다.
- 동적 스키마는 다형성을 더 쉽게 합니다.
- 내장형태(Embedding)문서 형태는 읽기와 쓰기를 빠르게 합니다.
- 인덱스는 문서와 배열에 포함된 키를 포함 할 수 있습니다.
- 감사 없는 빠른 쓰기
- 자동 failover 와 복제 서버 구성이 가능
- 자동 샤딩은 컬렉션 데이터를 전체 장비에 배포합니다.
- 결국 일관성있는 데이터 읽기가 복제된 서버들에서도 가능합니다.
8. 2. 몽고디비 데이터 모델
8
일단 미리 준비된 몽고디비에 접속 하겠습니다.
화면은 robomongo 라는 몽고디비 클라
이언트라는 도구(무료)를 화면 캡쳐 하였
습니다.
다운로드 : http://www.robomongo.org/
9. 2. 몽고디비 데이터 모델
9
몽고디비 서버는 여러개의 데이터베이스를 가질수 있습니다.
데이터 베이스 목록 입니다
10. 2. 몽고디비 데이터 모델
10
데이터베이스는 여러개의 컬렉션을 가질수 있습니다.
- test 데이터베이스의 컬렉션 (book,room,users) 입니다.
- Oracle , Mysql 의 테이블과 비교 될 수 있습니다.
11. 2. 몽고디비 데이터 모델
11
컬렉션은 여러개의 다큐먼트를 가질수 있습니다.
- book 이라는 이름의 컬렉션의 데이터들 입니다.
- 현재는 2개가 들어 있습니다.
- 각각의 데이터는 다큐먼트(document) 라고 불립니다.
- 다큐먼트는 RDBMS 내의 튜플 또는 레코드와 비교 됩니다.
12. 2. 몽고디비 데이터 모델
12
다큐먼트는 여러개의 key,value 로 구성 되어 있습니다.
- key 들입니다. (_id,name,price,company)
- RDB 테이블의 컬럼과 비교 됩니다.
- field 라고도 불립니다.
13. 2. 몽고디비 데이터 모델
13
다큐먼트는 여러개의 key,value 로 구성 되어 있습니다.
- value 값들입니다. 각 key 들의 값입니다.
- RDB 테이블의 컬럼 값과 비교 됩니다.
14. 2. 몽고디비 데이터 모델
14
다큐먼트안에 정보 저장을 자유롭게 할수 있습니다 - 같은 key 다른 형태
Object !!
String
15. 2. 몽고디비 데이터 모델
15
다큐먼트안에 정보 저장을 자유롭게 할수 있습니다 - 같은 컬렉션 다른 포멧
유일하게 보유
Schemaless !!
어플리케이션이 튜플(다큐먼트)의 속성및 구조를 결정합니다.
16. 2. 몽고디비 데이터 모델
16
정리
1. 몽고디비 서버는 여러개의 데이터베이스를 가질수 있습니다.
2. 데이터베이스는 여러개의 컬렉션을 가질수 있습니다.
3. 컬렉션은 여러개의 다큐먼트를 가질수 있습니다.
4. 다큐먼트는 여러개의 key,value 로 구성 되어 있습니다.
5. 다큐먼트안에 정보 저장을 자유롭게 할수 있습니다
- 같은 key를 가지고 있지만 다큐먼트 별로 다른 형태의 자료일수 있습니다.
- 같은 컬렉션내에 있지만 구조가 다를수도 있습니다.
즉, 모두 같은 필드 같은 속성임을 강요 하지 않습니다
24. 4. 배포 아키텍쳐 – 레플리카(복제)세트
24
레플리카 세트란? – 다수 서버간 데이터 동기화 프로세스
1. 목적
- 데이터의 여분을 복제 함으로써 단일서버의 위험성을 방지 합니다.
- 하드웨어 에러의 경우에도 정지 없는 서비스를 가능하게 합니다.
- 여러 카피의 데이터는 재난복구, 리포팅, 백업등의 용도로 유용합니다.
2. 몽고디비의 복제
- 복제세트란 mongod 인스턴스의 그룹으로서 같은 데이터를 유지 합니다.
- Primary는 어플리케이션으로 부터의 모든 write 작업을 허용 합니다.
- 복제를 위하여 Primary 는 oplog 라는 로그를 남기고 Secondary 가 해당
로그를 통하여 데이터를 동기화 합니다.
3. 비동기 , 자동 failover
- 복제는 비동기로 이루어 지며 , 장애시 적절한 서버를 찾아 Primary 로 선
출 하여 무정지 시스템을 구현 합니다.
25. 4. 배포 아키텍쳐 – 레플리카(복제)세트
25
레플리카 세트의 요소 - Primary
유일한 맴버
- Primary 는 복제세트 내에 유일한 맴버로 모든 write 를 책임집니다.
oplog 발생 : 오퍼레이션 로그 기록
- Primary 는 insert , update , remove 의 모든 결과를 oplog 에 기록합니다.
- 기록된 결과는 반영된 다큐먼트의 갯수 만큼 쌓이게 됩니다.
- system 데이터베이스에 oplog.rs 라는 capped 컬렉션에 쌓습니다.
투표를 통한 선택
- 복제세트 내에 있는 모든 맴버들은 1개의 투표권을 가지며 서로간의
heartbeat 을 통하여 상대 맴버의 존재 유무를 판단하며 Primary 가 응답
하지 않을경우 Secondary 중 다른 맴버를 Primary 로 선택합니다.
26. 4. 배포 아키텍쳐 – 레플리카(복제)세트
26
레플리카 세트의 요소 - Secondary
“Priority 0” 맴버
- 복제세트 내에서 결코 Primary 가 되지 않는 Secondary 입니다.
- 오로지 read 만 가능한 맴버로서, 투표권을 가집니다.
지연복제 맴버 (“Priority 0” 필수)
- 동기화 기간을 조정할 수 있습니다.
- ETL 의 원본으로서 사용 할수 있습니다.
* 복제를 전송 용도로 사용
“hidden” 맴버
- 어플리케이션에서 감지 되지 않는 맴버입니다.
- 백업이나 리포팅 전용으로 사용합니다.
Arbiter
- 투표만 가능한 맴버
- 다수의 데이터 센터일 경우 유용
27. 4. 배포 아키텍쳐 - 샤드
27
샤드란 무엇인가?
컬렉션은 다큐먼트들의 집합입니다.
이 집합은 기본적으로 한개의 디비 인
스턴스가 관리 합니다.
또한, 필요에 따라 몇 개의 인스턴스를 추
가하여 여러개의 인스턴스가 공동 관리
하도록 할 수 있습니다. 이것을 샤드라고
합니다.
이때 컬렉션의 다큐먼트들은 샤드키에 의
하여 여러 샤드들이 관리 할수 있게 됩니
다. 즉, 각각의 인스턴스(샤드)들은 컬렉
션의 부분집합을 관리합니다.
28. 4. 배포 아키텍쳐 - 샤드
28
샤드키란?
컬렉션을 샤딩 하기 위해서는 샤드키가 필요합니다.
1. 샤드키는 인덱스 필드이거나 인덱싱된 복합 필드여야 합
니다. 또한,
2. 모든 다큐먼트들이 필수로 가지고 있어야 하는 필드 입니
다.
그림은 범주(Range) 기반
의 샤드키 입니다.
그림은 해시(Hash) 기반
의 샤드키 입니다.
29. 4. 배포 아키텍쳐 - 샤드
29
샤드의 요소
샤드 : 몽고디비 인스턴스로서 각 샤드는
컬렉션의 부분집합을 관리 합니다. 운영
환경에서 각샤드는 레플리카셋이어야 합
니다.
컨피스서버 : 몽고디비 인스턴스로서 메
타데이터를 관리합니다. 운영환경에서는
3개의 인스턴스로 구성합니다.
라우터 : 또는 라우팅 인스턴스라고
하며 어플리케이션에서 데이터를
다루는 접점입니다. 관리 목적이외
에는 직접 샤드에 접속 하지 않습니
다.
32. MongoDB wasn’t designed in a lab. We built MongoDB from our own experien
ces building large scale, high availability, robust systems. We didn’t start from
scratch, we really tried to figure out what was broken, and tackle that.
So the way I think about MongoDB is that if you take MySql, and change the d
ata model from relational to document based, you get a lot of great features: e
mbedded docs for speed, manageability, agile development with schema-less
databases, easier horizontal scalability because joins aren’t as important.
There are lots of things that work great in relational databases: indexes, dyna
mic queries and updates to name a few, and we haven’t changed much there.
For example, the way you design your indexes in MongoDB should be exactly t
he way you do it in MySql or Oracle, you just have the option of indexing an e
mbedded field.
—Eliot Horowitz, MongoDB CTO and Co-founder
33. 몽고디비는 연구소에서 만들어 지지 않았습니다. 대규모, 고가용성, 강력한 시스템
을 구축한 우리의 자신의 경험을 기반으로 몽고디비를 만들었습니다.
우리는 문제 대처만을 위해 노력 하지 않았습니다. 처음부터 다시 시작하고, 정말 고
장이 있었는지 알아 내기 위해 노력했습니다.
제가 생각하는 몽고디비는 이렇습니다. 만약 mysql 을 사용하는 사용자가, 데이터모
델을 관계형에서 다큐먼트기반으로 변경하고자 한다면 , 괜찮은 많은 특징들이 있습
니다. 속도를 위한 내장 다큐먼트, 스키마리스 디비를 기반으로한 애자일 개발방법,
join 이 중요 하지 않기 때문에 할수 있는 수평적 확장등이 있습니다.
관계형 데이터 베이스세상에도 훌륭한 것들이 많습니다. 인덱스, 동적 질의, 최소의
수정등. 이런것들은 몽고디비도 수용 하고 있습니다. 예를 들어, 몽고디비로 인덱스
를 구성한다면 그 방법은 mysql 이나 oracle 과 같습니다. 내장 필드에 대한 인덱싱
만 좀더 생각해 주면 됩니다.
-엘리엇 호로비츠, MongoDB의 CTO이자 공동 설립
자