와! 데이터베이스 아시는구나!

EntryDSM·2020년 6월 4일
6
post-thumbnail

안녕하세요. 저는 현재 EntryDSM에서 Node.js로 백엔드 개발을 하고 있는 2학년 정보보안과 김대웅이라고 합니다. 아직 나아갈 길이 많고 부족한 점이 많지만 하루하루 더 나은 사람이 되기 위해 노력중입니다. 그리고 node.js 서버 개발에 관심이 있다면 페이스북 메신저로 연락주시면 좋겠습니다.

저번 게시글에서 서버의 개념에 대해서 배웠을 겁니다. 서버는 여러 클라이언트의 요청을 받고, 관리하고 있던 데이터를 이용하여 알맞은 응답을 해줍니다. 이번 게시글에서는 서버의 데이터 관리에 대해 다뤄볼 것입니다.

데이터

데이터는 거창한 것이 아닙니다. 게임을 한다거나 웹사이트에 가입을 할 때 아이디, 비밀번호 같은 것을 적을 것입니다. 여기서 아이디, 비밀번호는 데이터입니다. 또한 사용자의 이름, 전화번호, 성별과 같은 것도 모두 데이터입니다. 그리고 데이터를 서버에 보내면 서버는 기존에 관리하고 있던 데이터와 사용자가 보낸 데이터를 지지고 볶아서 사용자가 원하는 서비스를 제공합니다.

데이터를 왜 관리할까?

데이터를 관리하는 서버를 식당의 주방으로 예를 들겠습니다. 주방에서는 음식을 요리하기 위해서 필요한 재료들을 관리합니다. 만약 재료들을 관리하지 않으면 재료가 썩거나 벌레가 섞여들어가서 결국 사용하지 못하는 상황이 발생할 것입니다.

데이터도 마찬가지입니다. 데이터를 관리해주지 않으면 식당의 음식 재료들이 썩듯이 데이터도 결국 사용하지 못하는 불상사가 발생할 수도 있습니다. 또한 잘못하여 데이터를 해킹당하거나 소실하게 된다면 자산을 잃을 뿐더러 사용자로 하여금 서비스의 신뢰도를 떨어뜨리는 결과를 낳게됩니다.

이처럼 데이터를 관리하는 것은 매우 중요한 일입니다.

데이터베이스

정말 소규모 서비스를 만드는 것이 아니라면 데이터베이스는 거의 필수적으로 사용됩니다.

데이터베이스의 사전적 정의는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합입니다. 데이터베이스를 통해서 연관된 데이터들을 구조화함으로써 검색과 갱신의 효율화를 이룰 수 있습니다.

하지만 이렇게 설명하면 괜히 어렵게 느껴지기 때문에 쉽게 설명을 해보자면, 데이터베이스를 표라고 생각하면 됩니다.

아이디비밀번호이름
exampleid1examplepw1돌쇠
exampleid2examplepw2개똥
exampleid3examplepw3성계

여기 사용자의 정보가 담긴 표가 있습니다. 이 표에서 열은 동일한 종류, 용도의 데이터가 모여있고, 행에는 한 사용자의 정보가 모두 모여있습니다. 사용자가 가입을 더 하면 표의 행이 더 늘어나고, 탈퇴를 하면 행이 줄어들 것입니다. 데이터베이스에서 데이터의 저장, 삭제도 이런 식으로 이루어 집니다. 결국 데이터베이스는 연관된 데이터들을 체계적으로 모아 놓은 모음입니다.

데이터베이스의 종류마다 개념, 구조가 조금씩 다르지만 처음 데이터베이스라는 것을 접해서 뭔지 모르겠다 싶을 때 표를 생각하면 좀 더 이해가 쉬울 것이라고 생각합니다.

데이터베이스의 특징

데이터베이스의 특징은 4가지 정도가 있습니다. 실시간 접근성, 계속적인 변화, 동시 공유, 내용에 의한 참조.

아마 설명 없이는 무슨 뜻인지 이해하기가 어려울 것입니다.

먼저, 실시간 접근성은 사용자가 "모든 사용자 정보 줘봐."라고 하면 즉시 "ㅇㅋ. 사용자 정보는 어쩌구저쩌구."라고 응답하는 것입니다. 즉, 사용자가 질의(데이터베이스에 정보를 요청하는 것)를 하면 그 즉시 처리해서 응답하는 것을 뜻합니다.

계속적인 변화는 비교적 간단합니다. 데이터베이스가 데이터의 삽입, 삭제, 갱신으로 항상 최신의 상태를 유지한다는 것입니다.

동시 공유는 말 그대로 여러 사용자가 동시에 같은 데이터를 이용할 수 있어야 한다는 뜻입니다.

내용에 의한 참조는 사용자가 질의한 데이터를 찾을 때 데이터 행의 위치 또는 주소에 따라서 찾는 것이 아니라 사용자가 요구한 데이터로 데이터를 찾는 것입니다.

마치며

지금까지 데이터 관리에 대해서 매우매우 간략하게 알아보았습니다.

다음 게시글에서는 API라는 것에 대해 알아볼 것입니다.

긴글 읽어주셔서 감사합니다!

profile
대덕소프트웨어마이스터고등학교의 입학전형 시스템을 만드는 EntryDSM팀 입니다.

0개의 댓글