본문 바로가기

파이썬

(20)
[Django] Django + Celery + Redis 이용하기 Redis_Celery 들어가기 전에 동기 vs 비동기 (이미치 출처 : http://ojava.tistory.com/17) 어떤 서비스에 회원가입을 하면 메일이 날라오는 경우가 있다. 동기 : 메일이 날라올 때까지 아무것도 하지 못한다. 비동기 : 메일이 날라오지 않더라도 다른 작업을 할 수 있다. 비동기 방식이 짱짱맨 아니냐 하겠지만 어떤 방식이건 간에 장단점이 존재한다. 아무튼, 회원가입 축하 이메일 발송은 사실 고객(client)에게 중요한 부분이 아니다. 일단 가입을 하고 서비스를 이용하기를 원할 것이다. 이러한 이메일 발송은 비동기 처리로 보낼 수 있다. 이를 백그라운드에 보낸다고 표현한다. Djnago + Celery + Redis Celery는 일꾼이다. 해야 할 일들을 처리한다. Reid..
[Django] Django Rest Framework(DRF) 알아보기 1부 REST_API Django REST Framework (DRF) REST REST에 관해서 많은 블로그 글들이 자세하게 설명하고 있기에 여기서는 간단하게 설명하고자 한다. REST는 WEB 관련 기술이다. 데이터를 주고받는 일종의 규약이다. 단순하다. 사용하기 편하다. Open API와 궁합이 좋다. HTTP 기본 메서드 4가지(POST, GET, PUT, DELETE)를 통해 일관적인 컨벤션(관례)을 유지한다면 RESTful 하다고 한다. 좀 더 자세히 알아보고 싶다면 이 블로그를 추천한다. http://blog.remotty.com/blog/2014/01/28/lets-study-rest/ 직렬화 하기 처음에 이름부터 너무 어렵게 느껴져서, 직렬화라는 용어 자체가 두려움의 대상이었다. 그래서, 초심..
[Django] settings 환경 분리하기 settings 분리하기 Django settings 환경 분리하기 장고를 처음 배우면서 가장 당황했던 일은 settings.py이란 파일은 온데간데 없고, deploy.py, debug.py로 환경세팅을 나누는 것이었다. 원래는... ./manage.py runserver runserver를 할 때는 명령어가 간단했는데, 이제는 파일을 나누게 되니까 여러모로 당황스러웠다. ./manage.py runserver --settings=config.settings.debug # 개발(디버그)용 ./manage.py runserver --settings=config.settings.deploy # 배포(서비스)용 환경 세팅이 deploy용과 debug용으로 나뉘면 런서버를 실행하는 법도 바꿔줘야 한다. 그냥 ..
[파이썬] 사각형의 나머지 한 좌표값 반환하기 rect 문제 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 반환하는 solution 함수를 완성해 주세요. 단, 직사각형의 각 변은 x축, 혹은 y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다. 입출력 예 #1 주어진 점의 좌표가 [[1, 4], [3, 4], [3, 10]] 일때, [1, 10]에 점이 위치하면 직사각형이 됩니다. 입출력 예 #2 주어진 점의 좌표가 [[1, 1], [2, 2], [1, 2]] 일때, [2, 1]에 점이 위치하면 직사각형이 됩니다. 문제 출처 SK 주식회사 C&C “Code Genius 2017” 데모테스트 문제 (https://programmers.co.kr/tryouts/3/challenge..
[파이썬] 다음 큰 숫자(next big number) 다음큰숫자 문제 (http://tryhelloworld.co.kr/challenge_codes/173) 어떤 수 N(1≤N≤1,000,000) 이 주어졌을 때, N의 다음 큰 숫자는 다음과 같습니다. N의 다음 큰 숫자는 N을 2진수로 바꾸었을 때의 1의 개수와 같은 개수로 이루어진 수입니다. 1번째 조건을 만족하는 숫자들 중 N보다 큰 수 중에서 가장 작은 숫자를 찾아야 합니다. 예를 들어, 78을 2진수로 바꾸면 1001110 이며, 78의 다음 큰 숫자는 83으로 2진수는 1010011 입니다. N이 주어질 때, N의 다음 큰 숫자를 찾는 nextBigNumber 함수를 완성하세요. 나의 풀이 def nextBigNumber(n): ''' 정수형태의 파라미터 값(n)을 받는다. (1) make_nu..
[파이썬] pyenv, virtualenv, pip 이해하기 pyenv 개요 pyenv : 다양한 파이썬 버전을 설치하고 사용할 수 있도록 함. pyenv를 통해서 파이썬 버전에 대한 의존성을 해결할 수 있다. virtualenv : 로컬에 다양한 파이썬 환경을 구축할 수 있도록 도와준다. 일반적으로 pip install 명령어를 통해서 패키지를 설치한다. autoenv : autoenv 스크립트를 이용해서 (가상환경으로 설정한) 특정 프로젝트 폴더로 들어가면 .env파일을 찾아서 자동으로 개발 환경을 로딩해준다. pyenv 설치, 버전확인 pyenv version : 현재 사용하고 있는 파이썬 버전을 알려준다. pyenv versions : 로컬에 설치된 파이썬 리스트를 보여준다. pyenv install --list : 설치할 수 있는 파이썬 리스트를 보여준다..
[파이썬] 정규표현식(regular expression) 정규표현식 정규표현식(Regular Expressions) re 모듈 : 파이썬 정규 표현식을 지원한다. 파이썬에서는 정규 표현식을 지원하기 위해 re(regular expression) 모듈을 제공한다. 자바(JAVA)에서 패턴 객체(p)의 메서드는 조금 다르니, 자바 API 를 참고하도록 하자. import re 를 통해 모듈을 임포트한 뒤, p = re.compile('정규표현식')을 통해서 정규표현식을 컴파일하고, 컴파일된 패턴 객체(p)를 이용하여 이 객체가 가지고 있는 메서드를 통해 작업을 수행할 수 있다. 어떻게 사용하는가? 첫번째 방법 : 컴파일 후 매칭 import re # 정규표현식 모듈 p = re.compile('[a-z]+') # re 내장모듈 내(.) compile 메서드를 사용..
[파이썬] get/set 속성값과 프로퍼티(property) get, set 프로퍼티 0. 들어가기 전에 이번에 다룰 내용은 객체의 속성(attribute)을 다루는 주제로 포스팅할 것입니다. 오늘 배울 getter메서드와 setter 메서드는 객체의 변수(속성)를 읽고, 변경하는데 사용합니다. TIP : 객체(Object) = 속성(attribute) + 기능(Method) 1. get/set 속성값과 프로퍼티의 개념 자바와 같은 객체 지향 언어에서는 외부로부터 바로 접근할 수 없는 prviate 객체 속성을 지원합니다. 이러한 언어에서는 private 속성의 값을 읽고(get) 변경(set)하기 위해 getter 메서드와 setter 메서드를 사용합니다. 하지만, 파이썬에는 getter 메서드나 setter메서드가 없습니다. 파이썬에서 선언되는 모든 속성(변수..