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의 모음으로 구성할 예정.