본문 바로가기

IT Book Summary/Clean Architecture

06 세부사항 -1

 

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

 

데이터베이스는 세부사항이라 아키텍처의 구성요소 수준으로 끌어올릴수 없음.

애플리케이션 내부 데이터 구조는 아키텍처에서 중요하지만 데이터베이스 모델은 아님.

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

관계형 데이터베이스

관계형 테이블은 특정한 형식의 데이터에 접근할때 편하지만,

데이터를 테이블에 행 단위로 배치하는 자체는 중요하지 않음.

 

데이터 접근 프레임워트가 테이블과 행이 객체형태로 시스템에 산재하는건 잘못된 설계이다.

이렇게하면 유스케이스, 업무규칙, UI 조차 관계형 데이터 구조에 결합된다.

 

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

이유는 자기 디스크 데이터 저장소와 다른 형태의 데이터 저장소 형식.

디스크에서 특정바이트를 읽으려면 시간이 오래걸렸음.

색인, 캐시, 쿼리 계획 최적화로 시간지연이 완화됨.

파일시스템 데이터베이스 관리 시스템 RDBMS
문서 document 기반.
문서 이름 기준 저장 조회가 아니 내용기준 검색할때 오래걸림.
내용 기반.
내용을 기반으로 레코드를 편리하게 찾음.
내용 기반으로 다수의 레코드를 연관짓는데 좋음.
정형화되지 않은 문서를 저장 검색에 부적함.

 

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

디스크는 RAM으로 대체.

데이터가 데이터베이스나 파일 시스템에 있더라도,

RAM으로 읽은 후 다른 형태로 그 구조를 변경.

리스트, 집합, 스택, 큐, 트리 등.

 

데이터를 파일이나 테이블 형태로 그대로 두는 경우는 없음.

 

세부사항

데이터베이스는 매커니즘일 뿐.

비트를 담는 거대한 그릇. 데이터를 장기적으로 저장하는 공간.

 

하지만 성능은?

데이터베이스 저장소의 측면에서 성능은 캡슐화해 업무규칙과 분리 할 수 있는 관심사.

아키텍처와 관련이 없음.

 

개인적인 일화

회선의 단말 장치에서 데이터를 가져온후 예측 알고리즘으로 문제를 탐지하고 보고하는 시스템.

 

데이터 사이 내용에 기반한 관계가 없으므로 랜덤 액세스 파일에 트리나 연결리스트로 저장.

데이터 조작은 RAM에서 이루어지고 RAM에 로드하기 편한 형태로 데이터 저장.

 

RDBMS를 도입하고자 하는 엔지니어와 논쟁.

데이터베이스 업체의 마케팅으로 시스템의 중심에 RDBMS를 두는것을 고객이 원하면서 필요치 않게 도입하게 됨.

 

시스템의 한쪽에 RDBMS를 붙이고 제한적이고 안정적 데이터 접근채널을 유지하고,

기존 처럼 시스템 중심부에 랜덤 액서스 파일을 유지하는 방식이 좋았을겄이다.

 

결론

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

데이터를 테이블 구조로 만들고 SQL로만 접근하도록 하는 데이터베이스 시스템은 아키텍처적으로 중요치 않음.

데이터는 중요하지만 데이터베이스는 세부사항

'IT Book Summary > Clean Architecture' 카테고리의 다른 글

06세부사항 -4  (0) 2021.04.19
06 세부사항 - 2  (0) 2021.04.11
05 아키텍처 - 6  (0) 2021.03.28
05 아키텍처 - 5  (0) 2021.03.28
05 아키텍처 - 4  (0) 2021.03.20