Bounded Context
현재 두번째 프로젝트를 진행중인데 Review, ReviewStatus 엔티티를 어느 도메인에 넣고 관리할 것이냐에대한 논의를 나누던 도중 팀원분중 한분이 Bounded Context 라는 용어를 사용하며 어떠한 도메인에서 관리하는게 논리적인지에 대한 설명을 해주셨다. 단어의 뜻을 몰라서 찾아보았다.
DDD의 목적
DDD의 핵심 목표는 어플리케이션 또는 그 안의 모듈간의 의존성은 최소화하고, 응집성은 최대화 하는것 이다.
Bounded Context
동일한 모델이더라도 context에 따라 해석되는 의미가 달라질 수 있다. 예를 들자면 회사에서의 판매부, 경리부 그리고 배송부에서의 상품명은 ‘상품의 이름’ 이라는 자체 그 원래 뜻은 같으나 각각의 부서에서 의미하는바가 다를 수 있다. 그리하여 해석되는 문맥의 단위로 묶어놓은것을 Bounded Context 라고 한다. 이렇게 나누게 되면 각각의 context 내에서는 상품이라는 단어의 의미가 동일하게 사용될 수 있다.
redis
레디스는 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL이다.
redis의 특징
- redis는 모든 데이터를 메모리에 저장하고 조회함 (인메모리 데이터베이스) → 그러므로 빠른 성능이 특징이다.
- NoSQL로서 Key-Value 타입의 저장소
- 영속성을 지원하는 인메모리 데이터 저장소
- 읽기 성능 증대를 위한 서버 측 복제를 지원
- 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding) 지원
- 다양한 서비스에서 사용되며 검증된 기술
- 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원. 메모리 저장소임에도 불구하고 많은 데이터형을 지원하므로 다양한 기능을 구현
데이터 파이프 라인
- 데이터를 한 장소에서 다른 장소로 옮기는 것을 의미
- 데이터를 가져오는 과정에서 정제나 전처리가 쉽도록 데이터 형태도 고쳐주고, 필요없는 데이터는 제거하고, 함께 보는게 좋은 데이터들은 합쳐서 저장
데이터 파이프라인이 하는 일
- Data extracting: 데이터 추출
- Data transforming: 데이터 변경
- Data combining: 데이터 결합
- Data validating: 데이터 검증
- Data loading: 데이터 적재
→ 이 중 데이터 추출, 변환, 적재를 묶어 ETL이라고 한다.
데이터 수를 예측하여 시간복잡도를 계산
멘토님이 해주신 말씀인데 알고리즘 공부할 때, 코딩테스트를 할 때 고려하던 부분을 직접 마주하니 신기했고, 이래서 자료구조와 알고리즘이 중요하구나 생각이 들었다.
🖋 회고
인턴십을하며 정말 많은 지식들이 쏟아져 나온다. TIL 정리를 더 잘 해야겠다는 생각이 들었다.
'Project' 카테고리의 다른 글
[개인 프로젝트] 예산 관리 어플리케이션 (0) | 2023.11.17 |
---|---|
[팀 프로젝트] 소셜 미디어 통합 Feed 서비스 (0) | 2023.11.03 |
프리온보딩 인턴십 백엔드 TIL #5 (0) | 2023.11.03 |
댓글