분류 전체보기
-
[Python] lambda, map언어/파이썬 & 장고 2018. 7. 12. 23:20
lambda, map, filter 같은 경우는 사실 가독성 부분에서 좋지 않다는 생각이 들어 지양하고 있었는데 장점이 있어서 정리해 봅니다.lambda(람다) 함수lambda (이후 '람다'라고 호칭)함수는 익명함수로 메모리를 절약하는 이점이 있습니다. 또한 가독성을 향상시킨다 라고도 나오지만 함수와 비교했을 때 가독성이 좋은건지는 잘 모르겠습니다. (개인적인 의견)일반적인 함수는 객체를 만들고, 재사용을 위해 함수 이름(메모리)를 할당을 합니다.# lambda 인수1, 인수2, ... : 인수를 이용한 표현식 sum = lambda a, b: a+b result = sum(3,4) print(result) # 7왜 사용할까?익명함수이기 때문에 한번 쓰이고 다음줄로 넘어가면 힙(heap) 메모리 영역에..
-
이진법, 16진법, 비트와바이트, 인코딩공부 2018. 7. 12. 22:43
정말정말 간단한건데 사용안할 줄 알고 대충알고 넘어갔다가 이번에 큰코를 다쳤.............16진법만 다시 정리할까 했는데 전체적인 내용을 다시 까먹지 않기 위해 비트와 관련된 알고 있는 내용까지 전부 정리합니다.이진법 (binary)컴퓨터는 이진법으로 이해를 합니다. 우리가 사용하는 수의 표현방법은 십진법입니다. 이진법에는 0 또는 1 만 존재합니다. 알다시피 십진법은 0~9까지 존재합니다.십진법 ↔ 이진법십진법에서 1은 이진법에서도 1입니다. 십진법에서 3은 이진법으로 표현하자면 11이 됩니다. 이를 다시 십진법으로 변경하자면 2^1 + 2^0 = 3 으로 성립이 됩니다. 자리 수가 n개인 이진법를 십진법로 계산하는 공식은 2^n-1 + 2^n-2 + ... + 2^1 + 2^0 이 됩니다. ..
-
작업증명 (Proof-of-Work : PoW) 알고리즘이란?블록체인 2018. 7. 11. 22:36
작업증명(Proof-of-Work) 방식의 합의 알고리즘은 비트코인에서 사용되는 합의 알고리즘으로써 어떤 트랜잭션이 발생했을 경우 해당 트랜잭션이 유효한 트랜잭션인지에 대한 합의 방법 및 새로운 블록이 진짜인지, 가짜인지에 대한 검증을 수행합니다. 작업 증명 방식(PoW)을 이해하기 위해서는 우선 마이닝 과정에 대한 개념정리가 필요합니다.마이닝(채굴)이란?마이닝(채굴)이란 임의의 nonce 값을 대입하여 블록 해시 결과 값을 생성하고, 생성된 결과 값이 제시된 Target 보다 작은 블록 해시를 찾는 과정입니다 (자세한 내용은 아래에서 설명). 해시함수의 특징때문에 어떤 nonce 값을 대입해야 제시된 Target 보다 작은 블록해시 정보를 찾을 수 있을지는 알 수 없습니다.즉 올바른 결과 값을 찾기 위..
-
머클트리(merkle tree)란?블록체인 2018. 7. 9. 23:46
머클트리란?머클트리(Merkle Tree) 혹은 '해시트리(Hash Tree)'라는 구조는 Ralph Merkle이라는 사람이 1979년에 만들어 낸 개념입니다. 다른 트리 알고리즘과는 다르게 머클트리의 목적은 빠른 검색이 아니라 데이터의 간편하고 확실한 인증을 위해 사용합니다. 머클트리의 최상위 부모노드(혹은 루트)는 머클루트라 부르며 블록체인의 원소역할을 수행하는 블록에서 저장된 트랜잭션들의 해시트리라 볼 수 있습니다.머클트리는 데이터의 간편하고 확실한 인증을 위해서 SHA-256 암호화 기술(해시함수)를 사용하고 있습니다. 자세한 내용은 아래 머클트리 그림과 같이 설명하겠습니다.SHA-256 암호화 (해시함수)란?SHA-256은 암호화 기술로서 복호화가 되지 않는 단방향 암호화 기술입니다. 암호화된..
-
블록체인 기술 정의블록체인 2018. 7. 8. 23:52
블록체인(Blockchain)블록체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를 가지고 있는 링크드 리스트인 자료구조입니다. 다시말해 블록과 블록을 체인으로 이어준 형태입니다. 블록체인에서 사용되는 블록은 일정 시간마다 생성이 됩니다. (비트코인의 경우 10분에 한 번씩 생성)즉 여러 건의 거래내역을 하나의 블록으로 묶어 기존에 생성된 블록에 체인처럼 계속적으로 연결한 구조를 의미합니다. 블록의 집합체인 블록체인은 여러 노드에 걸쳐 분산되어 저장 및 관리되며 모든 거래 정보를 포함하는 거대한 분산 장부 또는 공통장부(원장: Ledger)관리 기술이라 할 수 있습니다.블록(Block)블록이란 블록체인의 원소 개념으로 다수의 거래정보의 묶음을 의미합니다. 블록은 He..
-
퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교블록체인 2018. 7. 5. 22:51
블록체인의 종류블록체인은 크게 퍼블릭 블록체인, 프라이빗 블록체인, 컨소시움 블록체인 3가지로 분류할 수 있습니다.퍼블릭 블록체인(Public Blockchain): 비트코인, 이더리움과 같이 누구나 네트워크에 참여할 수 있는 블록체인프라이빗 블록체인(Private Blockchain): 하나의 기관에서 독자적으로 사용하는 블록체인컨소시움 블록체인(Consortium Blockchain): 여러 기관들이 컨소시움을 이뤄 구성하고 허가된 기관만 네트워크에 참여할 수 있는 블록체인. 현재 활발하게 거래되는 대다수의 블록체인은 퍼블릭 블록체인으로 블록체인 네트워크에 참여할 수 있고 트랜잭션 내역을 검증할 수 있습니다.퍼블릭 블록체인 VS 프라이빗(컨소시움) 블록체인 퍼블릭 블록체인프라이빗(컨소시움) 블록체인읽..
-
튜링 완전(turing-complete)이란?블록체인 2018. 7. 5. 22:04
튜링 완전이란?튜링 완전(turing complete)이란 어떤 프로그래밍 언어나 추상 머신이 튜링 머신과 동일한 계산 능력을 가진다는 의미이며 튜링 머신으로 풀 수 있는 문제, 즉 계산적인 문제를 그 프로그래밍 언어나 추상 머신으로 풀 수 있다는 의미입니다.튜링이란?수학자 앨런 튜링이 1936년에 제시한 개념으로 계산하는 기계의 일반적인 개념을 설명하기 위한 가상의 기계이며 오토마타의 일종이다. 튜링은 이 개념을 automatic에서 따온 a-machine이라고 불렀는데 튜링 사후에 창시자의 이름을 따 튜링 머신이라고 부르게 되었다.라고 나무위키에서 정의되어 있습니다.튜링 머신 장치테이프(Tape) : 일정한 크기의 셀(Cell)로 나뉘어 있는 종이 테이프. 각 셀에는 기호가 기록되어 있으며 길이는 무..
-
스마트 컨트랙트란?블록체인 2018. 7. 2. 22:15
스마트 컨트랙트란?스마트 컨트랙트(Smart Contracts)는 중개자없이 P2P로 쉽고 편리하게 계약을 체결하고 수정할 수 있는 기술입니다. 사실 새롭게 정의된 용어는 아닙니다. 예를 들어, 자판기에 1000원을 넣고 마시고 싶은 음료수 버튼을 누르면 자판기가 자동으로 음료수와 잔돈(거스름돈이 존재할 경우)을 뱉어줍니다. 이와 같은 행동을 스마트 컨트랙트라 부릅니다. 여기서 문제는 돈을 넣었는데 자판기가 이를 인식하지 못하거나 돈을 넣지 않고 자판기를 흔드니 돈이 나오는 것과 같은 경우입니다. 이는 자판기의 신뢰성에 금이가는 문제이기 때문에 이를 방지하기 위해 주변에 기술자 또는 주인이 상주하여 확인해야합니다. 즉, 기존의 프로세스들도 스마트 컨트랙트라 부를 수 있는 계약을 하곤 있지만, 신뢰성 유지..
-
Django Value(), F() 란?언어/파이썬 & 장고 2018. 6. 26. 19:48
Value()Value(value, output_field=None)value() 객체는 나타낼 수 있는 가장 작은 값을 표현할 수 있습니다. 예를 들어 쿼리에서 integer나 boolean 또는 string 을 표현하고자 할 때 Value()로 감싸서 나타낼 수 있습니다.사실상 Value()를 직접 사용할 필요는 드뭅니다. F('foo') + 1 이라는 표현식이 있을 때, 장고는 암시적으로 1을 Value()로 감싸 복잡한 표현식에서 단순한 값을 사용하게 합니다. 만약 string 값을 표현식에 나타내고자 할 때 Value()를 사용하여 나타낼 수 있습니다. 대부분의 표현식은 Lower('name')과 같이 해석하고 있습니다. output_field는 IntegerField() 나 BooleanFie..
-
채굴방식(마이닝) POW, POS, DPOS 란?블록체인 2018. 3. 18. 22:08
리플과 같이 최초 발행 이후 추가발행이 불가능한 암호화폐도 있지만 대부분은 채굴방식을 통해 추가발행이 진행됩니다. 채굴방식은 대표적으로 POW, POS, DPOS가 있습니다. 한마디로 어떤 방식으로 채굴을 해서 보상을 받을것인지에 대한 약속 이라고 보면 됩니다. 명칭은 채굴 증명방식, 합의 프로토콜, 합의 메카니즘 등 여러 용어로 부르기도 합니다.POW (Proof of Work)대표코인: 비트코인, 라이트코인, 제트캐시, 모네로 등작업증명으로 부르기도 하며 해시연산을 처리하는 하드웨어(GPU, ASIC채굴기) 등을 사용해서 증명하는 방식입니다. 간단하게 말해 하드웨어 장비를 사용해 코인을 채굴하는 것입니다. 자세하게..IT전공자가 아니라면 아래의 내용은 어려울 수도 있습니다. 위의 간단한 설명으로도 충..