분류 전체보기
-
튜링 완전(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전공자가 아니라면 아래의 내용은 어려울 수도 있습니다. 위의 간단한 설명으로도 충..
-
블록체인이란?블록체인 2018. 3. 18. 18:59
블록체인(block chain)이란?블록체인은 관리 대상 데이터를 블록이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구도 임의로 수정될 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술입니다. 이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었습니다. 잘 알려진 블록체인의 응용 사례는 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있습니다. 이 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터상에서 운영되고 비트코인을..
-
Phantom JS란?웹 2017. 10. 22. 20:26
PhantomJS란?헤드리스 브라우저로 요즘 유명한 브라우저Headless browser란?헤들리스 브라우저는 그래픽 유저 인터페이스가 없는 웹브라우저를 뜻합니다. 헤들리스 브라우저는 웹 브라우저와 유사한 환경을 가졌지만 커맨드 라인 인터페이스를 통해 실행하고 제어할 수 있는 브라우저들을 말합니다. 헤들리스 브라우저엔 자바로 작성된 HtmlUnit이라는 것도 많이 사용됐었습니다.사용용도PhantomJS와 같은 헤들리스 브라우저는 아래와 같은 용도로 사용됩니다.Jasmine, QUnit, Mocha와 같은 테스트 프레임워크에서 함수를 테스트 할 때 사용웹사이트의 스크린샷, 썸네일 프리뷰 등을 만들 때 사용. SVG, Canvas를 포함한 웹 컨텐츠도 캡쳐가 됨DOM api, jQuery와 같은 라이브러리로..
-
[Python] tip - 속성을 리팩토링하는 대신 @property를 고려언어/파이썬 & 장고 2017. 10. 21. 15:24
내장 @property 데코레이터를 이용하면 더 간결한 방식으로 인스턴스의 속성에 접근하게 할 수 있습니다. 고급 기법이지만 흔히 사용하는 @property 사용법 중 하나는 단순 숫자 속성을 즉석에서 계산하는 방식으로 변경하는 것입니다. 호출하는 쪽을 변경하지 않고도 기존에 클래스를 사용한 곳이 새로운 동작을 하게 해주므로 매우 유용한 기법입니다. 또한 시간이 지나면서 인터페이스를 개선할 때 중요한 임시방편이 됩니다. 예를 들어 구멍 난 양동이의 할당량을 일반 파이썬 객체로 구현하려 한다고 가정합니다. 다음 Bucket 클래스는 남은 할당량과 이 할당량을 이용할 수 있는 기간을 표현합니다. import datetime class Bucket: def __init__(self, period): self...
-
[PostgreSQL] 현재 실행 중인 쿼리 확인 및 쿼리 종료DB/PostgreSQL 2017. 10. 18. 22:56
쿼리를 실행했다가 에러가 발생했다던지 너무 오래걸려 강제종료를 했다던지 등의 행동을 했는데 쿼리가 계속 돌고 있어서 테이블에 대한 transaction lock이 걸린 경우, 실행 중인 쿼리를 종료해야 할 때 유용하게 쓰입니다.현재 실행 중인 쿼리 및 pid 확인SELECT * FROM pg_stat_activity ORDER BY query_start ASC;실행 중인 쿼리 종료SELECT pg_cancel_backend(pid값); -- 성공하면 true, 실패하면 false 반환
-
[PostgresSQL] foreign key (constraint) 걸린 테이블 목록 확인DB/PostgreSQL 2017. 10. 18. 22:52
검색하고자 하는 테이블을 참조하고 있는 테이블 및 컬럼 리스트 확인SELECT kcu.table_name AS child_table, kcu.table_schema AS child_schema, kcu.column_name AS child_column, kcu.constraint_name AS child_constraint FROM information_schema.table_constraints tc JOIN information_schema.key_column_usage kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage ccu ON ccu.constraint_name = tc.co..