Nesting을 줄이기 위한 refactoring 방법 3가지

조예빈·2024년 5월 25일
0
post-custom-banner

if문을 여러 번 중첩시키면 코드가 오른쪽으로 밀려나고, 이해도 어렵고 코드를 보기도 싫어진다.

https://www.kernel.org/doc/html/v4.10/process/coding-style.html
Linux 커널 코딩 스타일에서도 nesting이 3번 이상 되면 좋지 문제가 있는 것이라 프로그램을 수정해야 한다고 나와 있다.

1. and, or 연산자로 if문의 개수 줄이기

조건식을 동시에 여러 개 사용할 수 있어서 if문이 줄어듦

하지만, 로직이 달라질 수 있는 가능성이 존재하며, 코드가 복잡해지면 이 방법을 사용하기 어려움

2. guard clause 도입(inversion)

보통 if문을 작성할 때는 else문을 맨 마지막에 쓰는데, 이것을 반전시켜 사용하는 것임(예외처리나 특이 케이스들을 가장 처음에 작성)

이 방법의 로직은 달라지는 것이 없지만, 개발자가 코드를 읽을 때 좀 더 이해가 쉬움

하지만, if문이 많아지기 때문에 성능이 저하될 수 있음

3. nesting된 부분을 함수로 만들어 그 함수를 사용하기

함수 내에 return문을 사용하면 성능이 2번 방법보다 개선됨

하지만, 함수를 재사용하지 않으면 전체적인 코드가 길어지며, 함수가 어떤 기능을 하는지 찾아야 하기 때문에 해석 시 번거로워짐

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글