본문 바로가기

전체 글87

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.
5. SQL문 튜닝 연습-(2) 1. 인덱스를 걸었는데도 인덱스가 작동하지 않는 경우 - 1(id,name,age 컬럼 테이블에 name에 인덱스 걸고, 100만개의 더미 데이터 있는경우)EXPLAIN SELECT * FROM users ORDER BY name DESC;빨간부분 밑에는 인덱스 생성 안하고 조회, 위에부분은 name에 인덱스 생성후 조회한건데 차이 안나고 같다.  📌 왜 인덱스를 무시하고 풀 테이블 스캔할까?이유:→ 옵티마이저가 인덱스를 사용하는 것이 오히려 비효율적이라고 판단했기 때문즉, 넓은 범위의 데이터를 조회할 때는 인덱스를 활용하는 것이 비효율적이라고 판단한다. 인덱스를 활용하지 않고 풀 테이블 스캔으로 데이터를 찾을 때 훨씬 효율적이라고 판단한다.굳이 인덱스를 거쳤다가 각 원래 테이블의 데이터를 일일이 하나.. 2025. 3. 18.
4. SQL문 튜닝 연습-(1) 1. 한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기(id, name, age 컬럼으로 구성된 테이블이며, 인덱스 설정 안하고, 100만 개의 더미 데이터가 존재하는 상황)SELECT * FROM users;100만개의 모든 데이터 조회시 대략 500~600ms SELECT * FROM users LIMIT 10;이번엔 10개의 데이터 조회(LIMIT 10) 해보니 대략 20ms 왜 데이터 개수 줄이는 게 중요할까?실제 페이스북, 인스타그램 같은 서비스들을 보면,한 번에 모든 게시글 데이터를 불러오지 않는다.사용자가 스크롤할 때마다 필요한 데이터만 조금씩 불러오는 방식을 쓴다.다른 커뮤니티 서비스들에서도 페이지네이션을 적용해, 일부 데이터만 조회하려고 한다.이는 이유가 분명하다.→ 조회하는 데이터.. 2025. 3. 17.