Yunseok's Dev Blog

배운 것을 적는 블로그입니다.

오브젝트 서평

객체지향이 적합하지 않은 상황에서는 언제라도 다른 패러다임을 적용할 수 있는 시야를 기르고 지식을 갈고 닦아야 한다. 그럴려면 당연히 객체지향 패러다임이 무엇인지 정확히 알고 있어야 한다.

객체지향은 프로그램을 거대한 하나의 시스템으로 바라보고 이 시스템 속에서 객체와 객체와의 협력으로 문제를 해결한다. 문제를 해결하는 과정을 직접 명시하는 방법에서, 필요한 일들을 해줄 객체를 만들고 이 객체와의 협력을 명시하는 방법으로 바뀐다. 그래석 객체와 객체가 협력하도록 선언만으로 문제를 해결해 더 단순해지고 예측 가능성이 높아진다.

이러한 개념들은 객체지향 프로그래밍을 하지 않더라도 굉장히 도움이 많이 된다. 예를들어 리액트 컴포넌트를 만들더라도 이 컴포넌트가 가지는 책임이 무엇인지 생각하고 이 컴포넌트를 다른 컴포넌트들과 협력하여 문제를 해결한다. 그러기 위해 응집도가 높고 의존성은 낮은 Open closed principle을 지키도록 설계해야 한다.

자주 변경되는 부분과 자주 변경되지 않는 부분을 분리하는 원칙은 다른 프로그램 패러다임에서도 동일하게 적용된다. 예를들어 함수형 프로그래밍에서는 동일한 패턴을 가지는 패턴을 찾아내어 분리하고, 같은 패턴을 가지는 대수들에 대하여 적용할 수 있는 함수를 만들어서 적용한다.

의존성 역전 원칙은 프론트에서도 동일하게 적용된다. 자주 변경되는 것보다는 자주 변경되지 않는 것에 의존해야 한다. 예를들어 프론트에서 서비스는 서버 요청 API들은 UI에 의존하면 안된다.

따라서 객체지향 프로그래밍을 하지 않더라도, 객체지향 프로그래밍을 배워야 한다.

Sources