Upyo 0.2.0 릴리스 노트

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Upyo 0.2.0 릴리스를 발표하게 되어 기쁩니다. Upyo는 Node.js, Deno, Bun 및 엣지 함수 전반에 걸쳐 이메일을 보내기 위한 통합된 타입 안전 API를 제공하는 크로스 런타임 이메일 라이브러리입니다. SMTP, Mailgun, SendGrid, 그리고 이제 Amazon SES를 포함한 교체 가능한 트랜스포트를 통해 여러 이메일 제공업체를 지원함으로써, Upyo는 코드 변경 없이 이메일 서비스 간 원활한 전환을 가능하게 합니다.
이번 릴리스에서는 두 가지 중요한 추가 기능을 도입했습니다: Amazon SES 트랜스포트 지원과 포괄적인 OpenTelemetry 통합입니다. 이러한 기능은 트랜스포트 옵션을 확장하고 라이브러리에 프로덕션 수준의 관찰 가능성 기능을 추가합니다.
Amazon SES 트랜스포트
Upyo는 이제 새로운 @upyo/ses 패키지를 통해 Amazon SES를 지원합니다. 이 트랜스포트는 외부 의존성 없이 AWS Signature v4 인증을 제공하여 Upyo의 크로스 런타임 호환성 약속을 유지합니다. 이 구현은 AWS 액세스 키 자격 증명과 임시 자격 증명을 위한 세션 기반 인증을 모두 지원합니다.
import { SesTransport } from "@upyo/ses";
import { createMessage } from "@upyo/core";
const transport = new SesTransport({
authentication: {
type: "credentials",
accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
},
region: "us-east-1",
});
const receipt = await transport.send(createMessage({
from: "sender@example.com",
to: "recipient@example.com",
subject: "Hello from SES",
content: { text: "Sent via Amazon SES!" },
}));
SES 트랜스포트는 지역별 구성 지원, 외부 자격 증명 제공자를 통한 포괄적인 IAM 역할 통합, 그리고 효율적인 대량 전송 기능을 포함합니다. 다른 Upyo 트랜스포트와 마찬가지로, 동일한 일관된 인터페이스를 제공하면서 대규모 안정적인 전송을 위해 Amazon의 검증된 이메일 인프라를 활용합니다.
구성 세트, 메시지 태깅, 풍부한 콘텐츠 기능이 완전히 지원되어 팀이 SES의 고급 추적 및 분석 기능을 활용할 수 있습니다. 이 트랜스포트는 Upyo 사용자가 기대하는 간단하고 통합된 API를 유지하면서 AWS 인증 복잡성을 처리합니다.
OpenTelemetry 통합
새로운 @upyo/opentelemetry 패키지는 데코레이터 패턴을 통해 모든 Upyo 트랜스포트에 포괄적인 관찰 가능성 지원을 추가합니다. 이 구현은 기존 이메일 전송 코드를 변경할 필요 없이 분산 추적, 메트릭 수집, 그리고 지능적인 오류 분류를 제공합니다.
import { createOpenTelemetryTransport } from "@upyo/opentelemetry";
import { SmtpTransport } from "@upyo/smtp";
// 기존 트랜스포트에 관찰 가능성 추가
const transport = createOpenTelemetryTransport(
new SmtpTransport({ host: "smtp.example.com" }),
{
serviceName: "email-service",
metrics: { enabled: true },
tracing: { enabled: true },
}
);
// 이전과 동일하게 사용 - 관찰 가능성은 자동으로 적용됨
await transport.send(message);
OpenTelemetry 트랜스포트는 이메일 작업을 트레이스와 메트릭으로 자동 계측하여 전송률, 지연 시간 분포, 유형별 실패 분류를 추적합니다. 기존 OpenTelemetry 인프라와 원활하게 통합되어 글로벌 제공자와 다양한 배포 시나리오를 위한 사용자 정의 구성을 모두 지원합니다.
성능 최적화 기능에는 트레이스 및 메트릭에 대한 구성 가능한 샘플링 비율이 포함되어 고처리량 환경에서 최소한의 오버헤드를 보장합니다. 이 트랜스포트는 Disposable
/AsyncDisposable
지원을 통한 자동 리소스 관리를 제공하고 대량 이메일 작업을 위한 특수 모니터링 기능을 포함하여 모든 규모의 프로덕션 워크로드에 적합합니다.
참여하기
우리는 Upyo를 지속적으로 개선하기 위해 노력하고 있으며 커뮤니티의 의견을 듣고 싶습니다. 새로운 Amazon SES 트랜스포트를 시도하든, OpenTelemetry로 관찰 가능성을 구현하든, 또는 기존 트랜스포트를 사용하든, 여러분의 피드백은 라이브러리의 미래를 형성하는 데 도움이 됩니다.
문제가 발생하거나, 기능 요청이 있거나, 기여하고 싶다면 GitHub 저장소를 방문해 주세요. 또한 새로운 트랜스포트 구현, 문서 개선, 다양한 런타임 환경에서의 통합 경험에 대한 논의도 환영합니다.