개발 지식

개발 지식

Rust enum에 메서드를 구현하면 로직이 훨씬 깔끔해진다

페이지 정보

profile_image
영삼이
0건 118회 25-03-28 15:16

본문

enum에 메서드를 구현하면 로직이 훨씬 깔끔해진다

match로 분기하지 말고 메서드로 행동을 넣어라


Rust에서 enum은 상태를 표현할 때 자주 쓰인다:

enum Status {
    Ok,
    NotFound,
    Error(u16),
}

❌ 모든 동작을 match로 처리하면 분산된다

match status {
    Status::Ok => println!("정상"),
    Status::NotFound => println!("없음"),
    Status::Error(code) => println!("에러 코드: {}", code),
}
  • 어디서든 match를 써야 하고

  • 동작과 데이터가 분리


✅ 메서드로 동작을 내부에 넣자

impl Status {
    fn message(&self) -> String {
        match self {
            Status::Ok => "정상".to_string(),
            Status::NotFound => "없음".to_string(),
            Status::Error(code) => format!("에러 코드: {}", code),
        }
    }
}
println!("{}", status.message());
  • 상태별 로직이 안에 응집

  • 밖에서는 단순히 메서드만 호출하면 됨


✔️ enum은 단순한 분기용이 아니라
행동(메서드)을 함께 담는 타입으로 쓰는 게 좋다.
데이터와 로직을 함께 설계하라.

댓글목록

등록된 댓글이 없습니다.