Caddy 대신 NPM 쓰는 이유

지금 단계에서는 인프라를 최대한 단순하게 유지하는 게 우선이에요. Redis / 메시지 큐 / 외부 서비스는 명확한 이유가 생길 때까지 보류.

환경변수는 `src/lib/env.ts` 한 곳에서 Zod로 검증. `process.env.X` 직접 접근 금지가 강한 규약.

SSE는 in-memory EventEmitter로 시작했는데 수평 확장이 들어오면 Postgres LISTEN/NOTIFY로 옮길 예정. 인터페이스(publish/subscribe)만 유지하면 교체가 깔끔합니다.

export async function hashPassword(p: string) {
  return hash(p, { memoryCost: 19456, timeCost: 2 });
}

댓글 (7)

로그인하면 댓글을 작성할 수 있습니다.

이 패턴 저희 팀에도 가져가 보겠습니다.

이 부분은 사실 측정해보지 않으면 답이 안 나옵니다. 환경마다 다를 거에요.

흥미로운 정리네요. 마지막 부분은 좀 더 풀어주실 수 있나요?