비관계형 데이터베이스를 쓸때 조심할 것

0cean·2023년 6월 13일
0

1. 비 관계형 데이터베이스의 장점

  • 대용량 데이터 처리를 하는데 효율적이다.
  • 데이터 모델링이 유연하다.
  • 잡한 데이터 구조를 표현할 수 있다

위 장점들을 제외하고도 많은 장점들이 있지만, 이번에 다루고 싶은 것은 데이터 모델링이 유연하다는 점이다.

이번에 감정정보 기반 보안 프로그램의 추가 기능을 개발하는 중 역시나 몽고디비를 사용하다보니 데이터를 저장하고 불러오는건 정말 쉬웠다. 관계형 데이터베이스처럼 테이블을 정의해 Pk나 컬럼 요소들을 따로 정의하지 않고, pk가 없다보니 pfk의 종속이 없어 유연하고 원하는 데이터들을 바로 정의해서 저장하고 불러오기만 하여서 데이터 모델링이 유연하다는 것을 깨달았다.

2. 비 관계형 데이터베이스의 단점

  • 유연성으로 인해 데이터 구조 결정이 어려울 수 있다.
  • 데이터베이스의 컬렉션이 다양한 경우 수정시 모든 컬렉션의 데이터를 수정해야한다.

이번 글을 포스팅하는 가장 큰 이유는 이 비 관계형 데이터베이스의 단점이다. 추가 기능을 개발하다 생긴오류 중 오류 내용자체는 매우 간단한 오류였지만 엄청 찾는데 오래걸렸던 오류.... 내가 멍청했지만.....

간단한 데이터베이스에 저장된 데이터를 조회하는 기능이었지만, 저장된 데이터가 없다는 오류였다 (왜 캡처한 사진이 없지..)

코드를 몇번이나 바꾸고 데이터베이스에 들어가서 몇번이나 확인했지만 데이터값은 제대로 저장되는 중이었다.. 왜 계속 안되는지 생각하면서 커밋내용을 다시 보면서 확인하는 중 같이 프로젝트를 하는 선배가 암복호화 기능을 담당하다가 컬렉션의 구조를 바꿨던 것이다.

이렇게 되니 당연히 데이터를 호출할 때 추가한 기능과 변경전의 데이터들의 양식이 안맞아서 안불러와졌던 것..(설마 새 컬렉션을 안만들고 그대로 작업했을 줄은...) 확인을 하지않은 내가 완전 바보였다..

다음부터는 컬렉션 데이터를 호출하거나 기능추가할땐 새 컬렉션을 만들거나 그다지 중요하지 않은 데이터라면 컬렉션을 비워야할것을 배웠다.

너무 좋은것에 중점을 두다보니 단점에는 눈이 가지않았다.. 유연한 데이터 모델링이 발목을 잡았던 경험이 생겼다. (물론 유연한 데이터 모델링이 발목을 잡는건 다른 점이겠지만 예를 들면 테이블처럼 형식이 없다보니 구조 결정이 어렵다던가....)

다음부터는 어떤 기술 스택을 사용하던 장점이 있으면 그 장점에 대한 단점도 한번 생각을 해보고 개발을 해야겠다는 다짐을 했다.

profile
주도적인 학습으로 성장하는 개발자가 되겠습니다

0개의 댓글