분류 전체보기(21)
-
[ RESTful API] PUT과 PATCH의 차이 - 멱동성을 보장하는 PUT, 멱등성을 보장하지 않는 PATCH
PUT 메소드는 반드시 멱등성을 보장하지만 PATCH 메소드는 멱등성을 보장하지 않을 수도 있다. 멱등성이란 멱등성이란 어떤 대상에 같은 연산을 여러번 적용해도 결과가 달라지지 않는 성질이다. HTTP 메소드 외에도 데이터베이스나 파일에 자원을 읽고 쓰는 등의 컴퓨터가 수행하는 모든 연산에 해당된다. 예를 들어 어떠한 수에 1을 곱하는 x => x * 1과 같은 함수는 어떠한 값에 1번을 적용하던, 1000번을 적용하던 항상 x를 반환한다. 이런 연산을 멱등성이 보장된다. 그러나 1을 곱하는 함수가 아니라 1을 더하거나 빼는 함수라면 함수가 한번 호출될 때마다 인자로 주어진 값을 계속 증가시키거나 감소시킬 것이므로 항상 같은 값을 반환하지 않는다. 이런 연산은 멱등성을 보장하지 않는 예이다. HTTP 메..
2020.06.05 -
[Django] Custom Command (BaseCommand)
django-admin commands 장고 앱을 위해 커스텀 커맨드를 이용해 manage.py에 작업을 추가할 수 있다. 커스텀 커맨드는 /management/.py 경로에 있어야 한다. video/ __init__.py models.py management/ commands/ __init__.py manage_video.py 아래는 manage_video.py(위의 .py 위치) 예시인데, 나는 --a 라는 커맨드를 입력하면 logic_a 코드가 실행되게 하고 싶었고, --b 라는 커맨드를 입력하면 logic_b 코드가 실행되게 하고 싶었다. manage_video.py from django.core.management.base import BaseCommand class Command(BaseCom..
2020.05.08 -
.gitignore 파일 쉽게 만들기
git으로 프로젝트를 관리하다 보면 트래킹이 필요한 파일과 필요하지 않은 파일이 있다. git으로 추적하지 않아도 되는 파일명 또는 확장자 등을 .gitignore 파일에 작성하면 git은 추적 하지 않게 되고, commit에 반영되지 않기 때문에 깃헙에 올라갈 일도 없어진다. 하지만 gitignore 파일을 설정할 때 IDE에서 생성하는 파일이나 프레임워크에서 생성하는 추적이 필요없는 파일들은 뭐가 있는지 잘 모른다. 이럴 때 gitignore.io라는 서비스를 이용하면 유용하다. gitignore.io 링크 : https://www.gitignore.io/ gitignore.io는 사용하는 언어, IDE, 운영체제 등을 입력하면 자동으로 gitignore 파일을 생성해주는 서비스이다. 프로젝트에서 사..
2020.05.06 -
[Django] 배포 - WSGI
WSGI(Web Server Gateway Interface) 파이썬에서 웹서버와 웹앱이 통신하기 위한 인터페이스로 웹서버와 웹앱이 어떻게 통신할 것인가에 대한 규약으로 파이썬에서 표준으로 사용된다. WSGI 리퀘스트를 처리하려면 WSGI 서버에서 환경정보와 콜백함수를 앱에 제공해야 한다. 웹앱은 그 요청을 처리하고 콜백함수를 통해 서버에 응답한다. 순서 요청 -> 웹서버 -> WSGI 서버(middleware 라고도 한다) -> WSGI를 지원하는 웹앱(Django, flask 등) WSGI 서버(middleware) WSGI 서버는 장고에서 일차적으로 사용하는 Deployment 플랫폼인데, 일반적으로 많이 사용되는 WSGI 서버로는 uWSGI, Gunicorn과 Apache/mod_wsgi 등이 있..
2020.05.05 -
[Zappa] zappa-django-utils를 이용한 stage별 유저만들기 create_admin_user
Default Admin User 생성 뒤에 인자를 전달하지 않고 zappa manage dev create_admin_user 만 입력하면 default user (admin)이 만들어진다. $ zappa manage dev create_admin_user (python-dateutil 2.8.0 (/var/runtime), Requirement.parse('python-dateutil
2020.04.20 -
의식의 흐름대로 정리한 HTTP, REST
#HTTP HTTP란 Hyper Text Transfer Protocol 하이퍼텍스트를 전송하는 규약 ##하이퍼텍스트 텍스트를 초월 문서의 연결성 + 서식 넣을 수 있음 (a태그같은 마크업랭귀지) ##텍스트 는 문자 ##하이퍼링크 연결성 문서와 문서 연결 #Transfer Protocol ##Transfer 전송 ##이메일은 SMTP Simple Mail Transfer Protocl 이메일 전송 규약 ##이메일 특징 발신자 수신자 제목 내용 잘 주고받을라고 규약 만듦 ##HTTP 프로토콜 이메일은 개인과 개인임 어쨌든 내가 1000명한테 보내고 싶으면 1000명한테 메일써야함... 무리무리 서버에 띄워놓고 알아서 가져가게 하면 좋겠음 그래서 만든거. 배포자는 1명이지만 받는사람은 여럿 내가 주소를 열면..
2020.04.02