우리 프로젝트에 MySQL을 선택한 이유
우리 프로젝트는 영화에 대한 평점과 리뷰를 남길 수 있는 웹사이트로, Django REST Framework(DRF)를 이용해 백엔드 서버를 개발할 예정이다. 기본적으로 제공되는 SQLite 대신, PostgreSQL과 MySQL 중에서 고민하다가 MySQL을 사용하기로 결정했다. 두 데이터베이스 간의 차이점과, 프로젝트에서 MySQL을 선택한 이유는 다음과 같다.
PostgreSQL vs. MySQL: 차이점
- ACID 준수와 트랜잭션 처리:
- PostgreSQL은 ACID(Atomicity, Consistency, Isolation, Durability) 규칙을 철저히 준수하며, 고급 트랜잭션 처리 및 복잡한 쿼리에서 강력한 성능을 발휘한다. 특히 관계형 데이터 모델에서의 복잡한 연산이나 트리거, 함수 등 고급 기능을 자주 활용하는 경우에 적합하다.
- MySQL도 ACID 규칙을 지원하지만, 단순 쿼리나 대량의 읽기/쓰기 작업에 더 최적화된 경향이 있어, 실시간으로 데이터를 많이 처리하는 웹 애플리케이션에 적합하다.
- 확장성 및 성능:
- PostgreSQL은 대규모 데이터 처리나 분석이 필요한 상황에 뛰어난 성능을 발휘하며, 다중 관계형 데이터와 복잡한 조인 작업에 적합하다.
- MySQL은 읽기/쓰기 성능이 균형 잡혀 있고, 특히 다수의 트랜잭션이 빈번히 발생하는 웹 기반 서비스에서 높은 성능을 보여줍니다. 우리 프로젝트와 같은 사용자 리뷰와 평점 입력이 빈번한 상황에서 적합한 선택이다.
- 표준 준수 및 유연성:
- PostgreSQL은 SQL 표준을 더 철저하게 준수하며, JSON 데이터 타입이나 NoSQL 스타일의 데이터를 다루는 데 유연하다.
- MySQL은 표준 SQL 준수보다는 성능과 속도에 집중해, 실시간 웹 애플리케이션에서 빠르게 데이터를 처리하는 데 중점을 둔다.
우리 프로젝트에 MySQL이 적합한 이유
- 대규모 트랜잭션 처리에 적합: MySQL은 평점과 리뷰 데이터가 대량으로 쌓이고, 이를 실시간으로 처리해야 하는 환경에서 뛰어난 성능을 발휘한다.
- 읽기/쓰기 성능의 균형: 사용자들이 빈번하게 데이터를 입력하고 조회하는 패턴에 적합하게 읽기와 쓰기 성능이 모두 우수하다.
- 관리 및 유지 보수 용이성: MySQL은 관리 도구와 인터페이스가 직관적이어서 데이터베이스 관리가 쉽고, 오픈 소스 커뮤니티의 지원도 활발해 문제 해결에 유리하다.
- 비용 효율성: MySQL은 오픈 소스로 비용 부담이 적으며, 상용 환경에서도 안정적으로 사용 가능하다.
- 높은 호환성: MySQL은 다양한 플랫폼과 호환되며, 특히 많은 웹 애플리케이션에서 널리 사용되어 있어 검증된 안정성을 보장한다.
이러한 이유들로, 우리 프로젝트의 특성과 요구 사항에 맞춰 MySQL을 사용하는 것이 더 적절하다고 판단했다.
'[내일배움캠프]스파르타코딩클럽 AI 웹개발 > Today I Learned' 카테고리의 다른 글
[TIL] parcel 삭제 (0) | 2024.09.30 |
---|---|
[TIL] username없이 이메일 회원가입 (0) | 2024.09.26 |
[TIL] 추가 기능 논의 및 ERD 수정 작업 (2) | 2024.09.24 |
[TIL] 프로젝트 기획 및 Open API 활용 전략 수립 (0) | 2024.09.23 |
[TIL] 뉴스 API 서버 프로젝트 마무리 및 OpenAI 연동 기능 구현 (0) | 2024.09.20 |