작성
·
47
답변 2
0
안녕하세요, SufferMan 님!
반대로 '지역변수를 인라인화 시켜서' 좋은 점은 어떤 것들이 있을까요?
저는 findCell(cellPosition).isOpened()
라고 하면 findCell()을 통해 어떤 결과가 나오는지, isOpened()는 누구의 메서드인지 알기가 어려울 것 같아요.
1. Cell 타입을 알려주면서, 2. cell 이라는 이름도 지어줄 수 있기에 명시적인 지역변수가 가독성 측면에서 더 좋다고 생각해요.
되도록 한 라인에는 한 가지 작업만 작성하려고 하는 편입니다 ㅎㅎ
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다. SufferMan님!
강의에서 말씀하신 부분은 코드의 가독성과 유지보수성에 관한 주제인데요, findCell
을 지역 변수로 뽑아내는 것에 대해 궁금하신 점을 해소해드리겠습니다.
지역 변수를 사용하여 한 번만 호출되는 메서드의 리턴 값을 담는 것은 코드를 읽는 사람에게 의도를 명확하게 전달할 수 있는 방법입니다. findCell
의 결과를 변수에 담아두므로, 이후 이 변수를 사용하는 코드에서 이 값이 무엇인지 좀 더 쉽게 알 수 있는 장점이 있습니다. 이런 방법은 리팩토링 과정에서도 코드의 명료성을 유지하는 데 도움을 줍니다.
여기서 중요한 점은 코드의 “의도”가 더 명확하게 전달되는가입니다. 간단한 결과 저장이라도 의도를 분명히 하고 안정성을 증가시킬 수 있다면, 지역 변수로의 추출은 매우 유용합니다.
한편, 지역 변수를 인라인화하는 것도 때때로 필요합니다. 특히 사용 빈도가 낮거나, 메서드 호출이 직관적이고 명확하여 별도로 설명할 필요가 없을 때는 인라인화가 더 깔끔할 수 있습니다. 이 경우에는, 코드가 간결해지고, 불필요한 변수 선언을 없애는 장점이 있죠.
이런 결정은 주로 팀의 코드 스타일, 프로젝트의 특정 요구사항, 개인적인 선호도에 따라 달라질 수 있습니다. 따라서, 상황에 맞게 깔끔하고 명확한 코드를 작성하는 것이 중요합니다.
이에 대해 추가적으로 메서드 네이밍 관련해서 질문있습니다! 질문과 답변도 참고해보시면 좋습니다. 여기에서는 메서드 명명과 추상화의 역할이 강조되고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 감사합니다 우빈님! 읽기 좋은 코드라는 것을 잊고 클린 코드에만 집착하다보니 지역변수는 무조건 안좋은것 이라는 고정관념이 생겼던것 같습니다! 결국은 읽기 좋은 코드를 작성하는 것이니 생각을 조금더 유연하게 할 수 있는 계기가 된것 같아요! 감사합니다.😊