
Master - Slave 구조 리플리케이션(Replication)은 복제를 뜻함. Master DBMS의 역할 웹 서버로부터 등록/수정/삭제 (CUD)의 요청을 담당하게 됨. Slave DBMS의 역할 Master DBMS로 부터 받은 데이터를 반영하고, 주로 읽기(R)에 대한 요청을 담당. Slave는 여러개 생성 가능 장점 CUD에 대한 요청과 R에 대한 요청들을 Slave DB 서버들에 분산시킬 수 있으므로 성능 향상을 기대해볼 수 있음 단점 Master DB 서버에서 Slave DB 서버로 데이터를 동기화 할 때, 비동기방식으로 동기화를 진행하기 때문에 일관성있는 데이터를 얻지 못 할 수도 있음 Sharding(샤딩) 각 DB 서버에서 데이터를 분할하여 저장하는 방식 DB 트래픽을 분산할 수 있..

정규화 데이터베이스 중복을 최소화하도록 설계된 데이터베이스 같은 데이터는 데이터베이스 내에 하나 정도만 놓으려고 노력함 하지만 상당수의 일상적인 질의를 처리하기 위해 JOIN을 많이 하게 되는 단점이 있음 비정규화 데이터베이스 읽는 시간을 최적화하도록 설계된 데이터베이스 JOIN 연산의 비용을 줄일 수 있음 비정규화는 높은 규모 확장성을 실현하기 위해 자주 사용되는 기법 장점 빠른 데이터 조회 → 조인 비용이 줄어들기 때문 살펴볼 테이블이 줄어들기 때문에 데이터 조회 쿼리가 간단해짐 → 따라서 버그 발생 가능성도 줄어듦 단점 데이터 갱신이나 삽입 비용이 높음 데이터 갱신 또는 삽입 코드를 작성하기 어려워짐 데이터 간의 일관성이 깨질수 있음 데이터를 중복하여 저장하므로 더 많은 저장 공간이 필요 정규화, ..

ORM이란? Obect Relational Mapping(객체-관계-매핑)의 약자이다 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구이다 객체와 모델 사이의 관계를 기술하는 도구 MVC 패턴에서 모델을 기술하는 도구 ORM을 사용하는 이유 데이터베이스 접근을 프로그래밍 언어의 관점에서 볼 수 있음 sql문을 직접 작성하지 않고 엔티티를 객체로 표현 할 수 있음 객체를 통해 간접적으로 DB를 다룸 ORM의 장점 코드의 가독성이 좋아짐 재사용 및 유지보수 편리성 증가 DBMS에 대한 종속성 저하 ORM의 단점 ORM 만으로 서비스를 구현하기 어려움 🔥 나같은 경우에 쿼리로 날리면 조인 한두개로 해결 될 것이 ORM을 사용하려니 관계때문에 오히려 속도가 저하되는 경우가 ..