일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 큐 자바 코드
- 안드로이드 레트로핏 crud
- android retrofit login
- 자바 다형성
- 안드로이드 유닛테스트란
- android ar 개발
- jvm 작동 원리
- 멤버변수
- 플러터 설치 2022
- 객체
- rxjava cold observable
- 클래스
- 안드로이드 레트로핏 사용법
- 2022 플러터 안드로이드 스튜디오
- 서비스 vs 쓰레드
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트 예시
- 안드로이드 os 구조
- 안드로이드 라이선스
- 스택 큐 차이
- ar vr 차이
- rxjava disposable
- 안드로이드 라이선스 종류
- Rxjava Observable
- 2022 플러터 설치
- jvm이란
- rxjava hot observable
- ANR이란
- 스택 자바 코드
- 안드로이드 유닛 테스트
- Today
- Total
나만을 위한 블로그
단일 진실 공급원(Single Source Of Truth)이란? 본문
가급적이면 데이터가 만들어지고 수정되는 작업이 여러 곳이 아닌 한 곳에서 일어나면 좋다. 여러 곳에서 일어나면 디버깅할 때 값의 흐름을 추적하는 것이 귀찮고 힘든 작업이 되며, 유지보수할 때 많이 괴로워진다.
이것과 관련된 용어가 단일 진실 공급원이다. 이름에서 어떤 뜻인지는 유추가 되지만 위키백과의 설명부터 확인해 본다.
https://en.wikipedia.org/wiki/Single_source_of_truth
정보 시스템에 대한 SSOT(Single Source Of Truth) 아키텍처 또는 SPOT(Single Point Of Truth) 아키텍처는 모든 데이터 요소가 마스터(또는 편집)되도록 정보 및 모델 관련 데이터 스키마를 구성하는 관행이다. 한 곳에서만 정규 형식으로 데이터 정규화를 제공한다. 이 데이터 요소에 대한 모든 가능한 연결은 참조용이다. 데이터의 다른 모든 위치는 "source of truth" 위치를 다시 참조하기 때문에 기본 위치의 데이터 요소에 대한 업데이트는 전체 시스템에 전파되어 효율성/생산성 향상, 잘못된 불일치의 쉬운 방지 같은 여러 이점을 동시에 제공한다. SSOT 아키텍처가 없으면 명확성, 생산성을 손상시켜 유지관리가 힘들어진다
한 곳에서만 데이터를 예쁘게 만들어서 보관하고 갖다 쓸 때는 데이터가 만들어진 곳에서만 쓰는 것도 SSOT라고 볼 수 있을 것 같다.
다른 곳에선 어떻게 설명하는지 확인한다.
https://www.lesstif.com/software-engineering/ssot-single-source-of-truth-128122887.html
단일 진실 공급원(SSOT)은 정보 시스템 설계 및 이론 중 하나로 정보와 스키마를 오직 하나의 출처에서만 생성, 편집하도록 하는 방법론이다. 단일 출처를 통해 데이터를 생성, 편집, 접근하므로 데이터의 정합성을 지키고 잘못된 데이터 유통을 방지하고 모두가 동일한 데이터를 참고하게 하고 있다. 예로 DBA는 다루는 데이터를 저장하는 테이블, 스키마를 정규화하고 참조무결성을 통해 데이터의 정합성, 일관성을 지키고 SW 개발자는 소스코드의 중복으로 인한 여러 문제를 방지하기 위해 소스코드를 라이브러리로 만들고, 이를 repository(저장소)를 통해 배포해서 단일 출처에서 데이터와 정보를 유통할 수 있었다...(중략)
간단히 말해 Single Source Of Truth는 사람으로 구성된 팀, 소프트웨어가 하나의 정확한 정보 소스에 의존하게 보장하는 지침이다. 프로그래밍에서 SSOT는 설계한 소프트웨어가 정확하고 최신 정보에 의존하는지 확인한다...(중략)...소프트웨어에서 올바른 정보를 어떻게 찾을 수 있는가? 우리는 참조를 만든다. 데이터를 여러 복사본에 저장하고 여러 위치에 존재하는 대신 특정 원칙을 써서 기능에 필요한 정보의 위치를 알려준다. 바탕화면 바로가기와 마찬가지로 우리는 필요한 정보를 파헤치는 것 외에 다른 도구를 써서 필요한 정보에 간접적으로 접근한다...(중략)
https://jennifer-yoo.medium.com/what-is-single-source-of-truth-in-coding-c5a9b231c27e
단일 진실 소스는 이름에서 알 수 있듯이 데이터가 존재하는 단일 "장소"다. 정보가 한 위치에 유지되면 DB 또는 코드는 진실하다. 즉 신뢰할 수 있고 다시 참조하기 쉽다...(중략)
다른 곳에서 말하는 것도 이와 비슷하기 때문에 생략한다.
SSOT를 지키면 한 곳에서만 데이터가 만들어지고 수정할 수 있기 때문에 여러 곳에서 데이터 변경 작업이 일어나는 것보다 상대적으로 데이터의 신뢰도가 더 높아진다.
다른 곳에서 이 데이터에 접근하려면 데이터가 있는 장소의 참조를 만들고, 그 참조를 통해 변수, 함수를 호출해 필요한 데이터를 가져오고 수정을 요청한다. 의존성 주입 라이브러리를 사용한다면 한 클래스가 어떤 책임을 갖도록 함수들을 작성한 뒤, 뷰에서 어노테이션을 통해 해당 클래스를 주입받는다. 이 절차를 통해 뷰에선 클래스의 인스턴스화를 하지 않아도 참조를 통해 원하는 함수를 호출할 수 있다.
'모르는 용어 정리' 카테고리의 다른 글
Github Action이란? (0) | 2023.05.10 |
---|---|
세마포어(Semaphore)란? 뮤텍스(Mutex)란? 교착 상태(deadlock)란? (0) | 2023.04.03 |
SSH란? 공개 키 암호화란? (0) | 2023.02.06 |
순수 함수란? (0) | 2023.02.01 |
동시성이란? 가시성이란? 원자성이란? (0) | 2022.10.23 |