협업을 위한 코드 작성법

in #krsuccess16 days ago

같이 코딩할 때 덜 싸우는 법: 협업을 위한 코드 작성 습관들

Persblik

이번 파트는 사실 “코딩 실력”보다 “같이 일하는 능력”에 더 가까워요.
왜냐면… 솔직히 말하면 같은 기능을 만들어도, 코드를 읽기 쉽게 써 둔 사람이 결국 이깁니다. (내가 나중에 봐도 그렇고요. 어? 이거 내가 쓴 건데 왜 이렇게 헷갈리지… 같은 느낌!)

이전 글에서 작은 프로젝트를 확장해봤다면, 이제는 확장하면서 생기는 혼돈을 정리하는 방법을 잡아볼게요. 주제는 7-4. 협업을 위한 코드 작성법입니다.

MAKY_OREL


협업에서 제일 먼저 터지는 문제: “이 코드 뭐야?”

내가 예전에 팀 프로젝트 하다가 진짜 웃픈 일이 있었거든요.
내가 만든 기능인데도 누가 “이 부분 왜 이렇게 짜셨어요?”라고 물어보더라고요.

나는 그때 이렇게 대답했죠.

“어… 그냥 그렇게 하면 빨라질 것 같아서요.”
…네, 그 대답은 진짜 도움이 안 됐습니다. 솔직히 아직도 그날 얼굴이 기억나요. 음...

그래서 오늘은 아래 3가지를 잡을 거예요.

  • 주석: 왜/무엇을 하는지 남기기
  • 네이밍: 변수/함수 이름으로 설명하기
  • 버전 관리: 실수했을 때 되돌아갈 수 있게 하기

1) 주석은 “설명서”처럼, 하지만 남발은 금지

주석은 대단한 문장이 아니라, 미래의 내가 이해하도록 돕는 힌트라고 생각하면 돼요.

✅ 좋은 주석 예시

  • “왜 이렇게 했는지”
  • “이 코드가 처리하는 규칙”
  • “주의해야 하는 부분”

예를 들면 이런 느낌:

# 유효성 검사: 공백만 들어오면 입력으로 처리하지 않는다
if input_text.strip() == "":
    return "빈 입력은 불가"

이건 “무엇을 하는지”가 코드 자체로도 보이니까, 주석이 힘을 보태는 형태예요.

❌ 안 좋은 주석 예시

  • 코드 한 줄 한 줄을 그대로 복사해서 주석으로 적는 경우
  • 주석이 코드랑 불일치하는 경우

예를 들어:

# i를 1씩 증가
i = i + 1

이건… 솔직히 말하면 필요가 없어요. 코드가 이미 말해주거든요.

결론: 주석은 코드를 다시 읽게 만드는 이유를 남기는 용도면 딱 좋아요.

Pexels


2) 네이밍은 “내가 대신 말해주는 기능”

여기서 진짜 중요한 포인트.
코드에서 가장 먼저 읽히는 건 문법이 아니라 이름이에요.

  • x, tmp, data1
    이런 건 초반엔 편한데, 협업에서는 거의 “아무 말 안 하는 사람”이 됩니다.

✅ 네이밍은 이런 기준으로

  • 변수/함수 이름은 무슨 역할인지 드러내기
  • 약어는 팀에서 합의가 없으면 줄이기
  • 범위를 좁히고, 정확하게 부르기

예를 들어서:

# ❌ 뭐가 들어오는지 모름
temp = 0

# ✅ 의도가 드러남
total_score = 0

또 함수도 그래요.

# ❌ 의미 불명
def doStuff():
    pass

# ✅ 역할이 보임
def calculate_total_score():
    pass

이름이 좋아지면, 나중에 누가 읽어도 “아! 이게 그거네”가 바로 나와요.
진짜로요. 내가 예전에 네이밍만 정리하고도 유지보수 시간이 확 줄었던 경험 있어요. (그땐… 내가 천재인 줄 알았지. 사실은 습관이었음)

652234


3) 버전 관리는 “실수 보험”

협업에서 버전 관리는 그냥 도구 이야기가 아니라, 심리 안정에 가까워요.
왜냐면 누군가 실수로 이상한 걸 올려도

  • 되돌릴 수 있고
  • 바뀐 내용을 확인할 수 있고
  • 누가 언제 뭘 했는지 남기니까요.

✅ 커밋 메시지(로그) 작성 팁

커밋 메시지는 길게 쓸 필요 없어요. 대신 명확하게.

좋은 커밋 느낌:

  • fix: 로그인 예외 처리 추가
  • feat: 메뉴 출력 UI 개선
  • refactor: 변수명 정리 및 중복 함수 제거

이런 식이면, 팀이 코드를 보기 전에 “아 지금 무슨 일이 있었지?”를 파악할 수 있어요.

그리고 중요한 거 하나:

  • 커밋은 “크게 한 방”보다 작게 자주
    → 중간에 뭔가 망가져도 원인 찾기가 쉬워져요.

나름 꿀팁인데, 내가 예전에 한 번에 커밋했다가 “어느 줄에서 망했지?”로 밤을 새운 적이 있어요. 유머가 아니라 진짜로. 그래서 지금은 커밋을 쪼갭니다.

danielkirsch


4) 팀 코드 스타일은 “협약”이 있어야 편해져요

협업에서 은근히 많이 싸우는 게 이거예요.

  • 들여쓰기 2칸?
  • 함수는 어디에 배치?
  • 예외 처리는 어떤 패턴?

사실 기술보다 규칙이 먼저 정리되면 편해요.

내가 추천하는 방식

  • 시작 전에 간단한 스타일 규칙을 정하기
  • 가능하면 자동 포맷터/린터를 쓰기
    (코드가 알아서 정돈되니까 “취향 싸움”이 줄어요.)

이전 글에서 프로젝트를 확장하면서 “코드가 늘면 관리가 중요해진다”를 느꼈을 거예요.
협업은 그걸 더 빨리, 더 강하게 겪습니다. 그래서 규칙이 필요해요.


5) 협업을 위한 “코드 작성 체크리스트”

포스팅을 마무리하기 전에, 내가 실제로 프로젝트 시작할 때 자주 보는 체크리스트를 줄게요.

  • [ ] 변수/함수 이름이 역할을 설명하나?
  • [ ] 주석은 “왜”와 “주의” 위주로 달려 있나?
  • [ ] 로직이 길어지면 함수로 분리했나?
  • [ ] 커밋이 너무 크게 뭉쳐 있지 않나?
  • [ ] 누가 봐도 예상 흐름이 이해되나?

이거만 챙겨도 코드가 갑자기 “사람 사는 코드”가 됩니다. 음… 진짜로.


다음 글(7-5)로 자연스럽게 이어가기

솔직히 말하면, 협업 습관(주석/네이밍/버전 관리)은 시작점이에요.
그리고 다음 단계에서는 “그걸 바탕으로 어디까지 더 발전할지”가 중요해져요.

그래서 다음 글 7-5에서는 다음 단계로 나아가기를 주제로,

  • 더 좋은 구조로 성장하는 방법
  • 스스로 프로젝트를 확장해가는 방향
  • 그리고 “내가 어느 정도 수준인지” 점검하는 기준

이런 내용으로 이어갈게요.


원하면, 너희가 하고 있는 언어(예: Python / JavaScript / Java)랑 팀 규모(혼자? 2~3명? 5명 이상?) 알려줘.
그 상황에 맞춰서 주석/네이밍/커밋 예시를 더 딱 맞게 만들어줄게!