주니어 개발자를 위한 클린 코드 작성법: 변수명 하나도 의미 있게

코드는 컴퓨터가 읽기 위해서가 아니라 사람이 읽기 위해 작성하는 것입니다. 이제 막 커리어를 시작한 주니어 개발자들에게 '돌아가는 코드'보다 중요한 것은 '읽히는 코드'입니다. 협업의 효율을 높이고 미래의 나를 고통에서 구해줄 클린 코드 작성의 핵심 가이드를, 가장 기초적인 변수 명명법부터 차근차근 짚어보겠습니다.

이름에 의도를 담으세요

int d; // 경과 시간과 같은 코드는 주석 없이는 의미를 알 수 없습니다. int elapsedTimeInDays;라고 명명하면 주석이 없어도 코드가 스스로 이야기를 합니다. 변수명은 해당 변수가 '왜 존재하며', '무엇을 하며', '어떻게 사용되는지'를 드러내야 합니다.

그릇된 정보를 피하십시오 (Disinformation)

실제 리스트 자료형이 아닌데 변수명 끝에 List를 붙이는 행위(예: userList인데 사실은 Map 객체)는 독자를 혼란에 빠뜨립니다. 약어나 자신만 아는 은어 사용도 지양하세요. 명확하지 않다면 차라리 이름이 긴 것이 모호한 것보다 낫습니다.

검색하기 쉬운 이름을 사용하세요

코드 전체에서 숫자 7이나 86400 같은 '매직 넘버'를 직접 사용하지 마세요. 대신 const int SECONDS_IN_A_DAY = 86400;과 같이 상수로 정의하십시오. 이렇게 하면 나중에 특정 값을 찾거나 수정할 때 훨씬 안전하고 빠릅니다.

함수는 한 가지 일만 해야 합니다 (SRP)

하나의 함수가 길어지고 있다면, 그 함수가 너무 많은 책임을 지고 있다는 증거입니다. 함수는 한 가지 동작을 완벽히 수행해야 하며, 그 이름은 fetchUserData, validateEmail과 같이 동사로 시작하여 행위를 명확히 설명해야 합니다.

인수의 개수를 최소화하세요

함수에 전달되는 인수가 3개를 넘어가면 코드를 이해하기 급격히 어려워집니다. 인수가 많다면 객체나 DTO로 묶어서 전달하는 것을 고려하세요. 입력값이 적을수록 테스트 코드를 작성하기도 수월해집니다.

부정문보다는 긍정문을 사용하세요

if (!isNotUser) 보다는 if (isGuest) 또는 if (isValid)가 훨씬 직관적입니다. 이중 부정은 뇌의 처리 과정을 한 번 더 거치게 만들어 실수를 유발합니다. 논리 구조는 최대한 단순하고 긍정적인 방향으로 설계하십시오.

주석은 최소화, 코드는 명확하게

"좋은 주석은 주석이 필요 없는 코드다"라는 말이 있습니다. 코드의 로직이 복잡해서 주석으로 설명해야 한다면, 먼저 코드 구조를 개선할 수 없는지 고민해 보세요. 주석은 '무엇'을 하는지가 아니라 '왜' 이렇게 짰는지에 대한 배경을 설명할 때만 사용하는 것이 좋습니다.

일관성을 유지하십시오

데이터를 가져오는 함수에 어떤 곳은 get, 어떤 곳은 fetch, 또 다른 곳은 retrieve를 쓴다면 혼란스럽습니다. 프로젝트 전체에서 단어의 의미를 통일하십시오. 일관성 있는 코드는 처음 보는 팀원도 프로젝트 구조를 빠르게 파악하게 돕습니다.

들여쓰기와 포맷팅 도구 활용

가독성의 절반은 깔끔한 정렬에서 나옵니다. 팀원들과 컨벤션을 정하고 Prettier나 ESLint 같은 자동 포맷팅 도구를 적극 활용하세요. 사소한 띄어쓰기나 줄바꿈에 신경 쓰느라 에너지를 낭비하지 말고 로직에 집중할 수 있는 환경을 만드십시오.

보이스카우트 규칙: "캠프장은 처음 왔을 때보다 더 깨끗하게"

수정하기 위해 코드를 열었을 때, 이전보다 조금이라도 더 깨끗하게 만들고 닫으세요. 거창한 리팩토링이 아니어도 좋습니다. 변수명을 더 명확하게 고치거나, 너무 긴 함수를 쪼개는 작은 노력이 모여 거대한 기술 부채를 막아줍니다.

클린 코드는 재능이 아니라 습관입니다. 오늘 작성한 변수명 하나, 함수 하나에 정성을 들이는 태도가 여러분을 숙련된 시니어 개발자로 성장시키는 밑거름이 될 것입니다.

댓글

이 블로그의 인기 게시물

나도 모르게 깔린 앱, 내 정보를 빼가는 스파이웨어 확인

카카오톡 감옥 탈출, 대안 메신저 시그널(Signal) vs 텔레그램(Telegram)

DuckDuckGo 검색엔진, 구글보다 정말 안전할까? (심층분석)