2025-01-15
2025-01-15#
📝 Notes#
Soft Delete와 상태변경#
delete-deposit.usecase.ts
에 보면.. Deposit 자체의 상태도 바꾸고 softDelete
로 delAt
프로퍼티도 설정한다. 두가지를 다 할 필요가 있을까? ⇒ 해야하지 않을까? 왜냐면 FSMService에서 삭제가 되면 안되는 조건을 함축하고 있기 때문에 deposit.transition
에서 안될 놈들은 걸려야 하잖아. 아무때나 삭제되면 안된다고.
const event = new DepositDeletedEvent(deposit, deposit.senderSig);
deposit.transition(event.name, this.depositFsmService);
// !NOTE - delAt과 state.Deleted가 중복된 정보를 저장하는 것 아니냐?
await this.depositRepository.manager.transaction(
async (transactionalEntityManager) => {
await transactionalEntityManager.save(deposit);
await transactionalEntityManager.softDelete(Deposit, depositId);
},
);
delAt과 state.Deleted가 중복된 정보를 저장하는 것처럼 보일 수 있지만, 사실 이 둘은 목적과 사용되는 맥락이 다릅니다:
delAt
: 물리적 관점에서 데이터를 논리적으로 삭제 처리합니다. 데이터의 삭제 시간과 함께, ORM에서 제공하는 자동화된 기능을 활용할 수 있게 해줍니다.state.Deleted
: 논리적/비즈니스 관점에서 특정 객체의 상태를 표현합니다. FSM과 결합해 객체가 가질 수 있는 상태를 제한하고, 비즈니스 로직의 일관성을 유지합니다.
Refactoring 제안#
후원 생성됨 이벤트 핸들러에서 IncreaseFundSumUsecase
를 호출하는 걸로 변경하는 것은 어떠한지? 현재는 DepositMatchedEvent
핸들러에서 후원 생성, 펀딩금액 증가, Notification 발송을 전부 다 하고있다.
📅 2025-01-15 Daily Briefing#
🎵 오늘의 추천곡#
🏃 오늘의 운동#
🌞 오늘은...#
Giftogether 팀원들에게 이벤트 스토밍 결과를 공유해야 한다. 굳이 설득할 필요는 없다. 그냥 넌지시 기회가 되면 같이 이벤트 스토밍을 해보자고 떠보는 것으로 충분하다.
Giftogether 프로젝트 중 도메인 로직을 구현할 차례이다. WISH-420 로직을 바로 구현하기 전에 이벤트 스토밍으로 가능한 대부분의 도메인 이벤트와 상태전이를 식별했으니 PoC 코드를 먼저 만들어 머지를 갈겨야 한다.
꾸준히 해야 하는 작업은 바로 FSM Service로의 전환이다. Donation 상태다이어그램을 먼저 WISH-414에서 만들어놓고 WISH-420을 진행하는 것으로 하자.
🌜 어제는...#
2025-01-11 obsidian 블로그 개편플랜 어제 블로그 이주에 반쯤 성공했다. Obsidian Digital Garden을 도입하였으나, 내가 가진 문서의 양이 워낙 많아 일일이 html로 변환하다가 Node.JS의 힙 메모리 용량을 초과했다는 에러가 발생했다 Troubleshooting Digital Garden. 빌드 시간도 20분이 넘었으니 굉장히 비효율적이라는 것을 알게 되었다. 최적화 방법을 강구하고 옵션 타협을 좀 해보자. (Digital Garden이 사용하는 eleventy 자바스크립트 라이브러리를 뜯어봐야할지도) 만약 그래도 안된다면 다른 저수준 언어로 갈아탈 수밖에 없어보인다 (안돼 내 dataview...!)
📖 오늘의 읽기목록#
⏰ Daily Routine#
24년 12월의 데일리 루틴
- 0012 Career 💼
- 0011 Algorithms ♾️ 2024-12-23 ~ 2025-01-19 기간동안 진행할 챌린저스 코테 인증
- 25년 1월의 상칼파
- 세상 사람들과 연결하기 위한 소통의 창구로 나는 블로그를 선택했다. 블로그 새단장을 진행중에 있으니 금방 트래픽을 받을 수 있을 것이다.
🚀 WHY, HOW, WHAT#
오늘 하루의 동기를 다시 생각해보는 시간을 가져봅시다. 오늘의 신념, 목표를 달성하기 위한 방법, 오늘의 성과에 대해서 작성해봅시다.
🪂 PARA#
[!note] PARA Expert 에 위의 'Daily Briefing'을 복붙하면 자동으로 아래의 PARA 구조로 변환해줍니다
[Projects]#
- Giftogether 프로젝트
- 도메인 로직 구현 진행
- WISH-420: 이벤트 스토밍 결과를 바탕으로 PoC 코드 작성 및 머지
-
Donation 상태다이어그램 작성
- WISH-414: FSM Service로 전환 준비 단계
-
블로그 개편 프로젝트
- 2025-01-11 obsidian 블로그 개편플랜
- Obsidian Digital Garden의 빌드 성능 최적화
- Node.js 힙 메모리 문제 해결 및 Eleventy 최적화 방안 검토
- 필요시 대체 기술 검토
[Areas]#
- FSM Service
-
Donation 상태다이어그램 지속적인 관리 및 확장
-
블로그 운영
- 0012 Career 💼: 블로그를 통한 네트워킹 강화
-
25년 1월의 상칼파 목표와 연계
-
개인 스킬 향상
- 0011 Algorithms ♾️ 챌린지 진행
[Resources]#
- 참고 링크 및 문서
- WISH-420
- WISH-414
- Troubleshooting Digital Garden
-
개발 도구 및 자료
- Eleventy 자바스크립트 라이브러리
- Node.js 메모리 최적화 관련 자료
[Archive]#
- 어제의 진행 사항
- 블로그 이주 절반 완료, 문제점 및 해결책 발견