1. RDBMS의 장단점 적어보기
장점
- RDBMS는 스키마에 따라 데이터를 정의하기 때문에, 명확한 데이터 구조를 가짐
- 각 데이터들은 중복없이 한 번만 저장하여 무결성을 유지할 수 있음.
단점
- 테이블-테이블 간의 쿼리를 작성할때, RDBMS는 JOIN문을 사용하게 되는데, 이 때문에 복잡한 쿼리가 만들어 질 수 있음.
- 외래키를 사용하여 테이블을 구성하는 경우가 매우 빈번하기 때문에, scale-out 즉, 서버를 늘리는 과정이 매우 복잡하고 어려움
- 데이터가 스키마로 정의되어 있기 때문에 유연한 데이터 관리가 힘듬.
2. NOSQL의 장단점 적어보기
장점
- NOSQL은 RDBMS의 단점과 반대로 데이터를 스키마로 정의하지 않기 때문에 자유로운 데이터 구조를 가질 수 있으며, 이는 사용자 입장에서 유연한 데이터 관리를 할 수 있도록 도와줌
- 데이터 분산이 용이하며, 성능 향상을 위한 scale-up, scale-out 의 과정이 RDBMS에 비해 쉬움
단점
- 단점역시 RDBMS의 장점과 반대로 각 스키마, 즉 컬렉션이 무결성을 가지지 않고 중복데이터가 존재할 수 있음
- 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않음. 데이터 구조가 중구남방이 될 수 있음.
3. 수직 확장(scale-up) 과 수평 확장(scale-out) 은 어떠한 차이를 가질까
수직 확장과 수평 확장은 기존의 서버를 더 좋게 업그레이드 하는 서로의 방식에 대한 설명이다.
예를 들어, 기존의 서버가 초당 1만건의 데이터를 처리하는 서버라고 가정한다.
수직 확장은, 기존의 서버를 더 좋은 하드웨어로 교체하거나 증설시켜 보다 좋은 성능이 가능하게 만들어 준다는 의미이다.
수직 확장을 한다면 16기가 RAM을 32RAM 으로 교체한다거나 혹은 SSD를 1TB에서 4TB로 바꾸는 등의 업그레이드가 곧 수직 확장이라고 보면 된다.
결국 이러한 수직 확장은 서버가 1만건의 데이터를 처리하는 서버에서 2만건 3만건 처리할 수 있는 서버로 업그레이드 시켜주며 이것을 수직 확장이라고 생각한다.
이와 반대로 수평 확장은 서버를 업그레이드 하는 것은 동일하나, 방식의 차이를 가지는데,
수직 확장이 H/W를 업그레이드 하며 서버의 성능을 올리는 과정이라면, 수평 확장은 서버의 성능을 올리기 위해 서버를 하나 더 생성 한다고 생각하면 된다.
1만건의 데이터를 처리하는 서버의 성능 향상을 위해 할 수 있는 행위중 분산을 해서 해결하는 방식이다.
수평 확장은 기존에 통합된 서버 하나를 결론적으로는 A,B로 분산 시키는 것이다.
쉽게 말하자면, A컴퓨터에 있는 서버를 B컴퓨터를 하나 새로 만들어서 똑같이 서버를 돌려주는 것이다.
그러면 1개의 컴퓨터가 맡을 일을 2개의 컴퓨터가 나눠서 하게되고, 1만건이라고 가정했을때,
각각의 컴퓨터가 5천,5천을 나눠서 처리하기 때문에 더욱 서버 효율을 올릴 수 있으며, 이를 수평 확장이라고 칭한다.
반응형
'BackEnd' 카테고리의 다른 글
[Spring] Filter에서 Exception을 관리하는 법 (0) | 2024.12.19 |
---|---|
[Spring] @RestControllerAdvice를 통한 스프링에서의 예외처리 (1) | 2024.12.16 |
[Spring] 스프링이 사랑한 디자인 패턴 - 1 (0) | 2024.05.29 |
[Spring] BeanFactory와 ApplicationContext 이해하기 (0) | 2024.04.03 |
[Spring] 스프링 컨테이너와 빈 (0) | 2024.04.02 |