반응형
NoSQL의 사용에 대해서 한번 생각해보자
- 관계형 데이터베이스
- 장점
- 충분히 성숙된 기술
- 범용 데이터 저장소로서 역할을 충분히 수행함.
- 복잡한 업무 로직을 처리하는 분야에서 NoSQL 보다 더 나은 성능을 보임.
- 단, 한계점은...
- 관계형 데이터베이스의 특성상 제공 가능한 성능에 한계가있음.
- 장점
- 그럼에도 불구하고...
- NoSQL이 필요한 상황이 발생할 소지가 생김.
- NoSQL 이 필요한 경우
- 대량의 단순 정보를 빠르게 저장하고 조회할 때
- 관계형 데이터베이스가 처리하지 못하는 대량의 데이터를 저장할 때
- 스키마가 고정되지 않은 데이터를 저장하고 조회할 때
- 기타 등등.
- 즉, 위에서 언급한 관계형 데이터 베이스의 한계를 넘어선 성능이 필요할 때 NoSQL를 선택하면됨.
- NoSQL 이 필요한 경우
- NoSQL이 필요한 상황이 발생할 소지가 생김.
만일, NoSQL의 도입을 확정했다면...
- 어떤 NoSQL을 사용할지 결정이 필요함.
- "언제 NoSQL을 사용해야 될지?" 보다, "어떤 NoSQL을 선택하는가?" 가 중점 논점임.
그럼.. NoSQL을 선택할 때 고려사항은?
- 일관성모델
- 생각해봐야할 점은?
- 서비스에서 어느 정도의 일관성이 필요한지 먼저 확인필요.
- ex) 만일 카산드라를 선택한 경우...
- 강한 일관성이 필요한 서비스를 구현하기 위해서는 궁극적일관성을 지원하는 카산드라 선택을 하면 , 얻는 것보다 잃는것이 도 클 수 도 있음.
- 데이터모델
- 생각해봐야할 점은?
- 제공하려는 기능이 키-값 모델과 같은 간단한 데이터 모델로 처리가 가능한지 ?
- 또는, 문서 모델과 같이 중첩된 구조를 지원해야 하는지?
- 즉, 선택한 NoSQL의 데이터 모델로 필요한 기능을 구현할 수 있는지에 대해서 확인 및 판단필요
- 생각해봐야할 점은?
- 읽기/쓰기 성능
- 생각해봐야할 점은?
- 제공할 기능의 읽기/쓰기 비율에 대한 서비스의 확인 및 판단이 필요함.
- case #1) 읽기/쓰기 모두 빠른 응답시간이 필요할 경우의 대안은?
- 인 메모리 NoSQL
- case #2) 상대적으로 읽기 비율이 높을 경우의 대안은?
- 문서 모델 NoSQL
- 상대적으로 읽기 비율이 높을 경우, B트리 인덱스 구조를 사용하는 문서 모델 NoSQL이 대안임.
- 문서 모델 NoSQL
- 생각해봐야할 점은?
- 단일고장점
- 생각해봐야할 점은?
- 선택한 NoSQL이 단일 고장점을 가지고 있는지 확인 및 생각해봐야함.
- 만약 단일 고장점을 가지고 있다면, 장애시 쉬운 복구가 가능한지에 대한 확인도 필요함.
- 무정지 서비스가 중요 목표라면?
- 많은 NoSQL 중 단일 고장점을 가진 NoSQL 선택은 피하시길...
- 생각해봐야할 점은?
- 원자성지원
- 생각해봐야할 점은?
- 트랜잭션 지원 여부 확인
- 단일 연산에 대한 원자성 지원 여부 확인.
- 하드웨어 구성
- 생각해봐야할 점은?
- 선택한 NoSQL이 가지는 시스템 아키텍처를 도 확인해야함.
- master-slave 구조의 NoSQL을 선택했다면, 저장되는 데이터의 최대크기는 절대적인 저장소크기의 절반
- 내부의 구성요소와 하드웨어에 대한 기본 구성 정보도 파악해봐야할듯..
- 무중단시스템
- 시스템을 확장 시 시스템 중단이 필요한지 여부 확인 필요.
- 정리하자면, NoSQL를 선택 할 때는 ?
- 위의 나열한 고려사항을 정확히 확인하고, 개발할 서비스에서 필요한 부분과 필요 없는 부분을 먼저 선택한 후, 최종적으로 가장 최적화된 NoSQL을 선택하는 노력이 필요할 듯.
- 일반적으로 NoSQL을 사용하는 서비스 구현은 한 가지 NoSQL만을 사용하여 모든 서비스를 제공하도록 구성하지 않음.
- 즉, 서비스 부분을 나누어 별도의 NoSQL을 배치하는 것도 중요함.
결론
- NoSQL을 사용한 서비스 구현은 한 가지 NoSQL만을 사용하여 제공하지 않고 서비스를 부분으로 나누어 적절한 NoSQL을 취사 선택해 사용해야함.
- 위의 나열한 고려사항을 통해서, NoSQL 적용 기준을 확정하고, 나만의 서비스에 맞는 NoSQL을 선택할 때 비로소 NoSQL의 진가를 알 수 있게될것임.
- NoSQL은 관계형 데이터 베이스의 한계를 극복하고 모든 장점만을 모아둔 솔루션을 아님.
- "얻는것이 있다면 잃는 것이 반드시 있다. "라는 말은 꼭 명심해야 할것 같음.
- 오늘의 명언 한마디
- 금융지식과 자본이 없으면서 투자가가 되려는 것은, 경제적 자살행위이다. -로버트 기요사키, 『부자아빠, 가난한아빠2 』 중에서...
- 오늘의 영어 한마디
- 질문) How was the lecture?
- 강연 어땠어?
- 응답) It was fantastic. I learned so much!
- 너무 감동적이었어, 많은 걸 배웠지.
- 해설)
- "How was ~ ?" 는 "~은 어땠어?" 라는 의미
- fantastic은 "공상적"이라는 뜻 이외에 "아주 멋진" 이라는 의미가 있음.
- 벅찬 감격을 전할 때 많이 사용함.
- 질문) How was the lecture?
728x90
300x250
'좋아하는 것_매직IT > 9.redis' 카테고리의 다른 글
9.Redis, 문자열 데이터에 대해서 알아보자. (0) | 2021.01.14 |
---|---|
8.Redis, 레디스의 데이터 구조 그리고 키는 어떻게 설계할까요? (0) | 2021.01.13 |
6.Redis, NoSQL를 한번 분류해볼께요. ^^ (0) | 2021.01.12 |
5.Redis, 꼭 알아야할 CAP 이론에 대해서 정리해 볼께요. (0) | 2021.01.11 |
4.Redis, NoSQL에 대해서 전반적으로 알아볼께요. (0) | 2021.01.11 |