Skip to content

Commit

Permalink
post: 2024-06-25 22:54
Browse files Browse the repository at this point in the history
  • Loading branch information
EATSTEAK committed Jun 25, 2024
1 parent 1022523 commit ff95a7a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/content/blog/async-trait.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Rust 1.75.0의 Async trait
description: 작년 말 릴리즈된 Rust 1.75.0에서 trait에 async fn을 지원하기 시작했습니다. 하지만 공개 trait에서는 이를 사용하는 걸 권장하지 않는데요. Rust의 async 문법 작동 방식을 간단히 알아보고, 왜 공개 trait에서 async 키워드를 사용할 수 없는지 알아봅시다.
description: 작년 말 릴리즈된 Rust 1.75.0에서 trait에 async fn을 지원하기 시작했습니다. 하지만 공개 trait에서는 이를 사용하는 걸 권장하지 않는데요. Rust의 async 문법 작동 방식을 간단히 알아보고, 왜 공개 trait에서 async 키워드 사용이 권장되지 않는지 알아봅시다.
category: rust
pubDate: 2024-06-24T13:05:00+09:00
hidden: true
Expand Down
16 changes: 16 additions & 0 deletions src/content/blog/impl-rust-error.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Rust 라이브러리에서 오류 구현하기
description: Rust는 독특한 오류 처리 시스템을 가지고 있습니다. Rust 라이브러리 에서는 어떤 방식으로 오류를 설계해야 할까요? rusaint를 만들면서 배운 Rust 라이브러리 오류 구현의 Best practice를 알아봅니다.
category: rust
pubDate: 2024-06-24T13:05:00+09:00
hidden: true
topics:
- Rust
- Error
- rusaint
---

**Rust 언어에서는 언어의 논리를 따라 다른 언어와 다른 방식의 오류 구현을 채택하고 있습니다. 이를 보완하기 위해 `thiserror``anyhow`와 같은 오류 처리의 편리함을 더해주는 라이브러리들이 존재하는데요. 이런 라이브러리들은 쉽게 오류를 처리할 때 유용하지만, 외부에 배포하기 위한 API가 포함된 라이브러리의 경우엔 어떤 방식으로 오류를 구현하고, 처리해야 할까요? [rusaint](https://github.com/eatsteak/rusaint)를 개발하면서 얻은 시행착오와 함께, 러스트 오류 구현의 모범 답안은 무엇인지 함께 알아봅시다.**

## Rust의 오류 처리
러스트의 오류 처리는 기존 언어들이 주로 채택하는 `try-catch-finally`문으로 대표되는 예외 처리를 통하지 않고, `panic!` 매크로와 `Result<T, E>`라는 열거형의 반환을 통해 이루어집니다. 이는 치명적인 오류가 아닌 함수의 오류 또한 반환 값의 타입으로 강제하여 함수의 반환 값 뿐만 아니라

0 comments on commit ff95a7a

Please sign in to comment.