MySQL이란?
MySQL은 전세계에서 가장 많이 활용되고 있는 RDBMS다.
RDBMS는 관계형 데이터베이스를 의미하는데, 이는 데이터가 하나 이상의 열과 행의 테이블에 저장되어 서로 간의 사전 정의된 관계로 데이터를 구성하고 있다.
3 Tier Architecture -> N Tier Architecture로 변화
간단한 어플리케이션은 가장 전통적으로 3계층 아키텍처로 구성되어 왔다. 이 구조는 Client의 요청을 Server를 통해 Database와 통신하여 처리했으며, 반드시 Server를 거쳐야 하고 Client와 Database가 직접 소통하지 않는다.
Database서버는 관계형 데이터베이스(MySQL, Postgre, MariaDB 등) 또는 NoSQL 데이터베이스 서버 (MongoDB, Cassandra 등)로 구성되어 있다.
그러나, 어플리케이션이 복잡해지면서 캐싱, 메시징, 데이터 스토리지 등 다양한 기능이 필요해졌고, N계층 아키텍처로 변화되어 왔다.
N계층 구조로 변화해온 이유는?
어플리케이션이 복잡해지고, 다양한 기능이 필요한 이유는 많은 양의 데이터를 처리해야 하기 때문이다.
즉, 대용량 시스템을 구축하고 트래픽을 처리할 수 있도록 설계하는 것이 오늘날의 아키텍처를 선택하는 중요한 기준이다.
그리고 대용량 데이터를 처리하는 방식으로 Scale UP (성능을 늘리기)와 Scale OUT (서버 늘리기)가 있다.
Cache와 Load Balancer
Scale UP은 무한정으로 늘릴 수 있는 것이 아니고, Scale UP과 OUT모두 비용적인 측면을 고려해서 설계해야 한다. 이러한 관점에서 각 어플리케이션은 적정한 갯수의 서버를 가지고 있을 것이며, 다시 이 서버들은 Client요청을 받아 데이터 베이스와 통신한다.
Load Balancer
로드 밸런싱은 대규모 트래픽을 받기 위해 구축된 여러 대의 서버에게 트래픽을 분산하여 전달하는 역할을 한다.
Cache
캐시는 DB에 접근하여 데이터를 가져오는 시간을 절약하기 위해 임시적으로 데이터 값을 가지고 있는 저장소다. 임시 저장소이기 때문에 저장하고 있는 데이터 양과 시간적 제약 조건을 가진다. 따라서, 조건 범위를 적절하게 책정하는 것이 캐싱 기능을 활용하는 핵심이다.
'DB(MySQL, MongoDB, Redis, Kafka) > MySQL' 카테고리의 다른 글
MySQL 테스트를 위한 SNS서비스 팔로우 (2) | 2023.12.27 |
---|---|
MySQL 테스트를 위한 SNS서비스 회원이름 변경 및 변경내역 조회 (0) | 2023.12.27 |
MySQL 테스트를 위한 SNS서비스 회원정보 조회 (0) | 2023.12.26 |
MySQL 테스트를 위한 SNS서비스 회원정보 등록 (0) | 2023.12.26 |
MySQL 정규화와 반정규화(비정규화) (0) | 2023.12.25 |