전체 글91 [Github] Github Action 으로 CI / CD 적용하기 현재 프로젝트는 AWS EC2에서 배포중이며, 변경 사항 발생 시 SSH로 접속, Git pull 로 변경사항을 적용한 후 docker compose 파일을 실행하는 방식으로 반영하고 있다. 이 과정을 몇 번 하다보니, 해당 작업이 번거롭게 느껴져서 github 레포지토리에 push 되면 서비스 중인 서버에서 변경사항을 받아서 이를 적용하는 작업을 알아보게 되었다. 인터넷을 검색해보면, 보통 CI / CD를 docker hub를 통해 구현한 것을 많이 볼 수 있었는데, 그 방법은 나중에 적용하고, 연습 겸 원래 구상했던 방법으로 구현해 보기로 했다. 먼저, EC2 서버에 github 레포지토리가 연결되어 있어야 해당 작업이 가능한데, 내 경우에는, 처음 서비스를 배포할 때 git clone을 진행했으므로.. 2024. 3. 11. [Docker] FastAPI 프로젝트 Docker Bulid 하기 FastAPI로 만든 백엔드 어플리케이션을 만들었다. 완성 까지는 아니지만 주변 사람들에게 이용을 권유 해 보고, 사용자 경험을 토대로 더 수정해 나가고자 현재 단계에서 배포하기로 했다. 배포를 하기 위해서는 다양한 경로와 방법이 있지만 이번 프로젝트는 AWS Elastic Beanstalk 에서 Docker 를 통해 배포해 보기로 했다. Docker를 통한 배포 방법은 이전에 한 번 경험해 본 적이 있지만 조금 오래 되었기도 했고, 프로젝트 코드를 그대로 배포하는 것과 비교했을 때 설치 버전에 의한 에러 발생 가능성이 낮아 해당 방법을 다시 한 번 사용해 보기로 했다. 1. Dockerfile 생성 /backend .venv requirement.txt Dockerfile # 신규 생성 ㄴ app ㄴ .. 2024. 2. 17. [FastAPI] File Upload 구현하기 클라이언트로부터 request body를 통해 요청한 데이터를 받아서 처리할 수 있다. 이를 위한 프론트엔드 코드 예시는 아래와 같다. import axios from "axios"; const Request = async() => { const postData = { name: name, age: age }; const response = await axios.post("API END-POINT", {...postData}, { headers: { "Content-Type": "application/json" } }); return response.data } 서버에서는 각 항목을 받고, 데이터를 처리 해야하는데 그 전에 요청받은 데이터가 처리하기 위한 규칙에 맞게 들어왔는지 확인하는 작업이 필요하다... 2024. 2. 14. [FastAPI] MongoDB Error - Type Error FastAPI 를 활용해서 아래와 같이 데이터를 넣는 도중 MongoDB에 데이터를 넣는 중 에러가 발생했다. @router.post("/") def request_regist(Create_Request: Create_Request): year, month, day = map(int, Create_Request.dead_line.split(".")) request_data = { "request_date": datetime.datetime.now() } db.tech.insert_one(request_data) return requset_data TypeError: 'ObjectId' object is not iterable 오류로 인해 DB에 데이터가 삽입되지 않았을 것으로 예상했는데, DB에는 정상적.. 2024. 2. 6. [Python] Selenuim 스크롤 조작하기 Python 으로 크롤링을 진행할 때, 간혹 스크롤의 존재로 인해 원하는 정보 모두를 크롤링 하기 어려울 떄가 있다. 예를 들면, 페이지 첫 화면에서 모든 정보를 랜더링 하지 않고, 스크롤을 아래로 내림으로써 추가적으로 컨텐츠를 불러오는 페이지가 있다. 이 때 전체 페이지 요소를 확인하기 위해서는 스크롤이 더 이상 내려가지 않을 때 까지 내리는 작업이 필요하다. from selenium import webdriver browser = webdriver.Chrome() browser.get(url) # 크롤링 하기 위한 url 입력 # 현재 스크롤 위치를 저장 last_height = browser.execute_script("return Math.max( document.body.scrollHeight,.. 2024. 2. 1. [FastAPI] AWS DB - MySQL 연결하기 https://fastapi.tiangolo.com/tutorial/sql-databases/#create-the-relationships SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 처음에는 하나의 DB (MongoDB)를 사용하여 작업을 하고자 구상했지만 연결된 데이터 관리와 관계형 데이터베이스 사용 경험을 위해 AWS에서 DB를 하나 생성했다. 가장 먼저, SQL 사용을 위한 패키지를 설치한다. python3 -m pip install sqlalchemy 초기 설정은 가이드 문서 그대로 .. 2023. 12. 20. 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음