만들게 된 계기 장고에서는 기본적으로 모델 필드에서 사용할 수 있는 enum은 choice 라는 것이 있다. 하지만 필자가 다양한 프레임워크를 사용하면서 느낀 가장 불편한 점은 다음과 같다. IDE에서 제공해주는 hint들을 사용할 수 없다. (Python에서도 Enum이 존재하는 데 이 때 '.'을 찍으면 해당 Enum에 존재하는 값들에 대한 힌트들을 얻을 수 있는데 TextChoice의 경우에는 튜플로 되어 있어서 이러한 힌트들을 사용할 수 없다.) 명시적이지 않다. (밑의 글을 읽어보면 제가 만든 EnumField가 TextChoice Field 보다 더 보기 좋다는 것을 느낄 것이다.) 사용하기 더 편하다. 구현 방법 from django.db.models import CharField class..
HTTP GET 캐시 기능?! https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/GET 어느날 한 번 http에 대해서 공부해야겠다고 생각하고 하다가 캐시 가능이라는 것이 눈에 띄었다. 오?! 뭐지 캐시가 된다고 ?!! 그래서 눌러서 자세히 한 번 봤다. 응답에 대해서 캐시가 가능하다는 것이다. 다음 요청에 대한 응답 값으로 해당 캐시 값으로 대체한다는 것이다. 여기에서 나는 두개의 의문점을 가졌다. 1. 디테일 정보에 대해서도 각 아이디에 대해서 캐시를 할까? 2. 그럼 디비를 진짜 들르지 않고 가져올까? 그래서 정말 간단한 세팅으로 준비해봤다.(저는 아무래도 장고가 편해서 장고로 프로젝트를 구성했습니다.) 모델 class Memo(models.Model..
회사업무를 하면서 celery 작업 중 날짜로 argument를 받는 작업이 많다. 근데 여기서 귀찮은 점은 기본 celery serializer가 json으로 되어 있어서 이를 받았을 때 다시 변환하는 작업을 해줘야 하는데 이 과정에서 휴먼 에러가 너무 발생한 것을 많이 느낀 나는 python 객체로 그냥 넘기는 방법이 뭐가 있을까? 하고 고민을 하게 되었습니다. https://docs.celeryproject.org/projects/kombu/en/stable/userguide/serialization.html Serialization — Kombu 5.2.2 documentation This document is for Kombu's development version, which can be si..
이 주제에 대해서 알아보게 된 것은 최근 제가 다니고 있는 회사에서 하나의 DB로 데이터들을 처리할려고 하니 이에 대한 해결책이 뭐가 있을 까 하고 고민을 해봤습니다. 처음에 내가 생각한 것은 다음과 같습니다. 1. MSA (MIcro Soft Arhitecture) : 마 ~ 우리가 자존심이 있지 쪼개보자!! 2. DB 분산 작업: 기존 애플리케이션 내부 DB를 나누게 되면 이에 대한 쓰기 작업을 분산 시킬 수 있지 않을까? 1번은 우리 회사에서 하기에는 인원도 부족하고, 장기적으로 바라보는 작업이기에 현실적으로 바로 접근하기에는 문 턱이 높기 때문에 저는 2번을 먼저 해보는 게 좋지 않을까 해서 조사하게 되었습니다. 제가 찾아본 공식문서는 다음과 같습니다. https://docs.djangoproje..
Serializers을 왜 쓸까? 클라이언트와 서버간 통신에서 데이터 타입은 참 다양합니다. 대표적으로는 json이 있고, 그 이외에도 xml, yml 등 다양한 데이터 타입이 있습니다. Serializers는 이러한 데이터들을 파이썬 환경에 맞게 바꾸거나 클라이언트에 맞게 보내는 역할을 합니다. 이 때 Serializer는 클라이언트에게 보내는 작업을 합니다.( 자세히 말하자면 Serializers.py는 serializer 과 deserializer 둘 다 작업을 합니다. 그 중 serializer를 설명하겠습니다.) 공식 문서를 보면 다음과 같이 설명되어 있습니다. Serializing objects(클라이언트에게 보낼 때) Serializer는 우리가 Django 에서 사용하는 파이썬 객체나 qu..
@action decorators drf의 modelviewset을 쓰면서 해당 기본 기능 말고도 더 많은 기능들을 넣고 싶을 때 쓰면 유용한 데코레이터이다 . 하나의 예제를 보여주겠습니다. (아주 간단한 예시 입니다 . ㅎㅎ) models.py from django.db import models class Memo(models.Model): content = models.TextField() title = models.CharField(max_length=20) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) objects = models.Manager() def __s..
1. 가상환경 설정 및 장고 설치 #가상환경 설정 python3 -m venv venv #가상환경 ON source ./venv/bin/activate #django 설치 pip install django #프로젝트 설치 django-admin startproject batch . 도커환경에 맞게 구현하기 위해 해당 디렉터리 구조를 변경하였다. 2. django settings.py #장고 프로젝트 내의 시간을 한국 시간으로 설정 LANGUAGE_CODE = 'ko' TIME_ZONE = 'Asia/Seoul' USE_I18N = True USE_L10N = True USE_TZ = True # celery와 관련된 환경설정 CELERY_BROKER_URL = 'redis://redis:6379/0' C..
- Total
- Today
- Yesterday
- PostgreSQL
- 백준
- Python
- BFS
- DRF
- Spring
- django
- Command Line
- docker
- 자바
- env
- 카카오
- Java
- headers
- postgres
- 그래프
- Collections
- Celery
- dockerignore
- docker-compose
- 2021 KAKAO BLIND RECRUITMENT
- Linux
- 프로그래머스
- ubuntu
- 파이썬
- 면접
- 알고리즘
- Pattern
- thread
- setattr
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |