객체지향 특강 2회차
- 요약
디자인패턴은 결국 객체지향을 위한 여러 방법들이다. 객체지향을 제대로 다룰줄 모르면서 디자인패턴을 사용하는 것은 토대 없이 기둥만 쌓는 꼴이다.
결국 코드를 작성하면서 어떻게 하면 객체지향적으로 설계할 수 있을지 스스로 생각해보면서 리팩토링을 하며 기초를 쌓는 과정이 중요하다.
디자인패턴은 계속 발전하고 추가된다. 하지만 모든 길은 결국 객체지향을 통한다.
객체지향의 핵심
앞으로 코드를 작성할 때 계속 생각할 것들
- 현재의 작은 부분만 생각하지 말고 후에 수정하고 확장하는 부분에 대해 계속 생각하며 설계해야된다.
- 협업하여 기능을 만든다고 할 때, 다른 사람과 공통된 부분을 건드리게 되는 건 아닌지 생각해봐야 한다. 공통되지 않은 부분만 나눠서 따로 작성할 수 있는 코드인지 확인해보자.
- 추상클래스, 인터페이스를 활용하기
- 어떤 부분을 추상화 할 수 있을까?
- if - else if / switch-case문을 어떻게 하면 줄일 수 있을까?
- 객체지향을 지키면서도 성능 등 CS적인 측면도 중요하게 생각해야한다.
(Update문에서 무거운 메서드를 사용하는 등)
- 지금 작성한 코드에서 필요없는 부분은?
(불필요한 생성, 탐색 및 정렬, 연산, 조건문 등)
- 디자인패턴을 다루고 활용하는 부분에 매몰되지 말고 그 디자인 패턴이 객체지향적 관점이나 성능적인 측면에서 어떤 이점을 갖는지 생각해보자
지금까지 작은 프로젝트를 진행하면서 객체지향 객체지향 하면서도 시간에 쫓겨 기능에만 몰두한 것 같다. 물론 기능을 구현하여 게임을 완성하는 것도 중요하지만 학습하고 발전하기 위해서는 코드를 체계적으로 작성해야 된다고 느꼈다. 앞으로 내가 쓴 코드나 다른 분들이 쓴 코드를 리뷰해보고 어떻게 발전시킬 수 있을지 생각해보자. 또 코드를 작성하면서도 생각을 멈추지 말자.