마치며
이번 챕터에서 정말 많은 트레이트들을 살펴보았습니다. 하지만 이건 시작에 불과합니다! 공부해야 할 양이 너무 많아 보여도 너무 걱정하지 마세요. Rust로 코딩하다 보면 이 트레이트들을 워낙 자주 쓰게 되어서, 조만간 숨 쉬는 것처럼 자연스럽게 느껴지실 겁니다.
트레이트 사용을 위한 조언
트레이트는 강력한 도구이지만, 과하면 독이 될 수 있습니다. 다음은 트레이트를 다룰 때 기억하면 좋은 지침들입니다.
- 필요할 때만 제네릭을 쓰세요: 함수가 항상 특정한 한 가지 타입만 다룬다면 굳이 제네릭으로 만들 필요가 없습니다. 불필요한 추상화는 코드를 이해하고 관리하기만 어렵게 만듭니다.
- 실체가 있는 트레이트를 만드세요: 구현체가 단 하나뿐이라면 트레이트를 만들지 마세요. 트레이트가 불필요하다는 강력한 신호입니다.
- 표준 트레이트를 적극 활용하세요:
Debug,PartialEq같은 표준 트레이트들을 구현하면 여러분의 코드가 훨씬 Rust답게(Idiomatic) 보이고, 다른 라이브러리들과도 잘 어우러집니다. - 외부 트레이트 구현에 주저하지 마세요: 다른 크레이트나 에코시스템의 기능을 활용하기 위해 필요한 트레이트가 있다면 적극적으로 구현해 보세요.
- 테스트를 위한 과도한 제네릭은 피하세요: 모킹(Mocking)을 위해 코드를 제네릭으로 도배하는 것은 나중에 큰 유지보수 비용으로 돌아올 수 있습니다. 더 나은 테스트 전략들이 많이 있으니, 고퀄리티 테스트에 관심이 있다면 테스팅 마스터클래스를 참고해 보세요.
지식 확인하기
다음 섹션으로 넘어가기 전에, 지금까지 배운 내용을 총정리하는 마지막 연습 문제를 풀어봅시다. 이번 연습 문제는 힌트가 거의 없습니다. 오직 문제 설명과 테스트 코드에만 의존해서 스스로 길을 찾아보세요!
Exercise
The exercise for this section is located in 04_traits/14_outro