노트

상호 참조 전략

Cross-Referencing Strategy

개발 문화#learning · 연결된 개념 6개

쉽게 말하면

상호 참조 전략은 외국어 문장을 번역한 뒤 다시 원문으로 되돌려 보며 뜻이 맞는지 확인하는 것과 비슷해요. 코드를 업무 말로, 업무 말을 다시 코드로 바꿔 보며 둘 다 제대로 이해해요.

비유가 깨지는 곳 번역은 한 번 맞추면 끝나지만 이 전략은 둘 사이를 자주 오가는 습관이에요. 하수는 한쪽에만 머물고, 고수는 어긋나는 이름을 찾아 팀이 같은 단어를 쓰도록 맞춰요.

프로그램을 이해할 때 고수들이 쓰는 방법(Cross-Referencing Strategy)이다. 코드에서 읽어 낸 것을 도메인 어휘로 번역하고, 반대로 도메인 어휘를 코드의 어휘로 다시 바꿔 확인한다. 추상(업무 개념)과 구체(코드) 사이를 자주 오가는 것이다.

하수는 두 세계를 잇지 않고 한쪽에만 머무는 경향이 있다. 코드 한 줄 한 줄의 동작만 보거나, 반대로 업무 설명만 듣고 코드를 짐작한다.

해 보는 방법

  • 함수나 모듈을 읽고 "이건 업무 말로 하면 무엇인가?"를 한 문장으로 적는다
  • 기획서의 용어가 코드의 어떤 이름에 대응하는지 표를 만든다. 어긋나는 이름은 언어적 안티패턴의 후보다
  • 팀이 같은 단어를 코드와 대화에서 똑같이 쓰도록 맞춘다. 도메인 주도 설계 (DDD)의 유비쿼터스 언어(Ubiquitous Language)와 같은 생각이고, 단어의 경계가 바운디드 컨텍스트를 드러낸다

『프로그래머의 뇌』도 전문가는 코드 자체를 언급하지 않고도 코드를 추상적으로 추론하는 반면, 초보자는 세부 사항에 묶인다고 설명한다 → 프로그래머의 뇌 (책 개요), 청킹과 코드 읽기

출처: 『함께 자라기: 애자일로 가는 길』 김창준

연결된 개념

이 노트를 가리키는 문서

뜻이 가까운 노트

  • 코드 냄새

    당장 버그는 아니지만 이해나 변경 비용을 높이는 구조적 신호. 리팩터링을 언제 시작하고 멈출지에 정확한 공식은 없어서, 냄새라는 어휘로 직관을 공유한다.

  • 집단 코드 소유

    코드의 주인을 개인으로 두지 않고 팀 전체가 코드베이스 전체를 소유해, 누구나 필요한 곳을 고칠 수 있게 하는 XP 실천법.

  • 인출 연습과 간격 반복

    다시 읽기보다 기억에서 꺼내 보는 연습을, 시간을 두고 나눠서 할 때 가장 오래 남는다.

  • 러버덕 디버깅

    문제를 남에게(혹은 고무 오리에게) 말로 설명하다 보면 스스로 답을 찾게 되는 디버깅 방법.

  • 인지 부하

    작업 기억이 한 번에 처리해야 하는 양. 문제 자체의 복잡함과 표현 방식에서 오는 복잡함으로 나뉜다.

보기 옵션