본문 바로가기

전체 글118

[Django] uwsgi + nginx in ubuntu 이 페이지는 https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu-14-04 사이트에 설명된 가이드 해석 및 테스트를 하며 발생된 이슈를 정리합니다. ~~ 작성중 (이 부분의 내용은 프로젝트 생성 관련 내용으로 위의 링크에서도 이해하기 쉽습니다.) ~~uWSGI 애플리케이션 서버 설정하기이제 두개의 Django 프로젝트 설정을 마쳤고, uWSGI 설정을 할 준비가 되었다. uWSGI 는 Django 애플리케이션과 WSGI 라는 표준 인터페이스로 통신하는 애플리케이션 서버이다. ubuntu에서 Nginx와 uWSGI 를 설정하는 더 자세한 사항은 여기에서 확인.. 2016. 10. 18.
[Unix] cron crontab CronCron은 Linux, unix 운영체제에서 어떤 작업을 특정 시간에 실행시키기 위한 데몬이다. 예를 들어 하루에 한차례 특정 서버에 접속해서 데이터를 받아와야 한다든지, 아니면 새벽 3시에 특정 작업을 수행할 필요가 있다던지, 이런 식으로 일정한 시간 간격으로 수행되어야 할 작업이나 사용자가 그시간에 작업을 할 수 없는 상황일때, 서버는 항상 돌아가고 있다는 점을 이용하는 방법이다.CrontabCrontab이란 cron 작업을 설정하는 파일이다. (crontab 파일은 OS 별로 각각 다른 위치에 저장이 되는데 일반적으로 BSD 계열의 리눅스는 /var/spool/cron/ID, 솔라리스 계열은 /var/spool/cron/contabs/ID 에 위치하고 있다. 파일을 보면 알겠지만 각각의 ID.. 2016. 10. 13.
[Python] SQL Injection 과 보호 방법 SQL injection protection장고의 queryset(ORM)을 사용할 경우, SQL injection을 막아준다. 하지만 raw queries를 사용하는 extra(), RawSQL를 사용하거나 실제로 connection을 통해 직접적인 쿼리를 통해 사용할 경우에는 SQL injection 처리를 따로 해줘야 한다.Python SQL injectionhttp://bobby-tables.com/python.html 에서 Python SQL injection 방법에 대해 설명하고 있다.Bad:cmd = "update people set name='%s' where id='%s'" % (name, id)curs.execute(cmd)Good:cmd = "update people set name=.. 2016. 10. 13.
[TDD] Mock Mock 객체Mock Object 는 검사하고자 하는 코드와 맞물려 동작하는 객체들을 대신하여 동작하기 위해 만들어진 객체이다. 검사하고자 하는 코드는 Mock Object 의 메서드를 부를 수 있고, 이 때 Mock Object는 미리 정의된 결과 값을 전달한다. MockObject는 자신에게 전달된 인자를 검사할 수 있으며, 이를 테스트 코드로 전달할 수도 있다.테스트를 통해 개발을 이끌어나가는 방식인 테스트 주도 개발(Test Driven Developement, TDD) 에서는 자동화된 테스트가 필수적인 요소중의 하나이다. 모의 객체를 이용하면 상당 부분의 테스트를 사용자의 개입 없이 자동화 할 수 있다.1. 사전적 의미Mock : 무시하다, 거짓된, 가짜의 의미조각하기 쉬운 재료(보통 나무나 점.. 2016. 10. 12.
[Django] Test # Django Unit tests- Python 3.3 밑의 버전의 경우, unittest.mock 모듈의 백포트를 설치해야 함.- Django의 버전이 낮을 경우, settings file을 명시해 주어야 함.- Selenium 테스트 시, Selenium 2, Firefox, Python >= 2.6이 필요하며 selenium package(version > 2.13) 설치 필수. -> 실행 시에 --selenium 옵션으로 실행한다. $ ./runtests.py --settings=test_sqlite --selenium admin_inlines 1. Django Unit test의 특징 Django는 project나 app을 생성하게 되면 기본적으로 tests.py라는 파일이 생성된다.(unit.. 2016. 10. 12.
Memcached 설치 및 실행 Memcached 설치brew 를 이용하여 설치$ brew install memcached source를 이용하여 설치하기1. libevent 설치 - 필수 설치$ cd /tmp $ wget https://github.com/downloads/libevent/libevent-2.0.18-stable.tar.gz$ tar zxvf libevent-2.0.18-stable.tar.gz$ cd libevent-2.0.18-stable$ ./configure$ make$ sudo make install2. Memcached 설치$ cd /tmp$ wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz$ cd memcached-1.4.13$ ./co.. 2016. 10. 12.
[REST] Serializer fields Serializerserializer는 querysets과 model instances와 같은 복잡한 데이터를 JSON, XML, 또는 다른 타입으로 Python 데이터 타입이 쉽게 rendering될 수 있게 한다. 또한, serislizers는 deserializer(데이터를 복잡한 타입으로 다시 파싱하는 것)와 들어온 데이터를 validation 체크를 한다. REST framework의 serializer는 Django의 Form 과 ModelForm과 유사하다고 한다. Serializer는 가장 기본적인 방식으로 응답 결과를 컨트롤하고 ModelSerializer는 model instances와 querysets을 다루는데 이용된다.serializer의 사용법 및 종류에는 여러가지가 있으므로 D.. 2016. 10. 11.
[Atom] 플러그인 (plugin) linter-pylint내용: python coding convention을 위한 라이브러리경로: https://atom.io/packages/linter-pylint설치: Install pylintapm install linter-pylintlinter-csslint내용 CSS coding convention을 위한 라이브러리경로: https://atom.io/packages/linter-csslint설치: apm install linter-csslint 2016. 10. 11.