최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치.
콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서
전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한
업데이트0615/무제 3.canvas 뿐).
import{Effect,Layer,Context}from"effect"classDatabaseServiceextendsContext.Tag("DatabaseService")<DatabaseService,{findUser:(id: string)=>Effect.Effect<User|null,DbConnectionError>}>(){}constDatabaseLive=Layer.succeed(DatabaseService,{findUser:(id)=>Effect.tryPromise({try:()=>pgClient.query("SELECT * FROM users WHERE id=$1",[id]),catch:(cause)=>newDbConnectionError({cause}),}),})
기본값: greenfield TS backend with complex error contracts → Effect 채택. 매 learning curve 높음 — team buy-in 매 우선.
🔗 Graph
부모: Functional Programming · TypeScript 타입 시스템 및 인터페이스 설계
변형: Result Type
응용: 견고한 도메인 모델 및 API 계약 설계 · API 응답 및 에러 핸들링 아키텍처
Adjacent: Zod 런타임 유효성 검사 통합 · ts-brand
🤖 LLM 활용
언제: TS backend with strict error typing, dependency injection at type level, retry/circuit-breaker policies.
언제 X: 매 simple script · prototype · React component logic — overhead 매 큼.
❌ 안티패턴
Effect.runSync everywhere: 매 sync execution 강제 — async benefit 상실.
Fail with strings: typed TaggedError 의 사용해야 매 discriminated handling 가능.
Layer.merge spaghetti: 매 dependency graph 의 명시적 organize.
🧪 검증 / 중복
Verified (effect.website official docs · Effect 3.x release notes 2025).