본문 바로가기
취업_TIL

취업_TIL | 2022-10-20 (11) _ DB

by Hee94 2022. 10. 20.

데이터베이스 질문

RDBMS의 장단점에 대해 설명해주세요.

  • 장점
    • 장점으로는 정해진 스키마에 따라 데이터를 저장해야 해서 명확한 데이터 구조를 보장하고 있습니다.
    • 관계는 각 데이터를 중복 없이 한 번만 저장할 수 있습니다.
  • 단점
    • 테이블과 테이블 간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있습니다.
    • 성능 향상을 위해서는 서버의 성능을 향상 시켜야하는 Scale-up만을 지원하기에 개발 비용이 기하급수적으로 늘어날 수 있습니다.
    • 정해진 스키마로 인해서 데이터가 유연하지 못하고, 스키마가 변경되었을 때, 번거롭고 어렵습니다.

꼬리 질문

  • Scale-up이 무엇인가요?
    • 기존 서버의 사양을 업그레이드해 시스템을 확장하는 것으로 일반적으로 CPU,RAM등을 추가하거나 고성능의 부품,서버로 교환하는 것을 의미합니다. 같은 의미로 수직 스케일이라고도 부릅니다.
  • 스키마 변경이 번거롭고 어렵다고 했는데, 변경하게될 때, 어떻게 변경을 해야하는지?(개인적으로 궁금해서…)

NoSQL의 장단점을 설명해주세요

  • 장점
    • 스키마가 없기에 유연하고 자유로운 데이터 구조를 가질 수 있기에 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있습니다.
    • 데이터 분산이 용이하며 성능 향상을 위해 Scale-up 과 Scale-out 모두 가능합니다.
  • 단점
    • 데이터의 중복이 발생할 수 있으며 중복된 데이터가 변경 되었을 때, 수정을 모든 컬렉션에서 수행하여야 합니다.
    • 스키마가 존재하지 않아 명확한 데이터 구조를 보장하지 않고, 데이터 구조 결정이 어려울 수 있습니다.

꼬리 질문

  • Scale-out이 무엇인가요?
    • 기존 서버와 같은 사양 또는 비슷한 사양의 서버의 수를 늘리는 것을 의미합니다. 같은 의미로 수평 스케일이라고 부르며 scale-up보다 확장이 유연합니다.

PostgreSQL의 장단점을 설명해주세요.

  • 장점
    • 첫번째로 비용 절감이 있습니다.
      • 오픈소스 소프트웨어이기에 무료로 이용이 가능하고, 더 나아간다면 소스 코드가 공개되어 있기 때문에 직접 개선 및 수정을 하여 개발 비용을 줄일 수 있습니다.
    • 두번째로 빠르고 유연한 개발이 있습니다.
      • 오픈소스 커뮤니티로 다양한 이용자들에 의해 최신 기술 정보와 문제점의 해결책을 공유하여 운영되기 때문에 기술의 발전 속도가 빠른 편에 속합니다.
    • 세번째로 호환성과 유연성이 있습니다.
      • 다른 소프트웨어 간의 연동이 쉽고, 서로 다른 플랫폼끼리의 상호 연동도 가능합니다. 또한, 특정기기 및 운영체제, 어플리케이션에 종속되지 않고 자유로운 변경이 가능하여 여러 기기가 네트워크를 통해 하나로 연결되는 유비쿼터스 시대에 아주 적합합니다.
    • 네번째로는 표준 SQL을 준수하고 가장 많은 SQL 기능을 지원합니다.
  • 단점
    • 메모리의 성능이 떨어집니다.
      • 모든 새로운 클라이언트 연결에 대해 새로운 프로세스를 포크하기에 각각의 프로세스에 10MB의 메모리가 할당되므로 많은 연결이 있는 경우 메모리가 빠르게 증가합니다.
    • MySQL에 비해 데이터베이스를 관리하는데 도움이 되는 타사 도구가 적다고 알고 있습니다.