반응형

Programming 37

효과적인 코드 시각화, highlight.js

웹에서 코드를 예쁘게 보여주는 javascript 라이브러리 highlight.js를 소개한다. 사용법은 어렵지 않아 짧은 글이 될 것이다.티스토리 블로그를 쓰면서 조금 불편했던 부분이 WYSIWYG (What You See Is What You Get) 에디터였다. 특히 코드를 입력하고자 할 때가 문제이다. 티스토리에서 제공하는 에디터는 정석적인 코드 포맷팅을 제공하지 않아서 그동안 나는 글상자를 만들고 거기에 Courier New 글씨체를 일일이 적용해서 썼었다.# 그동안 써왔던 코드 박스$ source .venv/bin/activate (.venv) $ pip install ipython# IPYTHON > print('GOOD NIGHT') 코더들은 항상 정석적인 것을 좋아하지 않는가? 위의 코드..

Python Postgresql adapter, psycopg2 설치 (Linux/Windows)

오픈소스 관계형 데이터베이스로 널리 쓰이고 있는 Postgresql을 python에서 작동할 수 있도록 도와주는 psycopg2의 설치법을 linux와 windows 환경에 따라 정리한다. 본래 Postgresql이 linux 환경에 잘 맞는 데이터베이스이기 때문에 linux에서의 설치는 크게 어렵지 않다. windows에서는 특히 가상 환경을 이용할 때에 설치하는 방법을 기록하기 위해 이 글을 쓴다.Linux(Ubuntu 16.04 LTS) 환경pypi (python package installer)를 이용해서 간편히 설치할 수 있다. # 기본 python 환경에서 설치 $ pip install psycopg2 # 가상 환경 virtualenv에서 설치 $ source venv/bin/activate ..

Programming/Python 2016.11.02

Python virtualenv 정리 (Linux/Windows)

python의 가상환경 virtualenv 모듈의 사용법을 간단하게 정리한다. python의 가상환경이란, 작은 python을 새로 설치해서 내가 원하는 모듈만 운용하는 바구니라고 생각하면 된다. 운영체제 안에서 새로 운영체제를 만들어내는 가상 머신(virtual machine)과 같은 맥락이라고 볼 수 있다. 같은 모듈이라도 이 버젼 저 버젼 다른 버젼이 필요할 때나, python 프로그램을 실행하기 위한 최소한의 환경을 마련하고자 할 때, 그리고 github 등의 저장소와 연계하고자 할 때 등 가상환경은 매우 다양하게 사용될 수 있다. 이젠 필수적인 요소가 된 python 가상 환경의 리눅스/윈도우에서의 사용법을 정리한다. (본인이 윈도우에서 쓰려고 할 때마다 까먹어서....) 리눅스(ubuntu) ..

Programming/Python 2016.11.01

django management 시스템 안에서 내 명령어 만들고 사용하기

django 프로젝트를 만들다보면, 테스트를 위해 필요할 때마다 django shell을 통해서 일시적인 코딩이 필요할 때가 많다. 게다가 그 코딩을 반복적으로 사용해야 할 경우가 많은데, 그 때마다 django shell에서 같은 코드를 실행시키는 것이 꽤나 불편하고 비효율적일 수 있다. 이 글에서는 django management 시스템에 내가 필요한 명령어를 만들고 사용하는 법을 정리한다.사용할 코드DB에서 뭔가를 빼와서 그 내용을 출력하는 작업을 예제로 삼겠다. DB에 아이템을 하나씩 추가할 때마다 그 아이템을 확인하고자 하는 상황이다. django shell을 통해서 다음과 같은 코드를 통해 테스트를 할 수 있을 것이다. $ python manage.py shell >>> from myapp.m..

Programming/Python 2016.10.09

Python Celery with Redis: 비동기 작업 큐(queue)

비동기 작업 큐(queue)를 python에서 활용할 수 있는 celery를 소개한다. 웹서버가 처리하기엔 무거운 연산(e.g. pdf 변환, 과학적 계산 프로세스 등)을 그냥 서버에 집어넣으면 사용자는 웹서버의 처리가 다 끝날 때 까지 빙빙 돌고있는 웹브라우저를 하염없이 바라보고만 있어야 할 것이다. 왜냐하면 웹서버의 작업은 동기적(synchronous)이기 때문이다. 반대로 비동기적 (asynchronous)인 작업이라는 것은 어딘가에 작업을 던져주고 그 작업이 끝나길 기다리지 않고 다른 일을 할 수 있다는 것이다. 그 예로 태생부터 비동기적인 javascript가 있다. 그리고 작업이 끝났는 지 지속적인 체크를 하다가 끝나면 그 결과물을 받으면 된다. celery는 메시지 브로커(message br..

Programming/Python 2016.09.25

MathJax: 웹에서 Latex 수식을 쓰자

웹화면에서 수식을 Latex 코드로 입력할 수 있는 javascript 패키지, MathJax를 간단하게 소개한다. MathJax는 자체 CDN을 제공하므로 이를 이용하는 것이 편리할 것이다. 가장 기본적인 세팅으로 다음과 같이 javascript 코드를 추가한다. 위 비동기 javascript 코드는 어느 위치에나 넣어도 잘 작동하는 것으로 예상된다. 부분에 넣으면 당연히 잘 될 것이고, 내가 가장 끝 부분에 넣어서 사용하고 있는데 잘 작동하기 때문이다. 그러고 나서는 본분에 MathJax가 알려주는 식별자를 통해 수식을 넣을 수 있다. 이미 Latex를 통해 수식을 많이 써왔다면 MathJax 사용에 큰 어려움은 없을 것이다. 기본 세팅에서 식별자는 두 가지가 있다. (실제로 식별자를 넣어버리면 안보..

c3.js 여러 종류의 차트 사용법

c3.js의 사용법을 정리하려 한다. c3라는 이름에서 유추할 수 있듯이, d3.js의 복잡한 데이터 시각화를 조금 더 쉽게 사용할 수 있도록 어느 정도 모듈을 감싸 놓은 d3 기반의 라이브러리이다. d3.js에서는 레이아웃, 즉 그래프의 종류에 따라 코드가 많이 달라져야 하기 때문에 그 때마다 어느 정도의 학습이 필요하다. 하지만 c3.js가 그런 그래프 종류들을 편하게 사용할 수 있게 해서, 우리는 c3에 데이터만 던져주고 어떤 종류의 그래프를 그릴 것인지 알려주면 된다. c3js.org 공식 사이트에서 다양한 예제를 볼 수 있지만, 그 예제가 너무 단순해서 내가 원하는 그래프를 만들 수 있도록 도와주지는 못했다. 여기서는 c3.js의 기본적인 예제를 살펴보고, 약간의 팁도 같이 정리하려 한다. 0...

Bootstrap 기반 티스토리 스킨: 첫 작업 기록

처음으로 티스토리 스킨을 만들면서 내가 생각한 컨셉이나 개발 과정 등에 대해 이야기하고자 한다. 시작하기 전에는 "기본적인 front-end 코딩만 잘하면 쉽지 않을까" 라고 생각했었는데, 티스토리의 시스템(치환자)에 맞춰야 해서 마냥 쉽게 되진 않았다. 결국 티스토리의 치환자 페이지를 정독하면서 나름 스터디를 한 셈이 되어서, 여기서 그 정리를 하는 것이 목적이다.관련 링크 스킨 소개글 스킨 다운로드 0. 개발 동기 블로그를 처음 만들 때부터 적용되어있던 티스토리 스킨 "#1"의 첫 인상은 나에게 꽤 좋았었다. 기술적인 이야기를 담는 내 블로그에겐 "예쁜 것들"이 크게 필요하지 않았고 코드와 내용의 가독성을 높일 수 있는 깔끔함이 중요했기 때문이다. 티스토리가 기본으로 제공하는 여러 스킨들도 구경해봤지..

Python requests 모듈 간단 정리

Python에서 HTTP 요청을 보내는 모듈인 requests를 간단하게 정리하고자 한다. 0. 기본적인 사용 방법 import requests URL = 'http://www.tistory.com' response = requests.get(URL) response.status_code response.text 웹브라우져에서 티스토리를 접속한 것과 똑같은 이야기이다. www.tistory.com 이라는 주소로 GET 요청(request)를 보냈고 서버에서는 그 요청을 받아 뭔가를 처리한 후 요청자인 나에게 응답(response)를 줬다. 우선 그 응답은 200 상태코드와 함께 왔다. 이는 티스토리 서버에서 잘 처리되어서 정상적인 응답을 보내줬다는 OK 싸인을 의미한다. 그리고 응답의 내용은? 보시다시피..

Programming/Python 2016.08.10

Bootstrap container 폭 넓이 조정

Bootstrap은 container 클래스를 통해서 스크린 크기에 따른 화면의 폭의 한계를 자동으로 조절한다. 실제로 container 클래스가 어떻게 정의되어 있는지 살펴보자..container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }@media (min-width: 768px) { .container { width: 750px; } }@media (min-width: 992px) { .container { width: 970px; } }@media (min-width: 1200px) { .container { width: 1170px; } } @media (min-width: xxx) 를 통..