소개

참여하기

이 책에 기여하고 싶다면 contribution guidelines를 확인하세요.

디자인 패턴

소프트웨어 개발을 하다보면 어떤 환경에서 일하든 간에 비슷한 문제를 자주 접하게 됩니다. 물론, 주어진 문제를 해결하기 위해선 요구사항에 맞춰 구체적으로 구현해야 하겠지만, 문제를 해결함에 있어 특징을 잘 추려보면 이곳저곳에 적용할 수 있는 좀 더 일반화된 방법을 알 수 있게됩니다.

디자인 패턴은 소프트웨어 공학 분야에서 이미 시험대를 거쳐 검증된 재사용 가능한 해결책의 모음입니다. 디자인 패턴은 소프트웨어를 보다 모듈화, 확장, 유지보수에 용이한 구조로 만들어줍니다. 또한 개발자들이 문제를 해결하기 위해 보다 효과적으로 소통할 수 있도록 도와주는 훌륭한 도구로도 사용됩니다.

Rust 디자인 패턴

Rust는 객체지향이 아닙니다. Rust는 함수형 프로그래밍적 요소, 강타입 시스템, 버로우 체커 등을 채택하고 있으며, 이러한 특징이 모여 Rust만의 고유한 성격을 띄게 합니다. 때문에 Rust의 디자인 패턴은 기존의 객체 지향 언어의 디자인 패턴과는 사뭇 다른 양상을 보입니다. 이것이 이 책을 집필하게 된 이유입니다. 재밌게 읽어주시기 바랍니다! 이 책은 크게 다음 3개의 장으로 나누어져있습니다:

  • 관용구: 코드 작성시 참조할 수 있는 지침. Rust 커뮤니티에서 일반적으로 쓰이는 방식입니다. 다른 방법이 더 낫다는 확실한 이유가 없다면 가급적 따르는게 좋습니다.
  • 디자인 패턴: 코드 작성시 일반적인 문제 해결 방법.
  • 안티패턴: 코드 작성시 일반적인 문제 해결 방법. 디자인 패턴은 사용시 장점이 더 많은 반면, 안티패턴은 더 많은 문제를 야기합니다.