시작102 GitHub Actions에서 Docker Build 캐싱 적용하기 자동 배포를 위해 GitHub Actions를 사용했지만, 전체 빌드 시간이 길어지는 문제가 있었다.특히 "RUN pip install -r requirements.txt" 명령어에서 매번 의존성 패키지를 새로 설치하면서 시간이 많이 소요됐다.이를 개선하기 위해 캐시를 활용하여 변경 사항이 없을 경우 이전 빌드의 결과를 재사용하도록 설정했고, 이를 통해 빌드 속도를 크게 줄일 수 있었다.BuildKit을 활용한 Docker Build 캐싱기존의 Docker 빌드는 모든 단계의 레이어를 매번 새로 생성하기 때문에 빌드 시간이 길어질 수밖에 없었다. 이를 해결하기 위해 Docker 팀이 도입한 BuildKit은 변경된 단계 이후만 재빌드하는 방식으로 효율성을 높인다.이제 BuildKit을 활용하면 Docke.. 2025. 4. 14. Docker와 GitHub Actions로 구축하는 CI/CD (2): 자동배포(CD) 자동 배포를 구현하는 방법에는 여러 가지가 있다. 그중에서 두 가지 방식을 모두 구현해 보려고 한다.배포 방식 비교1. 코드 기반 배포main 브런치에 push → test → 인스턴스에서 pull → Docker compose 실행2. 이미지 기반 배포main 브런치에 push → test → Docker hub에 이미지 푸시 → 인스턴스에서 pull 후 실행현재 Oracle Cloud 인스턴스를 사용할 예정이므로, GitHub Actions에서 해당 서버에 SSH 접속이 가능하도록 SSH 키 설정이 필요하다.SSH 키 설정1. SSH 키 페어 생성Oracle 인스턴스에서 SSH 키를 생성한다.chmod 600 ~/.ssh/authorized_keys2. 공개키 등록.cat ~/.ssh/id_ed255.. 2025. 4. 13. Docker와 GitHub Actions로 구축하는 CI/CD (1) : 지속 통합(CI) 기존에는 코드 수정 시마다 직접 클라우드 인스턴스에 접속하여 수동으로 코드를 업데이트해야 했기 때문에 배포에 번거로움이 있었다. 이러한 과정을 자동화하고, 보다 빠르고 안정적인 배포를 위해 CI/CD 파이프라인을 도입하게 되었다.CI/CDCI(Continuous Integration) 지속 통합지속적 통합은 개발자가 변경한 코드를 주기적으로 통합하고, 이를 자동으로 테스트하는 프로세스이다.CD(Continuous Deployment / Continuous Delivery) 지속적 배포지속적으로 통합된 코드를 자동으로 프로덕션 환경에 배포하는 프로세스이다. 예전에 docker를 학습하며 CI/CD를 이미 공부한 경험이 있어 이론 내용은 생략했다. https://byeongtil.tistory.com/88.. 2025. 4. 11. AI 모델 비교하기 GPT, Deepseek, Mistralai AI 모델 선택하기적합한 AI 모델 선택교수안 제작을 위해 적합한 AI 모델을 적용해야 했으며, 원하는 답변을 얻기위해 AI를 학습시킬 필요가 있었다. Deepseek과 Mistralai를 검토했지만, 한국어 지원이 부족한 부분이 있었고, 로컬 환경에서의 성능과 학습 시간 등을 고려했을 때 적합하지 않았다.이에 따라 로컬환경의 제약 없이 파인튜닝이 가능한 OpenAI를 선택하게 되었다.AI 모델 선택 비교 표모델 이름 한국어 지원 성능 로컬 환경에서의 성능 적합성skt/kogpt2-base-v2탁월한 한국어 지원다소 느림 (GPU 필요)질문 응답, 문장 완성, 챗봇 등에 적합하지만 교수안 제작에는 미흡mistralai/Mistral-7B-Instruct-v0.3영어 지원에 최적화로컬 환경에서 비효율적 (.. 2025. 4. 4. 맥북 오라클 데이터베이스 연결 + Docker 기존에 프로젝트를 진행하며 오라클 데이터베이스를 사용하려 했지만 연결에 실패했었다. 로컬환경에서 오라클 데이터베이스 연결을 진행해 보려고 한다. 문제 맥북에서 Docker를 이용해 gvenzl/oracle-xe 이미지를 실행시 다음과 같은 오류가 발생했다.WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested해결 방법: Colima 사용맥북에서는 공식적으로 오라클이 지원되지 않는다.따라서 Colima를 사용해 x86_64 환경에서 실행하면 정상적으로 사용할 수 있다.Colima란?Colima.. 2025. 3. 17. FastAPI와 Django 비교 테스트 공모전 프로젝트에서 백엔드 서버는 Django / Flask / Fast API 중에서 하나를 선택해서 사용을 해야 했다.처음에는 Django를 사용하려 했다. 기존에 자주 사용해 익숙하고 빠르게 구현할 자신이 있었기 때문이다. 하지만 AI 응답 서비스에서는 빠른 응답 속도와 동시 작업 처리 능력이 핵심이라고 판단했다. 이에 따라 Django와 FastAPI의 성능을 비교한 후 선택하기로 했다. FastAPI 코드 작성Fastapi 설치pip install fastapiUvicorn 설치 pip install uvicornFastAPI를 실행하려면 비동기 호출을 지원하는 Python 웹 서버인 Uvicorn이 필요하므로 함께 설치했다. main.py 파일 생성 및 코드 작성from fastapi impo.. 2025. 3. 13. MySQL과 Docker를 활용한 오라클 클라우드 연결 데이터베이스를 인스턴스 환경에 띄우고 로컬에서 접속하는 방법을 정리하려고 합니다.인스턴스 환경에서 MySQL을 직접 설치해 사용하는 방법도 있지만, 도커를 활용하는 방법이 더 간편하고 효율적입니다.하지만 도커 컨테이너를 사용할 경우, 데이터를 외부에 저장하도록 볼륨(Volume) 설정을 해야 합니다. 이번에는 연결 과정에 초점을 맞춰 정리해 보겠습니다.환경오라클 클라우드 인스턴스Docker이미지 다운로드1. 이미지 다운로드docker pull mysql2. 이미지 확인docker images도커를 통해 MySQL 이미지를 다운로드합니다. 버전을 명시하지 않으면 최신 버전이 다운로드됩니다.MySQL 컨테이너 실행 1. 컨테이너 실행 docker run --name mysql-container -e MYS.. 2025. 2. 26. React@19 프로젝트 시작 문제 공모전 프로젝트에서 프런트엔드를 React로 개발하기 위해 설치를 진행했는데, 의존성 문제로 오류가 발생했다.문제 Installing template dependencies using npm...code ERESOLVEERESOLVE unable to resolve dependency treeWhile resolving: my-app@0.1.0Found: react@19.0.0node_modules/reactreact@"^19.0.0" from the root projectCould not resolve dependency:peer react@"^18.0.0" from @testing-library/react@13.4.0node_modules/@testing-library/react@testing-li.. 2025. 2. 5. 데이터분석 이해 : Pandas 기초 새로운 프로젝트를 시작하면서 머신러닝 기능을 구현해야 했습니다. 정확한 결과를 도출하기 위해 데이터 분석과 가공이 필수적이었고, 이를 위해 데이터 분석 기초와 Pandas 사용법을 정리했다. '혼자 공부하는 데이터분석 with 파이썬'과 코랩을 사용해서 공부했습니다. 데이터분석 유용한 정보를 발견하고 결론을 유추하거나, 의사 결정을 돕기 위해 데이터를 조사, 정제, 변환, 모델링하는 과정으로 비즈니스 결정을 과학적으로 내리기 위한 도구로 사용된다. CSV 한 줄이 레코드이며, 콤마(,)로 구분된 텍스트 파일이다. CSV 파일 읽기 한글로 된 CSV파일일 경우 글자가 깨져서 나오는 경우가 있다. 이 경우는 인코딩이 비트값으로 16진수로 되어 있어 발생하는 문제이다.해당 파일의 인코딩 형식을 확인하.. 2025. 1. 23. 이전 1 2 3 4 ··· 12 다음