SSAFY

[ ssafy ]하둡 & 블록체인

황성안 2021. 10. 1. 09:13
728x90

하둡 개발환경과 맵리듀스

찾아보기

  • 상당히 어렵다. 😀😀😀😀😀
  • 아파치 스파크, 아파치 제플린
  • 맵리듀스 알고리즘

데이터 마이닝

과학 산업 및 기타 여러 응용분야의 문제를 해결하기 위한 것

  • 데이터 마이닝
  • 빅데이타

-> 데이터 과학으로 불리게 됨

데이터 모델링

핵심은 데이터 모델을 만드는 것 -> 데이터를 요약하는 것 -> 두드러진 특징만 남기는 것

빅데이터 분석

빅데이터 분석을 위한 모델링은 엄청난 양의 데이터를 빠르게 처리하는 것이 관건

  • 분산
  • 저장
  • 병렬처리 / 분석

데이터 관련 직군

요새 증가를 하고 있습니다.

하둡의 경험을 많이 요구하며 경력을 선호한다.

하둡 아키텍처

분산 처리 및 빅데이터를 지워하기 위한 아키텍처를 가지고 있다.

하둡 에코시스템

  • 맵리듀스 프로그래밍
  • 배치 처리
  • 빅데이터 SQL 쿼리
  • 맵리듀스 추상화 스크립트
  • 인메모리 OLAP
  • 스트리밍 분석
  • 머신러닝

블록체인

  • 이더리움
  • 하이퍼레저 패브릭

어떤 체인을 사용할 것인가?

  • Public chain 은 누구나 접근 가능
  • 진정한 의미 탈 중앙화
  • 데이터를 저장하는 것이 매우 비쌈
  • 트랜잭션 마다 비용
  • 복잡한 스마트 계약 비용

  • private chain DB 준하는
  • 사전 약속 사용자
  • Hyperledger fabric

구조

프론트엔드

백엔드

ABI <-> 이더리움 네트워크

  • ABI 는 API 와 크게 다르지 않다.

메타 마스크

  • 쉽게 사용할 수 있는 크롬 익스텐션
  • 키를 보관하고 서명 안전하게 하는 역할
  • WEb3 를 쉽게 서명
  • 개발자는 추상화된 API 이용 가능

프론트엔드 블록체인 통신

  • Web3.js
  • private 서명은 가능
  • 하지만 메타 마스크 서비스 이용이 안전
  • 지갑으로 ETH 전송과 스마트 계약 통신을 통해 데이터 가지고 오는 것도 가능

ABI

  • Application Binary Interface
  • solc

How to deploy

바이트 코드와 abi를 이용해서 배포

이더리움

제일 중요한 modifier Payable modifier

  • 이더리움 전제
  • 핵심 로직은 이더리움 이용 결제
  • 입금 관련 로직을 만들고 싶으면 payable modifier 를 붙여준다면 구현 가능
  • 모임 통장 만들기, 경매, 안전 거래
  • 핵심 로직 -> payable modifier

블록체인 영상 저장

  • 이더리움 블록 크기 1-8
  • 저장 가능?
  • 텍스트라도 200개 이상 저장하는 것은 어렵다
  • 방법은?
  • 일반적으로 파일을 정합성을 확인할 때 해시값을 이용
  • 해시값을 블록체인에 저장한다면

이더리움 vs 자체 코인

  • 화폐가치는 얼마나 신용하지에 따라서 결정
  • 코인 가치는 사람들의 신용 따라서 결정
  • 이더리움 많은 사람들이 사용하기 때문에 신용도가 높고 가치도 높다
  • 우리가 만든 자체 코인은 자유도가 높지만 신용도는 매우 낮다.
  • 하지만 사람들은 가치를 떠나서 그냥 받는 것을 좋아하기도 한다.NFT?

Wrapper Class

  • Web3j 를 이용해서 Smart Contrat 통신을 위해 Wrapper 생성
  • 컴파일된 바이너리 부터 Wrapper Class 를 생성
  • 컴파일된 바이너리가 변경된다면 다시 만들어야 한다.
  • 주석 공백을 포함하여 어떤것이 바뀌어도 Wrppaer Class 는 다시 만들어야 한다.
  • Jenkins 같은 자동화 빌드 도구도 좋음

유저가 블록체인을 불편해 할떄

  • 서비스 제공자가 별로 키를 보관하고 관리해줄 수 있다.
  • 신규 유저 -> 지갑 생성 보관
  • 로그인 인증을 통해서 유저 확인하고 대신 서명
  • 대부분 유저는 블록체인 이해가 어렵다.

프론트 vs 백엔드

  • 완전한 탈 중앙화를 추구 한다면 프론트 엔드 유저 서명
  • 하지만 유저는 익숙하지않음으로 이를 보완하려면 백엔드 처리를 해주어야 한다.

어떤 네트워크를 사용할 것인가?

  • 우라먼 사용할 수 있는 Private 네트워크를 구성하는 것
  • Infura 와 같은 Public 테스트텟도 많다.
  • 이더리움 메인넷과 동일한 테스텟을 사용하는 것도 가능하지만 실서비스는 메인넷에 배포
728x90

'SSAFY' 카테고리의 다른 글

나름 CS 상식(?)  (0) 2021.10.18
병렬 분산 알고리즘 구현 ( 이론 )  (0) 2021.08.25
[ SSAFY ] 캐싱의 개념과 적용  (0) 2021.08.24
[SSAFY] 산업혁명  (0) 2021.08.17
[SSAFY] TDD (Test Driven Dev)  (0) 2021.08.12