본문 바로가기

[Python]/[Flask & Django]

(8)
[Celery] Side-Project(Ant Platform) - 6. High-scale chat server on Cloud Run [ 일단 지난주 캐치업 ] 지난주에 socket기반 간단한 통신프로그램을 만들었고, 이제는 Redis와 Cloud-run을 이용해서 scale-out이 가능한 형태의 아키텍처로 만들어봐야겠다 생각하고 있었다. 사실 쿠버네티스를 적용시키기에는 공부할게 좀 많아보여서 cloud-run을 사용하게된 것인데 구체적으로 어떻게 만드는 게 좋을지는 계속해서 고민하게 되는 부분이였다. [Celery] Side-Project(Ant Platform) - 5. Chat server, Socket.io [ 일단 회고.. 데이터 언제 쌓아보냐고! ] 한국어 데이터 수집을 목표로 한 사이드 프로젝트를 계속 진행중이다. 지금까지는 간단한 notification-server와 함께, 비동기 처리를 위한 celery, 메세지 큐로..
[Celery] Side-Project(Ant Platform) - 5. Chat server, Socket.io [ 일단 회고.. 데이터 언제 쌓아보냐고! ] 한국어 데이터 수집을 목표로 한 사이드 프로젝트를 계속 진행중이다. 지금까지는 간단한 notification-server와 함께, 비동기 처리를 위한 celery, 메세지 큐로 RabbitMQ와 Redis, 부하테스트 툴로 locust를 활용해 왔다. 이후로는 chatting server를 scale-out 가능한 형태로 만들려고 한다(유저 1만명 이상의 데이터를 수집 가능하도록...!!) [ 앞으로 방향 ] 여러가지 참고할 문서들이 있다. 일단 GKE (google kubernetes engine)위에서 돌아가는 Cloud Run을 사용할 것이다. Serverless이고, 무엇보다 k8s에 대한 공부가 아직 부족해서 직접 쿠버네티스로 아키텍쳐를 구성하기 전..
[Celery] Side-Project(Ant Platform) - 4. Celery Logs, Flower Dashboard [ Celery Logs ] 이번엔 Celery를 통해 로그를 남겨보도록 하겠다. 1. docker-compose.yml파일을 열고 내부에 로그 관련 설정들을 추가해 준다. version: "3.8" services: web: build: . image: web container_name: web ports: - 5004:5000 command: python manage.py run -h 0.0.0.0 volumes: - .:/usr/src/app environment: - FLASK_DEBUG=1 - APP_SETTINGS=project.server.config.DevelopmentConfig - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACK..
[Celery] Side-Project(Ant Platform) - 3. Flask에서 Celery로 비동기작업 수행하기(프로젝트 구조+Celery동작) [ 프로젝트 동작 구조 ] 1. Trigger Task : 먼저 Task가 home.html에서 handleClick함수로 인해 트리거된다. (이 handleClick은 그 아래 _base.html의 script에 의해 main.js로 간다. ) 2. AJAX part : main.js에서 handleClick함수에 type이 전달되고, server로 AJAX POST를 보내게 된다. # main.js 중에서... function handleClick(type) { fetch('/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ type: type }), }) .then(respo..
[Celery] Side-Project(Ant Platform) - 2. Flask에서 Celery로 비동기작업 수행하기(실습환경 구축) [ 이게... 확실히 포스팅 한번엔 안끝나겠네...] 외국 유툽이나 강좌를 찾아봐도, 보통 Celery를 Django랑은 많이 연결해서 쓰는데, Flask에 적용시킨 예제는 없어서 난감했다;; 어짜피 전체적인 로직은 똑같아 그냥 쓰면 될것 같으면서도, 배움이 짧은 탓에 더 좋은 적용방식을 알고 싶었기 때문이다. 그러다가 좋은 실습하나를 발견해서 처음부터 끝까지 뜯어보면서 공부하기로 했다. 지난 포스팅 : buildabetterworld.tistory.com/139 [Celery] Side-Project(Ant Platform) - 1. Celery를 사용해 보자! 이전 포스팅 : Cloud-Monitoring으로 VM인스턴스 로그 분석하기 buildabetterworld.tistory.com/124?ca..
[Celery] Side-Project(Ant Platform) - 1. Celery + RabbitMQ 간단실습 이전 포스팅 : Cloud-Monitoring으로 VM인스턴스 로그 분석하기 buildabetterworld.tistory.com/124?category=859595 [GCP] Cloud Monitoring 로 VM 인스턴스 로그 수집하기 - 2. 부하테스트(Locust) [ 부하테스트 ] 다음은 지정한 URL로 부하테스트를 해보려고 한다. 사용할 툴은 바로 Locust! Python으로 스트립트를 작성하기도 하고, 또 사용하기 쉽다고 해서 바로 써보기로 했다. 정식 document는 다 buildabetterworld.tistory.com 이전 포스팅에 이어서, 이번에는 팀원들과 사이드 프로젝트로 진행중인 플랫폼의 Notification + Chatting server에 들어갈 Celery에 대해 포스..
[Django] AWS EC2에 DRF(Django-Rest-Framework) Server 배포 github.com/Seungyeup/PNU_SGM Seungyeup/PNU_SGM 접근성이 높은 개방형 투자 플랫폼 '맥스턴'을 제작하여, 개인 투자자의 자기주도적 투자 전략 수립을 돕는 것이 목표입니다. 플랫폼 자체 커뮤니티의 활용으로 개인 투자자들의 투자 문화를 성 github.com 지난 두달간 팀원들과 협력해서 만들기 시작한 프로젝트가 이제 거의 끝을 향해 달려가고 있다. 관련 자료들을 정리하고, 포스팅하기에 앞서 이번에 개발한 DRF-server와 Next.js server를 AWS EC2에 배포한 내용을 정리하고자 한다. AWS의 다양한 프로덕트들을 실제로 사용한 것은 아니다. 데이터베이스 마저도 MongoDB Atlas를 사용하면서 클라우드 상에 따로 데이터베이스를..
[Django-Rest-Framwork] Postman에서 csrftoken 자동화하기 빈둥거리며 살다가 이제야 정신을 차리고, 다시 하던것들을 조금씩 정리하고 기록으로 남기기로 했다. 학교에서 진행하는 해커톤을 준비하면서 Django-Rest-Framwork로 간단한 rest-api서버를 만들었고 이는 다음과 같다. 하지만 내 고민은 이를 테스트하기 위한 환경이였다. 물론 해당 url를 찍어 들어가면 문제는 없었지만, json 방식의 응답에 api요청들이 잘 처리되는지 확인할 필요가 있었다. 그래서 찾아낸 방법이 postman이다. www.postman.com Postman | The Collaboration Platform for API Development Simplify each step of building an API and streamline collaboration so yo..