2025/04/28 3

대용량 처리를 위한 MySQL 이해 | MySQL

https://db-engines.com/en/ranking DB-Engines RankingPopularity ranking of database management systems.db-engines.com웹 백엔드 개발을 하다 보면 대부분의 데이터는 관계형 데이터베이스에 저장하게 된다.그중에서도 MySQL은 가장 많이 사용되는 오픈소스 관계형 DB다.그래서 이번 글에서는 내가 강의를 들으면서 정리한 MySQL의 핵심 구조와 작동 방식을 쉽고 간단하게 풀어보려고 한다. 1. 왜 MySQL인가?가장 인기 있는 오픈소스 관계형 데이터베이스 (DB-Engines 기준 상위권)접근성과 학습 비용이 낮고, 무료로 사용할 수 있음SQL 표준을 비교적 잘 따르기 때문에 다른 DB와도 큰 차이가 없다. 2. 웹의 ..

대용량 처리를 위한 MySQL 이해 | 실습 환경 구축, 대용량 시스템에 대한 이해

✅ 대용량 데이터를 안정적으로 다루기 위한 기본 질문"어떻게 하면 많은 양의 데이터를 안정적으로 삽입하고, 갱신하고, 조회할 수 있을까?"이 질문에 답하기 위해 우리가 고려해야 할 키워드는 다음과 같다:정규화: 데이터 중복을 줄이고, 관계를 명확하게 설계한다.인덱스: 자주 조회되는 컬럼에 인덱스를 걸면 검색 속도가 훨씬 빨라진다.트랜잭션: 데이터 변경 작업이 중간에 실패하더라도 전체 작업의 일관성을 유지하게 해준다.동시성 제어: 여러 사용자가 동시에 같은 데이터를 수정할 때 충돌 없이 처리할 수 있도록 한다.🧪 실습 환경 구축macOS 환경에서 MySQL을 사용하는 경우, Homebrew로 간단히 설정 가능하다. # mysql 실행brew services start mysql# mysql 상태 확인br..

FastAPI 기반 챗봇 프로젝트에서 로그인 인증 및 RDB 파트 구현기

이번 프로젝트에서는 FastAPI 기반의 챗봇 서비스에서 로그인 인증 처리와 RDB 연동을 맡아 구현하였다. 사용자 요청 흐름의 핵심이 되는 부분이었기 때문에, 명확한 데이터 흐름과 보안 설계가 중요했다. ⚙️ 왜 FastAPI를 선택했는가?이 프로젝트에서는 FastAPI 프레임워크를 채택하였다. 여러 선택지가 있었지만, FastAPI를 사용한 이유는 다음과 같다:비동기 처리 최적화FastAPI는 Python의 asyncio 기반으로 동작하여, I/O 처리에 강점을 가진다.챗봇처럼 빠르게 응답을 주고받아야 하는 서비스에서는 API 응답 속도가 매우 중요하다.비동기 요청과 DB 쿼리를 동시에 처리할 수 있어 병렬성 측면에서도 유리하다.Pydantic을 통한 데이터 검증요청/응답 스키마를 명확하게 정의할 수..