본문 바로가기

[Python]

(10)
[AWS S3] FastAPI - S3 Image upload [Amazon Simple Storage Service(Amazon S3)] Amazon S3이란 무엇인가요? - Amazon Simple Storage Service HTTP를 통한 SOAP 지원은 중단되었지만 HTTPS를 통해 계속해서 사용할 수 있습니다. 새로운 Amazon S3 기능은 SOAP에 대해 지원되지 않습니다. REST API 또는 AWS SDK를 사용하는 것이 좋습니다. docs.aws.amazon.com 추천시스템을 만들면서, 대용량의 이미지 파일을 저장할 필요가 생겼다. 원래 사용하던 GCP(Google-Cloud-Platform)의 Bucket을 사용할까 생각하다가 AWS의 S3를 사용하기로 했다. 이유는? S3 써보고 싶어서! 그러면 S3가 정확하게 어떤것이고, 언제 사용하면 좋..
[FastAPI] 추천시스템 프로젝트의 시작 [프로젝트 : 사용자 텍스트 기반 이미지, 음악 추천 시스템] 이번에 새로운 추천시스템 프로젝트를 시작하기로 했다. 사용자 텍스트 기반으로 이미지, 음악 추천 시스템을 제작하는 것이 목표이다. 아마 분산처리 아키텍처와 벡엔드 서버를 구성하는 것, 그리고 전반적인 자연어처리 모델링이 내 역할이 될 것 같다. 사실 어설프게만 알지, 서비스에 직접 적용할 정도로 각각의 프로덕트를 만져본 경험은 없다. 따라서 서비스에 적용가능한 수준으로 지식을 쌓고, 결과물을 도출해 내는 것이 개인적인 목표이다. 6주간의 프로젝트를 진행하면서 얻어가고 싶은 것은 심플하다. 분산처리시스템을 직접 구축해 본다. (Hadoop, Spark, Kafka) 새롭게 각광받고 있는 Fast-API를 공부해보고 프로젝트에 적용시킨다. [시작..
[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..