2017년 7월 27일 목요일

Using Docker Tools on Windows 10 with Hyper-V

Hyper-V 는 Windows 10 pro 이상의 버전에서만 설치 할수 있습니다.  Hyper-V는 Windows 설치시에 기본적으로 비활성화 되어 있습니다. 반드시 Windows 기능 켜기/끄기에서 Hyper-V를 활성하해야 합니다.

Docker Toolbox을 Hyper-V에 설치하기 위해서는 다음 절차대로 진행하면 됩니다.

  1. Hyper-V 관리자를 실하여 "가상 스위치 관리자"를 실행한다.
  2. 새 가강 네트워크 스위치를 만든다. 이때 "외부"를 선택하고, 이름은 "External Virtual Switch"로 지정한다. 이름은 다른걸 사용해도 상관없다.
  3. "https://www.docker.com/products/docker-toolbox"에서 docker-toolbox를 다운로드 받아서 설치한다.
  4. 설치가 끝나면 관리자 권한의 명령 프롬프트를 열어 "c:\Program Files\Docker Toolbox"로 이동한다.
  5. "docker-machine.exe create --driver hyperv --hyperv-virtual-switch "External Virtual Switch" --hyperv-cpu-count "1" --hyperv-memory "1024" --hyperv-disk-size "20000" mydockervm" 이명령어를 입력한다. 2번에서 다른 이름을 지정하였다면 지정한 이름으로 바꿔서 입력한다.
  6. boot2docker.iso 이미지를 설치한다. 설치가 끝나면 Hyper-V 관리자에서 "mydockervm"이 설치되어 있음을 확인할수 있다.
  7. 관리자 권한의 명령프롬프트에서 "docker-machine ssh mydockervm"를 입력하면 Docker에 접속할수 있다.
  8. 이제 Docker를 사용하면된다.

Hyper-V에서 Docker를 사용해본 결론은 불편하다 그리고 뭐가 더 좋은건지 모르겠다., 그냥 Virtual-Box를 사용하자. 





2017년 7월 4일 화요일

Redis 자료구조

Redis는
  • BSD 라이선스 기반의 Key-value 캐시 & Store 소프트웨어.
  • String, hash, lists, sets, sorted set, bitmap, hyperloglogs 등 다양한 데이터 구조를 저장.
  • In memory 데이터베이스, NoSQL 데이터베이스로 분류

Redis의 장정
  • Redis는 데이터 저장소로 가장 I/O 속도가 빠른 장치인 메모리를 사용함.
  • 단순한 구조의 데이터 모델인 Key/Value방식으로 빠른 속도를 보장함
  • 캐시 및 데이터 스토어에 유리함
  • 다양한 API 지원

Redis 자료 구조

Strings
  • 키에 대한 값으로 문자열을 저장한다.
  • 가장 단순한 타입, redis를 사용한다면 가장 먼저 고려해볼 타입
  • JSON, XML 등 문자열로 된 데이터를 저장
  • 웹서비스에 최적
  • HTML문서의 전체 혹은 일부분을 캐시하여 사용할수 있다.
  • String이라고 해서 문자열만 저장하는게 아니고, 바이너리 데이터도 저장 가능
  • 최대 512M까지 저장이 가능
  • APPEND 명령어를 이용해서 문자열을 추가로 붙일수 있음
  • GETRANGE와 SETRANGE를 이용해서 해당 범위의 문자열을 리턴
lists
  • string의 형태로 되어 있으며, 삽입순서에 따라 정렬
  • 주요특징으로는 수백만건의 삽입과 삭제가 head와 tail에 일어나더라도 일정한 시간복잡도를 제공한다. head와 tail 근처의 요소에는 매우 빠르게 접근되지만 매우 큰 list의 중간 지점을 접근하면 느림.
  • 소셜 미디어의 타임라인 경우, LPUSH로 새로운 요소를 입력하고, LRANGE를 이용하여 최근 입력된 요소를 가져올수 있다.
Blocking operation on lists
  • list 데이터 타입에 대해서 Blocking operation을 지원
  • BRPOP, BLPOP명령은 호출하면, 데이터가 없을 경우 데이터가 준비될 때까지 block된다.

Hash
  • field&value의 쌍으로 이루어진 테이블을 저장할 수 있는 데이터 타입
  • 객체를 표현할때 최고의 데이터 타입

Set
  • 정렬되지 않은 String의 집합
  • 맴버의 추가와 제거가 가능하며 set안의 맴버들의 존재여부를 호가인 가능
  • set은 중복된 이름을 허용하지 않는다.
  • set의 흥미로운 점은 서버사이드에서 set과 set사이에 집합연산이 가능하다.
  • 데이터 타입을 통해 유니크한 값을 수집할 수 있다.

Sorted Set
  • set과 hash를 섞은 데이터 타입.
  • set과 마찬가지로 키는 유니트하며, 키로 정렬

Operation on range
Sorted set은 범위 검색을 위한 몇 가지 툴을 제공

Bitmaps
  • 바이너리 데이터에 대한 bit연산 기능
  • 가장 큰 장점은 0과 1의 상태를 가지는 아이템들을 대단히 효율적으로 저장하고, 읽을 수 있다.

HyperLogLogs
  • 어떤 데이터셋의 집합에서 유일한 원소의 개수를 검사하기 위해서 사용하는 알고리즘


블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...