🍝

스파게티 코드

원인

게을러서
몰라서

복잡한 제어문

과도하게 사용하게 되었을때 복잡해질 수 있습니다.
goto
branch(if, swtich)
loop (for, while)
cyclomatic complexity

많은 변수

변수가 많이 사용된다면 코드의 흐름을 따라가기 힘듦
→ 모든것이 상수라면 변수에 대해서 고려안해도 되기때문에 읽기 쉬움

잘못된 상속

코드를 읽을때 현재 코드와 부모클래스의 코드를 오가면서 읽어야함
override된 함수와 아닌 함수를 구분해서 읽어야함
클래스 본연의 임무 이외의 기능이 해당 클래스에 들어가면 안된다.

클래스간 의존 관계가 정리가 안됨

클래스간 의존관계가 복잡하여 클래스를 독자적으로 재활용 할 수 없는 상황
어떤 클래스의 동작이 상관없는 다른 클래스에 영향을 미치는 경우

추상화의 부재

하나의 함수 안에서는 동일한 레벨의 추상화가 사용되어야 함

스파게티를 만들지 않고 제거 하려면 OOP를 사용해야함

OOP
디자인 패턴
리팩토링
Unit Test
가장 쉬운 시작하는 방법 코드를 짧게 작성한다. → 하나의 함수가 여러개 함수로 분리 → 요소 분리를 하게 된다. → 규칙을 세우고 규칙에 맞게 분리하기 시작 → 추상화 레벨을 생각할 수 밖에 없음 → 각각의 역할이 명확해짐
핵심포인트는 고민!