1. 데이터베이스 모델링이란? (Database Modeling)
애플리케이션을 운영하면서 발생하는 데이터를 잘 분류해서 데이터를 저장해놔야 한다. 그래야 나중에 필요한 데이터가 있을 때 쉽게 찾아서 조회할 수 있고, 데이터를 수정 및 삭제하기도 쉬워진다. 데이터를 어떻게 분류해서 저장할지를 설계하는 행위를 보고 데이터베이스 모델링(Database Modeling)이라고 표현한다. 데이터 모델링, 데이터베이스 설계(DB 설계)라고도 부른다.
-인프런 JSCODE님 수업자료에서-
여기에 더해 내 생각을 적자면,
1. 프로젝트의 기획 또는 기능에 대해 기획자의 수준에 가깝게 알고 있어야 한다. 그 프로젝트 혹은 서비스가 누구를 위한, 무엇을 위한, 무엇을 하는 서비스인지 명확히 알고 있어야 정확히 설계할 수 있다.
2. 덧붙여 말하면 기획이 변경되면 DB설계 변경과 수정에 대해서도 당연히 생각해야 된다.
2. DB 모델링 방법은 왜 배워야 하나요?
사람들마다 옷장에 옷들을 정리해놓는 방식이 다 다르다. 누군가는 외출복과 집에서 입는 옷을 구분해서 분류를 하기도 하고, 누구는 상의와 하의를 기준으로 구분을 하기도 하고, 또 다른 누군가는 색깔별로 옷을 구분해서 관리하기도 한다. 만약 옷장에 옷들을 비효율적으로 정리하게 된다면 내가 필요한 옷을 찾을 때 헤맬 수도 있다.
데이터들도 마찬가지다. 다양한 데이터를 저장하는 방법은 사람들마다 다 다를 수 있다. 하지만 아무런 규칙 없이 마음대로 데이터를 저장해 뒀다가는 나중에 필요한 데이터를 찾기가 어려울 수 있다. 이런 비효율 때문에 어떻게 하면 효율적으로 데이터를 저장할 수 있을까를 고민하다 나온 게 ‘데이터베이스 모델링 방법’이다.
데이터베이스 모델링 방법을 배워놓으면 특정 규칙을 가지고 일관되게 데이터를 저장할 수 있게 된다. 일관되게 데이터를 저장하다보니 데이터도 쉽게 찾을 수 있게 된다. 실제 운영하는 서비스들은 주로 데이터의 종류와 양이 아주 많다. 규칙성 없이 데이터를 저장했다가는 데이터들끼리 꼬여서 엉망진창이 되어버릴 수도 있다.
백엔드 개발자는 수많은 복잡한 데이터를 다룰 일이 많다보니 관리를 잘해야 한다. 따라서 백엔드 개발자는 필수적으로 데이터베이스 모델링의 방법을 배워야 한다.
-인프런 JSCODE님 수업자료에서-
1. 월세를 내주는 룸메이트(회사)와 같이 살게 되었다면, 그 룸메이트의 옷장 규칙을 따라야 한다. 따르지 않고 나만의 규칙으로 옷을 정리했다간 룸메이트에게 크게 혼날 것이다.
2. 룸메이트의 안중에 옷장의 규칙 따위 없다면, 먼저 제안하는 것도 좋은 방법. 훗날 룸메이트에게 칭찬을 들을 수도 있을 것이다.
3. 수많을 옷장의 규칙을 배우기 위해 화이팅.
부끄럽게도 아직 DB설계를 해본 적은 없다.
회사에서 여러 프로젝트를 수행하면서 어떤 컬럼의 어떤 자료형을 써야 하고, 선임의 실수로 빠진 컬럼을 찾아내 추가해 공유하는 수준에 그쳤었다.
DB 모델링의 중요성이야 뭐 너무나 잘 알고 있었지만, 기회가 없으니 시도할 엄두도 내지 못했던 것도 사실이다.
(다른 공부하느라 시간이 없었단 변명도 넓은 아량으로 이해해 주기를)
최근 회사에서 챗봇 프로젝트를 준비 중인데, 챗봇에 대한 개념 공부와 DB 설계까지 한 번 해보라는 말에 GPT의 도움을 받아가며 어찌어찌하고 있지만 역시 한계가 있음을 느낌과 동시에,
이번 기회에 제대로 배우고 습득해야겠다는 생각을 하게 되었다.
추후 내 토이 프로젝트에도 적용할 생각을 하니 벌써 설레고 설레발을 치게 된다.
'인프런 - 비전공자도 이해할 수 있는 DB 설계 입문/실전' 강의를 수강하며 내용 정리를 위해 작성한 포스팅입니다.