객체지향 프로그래밍(Object-Oriented Programming)?

객체지향 프로그래밍(Object-Oriented Programming)?

개발일기

 

이번에 정보처리기사 필기 공부를 하면서 지긋지긋하도록 많이 접한 용어이다.

자매품으로 CBD(Component Based Development)라는 친구가 있다.

솔직히 무슨 차이인지 모르겠다. 똑같은 말 같아서… 🤣

이해하기를 OOP란 컴퓨터라는 객체가 있다면

컴퓨터의 부품들인 키보드, 마우스, 모니터, 본체 등을 더 작은 단위의 객체로 쪼개고

더 쪼개자면 본체는 CPU, GPU, RAM 등의 부품단위로도 쪼갤 수 있을 것이다.

아무튼 그렇게 쪼개고 쪼개서 작은 단위의 객체를 Class로 구현하여 조립한다는 취지인 것 같다.

CBD는 소프트웨어를 컴포넌트 단위로 구성하여 재사용성, 유지보수성의 증가를 꾀한다는 논지의 개념이었는데,

이건 OOP에 속하면서 보다 더 큰 단위의 개념처럼 느껴진다.

아무튼 아직은 이거다 싶게 와 닿는 개념은 아니다. 아리송하다.

 

 

 

자바를 책으로 공부한 지 한 달이 다 되어가는 시점에 만든 두더지 잡기 게임인데,

지금에 와서 뜯어보니 소스코드가 절차 지향적이라는 생각이 든다.

이렇게 프로그램을 만들 경우 프로그램이 단순하다는 가정하에 원하는 그림을 그리기 쉬울 것 같긴 하다.

다만 이렇게 프로그래밍을 해서 유지보수조차 힘들어질 정도의 대형 프로젝트라는 걸 도통해본 적도 없고,

하는 방법도 알지 못하니 그것이 문제다.

 

OOP라는 것이 결국 목표를 구상하고 어떻게 구현할지 설계한 후

객체를 Class 단위로 쪼개어 만든 후 조립하는 상향식 기법 같은데

이렇게 하려면 우선 펜대를 잡고 설계라는 걸 좀 해봐야 하지 않을까 싶다.

오픈소스를 꾸준히 리뷰해봐야겠다. 꾸준히 하면 언젠가는 잘하겠지.

 


© 2022. All rights reserved.