본문 바로가기
db/데이터베이스 첫걸음

1장. 데이터베이스란

by 참된오징어 2021. 1. 25.

최근 이직을 위해 여러 곳에 면접을 진행한 결과, 데이터베이스 관련 질문을 많이 받았다.

아주 기초적인 지식부터 시작해서 튜닝, 성능 등의 질문을 많이 받았고
쉬운 내용도 정리가 안되다 보니 당황하며 장황하게 대답을 하게 되고
부족한 데이터베이스 지식으로 인해 떨어진 곳도 존재하여 데이터베이스 지식을 다시 정립하고자, 그리고
아주 기초적인 내용이라도 쉽게 비유적으로 표현하여 생각을 정리하고자 데이터베이스 책을 읽기 시작하게 되었고

LINE을 다니시는 멘토 개발자분과 개발자의 생과사를 함께 같이하기로한(?) 분의 추천으로
해당 책을 내 첫 블로그 개설과 동시에 포스팅하기로 다짐을 하였다.

 

 

Chapter 1. 데이터베이스란

 

누군가 데이터베이스가 무엇인지 혹은 어떤 특징이 있는지 물어본다면 "주소록"이라고 대답을 해줄 것이다.

그 이유들은 다음과 같다.

 

 

데이터베이스의 가장 중요한 기능은 검색이며, 원하는 데이터를 재빨리 끄집어낼 수 없다면 주소록을 작성하는 의미도 없다.

 

데이터베이스는 새로운 데이터를 등록하고 기존 데이터를 수정하며, 불필요한 데이터를 제거할 수 있어야 한다.

주소록 또한 새롭게 사귄 친구를 추가해야 하고, 친구의 정보가 바뀌면 수정해야 하고, 절교(?)한 친구의 데이터는 제거할 수 있어야 한다.

 

데이터베이스는 데이터를 어떤 포맷으로 관리하는지 중요하다.

주소록에 동성동명의 인물이 2명이 있을 때, 이름은 같을지라도 서로 다른 인물이므로 다른 사람이라는 것을 알 수 있도록 관리해야 한다.

데이터베이스에서도 데이터 관리 시 고유성을 지키기 위해 데이터를 어떤 포맷으로 관리하는지 중요하다.

 

데이터베이스는 동시에 복수의 사용자로부터 검색이나 갱신 처리를 받는데, 갱신한 데이터의 무결성이 중요하다.

만약 개인 주소록이 아닌 공공 PC 주소록이라면, 불특정 사용자가 동시에 접근을 할 수 있게 된다.

내가 수정한 데이터가 다른 사람에 의해 원하는 값으로 변경이 되지 않을 수 있다.

이렇듯 복수 사용자의 갱신을 조절하기 위해 트레이드오프를 해야 하는데 이를 동시성 제어라고 한다.

 


위와 같이 데이터베이스와 주소록을 연관 지어 설명을 하면 '그럼 데이터베이스와 주소록은 무슨 차이가 있을까요?' 
라고 질문을 받을 수 있다. 이에 대한 차이는 다음과 같다고 생각한다.

 

 

주소록과 데이터베이스의 차이는 장애 대응이라고 생각한다.

데이터베이스는 장애에 강하고 장애가 발생하더라도 복원할 수 있어야 한다.

데이터가 장애로 사라지게 된다면, 빵 없는 빵집과 같다.

개인적인 용도로 사용하는 주소록이라면, 소실된 정보는 다시 입력하는 정도로 끝나겠지만

데이터베이스의 장애로 데이터가 사라진다면, 고소미(?)를 먹을 수 있을 만큼의 큰 이슈가 발생하게 된다.

 

마지막 차이는 보안이라고 생각한다.

데이터베이스에 들어 있는 데이터는 기밀성이 높은 데이터가 많을 것이다.

개인정보 유출은 기업에 있어 사회적 신용을 잃는 커다란 위험을 가지고 있기 때문에

쉽게 잃어버리거나 노출될 수 있는 개인 주소록보다 데이터베이스의 보안은 매우 엄격해야 한다.

우리가 사용하는 시스템에서는 반드시라고 할 정도로 데이터베이스가 사용되고 있지만,

데이터베이스는 사용자로부터 보이지 않도록 깊숙이 숨겨져 있는 이유이기도 하다.

 

 


1장을 읽으며 매우 기초적이지만 다시 한번 데이터베이스의 특징을 주소록으로 정리해본 좋은 경험이 된 것 같다.

블로그를 작성하면서 블로그 스터디의 리더이신 마크준님께서 말씀하신 말씀이 와 닿았다.

 

"말을 잘하려면 글을 잘써야한다. 글을 잘쓰면 생각이 정돈되기 때문에 말도 잘하게 되고, 사고할때 판단이 정확해지는 같다."

 

최소 1주에 글 1편을 작성하는 것을 목표로 다음 주는 2장 관계형 데이터베이스를 정리해야겠다.

 

댓글