본문 바로가기
TIL

[TIL] 면접카타 8일차

by 쾌횽 2024. 4. 8.
반응형

🧐 NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요.

데이터베이스와 DBMS

데이터베이스란 쉽게 말해 데이터의 집합이다. DB에는 다양한 유형이 존재한다.

계층형(Hieraechical), 명형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등이 있다.

 

계층형 DB

계층형은 처음 등장한 DB개념이다. 트리(tree)형태로 구성되어 있기 때문에 처음 구성해 놓으면 이를 변경하기가 까다롭고, 또 다른 데이터를 찾아가는 것이 비효율적이기 때문에 지금은 사용하고 있지 않다.

 

망형 DB

망형 DB는 계층형 DB의 문제점을 개선하기 위해 등장했다. 계층형과 다르게 데이터끼리도 연결된 유연한 구조이지만 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점 때문에 계층형과 마찬가지로 지금은 거의 사용하지 않고 있다.

 

관계형 DB

RDB라고도 부르며 현재 대부분의 DB가 관게형 데이터베이스의 형태로 사용되고 있다. 테이블, 행, 열의 정보를 구조화하는 방식이다. RDB는 테이블이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열과 행으로 이루어졌다. 모든 데이터는 처리 및 데이터 쿼리를 효율적으로 수행하기 위해 일련의 테이블에서 행과 열로 저장된다.

 

DBMS

Database Management System의 약자로 데이터베이스를 관리하고 운영하는 소프트웨어이다. 다양한 데이터가 저장된 데이터베이스는 여러 사용자 혹은 응용 프로그램에 데이터를 공유해야하고 동시에 접근할 수 있어야한다. 이렇게 동시에 접근할 수 있도록 해주는 것이 DBMS의 역할이다.

 

RDBMS

  • 특징
    전형화된 데이터를 효과적으로 저장하고 처리하는데 적합하다.
    데이터 무결성과 일관성을 보장하는데 강점을 가지고 있다.
    복잡한 관계를 표현하고 관리할 수 있다.
  • 장점
    데이터 일관성이 보장되며, 복잡한 관계를 표현할 수 있다. 데이터 중복을 최소화하여 데이터베이스의 정합성을 유지할 수 있다.
  • 단점
    확장성이 제한될 수 있으며, 대규모 데이터 처리에는 적합하지 않을 수 있다.
    스키마 변경이 어려울 수 있다

NoSQL

  • 특징
    스키마가 유연하며 확장성이 뛰어나 비구조화된 데이터를 처리하는데 적합하다. 대량의 분산 데이터를 처리하는데 효율적이다.
    수평적 확장이 용이하며, 대규모 데이터 처리에 특화되었다.
  • 장점
    대량의 분산 데이터를 처리할 수 있어 Big Data와 관련된 작업에 효과적이다. 유연한 스키마로 인해 데이터 구조를 동작으로 변경할 수 있다.
  • 단점
    데이터 일관성 보장이 어려울 수 있다. 복잡한 쿼리를 지원하지 않을 수 있다.

 

🧐 Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요.

배열 (Array)

배열은 정적 자료구조라고 불린다. 배열은 미리 크기를 정헤놓게 되는데 해당 크기 만큼의 연속된 메모리 주소를 할당받게 된다.

연속된 주소를 할당 받고 있기 때문에 데이터가 인덱스라는 것을 갖게 되고, 우리는 array[0]같은 식으로 배열에 접근할 수 있다.

하지만 크기를 미리 정해 놓았기 때문에 수정하는 것은 불가능하고, 해당 배열 크기 이상의 데이터를 저장할 수 없다는 것이 단점이다.

 

연결 리스트(Linked List)

링크드 리스트, 또는 연결 리스트는 동적 자료구조라고 불린다. 그러므로 크기를 정할 필요가 없다. 또한 배열처럼 연속된 메모리 주소를 할당 받지 않는다.

대신 노드(Node)라는것이 존재하며 노드안에 데이터가 있고, 다음 데이터를 가리키는 주소를 가지고 있다.

그로인해 데이터 추가, 삭제가 자유롭다는 장점이 있다.

반면 배열처럼 연속적인 메모리 주소를 할당 받지 않았기 때문에 임의로 접근하는 것이 불가능하다. 즉, 데이터를 탐색할 때 순차적으로 접근해야 한다는 것이다.

 

활용 사례

배열은 정보를 저장할때 많이 사용한다. 쇼핑몰의 장바구니 역할 하는 것이 배열이다. 뭔가 불규칙적인 정보를 저장하거나, 이후 다시 사용할 정보를 저장하거나 할때 배열을 활용한다.

연결리스트의 경우는 음악 플레이어 앱에 이전 곡과 다음곡이 연결되어 있듯 이런 기능이 연결 리스트로 많이 활용된다고 한다.

 

반응형

'TIL' 카테고리의 다른 글

[TIL] Redis에 대하여  (0) 2024.04.12
[TIL] 면접 카타 9일차  (0) 2024.04.09
[TIL] 면저카타 7일차  (0) 2024.04.05
[TIL] 면접카타 6일차  (1) 2024.04.04
[TIL] 면접카타 5일차  (0) 2024.04.02

댓글