Community

"다른 사람을 배려하는 섬세한 코드의 의도를 알게되는 것은 큰 행운입니다." (문제) static 함수만을 필요로 하는 객체를 구현한다면, Swift에서는 Struct/Enum 중 어떤 것이 다른

"다른 사람을 배려하는 섬세한 코드의 의도를 알게되는 것은 큰 행운입니다." (문제) static 함수만을 필요로 하는 객체를 구현한다면, Swift에서는 Struct/Enum 중 어떤 것이 다른 엔지니어의 시간을 아껴줄 수 있을까요? 일주일 전의 저였다면, 큰 생각 없이 Struct를 선택했을 겁니다. 하지만, Struct를 선택한다면 다른 엔지니어가 사용할 때 불필요한 동작을 하게됩니다. 그 이유는 Struct에 static func만 있는 경우 자동으로 init 함수가 구현되고 자동완성 리스트 상단에 노출됩니다. 사용하지 않을 대상이 자동완성 리스트에 먼저 노출되니 의도에 맞는 함수를 사용하기 위해서는 추가적인 동작이 요구됩니다. 하지만, 지금의 저라면 Enum을 선택할 겁니다. Enum은 static func을 선언할 수 있으면서도, init이 없기에 의도한 static 함수들만 자동완성 리스트에 노출되고 추가적인 동작 없이 바로 함수를 이용할 수 있습니다. 이번주동안 어려운 코드 작업도 많았지만, 제 기억에 가장 선명했던 리뷰는 “static 함수만을 필요로 하는 객체는 Enum으로 해주는 것이 타인의 시간을 아껴줄 수 있다.” 였습니다. 복잡하고 어려운 문제를 잘 푸는 것도 중요하지만, 작지만 함께 일하는 엔지니어를 배려하는 습관도 소프트웨어 엔지니어가 갖춰야 할 중요한 요소라 느낍니다.

알림

알림이 없습니다