중복 코드와 유지보수성 사이에서 어떤 기준으로 리팩토링해야 할지 궁금합니다
8
작성한 질문수 5
안녕하세요.
백엔드/서버 개발자로 이직을 준비하고 있는 1년차 SI 개발자입니다.
강의를 들으면서 늘 느끼는 점이 있습니다. 강의에서 보여주시는 코드는 정말 간결하고 효율적이고, 특히 “한 사람이 조금 더 고민해서 코드를 작성하면 다음 사람이 유지보수하기 편하다”는 말씀에 많이 공감하고 있습니다.
저도 실무에서 신규 기능을 추가하거나 기존 기능을 수정할 때 다른 사람이 작성한 코드를 보게 되는데, 그때마다 유지보수하기 쉬운 코드의 중요성을 많이 느끼고 있습니다.
그런데 최근 작업을 하면서 한 가지 의문이 생겼습니다.
어떤 코드에서 분기 조건만 다르고, 마지막에 호출하는 메서드 형식은 완전히 같은 상황이 있었습니다. 예를 들면 if문 안에서 조건에 따라 넘겨주는 값만 다르고, 최종적으로 호출하는 메서드는 동일한 구조였습니다.
처음에는 각 분기 안에서 바로 메서드를 호출하면 코드 흐름이 단순해 보였습니다.
if (조건1)
{
Method(a, b, c);
}
else if (조건2)
{
Method(d, e, f);
}하지만 이렇게 작성하면 호출 형식이 계속 반복되고, 나중에 파라미터가 추가되거나 호출 방식이 바뀌면 여러 군데를 수정해야 해서 유지보수성이 떨어질 것 같았습니다.
그래서 조건에 따라 필요한 값만 먼저 변수에 세팅하고, 마지막에 메서드는 한 번만 호출하는 방식이 더 낫다고 생각했습니다.
if (조건1)
{
value1 = a;
value2 = b;
value3 = c;
}
else if (조건2)
{
value1 = d;
value2 = e;
value3 = f;
}
Method(value1, value2, value3);이 방식은 호출부 중복은 줄어들지만, 반대로 코드 길이는 늘어나고 중간 변수가 많아집니다.
또 단순한 if문 하나로 처리할 수 있는 로직을 굳이 변수 세팅 방식으로 바꾸는 게 항상 좋은 선택인지 고민이 됩니다.
결국 궁금한 점은 이것입니다.
분기마다 값만 다르고 호출 형식이 같은 경우, 실무에서는 어떤 기준으로 코드를 작성하는 것이 더 좋은가요?
단순히 코드 줄 수가 짧은 것이 좋은 코드인지, 아니면 조금 길어지더라도 중복 호출을 줄이고 변경 지점을 한 곳으로 모으는 것이 좋은지 아직 실무 경험이 부족해서 판단이 어렵습니다.
이런 상황에서 실무적으로 어떤 기준으로 리팩토링 여부를 판단하면 좋을지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
탕면이님이 제기하신 문제는 많은 개발자들이 공감할 수 있는 중요한 주제입니다. 중복 코드와 유지보수성 사이에서의 선택은 항상 쉽지 않습니다. 아래 몇 가지 관점에서 고려해 볼 수 있습니다:
유지보수성: 코드의 중복을 줄이는 것은 유지보수성을 높이는 중요한 전략입니다. 변경 사항 발생 시 하나의 호출부만 수정하면 모든 동작에 반영되므로 실수를 줄일 수 있습니다.
가독성: 코드를 읽는 사람의 관점에서 얼마나 쉽게 이해할 수 있는지 확인해야 합니다. 중간 변수를 사용하는 것이 초기엔 복잡해 보일 수 있지만, 일관된 방식으로 사용된다면 시간이 지남에 따라 읽기 쉬워질 수 있습니다.
확장성: 새로운 요구사항이 추가되었을 때, 기존의 구조가 얼마나 쉽게 변형될 수 있는지 고려해야 합니다. 인자가 추가되거나 조건이 복잡해질 경우, 중간 변수로 값을 처리하는 방식이 좀더 유연할 수 있습니다.
성능: 각각의 항목이 메모리나 성능에 미치는 영향도 고려해보는 것이 필요합니다. 하지만 현대적인 컴퓨팅 환경에서는 이러한 부분이 극도로 중요하지 않은 경우가 많습니다.
실무에서의 판단 기준은 다양한 요소에 의존하지만, 가장 중요한 것은 팀의 코드 스타일과 합의된 컨벤션을 따르는 것입니다. 그러므로 팀원들과 이런 주제를 논의해 보는 것도 좋은 방법입니다.
추가적인 자료나 정보는 다음의 Spring Boot 가이드에서 접근할 수 있습니다: Spring Boot How-to Guides.
도움이 되었기를 바랍니다!
노션 배경 색상 변경법
3
46
1
어플리케이션 실행 후 에러에 관하여 질문 드립니다.
2
55
2
경력관련 이력서 경험 분량 질문
1
57
2
무한루프 발생 조건에서 설정 오류 라는 게 어떤 케이스일까요?
1
38
1





