분류 전체보기
-
블록체인이란?블록체인 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..
-
Jupyter Notebook이란?서버 2017. 10. 18. 22:49
Jupyter Notebook이란?Jupyter Notebook은 오픈소스 웹 애플리케이션으로 라이브 코드, 등식, 시각화와 설명을 위한 텍스트 등을 포함한 문서를 만들고 공유하도록 할 수 있습니다.주로 데이터 클리닝과 변형, 수치 시뮬레이션, 통계 모델링, 머신 러닝 등에 사용할 수 있습니다. Jupyter Notebook은 파이썬, R, Scala 등 데이터 과학 분야에서 인기있는 프로그래밍 언어를 지원합니다. 가장 큰 장점은 실시간으로 인터렉티브하게 데이터를 조장하고 시각화할 수 있도록 해준다는 점입니다.
-
Ansible이란?서버 2017. 10. 18. 22:40
ansible이란?테스트 환경을 구축하는데 사용되는 툴 Provision & configuration management toolpython으로 개발되고 YAML이라는 언어를 통해 정의할 수 있고 json으로 통신python Github project 중 상위 랭킹 (6위)해커 뉴스 분석을 보면 ansible이 많이 Mention 되어지고 있음오픈 소스 버전 (GPL)ansible 장점 및 지원빠른 SSH통신, 빠른 provision이 가능추후 상용 환경에서 사용할 때 agent 기반이면 방화벽 이슈, agent 데몬 관리라는 불편한 점이 존재 (agent 방식은 확장성, 대규모 provision을 할 경우 매우 효과적이지만 서버와 통신하는 부분이 고도화되기 때문에 빠르고 간단한 provision을 할 ..
-
Jenkins - Hipchat 연동저장소 2017. 10. 16. 19:56
시작하기 전에 hipchat, jenkins 계정은 모두 있다고 가정하고 설명합니다.Hipchat먼저 방을 생성한 다음, ... 버튼을 눌러 Integrations를 누른 후 Install new integrations를 선택합니다. 다음 Build your own integration 버튼을 클릭합니다. 다음 적당한 별칭 (bot의 이름)을 정해줍니다. 여기선 Deployment Bot이라 생성했습니다. (아래 스크린샷과 다름..) Create버튼을 누르면 아래와 같은 화면과 Send messages to this room by posting to this URL의 값이 있는데 여기서 room/252352 와 같이 room 번호와 auth_token=Hcr8hO8Hihoph8P 와 같은 api tock..
-
[Python] datetime timezone 변경방법언어/파이썬 & 장고 2017. 10. 16. 19:13
python 3.6 이하 버전에서는 datetime을 생성하면 timezone 정보가 없어 astimezone 같은 메소드를 실행하면 에러가 발생합니다. 지금부터 삽질해서 찾은 방법을 설명합니다. python 3.6은 datetime을 생성할 때 timezone을 지정하지 않아도 기본으로 내장으로 설정이 되어 있어 astimezone()를 실행해도 에러가 발생하지 않습니다. 하지만 3.6이하 버전은 datetime을 생성할 때 timezone을 지정하지 않으면 timezone이 None이므로 astimezone()을 실행하면 에러가 발생합니다. 따라서 결론은 datetime을 생성할 때 timezone을 지정하는 것입니다. 하지만 이미 생성된 datetime이라면 어떨까..여기서 방법은 2가지로 나뉩니다..