Apache Kafka 공부

#10 토픽 작명 방법

박태정 입니다. 2025. 2. 16. 17:31
반응형

🏷️ 토픽 이름 짓기 - 제약 조건과 유지보수하기 좋은 네이밍

카프카에서 토픽은 데이터를 주고받는 핵심 단위다. 그런데 토픽 이름을 아무렇게나 짓다 보면 유지보수도 어렵고, 예기치 못한 문제를 마주칠 수도 있다. 그렇다면 "좋은 토픽 이름"은 어떤 기준으로 정해야 할까?


❌ 토픽 이름의 제약 조건

카프카에서 토픽 이름을 정할 때 몇 가지 제약이 있다. 이 조건들을 어기면 토픽이 생성되지 않거나, 경고 메시지가 뜰 수 있다.

  • 빈 문자열은 토픽 이름으로 사용할 수 없다.
  • 마침표(.) 하나 또는 마침표 두 개(..)만으로 된 이름은 불가능하다.
  • 토픽 이름의 길이는 249자 미만이어야 한다.
  • 사용 가능한 문자:
    • 영어 대문자(A-Z), 소문자(a-z), 숫자(0-9)
    • 마침표(.), 언더바(_), 하이픈(-)
  • 마침표(.)와 언더바(_)를 동시에 포함할 경우 주의가 필요하다.
    • 사용 자체는 가능하지만 내부적으로 문제가 발생할 수 있으며, WARNING 메시지가 뜰 수 있다. 이게 무슨 의미일까? 내부적으로 마침표와 언더바를 같은 문자로 취급하는 경우가 있어서 발생하는 문제라고 한다. 🤔 그렇다면 가능하면 둘을 섞지 않는 것이 최선일까?

📌 의미 있는 토픽 이름을 짓는 방법

토픽 이름은 단순한 문자열이 아니라 데이터를 구분하는 중요한 역할을 한다. 그래서 "데이터의 얼굴"이라고도 불린다.

  • 누가, 어떤 용도로 사용하는지 모를 이름은 피해야 한다.
  • 카프카는 토픽 이름 변경을 지원하지 않는다.
    • 즉, 한 번 정하면 바꾸려면 삭제 후 다시 생성하는 방법밖에 없다.
    • 삭제 후 다시 생성하면 기존 데이터가 날아가므로, 초기에 신중하게 정하는 것이 중요하다.

🏗️ 토픽 작명 템플릿과 예시

토픽 이름을 체계적으로 정하면 유지보수가 훨씬 쉬워진다. 아래처럼 일정한 템플릿을 따르는 것이 좋다.

템플릿:

환경.팀-명.애플리케이션-명.메시지-타입

예시:

prd.marketing-team-sms-platform.json
  • prd → 운영 환경 (Production)
  • marketing-team → 마케팅팀에서 사용하는 토픽
  • sms-platform → SMS 관련 서비스
  • json → 메시지 타입 (JSON 형식)

이렇게 환경을 명시하면 부서별 구분이 명확해진다. 또, 메시지 타입을 지정하면 컨슈머(Consumer)가 데이터를 읽을 때 직렬화 방식을 쉽게 파악할 수 있다.


🎯 결론

토픽 이름은 한 번 정하면 쉽게 바꿀 수 없기 때문에 처음부터 신중하게 정하는 것이 중요하다. 카프카의 제약 조건을 지키면서도 유지보수하기 좋은 네이밍 규칙을 따르는 것이 가장 이상적이다.

무심코 정한 토픽 이름이 나중에 발목을 잡지 않도록, 지금부터라도 체계적인 네이밍을 고민해야겠다! 🤓

반응형