[원문] https://medium.com/blockchain-blog/17-blockchain-platforms-a-brief-introduction-e07273185a0b  의 일부를 번역하였으며, 원문을 클릭하여 더 많은 정보를 확인하는것을 권장합니다.

17개의 많이 사용되는 블록체인 플랫폼

Blockchain 기술은 2008 년 Satoshi Nakamoto의 " Bitcoin : Peer-to-Peer Electronic Cash System " 이라는 제목의 논문을 통해 발표 되었지만 이 문서에서는 특별히 블록체인이라는 단어를 사용하지는 않았다. 이 논문에서는 "해시기반의 작업증명을 지속적인 사슬로 해싱하여 크랜잭션을 타임스탬프로 처리하며, 작업증명을 다시 하지 않으면 변경될수 없는 레코드를 형성한다고 설명하고 있다. 

분산 원장은 정의 된 합의 메커니즘을 사용하여 순서가 지정된 일련의 타임 스탬프가 기록 된 레코드를 수정하지 못하도록하는 피어 투 피어 네트워크로 정의한다.  

다음은 알파벳 순서로 많이 사용되는 블록체인 / 분산원장시스템이다.

1. BigChainDB:   분산 데이터베이스 빅데이터로 시작하여 블록체인 특성을 추가한 오픈소스 시스템. .

2. Chain Core: 허가 된 블록 체인 인프라에서 금융 자산을 발행하고 전송하는 블록 체인 플랫폼.

3. Corda : 플러그 가능한 컨센서스가있는 분산 원장 플랫폼.

4. Credits:  권한이 부여 된 분산 원장 구축을 위한 개발프레임워크.

5. Domus Tower Blockchain: 초당 백만건이상의 트랜잭션처리 처리 환경을 위해 설계된 플랫폼.

6. Elements Blockchain Platform : Bitcoin 기능 확장을 위한 오픈 소스 프로토콜 레벨 기술.

7. Eris : Bitcoin기능 확장을 위한  오픈소스 프로토콜 레벨 기술.

8. Ethereum:  맞춤형 블록체인에서 스마트 계약을 실행하는 분산 플랫폼.

9. HydraChain: 사설 및 컨소시엄 체인에서 Permissioned Distributed Redgers 를 만들기위한 Ethereum 확장.

10. Hyperledger Fabric : 서로 다른 구성원 노드 집합간에 서로 다른 자산, 계약 및 트랜잭션을 관리하는 시스템.

11. Hyperledger Iroha:  모바일 응용 프로그램 개발에 중점을 둔 "단순하고 모듈화 된"분산 원장 시스템.

12. Hyperledger Sawtooth Lake : 거래 비즈니스 로직이 합의계층과 분리된 모듈식 블록체인 제품군.

13. Multichain: 다중 자산 금융 거래를 위한 비트코인 블록체인을 기반으로하는 오픈 소스 블록 체인 플랫폼.

14. Openchain: 디지털 자산 발행 및 관리를 위한 오픈소스 분산원장 시스템.

15. Quorum: Ethereum을 기반의 오픈소스 분산원장 및 스마트 계약 플랫폼.

16. Stellar: Stellar네트워크 백본인 Stellar Core에 연결되는 RESTful HTTP API 서버를 제공하는 오픈소스 분산형 지불 인프라.

17. Symbiont Assembly: 아파치 카프카 (Apache Kafka)에서 영감을 얻은 분산원장


[원문] https://medium.com/blockchain-blog/17-blockchain-platforms-a-brief-introduction-e07273185a0b

17 blockchain platforms — a brief introduction

Blockchain technology was announced through the paper titled “Bitcoin: A Peer-to-Peer Electronic Cash System” by Satoshi Nakamoto in 2008. Interestingly, this paper does not specifically use the word “blockchain”.

This paper talks about a “purely peer-to-peer version of electronic cash” where “the network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of- work”.

The open source PT-BSC (Blockchain Security Controls) defines a blockchain as a peer-to-peer network which timestamps records by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. A blockchain can be permissioned, permission-less or hybrid.

On the other hand, a distributed ledger is defined as a peer-to-peer network, which uses a defined consensus mechanism to prevent modification of an ordered series of time-stamped records. Consensus mechanisms include Proof of stake, Federated Byzantine Agreement etc.

The more popular blockchain / distributed ledger systems in alphabetical order are:

1. BigChainDB, an open source system that “starts with a big data distributed database and then adds blockchain characteristics — decentralized control, immutability and the transfer of digital assets”.

2. Chain Core, a blockchain platform for issuing and transferring financial assets on a permissioned blockchain infrastructure.

3. Corda, a distributed ledger platform with pluggable consensus.

4. Credits, a development framework for building permissioned distributed ledgers.

5. Domus Tower Blockchain, designed for regulated environments, benchmarked at ingesting over 1 million transactions per second.

6. Elements Blockchain Platform, an open source, protocol-level technology for extending the functionality of Bitcoin.

7. Eris:db, an open source, protocol-level technology for extending the functionality of Bitcoin.

8. Ethereum, a decentralized platform that runs smart contracts on a custom built blockchain.

9. HydraChain, an Ethereum extension for creating Permissioned Distributed Ledgers for private and consortium chains.

10. Hyperledger Fabric, which supports the use of one or more networks, each managing different Assets, Agreements and Transactions between different sets of Member nodes.

11. Hyperledger Iroha, a “simple and modularized” distributed ledger system with emphasis on mobile application development.

12. Hyperledger Sawtooth Lake, a modular blockchain suite in which transaction business logic is decoupled from the consensus layer.

13. Multichain, an open-source blockchain platform, based on bitcoin’s blockchain, for multi-asset financial transactions.

14. Openchain, an open source distributed ledger system for issuing and managing digital assets.

15. Quorum, an open source distributed ledger and smart contract platform based on Ethereum.

16. Stellar, an open-source, distributed payments infrastructure that provides RESTful HTTP API servers which connect to Stellar Core, the backbone of the Stellar network.

17. Symbiont Assembly, a distributed ledger inspired by Apache Kafka.

Note: In this article, the terms blockchain and distributed ledger systems are used inter-changeably.

1. BigchainDB

BigchainDB is an open source system that “starts with a big data distributed database and then adds blockchain characteristics — decentralized control, immutability and the transfer of digital assets”.

BigchainDB seeks to attain performance of 1 million writes per second throughput, storing petabytes of data, and sub-second latency.

BigchainDB key features include:

1. Each write is recorded on the blockchain database without the need for Merkle Trees or sidechains.

2. Support for custom assets, transactions, permissions and transparency.

3. Federation Consensus Model (federation of voting nodes).

4. Supports public and private networks.

5. Has no native currency — any asset, token or currency can be issued.

6. Set permissions at transaction level.

7. It is open source.

Consensus mechanism: Federation of nodes with voting permissions

Useful links:

BigchainDB official website: https://www.bigchaindb.com/

BigchainDB whitepaper: https://www.bigchaindb.com/whitepaper/bigchaindb-whitepaper.pdf

BigchainDB roadmap: https://github.com/bigchaindb/org/blob/master/ROADMAP.md

2. Chain Core

Chain Core is a blockchain platform for issuing and transferring financial assets on a permissioned blockchain infrastructure. Chain Core runs on the open-source Chain Protocol.

Chain Core Developer Edition is free while the Chain Core Enterprise Edition is a commercial product.

The creation, control and transfer of assets are decentralised among participants on Chain blockchain networks. The operation of the network is governed by a federation — a designated set of entities. The assets on Chain blockchain networks include currencies, securities, derivatives, gift cards, and loyalty points.

Chain core key features include:

1. Native digital assets — currencies, securities etc.

2. Role-based permissions for operating, accessing, and participating in a network.

3. Support for multi-signature accounts.

4. Federated consensus.

5. Support for smart contracts.

6. Transaction privacy.

Consensus mechanism: Federated consensus

Useful links:

Chain Core official website: https://chain.com

Chain Core whitepaper: https://chain.com/docs/protocol/papers/whitepaper

3. Corda

Corda is an open-source distributed ledger platform with pluggable consensus — “it supports multiple consensus providers employing different algorithms on the same network”.

Corda is probably the only distributed ledger platform with pluggable consensus.

Corda’s key features include:

1. No global broadcasting of data across the network.

2. Pluggable consensus.

3. Querying with SQL, join to external databases, bulk imports.

Consensus mechanism: Pluggable consensus

Useful links:

Corda official website: https://www.corda.net

Corda whitepaper: https://docs.corda.net/_static/corda-technical-whitepaper.pdf

4. Credits

Credits is a development framework for building permissioned distributed ledgers.

Consensus mechanism: Credits uses a variant of Proof of Stake (a leaderless two-phase commit algorithm with variable voting power).

Useful links:

Credits official website: https://credits.works/

Credits documentation: https://credits.readthedocs.io/en/latest/

5. Domus Tower Blockchain

Domus Tower Blockchain is an interesting solution that has been designed for regulated environments such as securities trading where participants know each other and can independently decide whom to trust.

According to its whitepaper, Domus Tower Blockchain has been “benchmarked at ingesting over 1 million transactions per second on hardware costing less than $50 per hour on Amazon’s Web Services with the potential to scale to greater than 10 million transactions per second”.

Data storage is contained in a Merkle directional acyclic graph (MerkleDAG) and nodes on this graph are referred to as “blocks”. The data transmitted to the blockchain is digitally signed and verified before it is written to a block.

Domus Tower Blockchain’s key features include:

1. Creation of linked blockchains where the assets of an account on one blockchain must match the liabilities on the account of another blockchain.

2. Capability of recording a high rate of transactions in a scalable manner.

3. Recording of double-entry balance sheet that tracks credits and debits.

Consensus mechanism: Any agent that has write access to a blockchain has 100% authority to write transactions to that chain. Authority is centralized under this model.

Useful links:

Domus Tower Blockchain official website http://domustower.com/

Domus Tower Blockchain whitepaper http://domustower.com/domus-tower-blockchain-latest.pdf

6. Elements Blockchain Platform

Elements is an open source, protocol-level technology for extending the functionality of Bitcoin.

Elements’ key features include:

1. Confidential Assets — issue multiple assets who’s identifiers and amounts are blinded yet auditable.

2. Confidential Transactions — keep the amounts transferred visible only to participants in the transaction and to designated entities.

3. Additional opcodes — these include previously disabled opcodes (including string concatenation and substrings, integer shifts, and several bitwise operations), new DETERMINISTICRANDOM operation (which produces a random number within a range from a seed) and new CHECKSIGFROMSTACK operation (which verifies a signature against a message on the stack, rather than the spending transaction itself).

4. Deterministic Pegs — which allow cross-chain transactions to be constructed in a decentralized fashion and tokens to be moved from one blockchain to another.

5. Signed Blocks — this allows blocks can be cryptographically signed, thereby allowing the creator of the block to verify their identity in the future.

6. Segregated Witness. Bitcoin transactions contain two things i.e. information about the effect on the ledger and data proving that the transaction is authorized. Using witness segregation, transaction IDs are redefined to only depend on the effect information and blocks commit separately to the witness data. This eliminates all known forms of transaction malleability.

7. Relative Lock Time which allows a transaction to be time-locked.

Useful links:

Elements official website: https://elementsproject.org/

Github page: https://github.com/ElementsProject/elements

7. Eris:db

Eris-db is a permissioned distributed ledger client that executes Ethereum smart contracts on a permissioned virtual machine.

Eris’ key features include:

1. Multiple interfaces

2. Ethereum Virtual Machine

3. Permissioned systems

Consensus mechanism: Byzantine fault-tolerant Tendermint consensus engine, which is a deposit based proof of stake protocol.

Useful links:

Eris’ official website: https://monax.io/platform/db/

8. Ethereum

Ethereum is a decentralized platform that runs smart contracts on a custom built blockchain.

Ethereum’s key features include:

1. Ethereum Wallet — which facilitates holding crypto-assets as well as writing, deploying and using smart contracts.

2. Creation of crypto-currencies

3. Creation of democratic autonomous organizations (DAOs)

4. Command line tools built in Go, C++, Python, Java etc.

Consensus mechanism: Ethash, a proof of work algorithm

Useful links:

Ethereum’s official website: https://ethereum.org/

Ethereum whitepaper: https://github.com/ethereum/wiki/wiki/White-Paper

9. Hydrachain

HydraChain is an Ethereum extension for creating Permissioned Distributed Ledgers for private and consortium chains.

HydraChain’s key features include:

1. Full Compatibility with the Ethereum Protocol

2. Accountable Validators

3. Instant finality of blocks and no forks or reverts.

4. Support for sub-second block times.

5. New blocks are only created in the presence of pending transactions.

6. Infrastructure for developing smart contracts in Python.

7. Customizability of transaction fees, gas limits, genesis allocation, block time etc.

8. Open Source

Consensus mechanism: Byzantine fault tolerant consensus protocol

Useful links:

HydraChain official site: https://github.com/HydraChain/hydrachain

10. Hyperledger Fabric

Hyperledger Fabric supports the use of one or more networks, each managing different Assets, Agreements and Transactions between different sets of Member nodes.

Hyperledger Fabric’s key features include:

1. Query and update ledger using key-based lookups, range queries, and composite key queries.

2. Read-only history queries.

3. Transactions contain signatures of every endorsing peer and are submitted to ordering service

4. Peers validate transactions against endorsement policies and enforce the policies

5. A channel’s ledger contains a configuration block defining policies, access control lists, and other pertinent information

6. Channel’s allow crypto materials to be derived from different certificate authorities

Consensus mechanism: Consensus is ultimately achieved when the order and results of a block’s transactions have met the explicit policy criteria checks.

Useful links:

Hyperledger Fabric’s githib page: https://github.com/hyperledger/fabric

11. Hyperledger Iroha

Hyperledger Iroha is a “simple and modularized” distributed ledger system with emphasis on mobile application development.

Consensus mechanism: Sumeragi, a Byzantine Fault Tolerant consensus algorithm heavily inspired by the B-Chain algorithm.

Useful links:

Hyperledger Iroha’s github page: https://github.com/hyperledger/iroha

12. Hyperledger Sawtooth Lake

Hyperledger Sawtooth Lake is a modular blockchain suite that supports both permissioned and permissionless deployments. Transaction business logic in Hyperledger Sawtooth Lake is decoupled from the consensus layer.

Consensus mechanism: Proof of Elapsed Time

Useful links:

Hyperledger Sawtooth’s official website: https://01.org/sawtooth/

Hyperledger Sawtooth’s github page: https://github.com/hyperledger/sawtooth-core

Hyperledger Sawtooth’s demo on “Bringing traceability and accountability to the supply chain”: https://01.org/sawtooth/seafood.html

Hyperledger Sawtooth’s demo on “Enabling secure and efficient bond settlement”: https://01.org/sawtooth/bond.html

13. Multichain

Multichain is an open-source blockchain platform, based on bitcoin’s blockchain, for multi-asset financial transactions.

Multichain’s key features include:

1. Native multi-currency support.

2. Atomic two- or multi-way exchanges of assets between participants.

3. Permission management.

4. Rapid deployment.

5. Multiple networks can simultaneously be on a single server.

6. Per-network custom parameter (permitted transaction types, confirmation times, minimum quantities, transaction rate and size limits).

7. Data streams.

Consensus mechanism: Distributed consensus between identified block validators. This is similar to Practical Byzantine Fault Tolerance) with one validator per block, working in a round-robin type of fashion.

Useful links:

Multichain official site: http://www.multichain.com/developers/

Multichain whitepaper: http://www.multichain.com/white-paper/

YobiChain, an open source project for creating a private blockchain 

ecosystem preloaded with MultiChain and related tools: https://github.com/Primechain/yobichain

14. Openchain

Openchain is an open source distributed ledger system for issuing and managing digital assets.

Openchain’s key features include:

1. Tokens on Openchain can be pegged to Bitcoin, making it a sidechain.

2. Smart contract modules.

3. Unified API

4. Assign aliases to users instead of using base-58 addresses.

5. Multiple levels of control.

6. Hierarchical account system allowing to set permissions at any level.

7. Ability to have multiple Openchain instances replicating from each other.

Consensus mechanism: Partionned Consensus

Useful links:

Openchain’s official website: https://www.openchain.org/

Openchain on github: https://github.com/openchain

15. Quorum

Quorum us an open source distributed ledger and smart contract platform based on Ethereum.

Quorum’s key features include:

1. Cakeshop — provides an easy to use graphic interface for working with Quorum networks, smart contracts, and APIs

2. Ideal for applications requiring high speed and high throughput processing of private transactions

Consensus mechanism: Consensus model based on majority voting. Raft-based consensus model for faster blocktimes, transaction finality, and on-demand block creation.

Useful links:

Quorum’s official website: https://www.jpmorgan.com/country/US/EN/Quorum

Quorum on github: https://github.com/jpmorganchase/quorum

16. Stellar

Stellar is an open-source, distributed payments infrastructure that connects banks, payments systems, and people. Stellar enables building of mobile wallets, banking tools, smart devices. It provides RESTful HTTP API servers called Horizon, which connect to Stellar Core, the backbone of the Stellar network.

Consensus mechanism: Stellar Consensus Protocol

Useful links:

Stellar official website: https://www.stellar.org

Stellar Consensus Protocol: https://www.stellar.org/papers/stellar-consensus-protocol.pdf

17. Symbiont Assembly

Symbiont Assembly, inspired by Apache Kafka, is the distributed ledger that powers the Symbiont Smart Securities platform.

Symbiont Assembly’s key features include:

1. Capability to handle thousands of transactions per second.

2. Assembly API — ReSTful, standard JSON over HTTP.

Consensus mechanism: Byzantine Fault-Tolerance

Useful links:

Symbiont Assembly’s official website: 


References and Sources:













This was originally published on: https://www.linkedin.com/pulse/16-blockchain-platforms-brief-introduction-rohas-nagpal

'4차산업 > 블록체인' 카테고리의 다른 글

17개의 많이 사용되는 블록체인 플랫폼  (0) 2018.03.03
블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

NoSQL 가용성과 운영 안정성에 대한 분석 ==> http://d2.naver.com/helloworld/1039

NHN NBP저장시스템개발팀의 이혜정씨의 NoSQL에 대한 가용성과 안정성에 대한 결론은 다음과 같음. 


- 장애시 데이터 복구시간이 오래 걸림

- 복구가 되기전에 해당데이터를 읽으면 틀린결과를 반환할 수 있음.

- 그래서 정합성 레벨을 높이지 않는다면 읽기 처리가 필요한 서비스에서는 사용하기 어려움.


- 구성상 장애요소가 많음.

- 하지만 HDFS 장애가 아닌 이상 데이터 복구가 발생하지 않아 다운타임이 짦음.

- HDFS 장애가 발생해도 다운타임이 생기지 않음.

- 복구중 읽기 성능은 떨어지지만 정합성은 보장됨

- SPoF 부분을 이중화하면 가용성을 더 높일 수 있음


- 자동 Fail Over를 제공하여 다운타임이 짦음.

- 하지만 비동기식 복제로 인해 Fail Over후 데이터가 유실될 가능성이 있음.

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

파이썬으로 몽고DB에 데이터를 입력하거나, 검색, 업데이트, 삭제를 수행할 수 있다.

MongoDB의 Python용 드라이버는 pymongo 이다.

STEP1. pymongo 드라이버 설치

c:\> pip install pymongo 

STEP2. pymongo 이용하여 MongoDB에 연결하기

 import pymongo

 connection = pymongo.MongoClient("localhost",27017)

STEP3.  MongoDB에 데이터 삽입

 db = connection.TestDB

 collection = db.testCollection


데이터 업데이트 예제 코드


 import pymongo

 connection = pymongo.MongoClient("localhost",27017)

 db = connection.TestDB

 collection = db.testCollection


 collectionInfo = db.collection_names()

 print collectionInfo


 collectionInfo = db.collection_names()

 print collectionInfo


데이터 검색 예제 코드


 import pymongo

 connection = pymongo.MongoClient("localhost",27017)

 db = connection.TestDB

 collection = db.testCollection

 collection.insert({"이름":"홍길동", "나이": 10})

 collection.insert({"이름":"이순신", "나이": 20})



 document = collection.find({"이름":"홍길동"})

 for i in document:

     print ( i )

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

몽고디비는 비관계형 데이터베이스이다.

자바스크립트 객체를 그대로 저장할 수 있어서 데이터를 조회하는 방식도 SQL과 다르다. 그래서 NoSQL 또는 Not Only SQL이라고 한다.


관계형 데이터베이스는 시스템의 신뢰도를 높이는데 필요한 장치를 많이 가지고 있지만 SQL문을 읽어들이고 실행하는데 많은 리소스를 사용하기 때문에 성능이 떨어지는 경우가 많다. 하지만 NoSQL은 성능우선으로 대용량 트래픽을 감당할 수 있는 메시징 시스템을 활용하고 있어, 클라우드 서비스로 서버를 구성하여 많은 사용자를 수용하여야 하는 경우에 많이 사용되고 있다.


몽고DB는 데이터 단위를 컬렉션(Collection)이라고 부른다. 하지만 관계형DB의 테이블과 달리 데이터를 정해 놓은 컬럼의 형식으로 컬렉션을 넣어야 하는 제약은 없다.


몽고DB의 기본구조

데이터베이스=컬렉션의 집합

컬렉션 = 문서의 집합

그림에서 보는 것과 같이 몽고DB는 데이터 저장소를 가지고 있으며, 그 안에 여러개의 컬렉션을 넣을 수 있으며, 각 컬렉션은 여러개의 문서 객체를 가질 수 있다. 

먼저 몽고DB를 설치해 보자. 어렵지 않다.

STEP1.  http://www.mongodb.com 에서 [Download] 버튼을 클릭한다. 

          다운로드 페이지에서  [Community Server] 탭안에 있는 [DOWNLOAD] 버튼을

          클릭하여 설치파일을 다운로드 한 후 설치한다.

STEP2. [Next]버튼을 클릭해서 라이센스 동의하고 [Complete] 버튼을 눌러 모든 기능을 설치한다.

STEP3. MongoDB 설치 폴더 안에 있는 [bin] 폴더를 PATH 환경변수에 추가한다.

c:\Program Files\MongoDB\Server\3.6\bin 경로를 PATH 환경변수에 추가한다.

STEP4. MongoDB 서버 시작.

데이터 저장을 위해 c:\data 디렉토리를 생성한뒤 서버를 시작한다.

c:\> mongod --dbpath c:\data   

STEP5. 클라이언트에서 접속하기

c:\> mongo

> show dbs                 <-- DB 목록 확인

> use dbName             <-- 사용할 DB 설정

> show collections         <-- collection 목록 확인

> db.collectionName.find({"이름":"홍길동"})  <-- collection에서 이름이 홍길동인 데이터 검색

STEP6. Compass를 이용한 DB관리 

몽고DB설치시 [Complete]로 설치하면 MongoDB Compass Community가 같이 설치된다. 바탕화면에 아이콘 생성됨

Compass를 사용하여 GUI환경으로 MongoDB를 관리할 수 있다.

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

참고: 모든 그림과 글의 출처는 https://datasense.withgoogle.com 의 Making sense of data 온라인 강좌 입니다.


데이터 분석을 위해 구글이 제공하는 퓨전 테이블을 이용하여 데이터 병합, 드릴다운 분석, 예측분석으로 값 추정, 공간적 데이터 분석등 데이터 분석에 대한 이해를 도와준다. 또한 분석 결과를 시각화 하고 공유하기 위한 방법을 소개한다.

데이터를 병합하여 관계 찾기

(1/3) 학습목표

테이블병합은 분리되어 있는 테이블의 변수간의 관계를 찾을 수 있다. 이 과정을 통해

데이터 분석을 위해 테이블을 어떻게 병합할 수 있는지 설명할 수 있다.

공통 컬럼을 가지는 두개의 테이블을 병합할 수 있다.

(2/3) 왜 데이터를 병합하는가?

패턴과 관계는 변수를 비교함으로써 발견된다. 그러나 초기 테이블이 분석하고자하는 모든 데이터를 포함하고 있지 않을 수 있다.

예를 들어 데이터는 여러개의 테이블에 저장되어 있을 수 있다.

몇년치의 기상 데이터가 다른 테이블에 저장되어 있다. 

또는 자동차를 구매하기 위해 자동차에 관한 정보를 수집하는 경우 각 자동차사의 유용한 정보들이 다른 테이블에 저장되어 있는 경우도 있을 수 있다.

이런 경우 분석을 위해 여러개의 테이블을 병합하는 작업이 필요하게 된다.


아래의 두개의 테이블중 하나는 세개의 주의 인구 통계학적 정보이고, 다른 하나는 겨울 날씨에 대한 정보이다.

기본적인 인구 통계 정보

StatePopulation (in millions)Per Capita Income
New York19.6$55,246
South Dakota0.8$48,321

겨울 기상 정보

StateSnowy Winter?Rainfall (inches)
South DakotaYes20.1
New YorkYes41.78

비와 인구 사이의 상관 관계를 알고 싶다면 두개의 테이블의 내용이 다 필요하게 된다. 이런 경우 두개의 테이블을 병합하여 새로운 테이블을 생성하여 분석에 사용할 수 있다.
StatePopulation (in millions)Per Capita IncomeSnowy Winter?Rainfall (inches)
New York19.6$55,246Yes41.78
South Dakota0.8$48,321Yes20.1

두개의 테이블을 병합하기 위해서는 공통 열이 있어야 하며, 여기서는 주(State)가 공통열(컬럼)이 된다.

(3/3) 두개의 퓨젼 테이블 병합

가상 학군 데이터를 이용하여 데이터를 병합하는 예를 설명한다. 가상 학군의 인구 통계정보를 가지고 있는 테이블과 가상 학군 정보를 병합해 보자.

1. 가상 학군 인구 테이블에서 [File] 메뉴를 선택한다.

2. [Merge..]를 선택한다.

Navigate to the file menu and select Merge...

구글 드라이브는 당신계정에 있는 모든 테이블 정보를 보여준다. "FictitiousSchool District" 테이블을 복사한것이 있으면 그 복사된 테이블을 선택한다. ( 만약 리스트에 테이블이 없으면 "Fictitous School DIstrict" 테이블의 URL을 복사해서 붙인다)  그 다음 [Next] 버튼을 클릭한다.

Select the Fictitious School District in the merge menu and click Next.

테이블에서 병합에 사용될 컬럼을 선택한다. 이 경우 'School"을 병합을 위한 공통열로 선택 한 뒤 [Next]를 클릭한다.

Select the School column for both tables.

모든 컬럼이 체크되었는지 확인하고 [Merge] 버튼을 클릭한다.

Select all the columns and click Merge

두개의 테이블이 정확하게 병합되었는지 확인한다. 테이블은 열개의 컬럼을 가지고 있어야 한다. 새로 생성된 테이블은 자동으로 구글 드라이버에 저장된다.

Screenshot of merged table with seven columns.

드릴다운분석을 이용한 관계 찾기

(1/7) 학습목표

드릴-다운(Drill-Down)분석으로 성능변수와 관련된 행과 열을 찾을 수 있다.  

이 과정을 통해

드릴-다운 분석을 정의할 수 있다.

드릴-다운 분석 단계를 적용할 수 있다.

성능변수가 숫자나 범주변수에 의해 영향을 받는지 확인할 수 있다. 

(2/7) 드릴다운 분석이란?

많은 데이터에서 중요한 행과 열로 데이터를 줄여간다.  

언제 변수가 중요한가? 

질문에 대한 대답을 하기 위해 하나 또는 그 이상의 성능변수를 선택해야 한다. 성능변수에 영향을 미치는 행이나 열은 중요하다.

예를들어 " 왜 졸업율이 떨어졌나?"라고 질문한다면, 여기서 성능변수는 졸업율이 된다.

그러므로 DDA는 낮은 졸업율에 영향을 미치는 행이나 열을 찾는 작업을 수행하게 된다.  

학군 테이블

SchoolAddressRemodel DateStudent/TeacherGrad. %Season of RemodelStudentsTeachers
HS 111 1st11-03-8232.148.11Fall32110
HS 222 2nd03-13-8545.236.22Winter90420
HS 333 3rd10-18-8928.389.33Fall84930
HS 444 4th10-30-9539.454.44Fall157640
HS 555 5th02-25-0051.529.55Winter257550

(3/7) 숫자변수에 대한 DDA 단계

1. 의미를 기반으로 하는 변수를 선택한다.

    수집된 데이터 중 관계없는 데이터가 포함되어 있으므로 이런 변수들을 제외하면 분석이 훨씬 단순해 질 수 있다.

2. 남아 있는 변수들로 scatter plots(산포도)를 만든다.  

     scatter plots는 숫자 변수 사이의 패턴을 쉽게 감지할 수 있으므로 분석에 사용될 수 있는 적절한 시각화 방법 중의 하나이다.

3. 영향을 미치는 변수를 선택한다.

(4/7) STEP1. 의미를 기반으로 변수를 선택한다.

일부 변수는 분석에서 제거하는 것이 쉽다. 

예를 들어 학군에서 졸업율에 영향을 미치는 요인을 찾는다고 한다면 학교의 주소와 같은 정보는 불필요하므로 제거할 수 있다.

하지만 이 단계에서는 성능변수에 영향을 줄수있는 정보에 대한 가정을 만드는것에 주력한다.

다음 테이블은 학교, 주소,리모델링날자. 리모델링 시즌을 제거한 테이블이다. 제거된 변수는 회색으로 표시하고, 

나머지 변수 Student/Teacher, Students, Teachers는 녹색으로 표시되는 성능변수 졸업율과 비교될 것이다.

SchoolAddressRemodel DateStudent/TeacherGrad. %Season of RemodelStudentsTeachers
HS 111 1st11-03-8232.148.11Fall32110
HS 222 2nd03-13-8545.236.22Winter90420
HS 333 3rd10-18-8928.389.33Fall84930
HS 444 4th10-30-9539.454.44Fall157640
HS 555 5th02-25-0051.529.55Winter257550

(5/7) STEP 2: 남은 변수의 Scatter plots(산포도)를 만든다.

일반적으로 숫자 데이터는 scatter plots를 통해 패턴을 찾는다. 차트 작성시 x축은 잠재적 영향 변수이고, y축은 성능변수를 배치한다.

y축은 졸업율, x축을 교사, 학생, 학생/교사 로 바꿔가면서 차트를 작성해 본다.

Scatter plot of teachers and graduation percent, no relationship.

Scatter plot of students and graduation rates, no percentage.

Scatter plot of student/teachers and graduation rates, downward linear relationship.

어떤 패턴이 감지되는가?

(6/7) 3 단계 : 영향을 미치는 변수를 선택 

Scatter plots에서 어떤 변수가 성능변수에 영향을 미치는지는 패턴을 찾는다 
선이나 곡선 같은 수학적 관계에 초점을 맞춘다. 실제 세상의 관계가 정확하게 수학적 관계를 따르는 것은 아니다. 

선생님수와 졸업률을 비교해보면, 선생님수와 졸업률의 관계는 평균라인으로 설명되는것이 최선이다.  이것은 졸업율이 선생님수에 의존하지 않는다는 의미이고, 다시 말해서 두개의 변수는 관계가 없다 라고 결론을 유추할 수 있다.
Scatter plot of teachers and graduation rate, with a red line to show that the points follow a horizontal line.

반면, 학생수/교사수 와 졸업율은 하향추세의 라인의 분석된다. 이 패턴은 학생수/교사수 는 졸업율에 영향을 미친다고 결론을 낼 수 있다.

Scatter plot of students/teachers and graudation rate, with a red line drawn to show that the points follow a downward sloping line.

(7/7) 숫자가 아닌 영향을 미치는 변수 

숫자가 아닌 변수도 성능변수에 영향을 미칠까?
예를 들어 리모델링 시즌이 졸업율에 영향을 미치는지 조사하길 원한다면, 다음과 같은 데이터를 조사해 볼 수 있다.

Grad % and Season of Remodel
Grad. %Season of Remodel


리모델링계절에 대한 데이터는 가을과 겨울 두개의 값이 있다. 
만약 리모델링 계절이 졸업율에 영향을 미치는지 조사하려면 바차트를 생성하여 분석할 수 있ㄷ.
다음은 리모델링 시즌의 범주 변수에 대한 졸업율을 요약한 데이터 이다.

Average Grad % by Season of Remodel
Season of RemodelAVG Grad %

분석 결과를 보면 가을이 겨울보다 두배 높은 졸업율을 보여주는 것을 볼 수 있다. 

예측분석으로 값 추정

(1/8) 학습 목표 

이 단원에서는 데이터를 알 수없는 값을 추정하는 방법에 대해 설명한다. 

이 과정을 통해 

예측 분석을 정의할 수 있다.

예측 분석의 단계를 적용할 수 있다.

기존의 변수를 사용하여  알수 없는 숫자 변수의값을 추정할 수 있다.

(2/8) 예측 분석이란?

가지고 있지 않은 값을 추정하는 기법으로 다음과 같은 경우가 해당될 수 있다.

- 완전하지 않은 데이터셋(학생이 20명인 반을 조사하는데 그날 한명이 결석을 한경우)

- 샘플 데이터 셋(회사내 2000명의 직원에 대해 조사할 시간과 자원이 부족한 경우 대신 몇백명의 직원을 대상으로 조사한 경우) 

- 가상의 데이터이거나 미래의 데이터(제품이 2년뒤에 판매량을 조사하는 경우)

이미 가지고 있는 데이터를 사용하여 예측하며, 추정에 사용되는 변수를 예측변수라고 부른다.

예측은 두가지 방법을 사용할 수 있다.


이미 가지고 있는 데이터의 범위안에서 값을 추정한다.

ex) 5만명 주민과 7만명주민이 거주하는 도시의 각각 필요한 음식량을 알고, 6만 거주 도시에 필요한 음식량을 추정하는 경우   



이미 가지고 있는 데이터의 범위 밖의 값을 추정한다.

ex) 1학년과 2학년때 행동방법을 알고 있는 학생에 대해 3학년이 되었을때 행동을 예측하는 경우

예들 들면,

학군에 새로운 고등학교 HS6을 오픈하려고 한다고 가정하자.  

학생수 2,520명에 교사를 60명 채용할 예정이다.  이경우 Student/Teacher 값은 42이다. 예측분석을 통해 HS6의 졸업율을 예측할 수 있다.

Fictitious School District with High School 6

SchoolAddressRemodel DateStudent/ TeacherGrad. %Seas. of RemodelStudentsTeachers
HS 111 1st11-03-8232.148.11Fall32110
HS 222 2nd03-13-8545.236.22Winter90420
HS 333 3rd10-18-8928.389.33Fall84930
HS 444 4th10-30-9539.454.44Fall157640
HS 555 5th02-25-0051.529.55Winter257550
HS 6 (projected)66 6th 42??.?? 2520 60

(3/8) 숫자 변수에 대한 예측 분석의 단계 요약 

1. 영향을 미치는 변수와  예측 변수의 산포도(Scatter plots)를 구축 한다.

     예측변수에 영향을 미치는 변수와의 관계 패턴을 보여준다.

2. 예측에 영향을 미치는 변수 값의 위치를 표시한다.

     이 값은 측정 데이터의 범위 내에 있다고 가정 할 수 있기 때문에 왼쪽에서 오른쪽으로 표시된다.

3. 표시된 값 근처의 영향을 미치는 변수의 측정값을 선택한다.

     예측변수의 값과의 관계를 찾는다.

4. 3단계에서 선택된 예측변수의 값의 평균을 계산한다.

(4/8) 1 단계 : 영향을 미치는 변수와  예측 변수의 산포도(Scatter plots)를 구축 한다.

예측 분석의 첫번째 단계에서는 예측 변수와 영향을 미치는 변수간의  관계를  그래픽 표시로 제공 산점도를 구성한다. x-축은 영향을 미치는 변수이고 Y 축은 예측 변수가되도록 산점도가 구축되어야한다. 

(5/8) 단계 2 : 예측에  영향을 미치는 변수 값의 위치를 표시한다.

예측 분석의 두 번째 단계에서, 예측을 할 위치를 표시한다. 이는 x-축이  영향 변수의 값이다.  

아래의 산점도는 x 축 (42)의 값으로 표시됩니다. 

(6/8) 3 단계 : 표시된 값 근처 영향을 미치는 변수의 측정 값을 선택한다.

예측 분석의 세 번째 단계에서, 알수없는 값에 가장 가까운 예측 변수의 측정 값을 추정 할 수 있다. 

통계에서 이것을 "가장 가까운 이웃" 이라고 부른다.

표시된  영향을 미치는 변수의 값에 가까운 수평값을 찾으면 두개의 포인트가 선택된다. 영향을 미치는 변수의 값으로 표시된 42를 기준으로 

좌측의 값은 졸업율이 54.44%이고 우측의 값은 36.22% 이다.

(7/8) 4 단계 : 예측 변수의 선정 값에 대한 평균값을 계산한다. 

예측 분석의 네 번째 단계에서는 3 단계에서 얻어진 예측 변수의 값의 평균을 계산하여  미지의 값 추정치를 산출한다.

아래의 예에서는 예측 변수의 알 수없는 값으로 45.33의 예상 값을 얻기 위해 54.44와 36.22의 평균을 계산하였다.

(8/8) 숫자가 아닌 영향을 미치는 변수값 예측 

숫자가 아닌 영향을 미치는 변수값은 어떻게 구할까?

예를 들어, 학교 지구 6 고등학교를 만들 수있는 건물을 리노베이션 공사를 고려하고 있다고 가정한다. 가을에 공사를 하려고 고려하고 있는데 이것이 졸업율에 영향을 미칠까?

그렇다면 졸업비율의 추정치는 얼마일까?

여기에서 영향을 미치는 변수는 리모델링을 하는 계절이고 범주변수값은 가을과 겨울이다.

Grad % and Season of Remodel

SchoolGrad. %Season of Remodel
HS 148.11Fall
HS 236.22Winter
HS 389.33Fall
HS 454.44Fall
HS 529.55Winter
HS 6??Fall

이 값이 숫자가 아니기 때문에, 그것은 산점도를 사용하는 것은  의미가 없다.
대신, 요약  또는 영향을 미치는 변수에 대한 성능 변수의 막대 그래프를 만들 수 있다.
아래의 표는 리모델링의 범주 형 변수의 계절에대한  졸업율 요약을 보여준다.

Average Grad % per Season of Remodel

Season of RemodelAVG. Grad. %

가을에 리모델린 한 경우 평균 졸업율은 63.96이다. 이 값을 HS6 리모델링 의 졸업율을 추정하는데 사용할 수 있다.
하지만 이분석에서 얻어진 수는 HS6의 졸업율 추정은 Student/Teacher 변수를 사용한 졸업율 추정과 상당히 다르다. 

이유는, 첫번재 몇가지 데이터 포인트만 있기 때문에 예측이 정확하지 않을 수 있다는 것과 두번째 Student/Teacher가 리모델링 시즌으로 예측한 졸업율 보다 더 정확할 수 있다는 것이다.

지리공간 분석과 패턴 찾기

(1/4) 학습 목표 

데이터에 지리적 패턴을 찾기위한 강력한 방법은 지도를 생성하는 것이다. 

이 과정을 통해 

테이블의 위치 데이터를 지도에 표시할 수 있다. 

시각적 특성을 조절하는 지도의 스타일을 설정할 수 있다. 

숫자형, 비숫자형 모든 데이터로 부터 공간 분석을 할 수 있다.

(2/4) 맵 생성

데이터는 종종  국가별 인구, 국가소득, 지역별 생물종과 같은 공간특성을 가진다. 

이런 정보 데이터를 표현하는 가장 일반적인 방법이 지도를 사용하는 것이다.  가장 간단한 접근방식은 데이터 테이블에 있는 위치 정보에 대응하는 위치를 지도위에 표시하는 것이다. 

퓨젼테이블은 시, 도, 우편번호, 위도/경도 와 같은 다양한 종류의 위치 정보를 처리할 수 있다.

> 지도 생성

로그인 하지 않았다면 퓨전테이블의 오른쪽 코너 상단에 있는 [Sign In] 버큰을 클릭하여 로그인한다.

Sign In in the top right corner of the Fusion Table.

1. 빨간색 [+]을 클릭하여 "Add map"을 클릭한다.

Click the red plus to create a map

2. 퓨젼테이블은 자동적으로 컬럼에서 위도/경도 정보를 감지하여 지도를 생성한다.

3. Goole Maps-style 제어를 사용하여 줌인,아웃 할 수 있다. 

Fusion tables maps with Google Maps style controls.

4. 하나의 아이콘을 클릭하면 해당 레코드에 대한 데이터를 볼수 있다. 이렇게 팝업으로 뜨는 창을 Info Window 라고 부른다

info window

5. 퓨전테이블은 여러 다른 형태의 아이콘을 제공한다. 왼쪽 메뉴의 "Change feature styles"을 클릭하여 아이콘 모양을 변경할 수 있다. 


Change feature style button.

6. 드랍-다운 메뉴에서 지도에 표시될 마크의 색상을 변경할 수 있다.

Fusion tables maps with Google Maps style controls.

(3/4) HeatMaps 을 이용한  공간 분석 


히트 맵은 지도에 숫자 데이터를 시각화하기위한 일반적인 방법이다.

히트 맵은 값의 범위를 전달하기 위해 색상 변화를 사용하는데  녹색은 작은값, 황색이 중간 값, 적색은  큰 값으로 사용된다.

다음은 나비 샘플 테이블을 히트 맵으로  작성하는 방법에 대한 설명이다.

1. map탭에서 [+]을 클릭하여 새로운 맵을 추가한다.

Add a map by clicking the red plus

2.맵 구성 패널이 왼쪽에 보이지 않으면 Tools>Change map 메뉴를 클릭한다.

3. map의 왼쪽에 있는 아이템에서 Heatmap을 클릭한다. 

Click on the heatmap menu

4. 히트 맵에서 히트 맵의 Weight를  wingspan (mm)으로 설정한다.

반경 슬라이더는 픽셀에 영향을 반경을 설정한다.

Opacity 슬라이더 컨트롤은 히트 맵의 투명도를 설정한다.

set weight to wingspan(mm).

5. astraptes 나비 테이블에서 날개길이를 기준으로 분포도를 보여준다.

heat map

(4/4) 버킷을 이용한 공간 분석 

퓨전 테이블로 시각화하는 또 다른 방법은 그라데이션 마커를 사용하는 것이다. 
이러한 마커는 버킷으로 분리 된 값의 범위를 표시하기 위해 다른 색을 사용한다. 
Heapmap은 연속적으로 변경되는 변수의 값을 가시화 하기에 적절하다. 
burkets은 값의 범위가 함께 그룹화된 패턴을 찾기에 적절하다.

> Burkets 생성

1. Change feature styles… 을 클릭한다.

click on Change feature styles in the left menu.

2. [buckets] 탭을 클릭한다.

3. buckets의 갯수를 입력한다..

4.  [Save] 버튼을 클릭한다.

퓨젼 테이블은 자동적으로 버킷 값의 범위를 계산한다.

change the number of buckets in the bucket tab.

5. 나비테이블의 날개길이를 4개의 버킷으로 구분하여 지도에 표시하였다. 

map with buckets

분석결과 공유

(1/5)  학습 목표 

이 단원에서는 퓨전 테이블에있는 데이터, 차트, 요약을 공유하는 방법을 설명한다. 

이 과정을 통해 

분석을 설명하는 시각화를 선택할 수 있다.

시각화의 효과를 평가할 수 있다.

데이터의 일부만을 공유 할 수있는 뷰를 생성할 수 있다.

테이블이나 공유할 데이터의 뷰의 위치를 알려줄 수 있다.

(2/5) 분석을 설명하기 위한 형식 선택

공식, 요약, 차트, 필터를 사용하여 데이터를 조작할 수 있었다. 이제 질문에 대한 답변으로 의사 소통을 할 준비가 된것이다. 

상대에 따라 원시데이터 테이블의 부분을 뷰를 공유하거나, 주요 연구 결과를 설명하기 위해 차트를 생성하거나  결과를 전달하기 위해 요약을 표시하는 뷰를 공유할 수 있다.

> Views

하나의 데이터라 하더라도 각각 다른 관심을 가지고 데이터를 분석하기를 원하며, 이런 각각의 상대에게  각기 다른  뷰(테이블의 하위집합)을 생성하여 제공할 수 있다.

> Charts 

방대한 양의 데이터 부터 중요한 부분을 강도할 수 있고, 주요 동향및 연구 결과를 설명하기 쉽다.

> Summaries

고객의 관심사항에 대해 귑게 평균, 합계을 표시할 수 있다.

(3/5) 시각화 효과에 대한 평가

시각적으로 표현하고자 하는 이야기가 잘 전달되었는지 평가 하기 위해 고려해야할 몇가지 중요한 요소는 다음과 같다.

시각화된 차트 또는 테이블에  제목이 있는가?

변수 레이블을 포함하고 있나? 

축이 표시되어 있는가? 

단위가 분명한가? 

색상은 시각적 기능을 강화하거나, 감소시키고 있는가?

다음 예제 시각화는 이전 과정을 기준으로 작성되었다. 독자들을 대상으로 온라인 교육 분야에 대한 리서치 결과이다.  학생이 준 등급과 TA가 준 등급과의 상관관계를 설명할 수 있는 가장 최적의 시각화는 어느것 인가?

> 시각화에 대한 비교와 대조

art AChart A
Chart BChart B
Chart CChart C

차트C 가 가장 좋은 시각화이다. 위에서 설명한 평가 요소가 잘 적용되었으며, 학생이 준 점수와 조교가 준 점수가 잘 정돈 되어 있어 결과에 대한 설명이 쉽다.

비주얼 커뮤니케이션을 향상시키는 데 도움을 줄 수있는 많은 자료들을 참조할 수 있다.  

(4/5) View 생성

뷰는 퓨젼테이블의 컬럼들의부분 집합으로 구성된다.

여러 그룹에서 사용해야 하는 큰 테이블이 있다고 가정하자. 각 그룹은 각자 몇개의 컬럼에만 관심을 가지고 있다.  이런 경우 각 그룹을 위해 분리된 뷰를 만들어서 사용한다.

이 경우 원본 테이블의 변경에 대한 각각의 뷰에 반영되므로 추가적인 작업이 요구되지 않는다.

1. [File]을 선택한다.

2. [Create view.]를 클릭한다.


Click on file and select create a view.

3. 뷰에 포함 시키고자하는 컬럼을 선택한다. 

4. [Create] 버튼을 클릭한다.

Select all the columns to be included in the view.

5. [View Table]을 클릭한다.

Window for view table.

(5/5) 테이블이나 뷰를 공유하기 위한 포인트.

공유하기 위한 테이블이나 뷰를 생성하면, 다른 사람들이 해당 정보를 탐색할 수 있도록  테이블에 대한 링크나 URL을 전송할 수 있다.

1. 메뉴에서 [Tools]를 선택한다.

2.[Publish...]을 클릭한다.

Click on tools and then publish.

3."Change visibility" 설정이 표시되면,

4. 링크 정보를 복사해서 메일에 붙여넣는다.

5. 웹사이트의 HTML로 표시될 수 있도록 만들어진 코드를 복사해서 붙여 넣는다. 

Change visibility settings and copy and paste the desired link.

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

참고: 모든 그림과 글의 출처는 https://datasense.withgoogle.com 의 Making sense of data 온라인 강좌 입니다.


데이터 분석을 위해 구글이 제공하는 퓨전테이블을 이용하여 공식, 필터, 차트, 요약을 수행하는 방법을 학습합니다.

공식은 계산된 새로운 데이터를 생성할 수 있으며, 챠트는 값들사이의 관계를 쉽게 보여줄수 있으며, 요약은 데이터에 대한 합계, 평균, 횟수 도출 작업을 할 수 있게 합니다.

분석을 위한 퓨전테이블 활용

(1/6) 학습 목표 

이 단원에서는 구글 퓨전 테이블의 기능을 통해 데이터를 분석 할 수있는 방법에 대한 간략한 개요를 제공한다. 이 과정을 완료 한 후, 퓨전 테이블을 이용한 분석 작업을 수행할 수 있다.

(2/6) 표 형식의 데이터 

다음은 퓨전 테이블에서 설정 한 가상의 학군 데이터의 스크린 샷이다.

screenshot of Fusion Table highlighting the title, columns, and data table.

왼쪽 상단에 이 테이블의 제목인 "Fictitious School District"을 볼 수 있다.

아래의 데이터 테이블은 8 개의 열(columns)을 - 학교, 주소, 리모델링날자, 학생 / 교사, 졸업 %, 리모델링계절, 학생수, 교사수 -을 포함하고 있다.

데이터 테이블의 각 row는  고등학교 하나를 포함하고, 각각의 레코드는 8개의 값으로 구성되어 있다.

(3/6) 수식 열 

변수를 계산하면 기존 데이터에서 계산 된 새로운 데이터를 요구하는 질문에 대답 할 수 있다. 퓨전 테이블은 다음과 같은 다양한 수식을 지원한다.

  • basic operations:  + - * /
  • functions:  cos() sin() power(base, exponent)
  • logic:  if (condition, then, else)

위 테이블에서 보면 student/teacher 컬럼은 teacher 열과 student열을 기준으로 만들어진 계산식에 의해 생성된 컬럼이다.

(4/6) 차트 

차트는 통찰력 제공과 패턴을 보여주기 위한 데이터 시각화를 지원한다.

보여지는 예제는 학교별 졸업률을  바챠트로 보여준다.

Chart of graduation percentage per high school.

챠트를 통해 졸업율을 여러 학교를 비교하여 볼 수 있다.

퓨전 테이블은 scatter plots(산점도), 파이 차트 및 관계를 식별하는 데 도움이 될 수 있는 많은 다른 종류의 시각화도 지원한다.

(5/6) summaries(요약) 

큰 테이블은  패턴을 보기 어렵다.  그래서 데이터 요약을 통해  원본 테이블의 컬럼의  부분 집합으로 새로 생성된  테이블을 생성한다.

퓨전 테이블은 데이터를 요약하는 유연한 방법들을 제공한다.

예를 들어, 다음의 요약은 가을과 겨울에 리모델링하는 학교의 학생들과 교사의 평균 수를 표시한다. 

Screenshot of summary table using Season of Remodel to categorize.

(6/6) 필터(Filters)

요약은 큰 테이블의 패턴을 나타내기 위한 단순화의 한 방법이다. 다른 방법으로 행에 대한 서브셋을 만들기위해서는 필터를 사용할 수 있다. 퓨전테이블은 숫자와 텍스트 모두에 대해 필터링 방법을 제공하고 있다. 

예를 들어, 다음 필터는 지난 가을에 리모델링된 그 학교만 필터링 해서 보여준다.

Screenshot of table filtered for schools remodeled in the fall.

수식열이 있는 테이블 확장

(1/3) 학습 목표

분석가는 수집된 데이터에 계산된값을 추가하는 작업이 필요한 경우가 있다. 이런 경우 퓨전테이블의 수식 열(formula column)을 사용할 수 있다.

이 과정을 완료하면,  

계산된 변수를 추가 할 수 있다.

분석을 위해 계산된 변수를 사용할 수 있다.

(2/3) 왜 "공식"을?

종종 문제는 테이블의 일부 데이터를 조작하는 방식이 요구한다. 예를 들어, 새로운 교사를 배치하기 위한 결정을 내릴때 학생에 대한 교사의 비율을 확인할 필요가 있다. 

이런 경우 학생수/교사수 와 같이 두개 컬럼의 값을 계산하여 사용할 수 있다.

퓨전테이블의 fomula(공식)는 다음과 같은 질문에 답할 수 있도록 해준다.

- 각 학교에서 학생에 대한 교사의 비율 

- 각 개인이 납부해야 할 세금은? (세율 * 수입)

- 학생의 누적 학점은? ( 여러과제에 대한 평균점)

- 상품별 순이익은?(판매가격-비용)

(3/3) 변수 계산.

데이터를 복사하여 새로운 테이블을 만들고, 복사된 테이블을 이용하여 선생님당 학생의 비율을 계산하는 작업을 수행해 본다.

 > 공식 컬럼 생성

메뉴의 Edit를 선택한뒤, Add Formula column 을 선택한다.

Click edit and add formula column.

Name 필드에 Computed Student/Teacher 를 입력한다.

Formula 필드에 Students/Teachers 를 입력한뒤, [Save]를 클릭한다.

Set the name and formula, then click save.
결과를 확인한다. Student/Teacher 컬럼의 값과 Computed Student/Teacher 컬럼의 값이 같은지 결과를 확인한다.Make sure the computed column is the same as the student/teacher column.

차트와 패턴을 시각화

(1/6) 학습목표

차트는 데이터를 시각화하는 일반적인 방법으로 변수 사이의 관계를 쉽게 파악할 수 있게 한다.

이 과정을 통해

    퓨전테이블을 이용하여 차트를 생성하고 변경할 수 있다.

    데이터간의 관계와 데이터간의 차이, 최대, 최소값을 찾을 수 있는 가장 적합한

    차트를 선택할 수 있다.

    데이터 분석을 위해 차트를 이용할 수 있다.

(2/6) 어떤 차트를 사용해야 할까?

어떤 차트를 사용해야 하는지는 어떤 질문을 가지고 있는가에 따라 선택할 수 있다.  퓨전테이블은 여러 종류의 차트를 생성할 수 있다.  이단원에서는 범주와 연속 변수 차트를 중점적으로 알아 보자.

> Categorical(범주)변수 차트

   x축을 카테고리 값으로 설정하여, y축의 값이 가장 높은 값이나 가장 낮은 값을 비교하는 경우, 즉 값들간의 상대적인 차이를 찾을 때 적절하다. 일반적으로 바(Bar)차트이다. 

graduation percentage

> Continuous(연속)변수 차트

   x축을 연속적인 수로 설정하여, x축을 구성하는 변수들 간의 수학적인 관계,감소율,증가율, 동일, 비선형 등의 변경을 찾아내기 적절하다. scatter plot 차트가 해당되며, 점들간의 패턴을 살펴본다.


scatter plot

(3/6) 연속변수의 시각화

학교지구에 대한 데이터에서 리모델링과 학생/선생비 관계를 탐구한다.

> 차트생성

1. 마지막 탭의 오른쪽 위에 있는 빨간색 [+]버튼을 클릭한다.

2. 서브메뉴에서 "Add chart"를 클릭한다.

click on the red plus to add a chart

수평축의 값을 "Remodel"을 선택한다.

수직축의 값은 "Student/Teacher"앞의 체크박스를 클릭하여 그래프를 그린다.

Remodel is the horizontal axis, Student/Teacher is the vertical axis.

scatter plot의 결과를 볼때, 선형이나 곡선관계가 두개 값의 관계를 보여주지 않는다. 그러므로 좀더 도움이 줄 수 있는 변수로 변경하여 새로운 차트를 생성해본다.

(4/6) 차트 수정

> 차트 수정

성능변수인 졸업률을 평가할때, 선생님의 수와 졸업 두개 요소의 관계를 알고 싶을 수 있다. 이런 경우 퓨전테이블의 x축을 선생님수로 y축을 졸업률로 배치하여 차트를 수정 작성할 수 있다.

x축을 Teachers로 변경하고, 축을 졸업율로 변경한뒤 오른쪽위의 [Done]버튼을 클릭한다.

Changing the variables on the vertical and horizontal axes.

(5/6) 범주형 변수의 시각화

"졸업율이 학교에 따라 다른가?" 라는 질문에 답을 하기 위해서는 학교별 졸업율 바(Bar)차트를 작성하는것이 적절하다.

> 차트 타입 변경

왼쪽 네비게이션에서 다른 타입의 차트를 보기원하는가?

yes이면 3으로 skip, no이면 1부터 진행


[Chart1]탭을 클릭하여 [Change chart...] 메뉴를 클릭한다.

Changing the chart type.

[Bar chart] 아이콘을 선택하면, 퓨전테이블은 자동적으로 수평축의 값이 학교로 변경된다. 이유는 학교가 텍스트타입중 첫번째 컬럼이기 때문이다.

drop-down 메뉴의 Sort를 사용하여 수평축에 대해 정렬한뒤, [Done]을 클릭한다.

Selecting the bar chart type.

(6/6) 차트 분석

학교별로 가장 졸업률이 높은 학교와 낮은 학교를 쉽게 찾을 수 있다.

Comparing graduation percentages of HS3 and HS5.

H1과 H2의 차이와 H3와 H4 차이를 쉽게 비교 분석 할 수 있다.

H1 and H2 are nearly the same, H3 is much taller than H4.

 학생 수와 졸업 비율 사이의 관계가 있는가?  차트를 보면, 학생 및 졸업 % 사이에 명확한 관계가 없다.

Scatter plot comparing number of students and graduation percentage.

학생 / 교사 비율과 졸업 비율 사이의 관계가 있는가?  아래쪽으로 경사진 패턴을 보이고 있다. 이는 선생님당 학생수가 많으면 졸업률이 낮아 지는 관계를 알 수 있다.

Scatter plot comparing Student/Teacher ratio and graduation percentage.

요약으로 데이터 분석

(1/4) 학습 목표

summaries(요약)은 합계, 평균, 횟수등을 사용하여 데이터를 설명한다.

이 과정을 학습을 통해,

분류할 변수를 사용하여 요약을 만들 수 있다.

데이터 분석에 요약(summaries)을 사용할 수 있다.

(2/4) 요약(Summary)란?

모든 데이터를 포함하고 있는 테이블에서 요약은 데이터를 설명하는 작은 테이블을 의미한다. 이때 작은 테이블은 변수에 대한 카운트, 합계, 최대값, 최소값, 평균값등을 가진다.

다음은  요약이 필요한 몇가지 질문들이다.

- 학군안에 포함되어 있는 학교의 수는?

- 학교마다 표준화된 시험의 평균점수는?

- 어느 학교가 가장 많은 선생님을 보유하고 있는가?

- 어느 학교가 가장 적은 학생을 보유하고 있는가?

- 학군내의 학생의 총합은? 

(3/4) 변수 요약

이 예제는 가상의 학군에 있는 학교에 대한 학생과 교사의 평균 수를 계산한다.

> summary 생성

오른쪽 상단의 [+]버튼을 클릭하여 [Add summary] 메뉴를 클릭한다.

Click on the red plus and select Add summary.

"Show"섹션에서 [Student]을 선택한뒤, Average 체크박스를 선택한뒤, "Add another"를 클릭한다.

Show the average of Students, and add another variable.

3,4번을 반복하여 Teacher와 Average를 선택한 뒤 [Save]를 클릭한다.

Show the average of Teachers and save.
결과 값을 확인한다.Screenshot of summary table with 1,245 average students and 30 average teachers.

(4/4) 요약 수정

다음으로, 요약변수에 카테고리를 추가하여, 어느학교가 마지막으로 리모델링 했는지가 포함되도록 요약을 세분화 할 수 있다.

> 요약된 변수에 카테고리 추가

Summary 1 탭을 선택하여, [Change summary...] 메뉴를 클릭한다.

Click on the summary tab and select Change summary...

[Summarize by] 섹션에서 [Season of Remodel]을 선택한뒤 [Save]버튼을 클릭한다.

Summarize by Season of Remodel
Fall과 Winter로 정보가 나누어 지는지 확인한다.The summary table should have one row for Fall and one row for Winter

선택적 분석을 위한 데이터 필터링

(1) 학습목표

필터는 주어진 기준에 따라 표시되는 행을 제한 할 수 있다.  이 과정을 통해

텍스트나 문자형 컬럼에 대해 필터를 생성, 수정,삭제할 수 있다.

필터를 데이터 분석에 사용할 수 있다.

(2/5) 필터란?

필터는 컬럼의 값을 사용하여 각 행에 대해 계산되는 문장이다.

예를 들어 졸업율이 50% 이하인 학교를 선택한다면, 퓨전 테이블 필터는  "졸업율 컬럼의 값이 50미만"인 경우 행을 선택한다.

필요한 데이터에 관계없는 데이터들을 걸러내는데 아주 적절하게 사용될 수 있다.

(3/5) 범주형 변수 필터링

가을에 마지막으로 리모델링된 학교를 선택하는 경우 다음과 같이 필터를 설정할 수 있다.

> 텍스트 컬럼에 필터 추가

Row 탭을 클릭한뒤, Filter를 클릭한다. 그중 [Season of Remodel] 메뉴를 클릭한다.

Click on Filter and select Season of Remodel.

왼쪽에 필터 규칙중 "Fall"을 선택한다. 오른 쪽 테이블의 ROW 탭은 리모델링계절이 "Fall"인 것만 필터링 되어서 표시되는 것을 보수 있으며, 6번에 적용된 필터 내용을 확인할 수 있다.

Select Fall to make only schools that are remodeled in the fall visible.

(4/5) 필터 제거

> 필터 제거

퓨젼테이블에서 필터를 제거하기 위해 왼쪽에 표시된 각 필터의 윗쪽에 보이는 [X]을 클릭한다.Click on the 'x' next to the filter to remove the filter.

(5/5) 수치 변수 필터링

학생/교사의 값이 20과 40사이인 행을 필터링한다. 이전 필터를 먼저 삭제하고 작업한다.

> 숫자 컬럼에 필터링 추가

Rows 탭 > Filter > Student/Teacher 클릭한다.Create a filter for Student/Teacher

왼쪽 필터 박스에서 20과 40 값을 설정한뒤 [Find] 버튼을 클릭한다. Row에 표시된 값이 20~40범위의 값인지 확인한다.

Enter values between 20 and 40 for the range.

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

참고: 모든 그림과 글의 출처는 https://datasense.withgoogle.com 의 Making sense of data 온라인 강좌 입니다.


데이터를 수집해서 분석, 결과를 적용하는 단계에 대해 설명한다.

이과정에서는 데이터 처리과정은 준비(prepare) -> 분석(analyze) -> 적용(apply) 단계별로 구분하여 각 단계에서 처리되어야 할 것들을 정의하고 있다. 

The Data Process

(1/6) 레슨의 목표

데이터 처리의 단계들은 데이터를 가지고 작업하기 위한 기본이다. 

이 과정을 완료 한 후 "데이터 프로세스 단계를 정의" 할 수 있다.

(2/6) 데이터 처리

datum은 하나의 사실 또는 정보의 조각이다.

data는 정보의 모음이다.

데이터 수집은 패턴감지와 통찰력을 얻을 수 있다.

예를 들면, 과학자 에드워드 제너가 1796년 중요한 패턴을 관찰했다. 우두에 감염되었던 사람들은 천연두를 하지 않는다. 

이것은 천연두 백신 개발을 주도 할  수 있었다.

(3/6) 처리 개요

데이터 처리는 데이터를 이해하기까지 단계적인 접근 방법이다. 

이 과정은 다음으로 구성되어 있다.

Prepare       --->      Anaylze     ---->        Apply

질문하기                 패턴찾기                    결정    

데이터 수집            관계찾기                     데이터 공유

데이터 구성            필터링                         데이터 시각화

데이터 정제            데이터 요약



(4/6) 준비(Prepare)

준비 단계는 분석할 데이터를 수집하는 것과 질문하기 작업을 수행한다.

> 질문하기 

   primary question은 가장 관심있는 응답에 대한 질문이다.  

   secondary질문은 기본질문의 응답에 도움이 될 수 있는 작은 질문으로 나눈것이다.

   secondary 질문은 좀더 세분화 되고, 데이터로 부터 직접적인 문자열이나 숫자로 대답할 수 있는 질문이다.


   학교에서 졸업률을 향상 시킬수 있는 방법을 알고 싶어 한다면, 

   secondary질문으로 "어떤 학교가 가장 졸업률이 높은가?" 를 사용할 수 있다.

> 데이터 수집 

   질문​​의 유형에 따라 데이터를 수집하는 방법에는 여러 가지가 있다.

   때로는  데이터는 수동으로 수집하여, 스프레드 시트 또는 데이터베이스에 입력하거나, 온라인 폼과 조사를      통해 자동으로 수집하는 방법이있다.


   졸업률에 대한 질문에 대답하기 위해서는 다음과 같은 학교에 대한 정보를 수집해야 한다.

   학교주소, 학교설립일, 학생수, 선생님수, 졸업비율, 평균소득 etc.

> 데이터 구성

   데이터 구성은 정보를 테이블에 구조화 하는것이다.

   정보의 조각들을 컬럼으로 분류하기위해 분석자는 데이터 타입을 결정해야 한다.

> 데이터 정제

   데이터가 테이블로 구성되면, 값에 대한 잘 정의된 포맷인지, 누락된 값이 없는지 확인해야 한다.


   앞의 예제의 분석에서 학교는 다른 형식의 데이터를 리포팅할 수 있다. 이 경우 차이를 조정하고 공통된 형식으로 데이터를 정제하는 작업이 요구된다.

(5/6) 분석

질문에 답하고, 데이터의 관계와 패턴을 식별하는 작업니다. 

분석은 많은 유형의 질문이 있을 수 있으며, 그에 따른 많은 유형의 분석이 있을 수 있다. 

즉 분석은 질문에 의존적이다.

> 차트, 요약, 필터를 이용하여 질문에 답하기


   앞의 예제에서 다음과 같은 질문이 있다면

   "어떤 학교가 가장 졸업률이 낮습니까?"  라고 한다면, 질문에 대한 응답은 각 학교의 졸업률을 비교하여 할수 있다. 이 경우 바차트를 이용하여 쉽게 대답할 수 있으며, 요약이나 필터를 사용할 수 도 있다.

> 패턴과 관계 찾기

   "어떤 요인이 졸업율에 영향을 미치는가?" 라는 질문이 있다면 잠재적인 졸업율에 영향을 미치는 데이터를 조사해야 한다.


   졸업율이 학생수와 선생님의수가 영향을 미친다고 한다면, 드릴다운 분석은 어떤 변수들이(ex. 학생수, 선생님수) 하나또는 다른 변수들(ex. 졸업율)에 영향을 미치는지 결정해야 한다.

(6/6) 적용

  분석의 결과를 사용하여 답변을 나누고, 다른 사람을 설득하고, 의사결정을 하는 단계이다.


   학군의 졸업율 분석결과를 고려하면, 학생/교사 비율 개선이 졸업율을 증가 시킬 수 있다는 결론을 도출할 수 있다. 

> Test Your Knowledge

다음중 데이터 프로세스 스텝에 대한 최적의 시나리오는?

(A) 작은 비즈니스 분석가는 세일즈 데이터를 스프레드시트에 입력하여, 패턴을 찾고, 그 결과를 매니저와 공유한다.

Activity: Personal Health, Part 1

The Anatomy of Data   (데이터해부)

(1/4) 레슨 목표

이번 레슨은 데이터에 대한 관점과 중요 백그라운드를 제공한다. 

이 과정을 마치고 나면 "새로운 데이터에 데이터 유형을 적용" 할 수 있다.

(2/4) 데이터 유형

잠재적으로 많은 종류의 데이터가 있다. 다음은 이번과정에 사용되는 데이터의 타입들이다.

- date  : 날자를 표시한다.

    January 15, 2014

    1/15/2014 (American style)

    15/1/2014 (European style)

- number : 숫자는 정수와 실수, 양수와 음수를 가질 수 있다.




- location : 지구상의 위치에 대한 정보이다. 예를 들어 경도와 위도, 국가와 도시, 우편번호 등이 해당된다.

  London, England

  51 deg, 32 min N; 0 deg, 5 min W 

  W11 2BQ

- text : 문자, 숫자, 문장부호, 공백을 포함한 모든 인쇄 가능한 문자이다. 텍스트는 공백을 포함할 수 있기 때문에 큰따옴표를 사용하여 표시한다.

  “The lazy brown cat.”


  “hello “

데이터 분석에서 데이터 종류의 구분은 매우 중요하다. 

예를 들면 대용량 데이터 분석의 일반적인 단계는 요약(summarization)이다.

숫자의 모음의 경우 평균값을 계산하는것이 가장 일반적인 요약이다. 

하지만 텍스트 데이터의 평균의 의미는 어구나 단어의 빈도수를 계산하는 용도로 사용될 수 있다.

(3/4) 변수, 스키마, 레코드

큰 데이터를 다룰때 쉽게 필요로 하는 정보를 찾을 수 있도록 데이터를 구조화하는 방법이 필요하다. 

데이터 구조화를 위한 가장 일반적인 방법중 하나가 테이블이다. 

데이터를 테이블에 넣는 방법을 배우기 전에 먼저 데이터의 기본 원리를 봐야 한다.

> 변수와 스키마

   당신이 동물구조쉼터 근로자라고 상상해보라, 쉼터에 있는 모든 개들에 대한 정보를 저장하려한다.

   어떤 정보를 각각의 개를 표현하기 위해 수집할 것인가?

   개의 이름(text), 품종(text), 털의 색깔(text), 무게(number), 구조일자(date), 구조위치(location) 과 같은 정보를    수집할 수 있다.

   수집한 각각은 변수이다.  이러한 변수들을 이용하여 스키마를 만들수 있다.

   예를 들어 6개의 변수를 이용하여 스키마를 생성할 수 있다. 스키마는 당신이 측정한 에티티의 청사진이다. 

   스키마는 개에 대한 개요를 제공하지 특정 개를 나타내지는 않는다.


> 레코드

   레코드는 스키마의 인스턴스이다. 스키마가 청사진이라면 레코드는 청사진을 사용해 건설된 실제 집이다.

   레코드는 구조쉼터에 있는 특정 개 이다. 

   ex) Rufus, German Shepherd, Black, 30 kg, 05-15-2010, Barcelona

(4/4) Tabular Data

저장된 레코드는 테이블에 구조화되어 저장된 데이터이다.

테이블은 rows(행)와 columns(열)로 구성되며, 열은 변수를 나타내며, 행은 레코드를 나타낸다.

> Columns

   각 컬럼은 하나의 의미와 이름과 데이터타입으로 정의된다. 

   예를 들어 


 Student Name



                                                                                                      컬럼이름: Age, 컬럼타입: number

> Rows

테이블의 행은 각열에 대한 값을 포함하는 하나의 레코드를 표시한다.

각 행의 값은 열에 대한 적절한 형식이어야 한다. 

 John Smith

 January 1


 Frank Miller

 February 15


 CS Less

 March 21    


                                                                                                 Age 컬럼의 모든 값은 number 이어야 한다.

> Tables

테이블 스키마는 컬럼스키마의 모음이다.  테이블 스키마는 테이블의 첫번째 Row 이다.

Dog's NameBreedFur ColorWeight (kg)Date RescuedCity of Rescue
RufusGerman ShepardBlack3010/09/2008Barcelona

필요에 따라 테이블를 분리하거나 결합하는 작업을 할 수 있다.

Data Structuring and Cleansing

(1/3) 레슨 목적


깨끗하고 잘구조화된 데이터셋을 생성하는 원리를 학습한다.

이 과정 완료후 

"잘정의된 형식의 테이블로 데이터를 구조화 할 수 있다."

"데이터를 읽기쉽고 사용하기 쉽도록 손볼수 있다"

(2/3) 데이터 구조화 

데이터를 분석하기 위해서는 데이터의 구조화가 요구된다. 

> 표 상단에 하나의 헤더를 가진다.

   테이블의 첫번째 행은 컬럼의 이름을 포함한다.  만약에 여러개의 헤더가 있다면 하나의 허더로 통합하던지 다중 테이블로 분리해야 한다.

> 변수당 하나의 데이터 타입을 가진다.

   하나의 컬럼이 여러개의 데이터 타입을 가지게 된다면 분석을 위해 해당 컬럼을 사용하는것은 어렵다.

> 분석을 위한 데이터와 저장을 위한 데이터는 별도로 보관한다.

   원본데이터는 여러분석에 사용될수 있다. 데이터로 부터 생성된 차트나 요약 정보가 원본데이터에 위치 하지 않도록해야 한다.

> 엔티티는 columns가 아니라  rows로 표시된다.

   새로운 데이터가 테이블에 추가될때 새로운 row로 추가된다.

새로운 컬럼은 이전에 측정되지 않은 새로운 데이터가 나타날때 새로운 변수를 추가함으로써 나타난다. 

(3/3) Cleansing Data

적절한 테이블로 데이터가 구조화 되었지만 정제되지 않은 데이터는 분석에 사용하기 어렵다.

다른 사람이 당신이 수집한 데이터를 사용할때 데이터를 이해하기 쉽게 하기위해 다음과 같은 데이터 정제 작업이 요구된다.

> 불필요한 행과 열을 제거한다.

   데이터가 정확하거나 관련이 없는 경우 제거하거나 수정하여  데이터 처리 속도가 느려지지 않도록 해야 한다.

> 변수명은 일관되고 정보를 제공하는 이름으로 만들어야 한다.

   이상적으로는 변수의 의미는 이름에서 알수 있도록 해야 한다. 여러개의 테이블과 많은 변수에서는 특히 중요하다. 

"Number of Windows"는 "WIndows"보다 더 자세한 설명 변수의 이름이다.

> 읽기 편한 형식의 값

   변수의 값은 가능하면 읽기 쉽고 명확하도록 설정해야 한다.

예를 들면 01/01/2009sms 01012009 보다 읽기 쉽다. 

> 누락된 값의 적절한 처리

   테이블은 특정열에 대해 값이 누락되기도 한다.  상황이나 사용되는 도구에 따라  어떻게 처리해야 하는지 다를 수 있다.

예를 들어 숫자컬럼의 경우 "0"을 사용하지 않은 경우 분석에 문제가 발생할 수 도 있다.

> 설명과 문서 추가

   오랜시간뒤에 데이터를 다시 사용하거나 다른 사람이 데이터를 사용해야 하는 경우,  변수의 의미가 무엇이며, 데이터의 수집방법과 

데이터 분석을 위해 사용된 방법이 명확하지 않을 수 있다.  그래서 데이터셋에 대한 설명을 추가하는 것은 중요한 작업이다.

Activity: Personal Health, Part 3


블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

참고: 모든 그림과 글의 출처는 https://datasense.withgoogle.com 의 Making sense of data 온라인 강좌 입니다.

프레지 발표자료:http://prezi.com/mbecuuqcnhlq/present/?auth_key=7yg2aeb&follow=nreraopy7g7q&kw=present-mbecuuqcnhlq&rc=ref-25396057

지난 3월18일부터 4월 4일까지 구글에서는 데이터 수집,분석,활용하는 기술을 온라인 과정으로 진행하였습니다.

과정은 3개의 UNIT과 final project, final aaessment로 구성되었으며, 과정을 수료하고 최종 프로젝트와 평가(70%이상)를 통해 과정종료 인증서를 배포하였습니다.

각각의 unit은 이론을 설명하고 있는 lesson과 실습을 포함하고 있는 activity들로 구성되어 있습니다. 실습은 구글의 Fusion Table을 사용하여 Activity가 진행되었습니다.

과정은 종료되었지만 구글 웹사이트를 통해 지속적으로 해당 컨텐츠를 통해 데이터를 수집,분석,활용하는 온라인 학습을 할 수 있습니다. 


[전체과정 레슨 링크]

Unit 1. Intrdocing the Data Process

Unit 2. Answering Basic Questions with Fusion Tables

Unit 3. Finding Patterns and Relationships in Data

과정수료후 발급된 Certificate of Completion

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

데이터분석에 대한 요구가 다양해지므로 해서 새로운 요구에 대응할 수 있는 차세대 빅데이터 처리 기술이 요구된다.

* Google Dremel

Dremel은 빠른 속도로 대규모 데이터를 해석하는 분석처리가 지원되는 도구이다.

맵리듀스가 배치처리에 적합한 반면, Dremel은 짧은 시간내에 분석이 가능하다.

1조행의 데이터를 몇초 이내에 처리할 수 있다.

Big Query에서도 Dremel을 기반으로 사용하고 있다.

* Google Pregel

그래프 알고리즘을 처리하기 위한 도구

구글의 링크 분석에 사용되고 있으며 수백 만 노드와 수 조의 관계에서 얻어지는 데이터를 분석

오픈소스지영에서는 Pregel과 유사한 Apache HAMA 프로젝트 진행중

* Google Percolator

구글 검색엔진에서 검색 인덱스를 작성하기 위해 채택된 기술

2010년 구글에서는 웹문서 인덱스를 기존의 맵리듀스에서 Precolator로 교체

맵 리듀스에 비해 거의 100배 처리성능을 보여준다.

*Apache Mahout

하둡과 연동되는 프로젝트로 기계학습을 기반으로 비슷한 속성의 것을 분ㄹ하는 작업을 손쉽게 처리하는 기능을 가지고 있다.

기계학습이란 아마존 같은 사이트에서 "관심상품추천" 이나 페이스북의 "알수도 있는사람"등을 추천하는 기술이라고 생각하면 쉽다.

* Google Prediction API

Apache Mahout과 같은 기계학습을 클라우드 서비스로 제공하고 있는것

API를 이용해서 기계학습 알고리즘을 활용함.

* CEP(Complex Event Processing)

여러소스에서 전달되는 데이터를 복합적으로 분석하고 판단하여 신속하게 의사 결정을 하기 위한 빅데이터 고속 처리 기술

주로 주식시장의 거래처리, 신용카드의 부정이용확인, 정보 시스템의 가동 상황확인 등에 사용

IBM이나 오라클의 주력 상품


* 기타

DWH(Data Ware House): 대용량 데이터를 저장하여 활용

MDM(Master Data Management): 데이터를 분석 가능한 상태로 만든다.

PPDM(Privacy Preserving Data Mining): 데이터 보안을 강화해 익명성과 비밀 계산이 가능한 기술

* 하둡 더 알아보기 링크 모음

맵리듀스의 개념
하둡 설치부터 테스트 까지
하둡 프로그래밍을 위한 이클립스 플러그인 설정
하둡 로컬에서 실행
하둡 관련기술 - 주키퍼, 피그, HBase
Hive와 Pig
R 설치와 활용
하둡이외의 빅데이터 분석기술
CEP 오픈소스 에스퍼
링크드인의 아파치 카프카

작성자: 심탁길 

작성자: 심탁길 

알짜배기 시각화 기술 20선

블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

HIVE 설치 자료 링크:


HIVE Java Connector


HIVE 테스트를 위한 샘플 데이터셋 다운로드 링크


블로그 이미지

오픈이지 제로킴

시큐어코딩 교육/컨설팅 전문가 그룹

티스토리 툴바