대학교 시절 OOP(Object-Oriented Programming)라는 것을 배울 때 객체 지향이라고 배웠습니다.
객체? 객체는 도대체 뭐지?
정말로 생경한 '객체'라는 단어... 대학 입학 전에 '객체'라는 단어를 한번이라도 일상생활에서 들어본 적이 있나요?
이 객체(Object)에 대해서 옥스포트 사전에서는 이렇게 정의하고 있습니다.
1.a material thing that can be seen and touched.
2.a person or thing to which a specified action or feeling is directed.
1번은 눈으로 볼 수 있고 만질 수 있는 물질이니 아닌 것 같고 2번은 특정한 행동이나 감정이 향하는 사람이나 사물을 이야기합니다. 그렇다면 2번에 더 가깝다고 생각하는데 '객체'라는 단어가 어디서 사용되는 지 찾아보았더니 역시나 일본에서 넘어 온 客体에서 유래한다는 것을 알 수 있죠.
(아이러니컬하게도 요즘 일본 개발자들은 '객체' 대신 '오브젝트'를 사용합니다. 2000년 초 일본 자료에서나 '객체'라는 표현을 사용하고 있습니다.)
물론 우리나라에서도 객체라는 말을 사용하는데 '누가(주체) 누구에게(객체) 영향을 미치는 가'라는 표현을 할 때 입니다. 국어국문학과에서나 볼 법한 단어죠. 21세기에도 일본 바지 끝자락을 잡고 놓칠 않는 대한민국의 교육 환경은...
그렇다면 프로그래밍에서 주체와 객체의 개념이 등장한다는 것인데 '주체적 프로그래밍'을 배운 적이 있나요? 얼토당토 않은 소리입니다. 객체 지향 프로그래밍의 반대는 절차 지향 프로그래밍인데?
Object
아무리 해석해봐도 '목표'으로 바라보는 것이 제일 적절하지 않아요? 이과생이 문과생의 영역을 침범하는 것은 위험하긴 하지만 '객체지향'보다는 ' 목표지향'이 뜻의 전달이 더 확연하게 된다고 생각합니다. OOP에서는 클래스를 구체적으로 실현한 결과물입니다.
Method
무언가를 성취하거나 접근하기 위한 특정한 형태의 절차, 특히 체계적이거나 확립된 절차.
프로그래밍에서 메써드는 특정 작업을 수행하고 목표와 연결된 코드 블록.
Class
프로그래밍에서 클래스는 오브젝트를 만들기 위한 청사진 또는 템플릿.
클래스는 해당 유형의 오브젝트가 가질 구조와 동작(속성 및 방법)을 정의합니다. '쿠키 커터'라고 생각하면 '쿠키 커터'가 클래스이고, '구운 개별 쿠키'가 오브젝트입니다.
그래서 제가 하고 픈 말은 객체니 뭐니 이런 일본식 개소리는 좀 접어두고 그냥 있는 그대로 사용하는 것이 어떨까 싶습니다. 오브젝트, 메써드, 클래스라고 부르는 것이 차라리 더 명확하니까요. 메써드, 클래스는 영문 명칭 그대로 부르는데 왜 오브젝트만 객체라고 부를까요? 그래서 OOP도 오브젝트 지향 프로그래밍이라고 부르는 것이 적절합니다.
'꼰대개발자 > 프로그래밍 언어' 카테고리의 다른 글
| X(구 트위터)에 자동으로 포스팅하기 (0) | 2026.05.13 |
|---|---|
| Laravel 13 세팅할 때 발생한 오류에 대한 정리 (0) | 2026.04.15 |
| PHP5.2와 JAVA에서 호환이 가능한 AES256 암호화(2) (1) | 2025.09.01 |
| PHP5.2와 JAVA에서 호환이 가능한 AES256 암호화 (0) | 2025.09.01 |
| 스프링 실무에서 MyBatis와 JPA를 비교해 본다. (feat. 영속성 컨텍스트) (4) | 2025.08.14 |