분류 전체보기115 UV: 프로젝트 라이브러리 관리 uv 사용법 🚀 uv 사용법 간단 정리1. 가상환경 해제기존에 활성화된 .venv 가상환경이 있다면 deactivate 명령어로 비활성화합니다.Bash deactivate2. uv 초기 설정uv init 명령어를 실행하면 프로젝트 기본 파일들이 생성됩니다..gitignore.python-versionmain.pypyproject.tomlREADME.md이후 **uv run python**을 실행하면 .venv 가상환경 폴더와 uv.lock 파일이 생성되며 가상환경이 구축됩니다.3. 파이썬 버전 변경 버전 관리 🔧.python-version 파일에 원하는 파이썬 버전을 수정합니다. (예: 3.11 -> 3.12)# .python-version 파일 내용3.12수정 후 **uv run python**을 다시 실행하면.. 2025. 9. 11. 3. 일반 프로젝트에 CI/CD 구축법(깃허브 액션에서 빌드/테스트) 1. 역할 분담: 일하는 곳(GitHub Runner)과 보여주는 곳(EC2)가장 먼저 이해해야 할 핵심 개념은 역할의 분리입니다.이전 방식 (EC2에서 빌드): EC2 서버가 **빌드/테스트(일하는 곳)**와 서비스 운영(보여주는 곳) 역할을 모두 담당했습니다. 이는 가게 주방과 손님 테이블이 합쳐진 것과 같아서, 요리(빌드) 중에 가게가 어수선해지거나(서버 성능 저하) 문제가 생길 수 있습니다.표준 방식 (GitHub Actions에서 빌드): GitHub Actions가 제공하는 가상 머신(GitHub Runner)이 **빌드/테스트(일하는 곳)**를 전담합니다. EC2 서버는 Runner가 완성한 결과물(음식)을 받아 **서비스 운영(보여주는 곳)**에만 집중합니다. 주방과 홀이 완벽히 분리되어 .. 2025. 9. 3. 2. 개인 프로젝트에 CI/CD 구축법(EC2에서 빌드/테스트) 1.개인 프로젝트를 위한 초간단 CI/CD 파이프라인 (GitHub Actions + EC2)이 방법의 핵심 흐름은 매우 간단합니다.git push → GitHub Actions가 푸시 감지 → EC2에 SSH 원격 접속 → git pull 실행 및 서버 재시작GitHub Actions가 직접 EC2 서버에 접속해서 최신 코드를 받아오게 하는 방식입니다. 이 방식의 장점과 단점은 명확합니다.👍 장점🚀 빠른 배포 속도: 전체 프로젝트를 압축해서 전달하는 방식이 아닙니다. git pull을 활용해 변경된 코드만 업데이트하므로 배포 속도가 매우 빠릅니다.⚙️ 간단한 인프라 구조: CI/CD를 위해 필요한 도구는 GitHub Actions 하나뿐입니다. 별도의 Jenkins 서버 등을 구축할 필요가 없어 구.. 2025. 9. 3. 1. CI/CD의 개념,기본 문법 1. CI/CD, 개발자의 반복 작업을 자동화하는 필수 스킬프로젝트에 새로운 기능을 추가하거나 버그를 수정할 때마다 이런 과정을 반복하고 계신가요?수정된 코드를 git push 한다.실제 서비스가 운영되는 서버에 직접 접속한다.최신 코드를 git pull 받는다.필요하다면 프로젝트를 다시 빌드한다.서버를 재시작한다.코드 수정이 잦을수록 이 과정은 점점 더 귀찮고 번거로운 작업이 됩니다. 바로 이런 반복적인 배포 과정을 자동화하기 위해 우리는 CI/CD를 배웁니다.CI/CD를 도입하면, 개발자가 특정 브랜치에 코드를 push하는 것만으로 빌드, 테스트, 배포의 모든 과정이 자동으로 실행되도록 파이프라인을 구축할 수 있습니다. 이를 통해 개발자는 코드에만 집중할 수 있고, 수동 배포 과정에서 발생할 수 있는.. 2025. 9. 3. FFMPEG 윈도우 설치 방법 먼저 공식 사이트 들어가서 순서대로 하고 다운로드 받는다.https://www.ffmpeg.org/ 이후 원하는 위치에 압축을 풀고 bin 의 경로를 복사한다. 시스템 환경 변수 편집 검색후 들어가서 환경변수 클릭후 편집을 누른다. 이후 새로 만들기 클릭후 아까 ffmpeg의 bin 경로 복사한거 넣어주면 된다. 2025. 2. 6. Flask에서 celery이용한 비동기 처리 실습 이전에는 간단한 예시로해서 백그라운드 작업중 DB 사용 이런게 없어서 컨텍스트 개념 사용 안하니 문제없었다.그러나 이제 실제 API에 적용해보려면 컨텍스트에 설정된 DB 객체등 가져다 사용해야해서 문제들이 일어났다.1. Flask vs Celery 컨텍스트일단 컨텍스트는 애플리케이션이 요청을 처리하는 동안 현재 작업과 관련된 데이터(예: 설정, 데이터베이스 연결, 사용자 정보 등)를 저장하고 관리하는 공간이다. Flask는 요청 들어오면 자체 컨텍스트를 생성하고 응답하면 컨텍스트가 사라지니, Celery는 Flask와는 별도로 Celery 전용 프로세스에서 백그라운드 작업을 처리하니 Celery 작업에서도 Celery 전용 컨텍스트가 필요하다. 즉,별도의 프로세스에서 celery가 작업하니 Flask의.. 2025. 1. 13. Flask에서 celery+redis 이용한 비동기 처리 일단 원본 영상을 설정한 단위로 분리하고 저장하는 API가 있는데 영상의 크기가 클수록 오래 걸리니 생각나서 해보는거다.Celery는 Python으로 작성된 비동기 작업 큐 이기 때문에 Flask와 같은 Python Web Framework에 붙여서 사용하기 수월하다.Celery의 구성 Celery 예제Celery Workers인 celery를 설치하고 Message Broker역활인 redis를 설치pip install celerypip install redis 이제 Celery는 flask와 별도의 프로세스 생성후 그거로 백그라운드 작업해야해서, Celery worker 프로세스를 따로 생성하도록하는 설정 코드 작성한다.# Celery 설정app.config.update( CELERY_BROK.. 2025. 1. 10. 파이썬 비동기 프로그래밍 asyncio 클라-서버간의 통신 비동기 말고 서버 성능을 위한 비동기인 파이썬의 asyncio 라이브러리를 사용해서 비동기 프로그래밍을 하는 방법에 대해 정리해 보겠다asyncio는 단일 스레드에서 여러 작업을 동시에 처리하는 것처럼 보이게 해서, I/O 바운드 작업의 성능을 크게 향상시킬 수 있는 도구다.동기 vs. 비동기 예시동기식 프로그래밍은 한 명의 요리사가 한 번에 하나의 요리만 하는 레스토랑. 손님이 스테이크 주문하면, 요리사는 스테이크 다 구워질 때까지 아무것도 안 하고 멀뚱멀뚱. 다음 손님 파스타는 스테이크 다 만든 다음에야 시작.비동기식 프로그래밍은 한 명의 짱짱 요리사가 여러 요리를 동시에 하는 레스토랑. 스테이크 굽기 시작하고, 기다리지 않고 바로 파스타 면 삶기 시작. 면 삶는 동안 샐러드도 만.. 2025. 1. 8. Python Ray 라이브러리 (병렬처리) 1.병렬처리 이전의 방법 multiprocessing에 대해multiprocessing의 라이브러리 경우 프로세스 스포닝(Process Spawning)을 지원하여 자원 내에서 사용 가능한 다중 프로세서를 활용 가능하게 하고 생성한 프로세스 풀을 제어하는 프로세스 풀 객체(pool)을 통해 병렬 처리를 한다. [프로세스 스포닝: 부모 프로세스가 운영 체제에 요청하여 자식 프로세스를 생성하는 과정]그러나 multiprocessing는 자식 프로세스한테 작업해야하는 큰 데이터를 전달할때 pickle을 사용해 직렬화(데이터를 바이트로 변환)한 뒤 전달한다.만약 20개 프로세스에서 작업하도록 설정했다면 그 만큼 직렬화한 데이터 복사본을 만들어야 하므로 큰 메모리 사용하고,직렬화 데이터 받은 프로세스는 원래 .. 2025. 1. 7. 이전 1 2 3 4 ··· 13 다음