본문 바로가기

전체 글118

[Linux] grep 명령어 패턴 검색 [grep]grep 명령은 파일 내에서 지정한 패턴이나 문자열을 찾은 후에, 그 패턴을 포함하고 있는 모든 행을 표준 출력해 준다. 또한 한 디렉토리 내에서 지정한 패턴을 포함하는 파일을 출력할 수도 있다. grep 명령은 하나 이상의 파일로부터 프로그램 수정 등을 위해 변수, 또는 함수명을 찾을 때 많이 사용된다.기본 문법grep [-옵션] 패턴 파일명 옵션-c: 패턴이 일치하는 행의 수를 출력-i: 비교시 대소문자를 구별 안함-v: 지정한 패턴과 일치하지 않는 행만 출력-n: 행의 번호를 함께 출력-l: 패턴이 포함된 파일의 이름을 출력-w: 패턴이 전체 단어와 일치하는 행만 출력예제테스트 파일 생성ihyeon-aui-MacBook-Pro:test.local ihyeon-a$ vi test.. 2016. 10. 27.
[Python] call by assignment (call by object, call by object reference) 공식 문서에는 Python은 call by assignment라고 되었다. Python은 모든 것이 객체(object)이고 객체에는 두 가지 종류가 있다. 1. immutable objectint, float, tuples 등이 함수 arguments로 넘어갈 땐 call by value로 넘어감. 2. mutable objectlist, dict, set과 같이 mutable object 가 argument로 넘어가면 object reference가 넘어가서 담고 있는 값이 바뀔 수도 있다. >>> def spam(eggs): ... eggs.append(1) ... eggs = [2, 3] ... >>> ham = [0] >>> spam(ham) >>> print(ham) [0, 1] eggs.app.. 2016. 10. 26.
[Django] values() values_list() flat values()object의 원하는 컬럼만 가져오기 위해서는 values를 사용할 수 있다. values를 사용하면 해당 컬럼의 key,value의 쌍의 리스트를 얻을 수 있다. >>> Entry.objects.values()[{'blog_id': 1, 'headline': 'First Entry', ...}, ...] >>> Entry.objects.values('blog')[{'blog': 1}, ...] >>> Entry.objects.values('blog_id')[{'blog_id': 1}, ...] values_list()values_list()를 사용하면 key,value 형태가 아닌 tuples 형태의 리스트로 가져올 수 있다. >>> Entry.objects.values_list('id'.. 2016. 10. 26.
[Python] RabbitMQ Publish Subscribe RabbitMQ 에 Publish/Subscribe 하는 방식입니다.Publishtopic 으로 호출하는 방식import pika import json class Publish(object): def __init__(self): self.connection = None self.channel = None self.topic = None def is_connect(self, host, topic=None): try: self.topic = topic self.connection = pika.BlockingConnection(pika.ConnectionParameters( host=host )) self.channel = self.connection.channel() self.channel.queue_dec.. 2016. 10. 26.
아파치 로컬 서버 셋팅하기 in 맥 OS X 로컬 서버 셋팅하기다음 지도 API를 실행하기 위해서는 서버가 있어야 한다. 로컬에서 테스트하기 위해서는 맥 기본으로 설치되어 있는 아파치 서버를 이용하여 테스트 하자.아파치 설정하기맥에는 아파치 서버가 기본으로 설치되어 있다. 따라서 아파치 서버를 따로 설치하지 않고 서버를 이용할 수 있다. 하지만 기본적으로 활성화 되어 있지는 않다.아파치 활성화$ sudo apachectl start 터미널에서 위의 명령어를 실행 후, 브라우저에서 http://localhost/ 를 열어 It works! 라는 글이 나오면 아파치 서버가 정상적으로 실행되고 있는 것이다.기본 로컬호스트는 사용자 폴더의 Sites 폴더 또는 /Library/WebServer/Documents 를 사리킨다. 이 경로는 아파치 설정 파일을.. 2016. 10. 24.
MQTT AMQP RabbitMQ MQTT (MQ Telemetry Transport)MQTT는 경량의 Publish/Subscribe(Pub/Sub) 메시징 프로토콜이다. 네트워크가 불안정한 장소에서 작동하는 기능이나 힘이 약한 장치로 움직이는 기능을 위해 경화한 한 것이 특징이다. M2M(machine-to-machine)와 IoT(Internet of things)에서 사용하려고 만들었다. IoT를 위해서 낮은 전력, 낮은 대역폭 환경에서도 사용할 수 있도록 설계됐다. 이름에서도 알 수 있듯이 부하를 분산시키기위한 Job Queue 기능은 없다. 이러한 용도로는 보통 AMQP 등을 사용한다. 또한 아래의 그림에서 볼 수 있듯이, MQTT는 저전력, 신뢰할 수 없는 네트워크, No TCP/IP 기반에서 운용할 수 있다는 장점이 있다... 2016. 10. 21.
[Django-REST] Exception Handler RestFramework에서 자동으로 API 함수에서 Exception이 발생하면 Exception Handler에서 처리할 수 있도록 settings에서 조건을 줄 수 있다. 보통 코드에서 exception을 처리하기 위해서 try ~ exception을 사용한다. try: ... code detail except Exception as e: print(e) return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) 하지만, 위와 같은 코드로 작성하면 코드의 복잡도가 높아지고 reading이 힘들어진다.Custom exception handlingDjango RestFramework에서는 Exception Handler를 settings에서 자동으로 .. 2016. 10. 19.
[Django] File upload (FileField, ImageField) Django 에서 파일(이미지)를 업로드하기 위해서는 FileField 또는 ImageField 를 사용하면 된다. Django Test Project 만들기 테스트를 위해 간단한 프로젝트를 만든다. (Pycharm 을 사용한다면 더 쉽게 프로젝트를 만들 수 있다.) $ django-admin.py startproject firstsite 주로 Django project 에서는 startapp 명령어를 통해 app 을 만든다음 application 단위로 코딩을 하지만 본 가이드에서는 Django Project 를 만드는게 목적이 아니므로 app 을 따로 만들지 않고 project 에서 바로 테스트를 할 것이다. (db 또한 Django 에서 제공하는 sqlite3 을 사용할 것이다.) settings... 2016. 10. 19.