일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- docker
- Coroutine
- Continuous Delivery
- CI
- QuerySet
- aws
- django
- testcase
- racecondition
- DjangoRestFramework
- to_attr
- CD
- EC2
- F객체
- Continuous Deployment
- apitestcase
- annotate
- 코루틴
- aggregate
- dry-yasg
- nestedfunction
- database
- Prefetch_related
- 백준
- Python
- DRF
- DjangoCache
- Transaction
- Git
- 도커
- Today
- Total
목록전체 글 (68)
BackEnd King KY
링크 하루 트래픽이 5배 이상 늘어난 날, 서버 개발팀의 대응 기록 후기 개발자라는 꿈을 갖게 되면서 내가 회사에 들어가면 가장 해보고 싶었던 것 중 하나는 팀 개발 블로그 작성이었다. 특히, 취업준비하며 여러 회사의 블로그를 보고 회사들의 개발문화도 볼 수 있었고 블로그가 회사 어필에 도움이 된다고 생각해서 좋은 주제로 써보고 싶었다. 또한 트래픽 증가 대응은 누구나 할 수 없는 귀중한 경험이기 때문에 나의 경험을 공유하고자, 그리고 우리 회사는 대응 능력을 갖춰 유저들이 서비스 이용에 큰 문제없게 할 수 있다는 걸 알리고 싶었다. 그리고 이번 블로그를 쓰며 라인의 신년 트래픽 대응, 네이버의 트래픽 급증 대응, 인프런 장애 회고 등을 봤는데 어느정도 인프라와 시스템을 갖춘 빅테크가 아닌 소규모 스타트..

SQLAlchemy에서 Django select_related 구현 Django의 select_related는 필요한 데이터를 SQL상에서 Join을 통해 가져오는 Eager Loading이란 특징을 가지고 있는 ORM 문법입니다. FastAPI를 하며 SQLAlchemy를 사용하고 있는데, Django의 이 기능을 SQLAlchemy에서 어떻게 구현하고 있는지 찾아보게 되었습니다. 출처는 SQLAlchemy 공식문서입니다. 티스토리로 보기 불편하실 경우, Github에서 보실 수 있습니다. joinedload SQLAlchemy 공식문서에선 아래와 같이 나와 있습니다. In the Object Relational Tutorial, we introduced the concept of Eager Loadi..

alembic에서 metadata를 왜 설정해야 할까 티스토리로 보기 불편하신 경우, Github를 통해 보실 수 있습니다. 출처는 alembic 1.9.2 공식문서 입니다. Intro 현재 회사에서 FastAPI를 이용하다 보니 sqlalchemy를 이용하고 있습니다. Django의 경우, 굳이 마이그레이션 툴을 설치하지 않아도 Django 하나만 있으면 할 수 있는데 sqlalchemy는 alembic이란 라이브러리를 이용합니다. alembic 설정 같은 건 이미 많이 나와있으니, 제가 겪은 상황에 대해 포스팅하려고 합니다. Django 마이그레이션과 alembic Django에선 python manage.py makemigrations를 입력하면 데이터베이스에 반영해주기 위한 마이그레이션 파일을 만..

티스토리로 보기 불편하실 경우 Github에서도 보실 수 있습니다. 문제 EC2 인스턴스 내에서 redis.conf 파일에 접근하기 위해 cd /etc/redis를 입력했더니 -bash: cd: redis: Permission denied 라며 접근할 수 없었다 해결 chmod 777 redis를 하니 됐다. 777 모드는 모든사용자가 쓰기, 읽기, 실행하도록 바꿀수 있어서 지양한다고 해서 다른 모드 변환을 고려해봐야 할 것 같다

psycopg2-binary 2.8.6 버전 설치 시 발생했던 에러 어떻게 이름을 써야할 지 몰라 제목을 이렇게 쓰게 되었습니다. 문제 FastAPI 프로젝트를 위해 psycopg2-binary를 설치하는데, 2.8.6 버전으로 설치하려고 하니 에러가 발생했습니다 ld: library not found for -lssl clang: error: linker command failed with exit code 1 (use -v to see invocation) error: command '/usr/bin/clang' failed with exit code 1 [end of output] note: This error originates from a subprocess, and is like..

현재 회사에서 Django -> FastAPI로 전환을 목표로 천천히 작업하고 있습니다. 저 역시 일부 기능을 FastAPI로 구현했는데, 비동기 프로그래밍이 매우 어려웠습니다. 그래서 이번엔 제가 배운 파이썬 비동기 프로그래밍에 대해 작성해보겠습니다. 티스토리로 보기 불편하실 경우, Github에서 보실 수 있습니다. 동기/비동기 우선, 동기/비동기에 대해 알아보겠습니다. 인터프리터 언어로 한 줄씩 읽으며 내려오는 파이썬 특성상 멀티 쓰레드가 되지 않습니다. 그래서 하나의 쓰레드에서 동시 처리를 할 수 있는 비동기 프로그래밍의 중요성이 커졌습니다. 그러면 동기와 비동기가 뭘까라고 생각하시는 분들이 있을텐데 가장 많이 드는 예시인 커피집 주문을 이야기 해보겠습니다. 동기는 커피 주문 후 커피가 나올 때까..

Flower 티스토리로 보기 불편하실 경우, Github에서 보실 수 있습니다. Celery Monitoring redis 포스팅에서 task queue에 대한 Flow를 간단하게 설명했었습니다. 유저 -> 서버 -> 레디스(브로커) -> 워커인데, queue에 있던 작업들이 실행되면 그걸 모니터링하는것이 필요합니다. 그 때 사용하는 Monitoring Tool이 flower 입니다. 그래서 flower를 통해 모니터링하는 순서에 대해 알아보도록 하겠습니다. 우선, flower를 설치합니다. pip install flower 설치 후 실행합니다. 프로젝트 이름은 장고 프로젝트 이름을 넣으면 되고, 기본 포트번호는 5555입니다. 포트번호를 따로 정해서 입력해도 됩니다. celery -A projectna..