Before: 전형적인 Cache Miss 유발 질문
질문자(주니어): 선임님, 혹시 자바스크립트 정규표현식 잘 아시나요? 지금 제가 짠 게 동작하지 않아서요….
답변자(시니어): (한숨) 어떤 정규식이요? 어디서 쓰는데요?
질문자: 회원가입 닉네임 검증하는 건데요.regex.test(nickname)이 자꾸 에러가 나요.
답변자: 코드를 봐야 알 것 같은데... (하던 일 멈춤)
이 대화는 이미 시작도 전부터 3~4번의 질문과 답변으로, 시니어의 몰입을 깨뜨렸습니다. 아직 본론은 시작조차 하지 못했습니다. 이제 4가지 요소를 담아 질문을 개선해 보겠습니다.
After: 컨텍스트를 전달하는 질문
질문자(주니어): 안녕하세요, 선임님. 시간 괜찮으실 때 답변 부탁드립니다.
(목표) 지금 ‘신규 회원가입’ 페이지의 닉네임 유효성 검사 로직을 개발하고 있습니다. 기획상 닉네임은 ‘영문/숫자/한글 조합 2~10자’만 허용됩니다.
(맥락) feature/signup-validation브랜치의useNicknameForm.js훅 35번째 줄에서 작업 중입니다. 코드는 다음과 같습니다.
const REGEX_NICKNAME = /^[a-zA-Z0-9가-힣]{2,10}$/;
// …
const validateNickname = (nickname) => { if (!REGEX_NICKNAME.test(nickname)) { // <-- 35번째 줄 setError('닉네임 형식이 올바르지 않습니다.'); return false; } return true; }
(시도) 대부분 정상적으로 동작하지만, API에서 사용자 정보를 불러오기 전에validateNickname(null)이 호출되면서 35번째 줄에서TypeError: Cannot read properties of null (reading 'test')에러가 발생하는 것을 확인했습니다.
(질문) 이런 예외 케이스를 방어하기 위해 test 메서드 실행 전에 nickname 값의 null 또는 undefined 여부를 먼저 확인하는 것이 좋을 것 같은데요. 혹시 팀 컨벤션상 이런 경우