2월 1주차 주간 회고
===
## TGIF
### 많은 후회는 날 천천히 가게 할 뿐이다. 후회하지 말자
###### tags: `20220204` `주간 회고`
### 패턴 & 아키텍쳐 점검
#### 김완기
- 프로젝트 관리에 있어 건강관리 실패
- 코로나 이슈로 인해 연휴 전후로의 개발 계획에 차질이 생김
- 목표 중 제외해야 할 영역에 대한 판단이 요구
#### 이강호
- Saga pattern 과 CQRS pattern에 대한 조사 및 적용 여부 확인
- Saga pattern
- MSA에서 가장 문제가 되는 것은 트랜잭션 문제, db와 어플리케이션이랑 분리를 해놓았기 때문에 단일 dbms에서 제공하는 트랜잭션 기능을 사용하기가 어려움..
- 이 문제를 해결하기 위해 서비스들 끼리 에벤트를 주고 받아 특정 서비스에서 작업이 실패하면 이전까지의 작업이 완료된 다른 서비스들에게 보상 이벤트를 소싱함으로 분산환경에서 원자성을 보장하는 패턴
- 이 패턴의 핵심은 트랜잭션의 주체가 db가 아닌 어플리케이션에 있다는 사실..! 롤백이나 커밋을 어플리케이션 단에서 해결해야함
- SQRS pattern
- Command Query Responsibility Segregation - 명령 조회 책임 분리
- 왜 명령과 조회를 분리시켰을까..? -> 전통적인 어플리케이션은 데이터베이스를 모델로 다룸, 하지만 이러한 모델은 최근 들어 어플리케이션이 변화하면서 초기 모델보다 점점 거대해지고 변질되기 쉽상임..
- 이러한 비지니스 변화에 모델과 데이터 부분을 분리하여 관리하게 됨
- 잦은 데이터 변경이 있는 환경에서 사용하면 좋은 패턴
#### 홍석기
- Atomic Design Pattern의 Template과, Page 에 대한 정의 확립.
- 두 단계가 어떤 차이점이 있고, 어떤 특징이 있어야하는지 고민함.
==결론==
- Template: Layout 계산위주. API 연동 지양.
- 미리 작성한 하위 컴포넌트들을 조합하며 위치를 조정, page로 부터 props를 받아 렌더링 할 것으로 생각하며 개발.
- Page: children Node 를 통한 props 전달로 페이지 완성. / API 연동 활발.
- 실질적으로 `nextjs`를 통해 렌더링 되는 page 폴더가 아토믹의 page를 대체하는 형식으로 구성.
- 기존에 작성되어 있던 `HomeTemplate` 의 네이밍 고민
- 상단 바 , 푸터를 고정하는 역할만 하므로 -> NavTemplate으로 개명.
- `HomeTemplate`은 실제 홈화면에 바뀌지 않는 배너, 아래에 shortcut의 모음으로 구성할 예정.