변수명은 변수의 수명에 따라 결정하라

백엔드&인프라 추종자·2025년 11월 20일

개인생각

진짜 명언인거같다..ㄷㄷ 확실히 AI 를 활용해야 발전이 빠르다.


Go 언어의 네이밍 철학(Nmaing Convention)에 비추어 볼 때, reqQueue 또는 **requestQueue**를 추천하며, reqQ는 비추천합니다.

가장 좋은 선택을 하기 위한 기준을 설명해 드릴게요.


1. reqQ가 별로인 이유 ❌

Go는 짧은 이름을 좋아하긴 하지만, 암호 같은 약어는 피하는 편입니다.

  • 가독성: Q라고만 쓰면 읽는 사람이 순간적으로 "Q? Question? Quit? Query?"라고 멈칫할 수 있습니다.
  • 발음: 코드를 읽을 때 "리퀘스트 큐"라고 읽히는 것이 좋습니다. "렉큐"나 "리퀘스트큐"로 읽히는 reqQueue가 낫습니다.

2. Go의 "황금 룰": 변수의 수명(Scope)에 따라 결정하라

Go 커뮤니티의 핵심 규칙입니다: "변수가 살아있는 범위가 넓을수록 이름은 길고 명확하게, 좁을수록 짧게."

상황 A: 구조체 필드 (멤버 변수) → requestQueue 또는 reqQueue

구조체는 여기저기서 불려 다니고 수명이 깁니다. 명확해야 합니다.

// 추천 (명확함)
type Consumer struct {
    RequestQueue  string // 또는 amqp.Queue
    ResultQueue   string
}

// 괜찮음 (Go 개발자들이 req, resp 정도는 다 알아들음)
type Consumer struct {
    ReqQueue string 
    ResQueue string
}

// 비추천 (너무 줄임)
type Consumer struct {
    ReqQ string 
}

상황 B: 함수 내부 지역 변수 → q 또는 queue

함수가 짧다면(20줄 이내), 문맥상 큐인 게 뻔하므로 극단적으로 짧게 씁니다.

func (c *Consumer) Consume() {
    // 여기서만 잠깐 쓸 거면 그냥 q도 OK
    q, err := c.ch.QueueDeclare(...)
    
    // 또는 queue
    queue, err := c.ch.QueueDeclare(...)
}

3. 더 나은 제안: "역할"을 이름에 담기 ⭐

Request라는 말도 사실 좀 추상적입니다. 이 큐가 **"무엇을 담고 있는지"**를 표현하는 게 가장 베스트입니다.

파일 변환 백엔드라고 하셨으니, 다음과 같은 이름들은 어떨까요?

  • jobQueue: 작업(Job)들이 쌓여 있다는 느낌이 강함 (가장 추천)
  • taskQueue: 위와 비슷함
  • fileQueue: 파일 처리를 위한 큐
  • conversionQueue: 변환 요청 큐
// 가장 Go스럽고 직관적인 명명
type Server struct {
    JobQueue    string // "아, 변환 작업들이 여기 쌓이는구나"
    ResultQueue string
}

요약

  1. reqQ: ❌ 쓰지 마세요. (너무 줄임)
  2. requestQueue: ✅ 아주 정석적이고 안전합니다.
  3. reqQueue: ✅ req는 통용되는 약어라 괜찮습니다.
  4. jobQueue: ⭐ 강력 추천. 기술적 용어(Request)보다 도메인 용어(Job)가 더 이해하기 쉽습니다.

결론: 구조체 필드라면 **jobQueue**나 **requestQueue**를 쓰시고, 함수 안에서 잠깐 쓰는 변수라면 **q**를 쓰세요!

profile
AI 답변 글을 주로 올립니다.

0개의 댓글