Post

데이터베이스는 세부사항이다

30. 데이터베이스는 세부사항이다

아키텍처 관점에서 볼 때 데이터베이스는 엔티티가 아니다.

데이터베이스는 데이터에 접근할 방법을 제공하는 유틸리티일 뿐

관계형 데이터베이스

관계형 데이터베이스는 세부사항임

데이터가 테이블 구조를 가진다는 사실은 오직 아키텍처의 외부 원에 위치한 최하위 수준의 유틸리티 함수만 알아야 함

데이터베이스 시스템은 왜 이렇게 널리 사용되는가?

디스크 때문에 널리 사용됨

디스크는 느리다.

디스크 때문에 피해갈 수 없는 시간 지연이라는 점을 완화하기 위해, 색인, 캐시, 쿼리 계획 최적화가 필요해졌다.

데이터 접근 및 관리 시스템이 필요했다.

-> 파일 시스템과 관계형 데이터베이스 관리 시스템(RDBMS)

파일 시스템은 문서기반

파일 시스템은 문서 전체를 자연스럽고 편리하게 저장하는 방법을 제공

문서의 이름을 기준으로 저장하거나 조회할 때는 잘 동작하지만, 내용을 기준으로 검색할 때는 그리 크게 도움이 되지 않는다.

데이터베이스 시스템은 내용 기반

내용을 기반으로 레코드를 자연스럽고 편리하게 찾는 방법을 제공

하지만, 정형화되지 않은 문서를 저장하고 검색하는 데는 대체로 부적합

이들 두 시스템은 데이터를 디스크에 체계화해서, 각 시스템에 특화된 방식으로 접근해야 할 때 가능한 한 효울적으로 데이터를 저장하고 검색할 수 있도록 한다.

디스크가 없다면 어떻게 될까?

디스크는 현재 소멸 중인 부품

디스크가 사라져도 하는 일을 똑같다.

세부사항

데이터베이스는 그저 매커니즘에 불과하며, 디스크 표면과 RAM 사이에서 데이터를 이리저리 옮길 때 사용할 뿐

따라서, 데이터가 있기만 한다면, 데이터가 어떤 형태인지는 신경써서는 안 됨

-> 세부사항임

하지만 성능은?

성능은 아키텍처 관심사이다.

하지만 데이터 저장소의 측면에서 성능은 완전히 캡슐화하여 업무 규칙과는 분리할 수 있는 관심사

성능은 시스템의 전반적인 아키텍처와는 아무런 관련이 없다.

결론

체계화된 데이터 구조와 데이터 모델은 아키텍처적으로 중요하다.

반면, 그저 데이터를 회전식 자기 디스크 표면에서 이리저리 옮길 뿐인 기술과 시스템은 아키텍처적으로 중요치 않다.

참조

  1. 클린 아키텍처(Clean Architecture)
This post is licensed under CC BY 4.0 by the author.