인프런 커뮤니티 질문&답변

춘몽님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

01-03 퍼사드 패턴

코드 리팩토링 이렇게 해도 되나요??

해결된 질문

24.02.29 08:40 작성

·

1.8K

·

수정됨

0

수업 내용 코드는

function checkPhone(myphone) {
  if (myphone.length < 10 || myphone.length > 11) {
    console.log("에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!");
    return false;
  } else {
    return true;
  }
}

function getToken() {
  let result = String(Math.floor(Math.random() * 100000)).padStart(6, "0");
  console.log(result);
  return result;
}

function sendTokenToSMS(myphone, result) {
  console.log(myphone + "번호로 인증번호" + result + "를 전송합니다.");
}

function createTokenOfPhone(myphone) {
  const isValid = checkPhone(myphone);
  if (isValid === false) return;
  const mytoken = getToken();
  sendTokenToSMS(myphone, mytoken);
}

createTokenOfPhone("01012345678"); // 01012345678: 인자(argument)

이렇게 되어있는데

createTokenOfPhone 함수에서
isValid 상수를 꼭 선언해야하나요??

 

function checkPhone(myphone) {
  if (myphone.length < 10 || myphone.length > 11) {
    console.log("에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!");
    return true;
  }
}

function getToken() {
  let result = String(Math.floor(Math.random() * 100000)).padStart(6, "0");
  console.log(result);
  return result;
}

function sendTokenToSMS(myphone, result) {
  console.log(myphone + "번호로 인증번호" + result + "를 전송합니다.");
}

function createTokenOfPhone(myphone) {
  if (checkPhone(myphone)) return;
  const mytoken = getToken();
  sendTokenToSMS(myphone, mytoken);
}

createTokenOfPhone("01012345678"); // 01012345678: 인자(argument)

이렇게 checkPhone()이 문제있을 때만 true를 반환하고,
checkPhone()이 true일 경우 return 처리하면 코드가 더 짧아지기는 하는데

수업에서 말씀하시는 협업의 가독성을 위해서 isValid라는 상수를 선언해줘야 하는지 아니면 제가 생각한 방식으로 코드를 줄여도 괜찮은건지 궁금합니다.

답변 2

1

노원두님의 프로필 이미지
노원두
지식공유자

2024. 03. 03. 14:16

안녕하세요! 춘몽님!

정말 좋은 방법인 것 같네요!^^
해당 방식으로 사용하셔도 무관합니다!

 

추가적으로, 현재는 조건이 하나뿐인 상황이라 괜찮지만, 추후에 조건들이 많아진다면,
상단에서 isXXX 으로 모두 상수화 해놓고 아래에서 조건들을 비교하는 것이 가독성에 좋답니다!

따라서, 나중에 코드가 길어지면 이러한 방식의 리팩토링도 고려해 보시면 좋을 것 같아요!^^

1

인프런 AI 인턴님의 프로필 이미지

2024. 03. 02. 08:46

안녕하세요, 인프런 AI 인턴입니다.

코드 리팩토링에 대한 춘몽님의 질문에 답변 드리겠습니다.

춘몽님께서 제시하신 방식대로 코드를 줄이면 코드가 간결해져서 간단한 개인 프로젝트에서는 충분히 유용할 수 있습니다. 하지만 협업 상황에서는 isValid와 같은 변수를 사용하여 코드의 명확성과 가독성을 높이는 것이 좋습니다.

isValid 같은 명시적인 변수명은 코드를 읽는 이에게 해당 코드 블럭이 무슨 일을 하는지 명확하게 전달해줍니다. 따라서 협업 과정에서 코드가 다른 개발자에게도 이해하기 쉽고, 잠재적인 에러를 찾아내기 더 쉬워질 수 있게 합니다.

결과적으로, 프로젝트의 규모나 협업의 중요성, 팀 내의 코드 스타일 가이드라인 등을 고려하여 리팩토링의 방향을 결정하는 것이 중요합니다.

원하는 답변을 찾지 못하셨다면, 추가적으로 인프런의 문의하기 기능을 이용하시면 더 도움을 받으실 수 있습니다.

춘몽님의 프로필 이미지

작성한 질문수

질문하기