발생일: 2015.12.26 키워드: 파이썬, python, pyenv 문제: pyenv 설치 중 아래와 같은 오류가 발생했다. ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? 해결책: 아래 깃헙 이슈에서 여러가지 해결 방법을 제시하고 있다. https://github.com/yyuu/pyenv/issues/22 openssl 을 삭제하고 다시 시작하거나, configure 옵션을 설정해주는 라는데, 시도해봐도 해결이 안된다. 나한텐 homebrew 에 뭔가 문제가 있었나보다. 혹시나 해서 homebrew를 삭제하고 새로 설치했더니 해결됐다!
발생일: 2015.12.24 키워드: python, 파이썬, jinja 문제: jinja 템플릿에서 URL로 사용할 문자열인데, & 가 & 로 출력된다. HTML 이스케이프를 무시할 수 없을까? 해결책: autoescape 블럭으로 특정 부분은 이스케이프하지 않을 수 있다. {% autoescape true %} {{normal_string}} {% endautoescape %} {% autoescape false %} {{url_string}} {% endautoescape %} 아니면, |safe 필터를 다는 식으로 처리하면 된다. {{url_string|safe}} 참고: http://jinja.pocoo.org/docs/dev/templates/#autoescape-extension http://..
발생일: 2015.12.29 키워드: sqlite3, limit, oracle rownum 문제: sqllite 에서 오라클에서 제공하는 rownum 기능은 뭘까? 해결책: SQLite는 limit라는 기능을 제공한다. SELECT COL1, COL2 FROM TAB01 ORDER BY COL1 LIMIT 5 --5개 ROW를 출력하라는 의미 또 하나 OFFSET 이라는 기능도 있다 SELECT COL1, COL2 FROM TAB01 ORDER BY COL1 LIMIT 6 OFFSET 3 --3ROW를 건너뛰고 6개를 출력하라는 의미
발생일: 2015.12.30 키워드: python, 파이썬, 환경변수, env, environ 문제: 파이썬으로 환경변수를 읽어오려고 한다. 해결책: os 모듈의 environ 함수를 사용하면 된다. import os os.environ['FOO'] 이렇게 가져오면 읽어올 수 있지만, 환경변수 중에 FOO가 없으면 KeyError 가 발생한다. raise KeyError(key) KeyError: 'FOO' KeyError 를 처리하기 번거로운 상황이라면, os.getenv()를 사용하는 게 좋다. 값이 없을 경우엔 None을 리턴한다. import os os.getenv('FOO') os.getenv('NOT_EXIST') #-> None
발생일: 2015.12.31 키워드: nginx, 413 문제: nginx 에서 413 코드에 아래와 같은 응답을 내려준다. 413 Request Entity Too Large 해결책: 말 그대로 요청 사이즈가 너무 커서 nginx 에서 잘라버린 요청이다. 더 허용해도 괜찮다면 nginx.conf 파일에서 요청 바디의 최대 사이즈를 정의해주면 된다. client_max_body_size 16M; 논의: nginx의 설정을 변경한 후에도 Entity Too Large 오류가 난다면, 앱 서버의 설정 때문일 수 있다. node.js express 서버를 사용하고 있다면, bodyParser에서 limit을 설정할 수 있다. var bodyParser = require('body-parser');app.use..
발생일: 2016.01.05 키워드: sqlite3, sqlite 문제: sqlite3 을 사용해 저장하려고 하는데, 아래와 같은 오류가 발생한다. sqlite3: attempt to write a readonly database 해결책: 디비 파일의 권한 이슈였다. $ sudo chmod 775 /var/www/mysite $ sudo chmod 664 /var/www/mysite/sqlite.db 664 로 설정하는 것으로 해결했다.
발생일: 2015.12.28 키워드: python, sqlite3, 컬럼 목록, 컬럼 이름, column name, get column list 문제: slite3 에서 조회한 목록의 컬럼 목록을 가져오려고 한다. 해결책: cursor 인스턴스의 description 값을 활용하면 된다. 람다로 가져오거나, names = list(map(lambda x: x[0], cursor.description)) list comprehension으로도가져올수있다. names = [description[0] for description in cursor.description] 참고: http://stackoverflow.com/questions/7831371/is-there-a-way-to-get-a-list-of-..
발생일: 2016.02.02 키워드: Xcode shortcuts, Xcode 단축키 문제: 내가 즐겨쓰는 Xcode의 유용한 단축키 모음 해결책: 파일명으로 파일 열기: Cmd + Shift + O 네비게이션 바로 이동하기: Cmd + (1~7) 에디터로 포커스 이동하기: Cmd + J - 네비게이션 바에서 이동 후 다시 에디터로 돌아오고자 하는 경우 - 에디터 간 전환하려고 하는 경우 - XVim 플러그인을 사용하는 경우엔, Ctrl + W 후, h, j, k, l 로 이동하는 게 훨씬 효율적이다. 네비게이션 바에서 특정 파일을 Assistantant Window로 열기 (Cmd + Alt + Enter) - XVim 에서는 :sp 또는 :vsp 로 assistant window 를 열 수 있다. 에..
발생일: 2016.01.06 키워드: 하이차트, highcharts 문제: 하이차트에서 라인 차트의 마지막에 해당 포인트의 값을 보여주고 싶다. 해결책: 하이차트에서 포인트의 값은 data label 이라 한다. dataLabels 옵션의 enabled 를 true 로 설정해 표현할 수 있다. http://api.highcharts.com/highcharts#plotOptions.line.dataLabels.enabled 마지막 포인트만 보여주고 싶다면, 아래처럼 마지막 여부만 확인해 넣을 수 있다. plotOptions: { line: { dataLabels: { enabled: true, align: 'left', x: 80, formatter: function () { if (this.x === t..