어플리케이션에서 파일을 데이터 레이크로 사용하면 불편한점
- 경쟁 상태(레이스 컨디션)에 대한 고려가 필요하다
- DB도 데드락이 존재는한다.. 다만 미리 구현이 다 되어있어 편리할뿐
- 백업 플랜이 복잡해진다
- 주기 마다 전부 압축해서 저장하면 되지 않을까?
- 명쾌한 대답: 데이터베이스에서 개발된 기능을 재창조 할 가능성이 높다 → 바퀴를 재발명 하지마라
- 롤백을 해야될 경우 어떻게 해야 할까
- 파일에다 개별 아이디로 구별하고 이벤트를 저장하면 어떨까.. 이후 이벤트 를 진행하고 데이터의 정합성을 검증하고 삭제하는 방식이라면? → 레디스에 구현된 방법
- 데이터베이스는 사이즈가 작거나 크거나 동일하게 동작한다
- 파일도 마찬가지.. 다만 속도면에서 차이가 굉장하게 날것
- 어찌되었든 데이터를 디스크에 저장한다는 측면에선 같지만 데이터베이스는 자연스러운 진화의 결과물이다.
- 데이터가 컴퓨터 메모리에 항상 존재 가능하다면 굳이 DB가 필요없긴 하다
- 캐시 정도의 데이터 를 의미하거나 작은 규모의 애플리케이션을 의미하는듯.
데이터 베이스를 사용하면 얻는 장점
- 데이터 중복 제거
- 데이터베이스를 사용하면 중복된 데이터를 제거할 수 있습니다. 예를 들어, 고객 정보를 저장할 때, 이름, 주소, 전화번호 등의 정보가 중복될 수 있습니다. 이러한 정보를 모두 저장하면 저장 공간이 낭비되기 때문에, 데이터베이스를 사용하여 중복된 정보를 한 번만 저장할 수 있습니다.
- 데이터 검색 용이성
- 데이터베이스를 사용하면 데이터 검색이 용이해집니다. 데이터베이스는 인덱스를 사용하여 데이터를 빠르게 검색할 수 있습니다. 또한, 조건에 맞는 데이터를 검색하는 쿼리를 통해 데이터를 검색할 수 있습니다.
- 파일에 비해 상대적으로 빠른 조회, 업데이트, 색인(인덱스)
- 데이터 재조합의 용이성
- 데이터 일관성 유지
- 데이터베이스를 사용하면 데이터 일관성을 유지할 수 있습니다. 데이터 일관성이란, 데이터가 서로 다른 곳에 저장되어 있어도 동일한 값으로 유지되는 것을 말합니다. 예를 들어, 고객이 주소를 변경한 경우, 이 정보를 모든 고객 정보가 저장되어 있는 곳에서 업데이트해주어야 합니다. 데이터베이스를 사용하면,
이러한 업데이트가 일괄적으로 처리됩니다.
- 보안성 확보
- 데이터베이스를 사용하면 데이터 보안성이 확보됩니다. 데이터베이스는 사용자 인증, 접근 권한 설정 등의 기능을 제공하여, 불법적인 접근으로부터 데이터를 보호할 수 있습니다.
- ACID
- 내결함성, 확장성
- 데이터 동시 접근
- 데이터 백업및 복구
- 동시 접근 가능
NoSQL 사용을 고려해야 할점