개발자에게 네이밍 작업은 언제나 귀찮습니다.
가끔 재밌을 때도 있지만, 그건 정말 가끔입니다.
최근에 카프카 개발을 하면서, 토픽 이름을 어떻게 할지 고민해 봤습니다.
메세지 연동이 많아질수록, 토픽 이름은 더욱 중요해 집니다.
토픽 이름만으로 작업을 알 수 있어야 하기 때문입니다.
카프카 토픽에 유효한 문자는 영숫자, 마침표(.), 밑줄(_), 하이픈(-) 입니다.
보통 영숫자로 의미를 부여하고, 나머지를 연결자로 사용합니다.
의미를 부여할 수 있는 항목은 많습니다.
Application name Product Domain name Schema name Namespace Development environment Public / Private Consumer name Event name Event type Data Type Message Type Version numbers ...
여기에 개발 조직에 맞는 표기법을 적용하면 됩니다.
다양한 표기법이 있지만, 개발 조직마다 선호하는 표기법은 다릅니다.
TopicName TopicName topicName topicname topic-name topic_name
개인적으로는 영문 소문자로 구성하고 연결자는 점으로 활용하는 방식을 선호합니다.
그럼 아래 조합은 어떻게 나올까요?
어플리케이션의 구성이나 환경에 따라 달라질 수 있습니다.
거기에 개발 조직의 선호도에 따라 네이밍 규칙은 달라집니다.
· [application name].[namespace].[data type].[event type] devfoxstar.blog.posting.sending · [namespace].[data type].[event type].[version numbers] blog.posting.sending.0 · [development enviroment].[application name].[namespace].[data type].[event type] dev.devfoxstar.blog.posting.sending
사실 네이밍 규칙은 수 많은 경우의 수가 있습니다.
그래서 네이밍에 정답은 없습니다.
개발 조직에서 효율적으로 관리할 수 있는 네이밍이 바로 정답입니다.