[CS] 데이터베이스와 파일시스템의 차이에 대한 고찰

sith-call.dev·2023년 5월 11일
0

Computer Science

목록 보기
10/15

서론

데이터베이스와 파일시스템을 나만의 시각에서 한번 그 차이점을 말해보고 싶다. 그렇게 하기 위해선 먼저 컴퓨터구조에 대해서 논해야 한다.

인간이 컴퓨터를 조작하기까지의 과정

컴퓨터는 대략 아래의 순서대로 그 개념의 체계를 갖고 있다.

  1. 범용적인 도구에 대한 아이디어 (튜링의 튜링 머신)
  2. 컴퓨터 구조 (아이디어를 실현시킬 설계도)
  3. 컴퓨터 (설계도를 바탕으로 만들어진 범용적인 도구)
  4. 운영체제 (인간이 컴퓨터를 조작하게 도와주는 프로그램)
  5. 애플리케이션 (사용자와 직접 상호작용하는 프로그램)

이때 모든 단계에서는 그 단계를 위한 언어가 있다.
그리고 처음 단계일수록 저수준의 언어라고 칭한다.
인간은 언어라는 연산 체계를 통해 실질적으로 컴퓨터에게 자신의 의사를 표현하는 것이다. 그리고 언어는 기본적으로 다양한 의사를 전달할 수 있다. 따라서 저수준의 언어를 이용하여 아주 다양한 고수준의 언어를 만들어낼 수 있다고 생각한다. 그러나 앞에서 말하겠지만 그 고수준의 언어마다 다양한 번역기가 존재할 것이다. 이는 그 번역기마다 다른 프로그램이 사용된다고 볼 수 있다.

번역 사슬

이때 저수준의 언어를 이용하여 새로운 언어를 재창조할 수 있다. 그 이유는 컴퓨터가 사용하는 언어라고 해봤자 결국은 크게 데이터와 연산으로만 구성되어 있기 때문이다. 그렇기에 마치 매크로처럼 연산들을 조합하여 어떤 특정한 연산을 정의내릴 수 있다. 그리고 그렇게 새롭게 정의된 연산은 고수준의 언어로서 사용되는 것이다. 이처럼 언어 간의 수준 차이가 존재하기에 고수준 언어와 저수준 언어는 각각 따로 본다면 아예 새로운 언어처럼 보인다. 그래서 고안된 것이 번역기이다. 대표적인 번역기로는 컴파일러와 인터프리터가 존재한다.

데이터 조작

자 이제 우리는 저수준 언어가 가진 창조성과 이를 통해 고수준 언어를 만들어 낼 수 있으며, 해당 언어로 컴퓨터에게 인간이 자신의 의사를 표현할 수 있음을 확인했다. 컴퓨터는 기본적으로 CPU, 주기억장치, 보조기억장치로 구성되어 있다. 이때 보조기억장치에는 영구적으로 데이터를 저장할 수 있다. 따라서 인간은 언어를 통해 해당 기억장치에 어떤 데이터를 영구적으로 저장시켜 달라고 요청할 수 있다.

데이터베이스와 파일시스템 간의 공통점

여기서 한 가지 짚고 넘어가고 싶은 점이 있다. 데이터베이스와 파일시스템은 모두 하나의 기억장치를 공유한다. 즉, 두 프로그램 모두 보조기억장치에 데이터를 저장시킨다. 이 내용은 내가 두 프로그램 간의 차이점을 깨닫는데 도움을 주었다.

데이터베이스와 파일시스템의 차이점

간단하게 말하자면 파일시스템은 운영체제라는 프로그램을 이용하여 사용자가 보조기억장치에 데이터를 저장시켜 주도록 하는 것이고, 데이터베이스는 DBMS라는 프로그램을 통해 사용자가 보조기억장치에 데이터를 저장시키도록 도와주는 것이다. 이 사실이 내게 가장 크게 와닿은 내용이다. 사실 별거 없다.

그러나 중요한 점을 짚자면, 데이터베이스는 애초에 데이터를 저장하는 용도와 형태가 파일시스템과 매우 다르다. 데이터베이스는 좀 더 고차원의 연산이 가능하도록 데이터를 저장하고, 파일시스템은 간단하게 데이터만을 저장하는 용도로 사용한다.

따라서 나의 깨달음은 사소하지만, 진정한 차이를 알고자 한다면 데이터베이스를 공부하는 것이 옳다.

profile
lim (time → ∞) Life(time) = LOVE

0개의 댓글