php 입문 | 구조와 객체 지향 | 객체 지향은 무엇이 필요한가?
그런데, 객체 지향의 기본, 특히 “클래스"를 만드는 방법 및 사용법에 대해 대충 설명을 했지만, 읽어보고 어떻게 느꼈는가?
“편리하겠지만, 귀찮다. 실제로 사용할 수 없잖아?”
이렇게 생각한 사람도 많을 것이다. 분명한 것은 방대한 코드를 작성하게 되면 필요한 것이다. 하지만 그렇게 거대한 프로그램 따위 만들지 않는다. 자신이 만드는 사이트의 규모는 일일이 클래스는 필요로 하지 않는 것이다. 그렇게 생각하는 사람도 분명 많을 것으로 생각된다.
하지만 그런 사람도 객체 지향을 이해할 수 없는 곤란한 것이 여러가지 있는 것이다. 그것은 무엇을 의미하나?
1. 표준 기능이 클래스로 대체되고 있다.
먼저, 무엇보다 큰 것은 “최근의 PHP에는 표준으로 제공되는 기능이 함수가 아닌 클래스로 대체되고 있다"는 점이다.
예를 들어 XML을 이용하기 위한 기능이라고 한다. 이는 옛날에는 모든 함수로 준비되어 있었지만, 지금은 SimpleXMLElement라는 클래스의 인스턴스를 생성하고 이용하는 것이 일반적으로 되어 가고 있다.
또한, 데이터베이스 액세스도 이전에 각 데이터베이스마다 함수가 많이 준비되어 있었지만, 지금은 PDO(PHP Data Objects)라는 클래스의 인스턴스를 사용할 수 있게 하고 있다.
따라서 표준으로 제공되는 기능이 점차 함수에서 클래스로 대체되고 있다. 향후 이용을 감안할 때, 객체 지향에 익숙해야 한다.
2. 프레임워크는 대부분 클래스
최근에는 어느 정도 규모의 사이트가 되면 “프레임워크(framework)“를 이용하는 경우가 많아지고 있다. 특히 “CakePHP"는 간단하게 이해하기 쉬운 프레임 워크로 널리 사용되고 있다.
이러한 프레임워크는 거의 모두가 “클래스"로 구성되어 있다. 프레임워크는 방대한 소스 코드로 구성되어 있으며, 모든 함수로 구축하려고 하면 무척 어려운 코드가 될 것이다. 또, 클래스로 정리하지 않으면 엄청 복잡하게 되어 버릴 것이다.
이러한 프레임워크를 사용하려면 객체 지향의 지식은 필수라고 할 수 있다.
3. 유지 보수를 생각하면 클래스로 해야 한다.
지금 사이트를 만든 사람은 “일단 동작하다면 괜찮아"라고 생각하고 있을지도 모른다. 하지만, 만약 “오랫동안 사이트를 운영하고 싶다"고 생각한다면, 앞으로의 유지 보수를 생각하지 않으면 안된다.
유지 보수를 생각했을 때 무엇보다 중요한 것은 “비록 자신이 작성한 코드도 반년 지나면 잊어버린다"라는 것이다. 점차 사이트가 정교해지고 있고, 이에 따라 함수도 점점 늘어나게 되면, 언젠가 본인도 버거울 질지도 모른다.
처음부터 클래스의 형태로 정비해두면 어느 정도 깔끔하게 정리해 둘 수 있다. 또한 기능을 강화하는 데에도 이미 있는 클래스를 상속하고 확장하는 등 해나가면 쉽게 대응할 수 있다. 무엇보다 여차하면 원래의 클래스에 되돌릴 수도 있기 때문에 문제되도 안심이다.
이런 것을 생각한다면, PHP에도 이제 객체 지향의 지식은 필수가 되고 있다고 해도 좋을 것이다. “자신은 클래스 따윈 필요 없어"라고 생각하고, 우선 지식만으로도 몸에 익혀두면 만일의 경우 불편없이 끝날지도 모른다.
“우선, 객체 지향에 의한 사이트 구축이 무엇인지 공부하고 싶다"고 생각한다면, “CakePHP” 프레임워크를 사용해 보는 것을 추천한다. 이것을 사용해 보면 객체 지향에 의한 사이트 구축의 세계가 어떤 것인지 잘 알 수 있다.