AngularJS에서 상속된 scope를 사용하는 것은 어렵다

당신이 AngularJS 사용하고 있다면 상속된 scope는 사용하지 말길 바란다. 8단계 상속된 안드로이드 앱의 자바 코드를 본 적이 있는데 이것과 비슷하다. 추가 기능을 넣기 위해 상속을 사용했는데 이해하기 어려웠다. 상속은 어려운 상상이다. AngularJS scope의 상속이건 Java Class의 상속이건 마찬가지다. 잊지 않기 위해 정리한다.

내 경험에 AngularJS 1.x에서 ng-controller를 중첩해 사용한 적이 있었다. 이런 코드는 수정할 때 문제가 되었다. 코드를 분석하는 도중에 controller 내부에 없는 변수를 발견했는데 값을 찾으려 scope 상속을 3번 거슬러 올라간 적이 있다. 물론 한번 발견한 변수는 이후에는 더 이상 고민하지 않았지만 문제는 수정이 필요할 때 발생했다. 최소 2 군데의 ng-controller 코드를 동시에 수정해야 했다. 내가 수정할수록 내 코드를 나중에 볼 사람은 더욱 이해하기가 어려워질 것이다. 분리하려고 시도했지만 3번 중첩된 ng-controller의 scope의 변수들을 일일이 맞추는 것은 쉬운 작업이 아니었다. 부작용이 걱정돼서 포기했다. 결국 이 3개의 controller는 서로 밀접하게 연관되어 분리할 수 없음으로 재사용이 불가능했다. 비슷한 말이긴 한데 중첩보다 명시적이지 않은 scope의 변수 참조가 문제다. 코드 읽기가 너무 힘들다. 차라리 커다란 하나의 ng-controller로 만들었으면 좋았을 것이라는 생각까지 해 봤다. for 문이건 callback이건 3번 이상 중첩되는 것은 위험하다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.