어플리케이션에서 파일을 데이터 레이크로 사용하면 불편한점

  1. 경쟁 상태(레이스 컨디션)에 대한 고려가 필요하다
    1. DB도 데드락이 존재는한다.. 다만 미리 구현이 다 되어있어 편리할뿐
  2. 백업 플랜이 복잡해진다
    1. 주기 마다 전부 압축해서 저장하면 되지 않을까?
    2. 명쾌한 대답: 데이터베이스에서 개발된 기능을 재창조 할 가능성이 높다 → 바퀴를 재발명 하지마라
  3. 롤백을 해야될 경우 어떻게 해야 할까
    1. 파일에다 개별 아이디로 구별하고 이벤트를 저장하면 어떨까.. 이후 이벤트 를 진행하고 데이터의 정합성을 검증하고 삭제하는 방식이라면? → 레디스에 구현된 방법
  4. 데이터베이스는 사이즈가 작거나 크거나 동일하게 동작한다
    1. 파일도 마찬가지.. 다만 속도면에서 차이가 굉장하게 날것
  5. 어찌되었든 데이터를 디스크에 저장한다는 측면에선 같지만 데이터베이스는 자연스러운 진화의 결과물이다.
  6. 데이터가 컴퓨터 메모리에 항상 존재 가능하다면 굳이 DB가 필요없긴 하다
    1. 캐시 정도의 데이터 를 의미하거나 작은 규모의 애플리케이션을 의미하는듯.

데이터 베이스를 사용하면 얻는 장점

  1. 데이터 중복 제거
    1. 데이터베이스를 사용하면 중복된 데이터를 제거할 수 있습니다. 예를 들어, 고객 정보를 저장할 때, 이름, 주소, 전화번호 등의 정보가 중복될 수 있습니다. 이러한 정보를 모두 저장하면 저장 공간이 낭비되기 때문에, 데이터베이스를 사용하여 중복된 정보를 한 번만 저장할 수 있습니다.
  2. 데이터 검색 용이성
    1. 데이터베이스를 사용하면 데이터 검색이 용이해집니다. 데이터베이스는 인덱스를 사용하여 데이터를 빠르게 검색할 수 있습니다. 또한, 조건에 맞는 데이터를 검색하는 쿼리를 통해 데이터를 검색할 수 있습니다.
    2. 파일에 비해 상대적으로 빠른 조회, 업데이트, 색인(인덱스)
    3. 데이터 재조합의 용이성
  3. 데이터 일관성 유지
    1. 데이터베이스를 사용하면 데이터 일관성을 유지할 수 있습니다. 데이터 일관성이란, 데이터가 서로 다른 곳에 저장되어 있어도 동일한 값으로 유지되는 것을 말합니다. 예를 들어, 고객이 주소를 변경한 경우, 이 정보를 모든 고객 정보가 저장되어 있는 곳에서 업데이트해주어야 합니다. 데이터베이스를 사용하면, 이러한 업데이트가 일괄적으로 처리됩니다.
  4. 보안성 확보
    1. 데이터베이스를 사용하면 데이터 보안성이 확보됩니다. 데이터베이스는 사용자 인증, 접근 권한 설정 등의 기능을 제공하여, 불법적인 접근으로부터 데이터를 보호할 수 있습니다.
  5. ACID
  6. 내결함성, 확장성
    1. 데이터 동시 접근
    2. 데이터 백업및 복구
  7. 동시 접근 가능

NoSQL 사용을 고려해야 할점