더북(TheBook)

객체지향 설계

객체지향object oriented 언어를 배운 사람이 아니라면 이견을 제시할 수 있는 항목이다. 하지만 소프트웨어 개발자 중 상당수가 객체지향 설계의 관점을 취하므로 이 개념을 이해해둘 필요가 있다.

객체지향 설계는 복잡한 프로그램을 개별 클래스나 객체(클래스의 인스턴스)로 나누어 디자인하는 방법으로 이때 클래스나 객체는 기능을 캡슐화encapsulate하고 특정한 역할과 책임을 수행한다. 소프트웨어 개발 세계에서는 복잡성을 어떻게 다룰지 늘 고민해야 한다. 객체 관점에서 생각하면 복잡성을 다루는 데 도움이 된다. 그러면 복잡한 시스템 전체를 한꺼번에 다루지 않고 상호 작용하는 컴포넌트로 정의한 다음 설계할 수 있기 때문이다.

요즘 실용적인 프로그래밍 언어가 많아졌다. 그렇다 해도 소프트웨어 개발 업계에서 가장 인기 있는 언어와 설계 패턴은 객체지향 설계와 분석의 영향을 여전히 강하게 받고 있다. 다형성polymorphism이나 캡슐화encapsulation 같은 용어를 이해하고, 클래스가 무엇인지, 상속은 어떤 형태로 다양하게 이루어지는지, 이러한 개념이 언제 쓰이는지 잘 알아두는 게 좋다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.