Development environment 13

[FastAPI] FastAPI 개발하기4 - Request / Response 모델(Pydantic)

앞선 글에서는 엔드포인트와 라우터 구조를 정리하였다.URL, 메서드, 함수가 하나의 엔드포인트를 구성하고, 라우터를 통해 이를 구조적으로 관리할 수 있다는 점을 살펴보았다.2026.02.12 - [Development environment] - [FastAPI] FastAPI로 백엔드 개발하기 3 - 엔드포인트와 라우터 [FastAPI] FastAPI로 백엔드 개발하기 3 - 엔드포인트와 라우터앞서 FastAPI 개발하기 2편에서 CORS 개념을 정리하였다.CORS를 통해 브라우저 보안 모델을 이해했다면, 이제는 서버 내부 구조를 이해할 차례이다.2026.02.06 - [Development environment] - [FastAPI] FastAPI로 백hjjummy.tistory.com 이제 한 단..

[FastAPI] FastAPI 개발하기3 - 엔드포인트와 라우터

앞서 FastAPI 개발하기 2편에서 CORS 개념을 정리하였다.CORS를 통해 브라우저 보안 모델을 이해했다면, 이제는 서버 내부 구조를 이해할 차례이다.2026.02.06 - [Development environment] - [FastAPI] FastAPI로 백엔드 개발하기 2 - CORS 개념 및 설정 [FastAPI] FastAPI로 백엔드 개발하기 2 - CORS 개념 및 설정― CORS 개념부터 실제 설정 의미까지 정리 FastAPI로 API 서버를 만들때 반드시 마주치는 설정이 CORS이다.특히 프론트엔드(React, Vue 등)와 API 서버를 분리해서 개발할 때 CORS 설정이 없으면 브라우저hjjummy.tistory.com CORS 다음으로 반드시 마주치는 개념이 엔드포인트(endpo..

[FastAPI] FastAPI 개발하기2 - CORS 개념 및 설정

― CORS 개념부터 실제 설정 의미까지 정리 FastAPI로 API 서버를 만들때 반드시 마주치는 설정이 CORS이다.특히 프론트엔드(React, Vue 등)와 API 서버를 분리해서 개발할 때 CORS 설정이 없으면 브라우저에서 요청이 막히는 현상이 발생한다.이 글에서는 CORS가 무엇인지 → 왜 필요한지 → FastAPI에서 설정이 어떤 의미인지를 흐름대로 정리한다.1. CORS란?Cross-Origin Resource Sharing 의 약자로 👉 서로 다른 출처(origin) 간에 리소스를 공유할 수 있도록 허용하는 브라우저 보안 규칙이다. 여기서 핵심은 “브라우저 보안 정책” 이라는 점이다.CORS는 서버가 요청을 막는 기술이 아니라, 브라우저가 응답을 읽지 못하게 막는 규칙이다.2. CORS..

[FastAPI] FastAPI 개발하기 1- 환경 셋팅 및 실행명령어

최근 프로젝트를 진행하면서 검색 로직을 FastAPI 기반 API 서버로 구현하고, 이를 Docker 이미지로 만들어 서버에 띄우는 과정까지 경험하게 되었다.단순한 튜토리얼 수준이 아니라, 실제 서비스 환경을 고려한 구조 설계와 실행 방식을 기준으로 정리해두면 이후 유사한 API를 만들 때 큰 도움이 될 것이라 판단하여 이 글을 작성한다 FastAPI는 Django처럼 정해진 프로젝트 구조를 강제하지 않는다. 자유도가 대신, 프로젝트 규모가 커질수록 개발자가 직접 구조를 설계해야 한다. 그래서 개발자들마다 스타일이 작업 구조가 다양하지만 나는 코드가 그리 길지 않았고, 서비스마다 각각의 컨테이너를 띄우고 하나의 yml로 관리를 하는 방향이라 오히려 너무 폴더를 나누면 코드가 불필요하게 분산되는 느낌이 들..

[DBeaver] DBeaver 설치 및 연동하기

1. DBeaver 란?두 개 이상의 데이터 베이스를 사용하는 경우, DBeaver를 사용하면 여러 개의 데이터베이스를 연결하여 관리할 수 있다. · 장점1) 다양한 데이터베이스 지원: MySQL, Oracle, MariaDB, PostgreSQL 등2) 개발 소스를 무료로 제공하며, Windows, mac, Linux 등 다양한 플랫폼에서 실행 가능3) DB 구조를 쉽게 파악할 수 있고, SQL 편집기를 통해 쿼리 작성 및 실행 용이 2 . DBeaver 설치하기https://dbeaver.io/ 3. DBeaver 실행 및 연동하기1. 설치 후 우측 상단의 플러그 아이콘 클릭 2. 기존에 연결하고자 하는 DB 선택나는 PostgerSQL 연동하려고 선택한것이고, 각자 원하는 DB를 선택한 후, 우..

[Git] Git 커밋 메세지 규칙 + 커밋 수정하기

Git 커밋 메시지 기본 구조가장 많이 사용하는 커밋 메시지 형태는 다음과 같다. type(scope): messagetype: 커밋의 성격scope: 영향 범위 (선택)message: 무엇을 했는지 요약 Git 커밋 타입 정리 타입의미예시주로 사용되는 파일feat새로운 기능 추가또는 기존 기능을 요구사항에 맞게 확장/변경feat(chunking): 청킹 로직 기본 구조 추가*.py, *.ts, *.js, service/, api/, controller/, domain/fix버그 수정fix(chunking): 토큰 초과 청크 스킵 문제 수정기존 로직 파일, 에러 처리 코드, 조건문이 있는 핵심 모듈refactor리팩토링 (기능 변화 없음)refactor(chunking): 함수 책임 분리utils/, s..

[Git] 이미 Git에 올라간 파일 .gitignore 추가하기

GitHub에 올리고 싶지 않은 폴더가 이미 커밋되어 올라갔다면 .gitignore만 추가해선 해결되지 않는다.Git이 이미 “추적 중”인 파일을 직접 제거해줘야 한다. 방법은1. .gitignore 수정2. Git 캐시에서 제거 (git rm -r --cached)3. 실수했을 때는 git restore --staged .로 복구 가능)4. 최종 커밋 아래는 각 과정 명령어를 자세히 정리해보았다. 1. 제외할 파일 .gitignore 에 추가하기Git에게 어떤 폴더를 앞으로 무시할지 미리 알려준다. 이미 기존에 있는 .gitignore 파일에 추가하고 싶은 내용을 작성한다.# 기존__pycache__/*.pyc*.log.env# 새로 추가한 부분workspace/multi_agent/data/mult..

[Docker] streamlit+ milvus로 구성한 RAG 서비스 docker로 배포하기

최근 기업 Poc를 진행하면서 RAG 기반 질의응답 서비스를 로컬 개발 환경에서 테스트한 뒤, Ubuntu 서버 위에 Docker로 배포해 실제로 서비스화했다. 이번 글에서는 그 과정인📦 Streamlit + Milvus 기반 RAG 앱을💻 Ubuntu 서버에 Docker Compose로 배포하는 과정을처음부터 끝까지 정리했다. 본문 예시는 아래 두 파일을 기준으로 진행한다.docker-compose.ymlDockerfile⚙️ 1. 서버 준비하기✅ (1) 서버 선택먼저 RAG 서비스를 올릴 서버를 준비한다.클라우드AWS EC2, GCP VM, Naver CloudGPU 지원 필요 시 GPU 인스턴스온프레미스사내 서버, 연구실 서버SSH 접속 가능해야 함 ✅ (2) Ubuntu 설치권장 버전은 아래..

[Docker] Docker 기본 개념 및 명령어 정리

이번 글은 Streamlit 기반 RAG 앱을 Docker Compose로 배포과정을 실습 하면서 사용한 Docker 기본개념과 명령어들을 정리해보았다. 배포 환경은 다음과 같다 배포 환경OSUbuntu Server앱 프레임워크Streamlit코어 구성(프론트) Streamlit · (백엔드) RAG 서비스(FastAPI/LangGraph), 임베딩/리랭크 서비스데이터Milvus(벡터), PostgreSQL(로그/메타)배포Docker + Docker Compose포트 전략개발 8502 / 운영 8501운영 포인트volumes로 코드 핫리로드, restart: unless-stopped, healthcheck로 헬스 모니터링 처음엔 단순히 streamlit run app.py로만 구동했지만,운영 환경에서..

[Git] Git 정리: 개념, 필수 명령어, 협업 흐름, 트러블슈팅 총정리

오늘은 Git을 이용한 실제 작업 흐름 중, 기존에 내 로컬 폴더에서 작업하던 내용을 깃에 올리는 상황을 다뤄보려고 한다.즉, 프로젝트를 처음부터 git clone으로 받아서 시작한 게 아니라, 중간에 이미 진행하던 로컬 작업물을 깃 저장소 구조로 옮겨야 할 때 유용한 Git 사용 흐름이다. 📌 Processclone → cp → add → commit → push → PR/MR 여기에 더해, 현업에서 자주 마주치는 에러나 헷갈리는 포인트를증상 → 원인 → 해결 명령어 형태로 깔끔하게 정리해두려 한다. 💥왜 이제서야 정리하게 되었나?Git을 사용한 지 꽤 되었는데… 사실 오늘 진짜 식겁한 경험을 했다.ㅎㅎ 내 로컬 폴더 내용을 잘못 커밋해서 원격 저장소의 내용이 내 로컬 내용으로 덮히면서 싹 날아가..