TIL 2021.03.27 [객체지향]

Kyu·2021년 3월 27일
0

TIL

목록 보기
76/322

오늘은 자바 객체지향 프로그래밍에 대해서 학습해보는 시간을 가졌고, 그것을 한번 나름 내 생각으로 정리해보는 시간을 가져보고 싶었다.

객체 지향에 대한 생각

어떤 게임 프로그램을 만든다고 생각해보자. 어떻게든 코드의 구조적인 것과 관계없이 완성된 게임은 사용자에게 똑같은 게임일 것이다. 그러니까 단순히 자바 문법만 배워서 코드를 완성하든 조금 구조적으로 만들었든 아니면 객체지향적으로 프로그래밍을 했던지 어쨋든 사용자에게는 같은 게임일 것이다.

모두가 객체지향적으로 프로그래밍을 하라고 한다. 내 방식대로 좀 더 풀어보자면, 뭔가 구조적이고 짜임새가 있고 코드를 수정할 때는 객체지향적으로 하지 않았을 때보다 수정하기가 더 쉽고 그리고 코드가 보기 편해지도록 프로그래밍하라는 의미인 것 같다. 그리고 단순히 아무렇게나 그렇게 하라는 의미는 아니고, 단어 그 자체에서 봤을 때 "객체"라는 것을 지향하여 코드를 그렇게 짜라고 하는 말이라고 생각한다.

기존의 방법과 다른 방법론이 왜 나오는 걸까? 그것은 이전의 방법의 단점이 있었고 많은 사람들이 불편을 느꼈고, 그것을 보완하고 좀 더 효율적으로 행하기 위해서 새로운 방법론이 나왔다는 의미일 것이다.

객체 지향 프로그래밍 이라는 말은 그냥 프로그래밍을 어떤 형식으로 할 것인지는 다양한 것들이 있는데 객체지향도 그 중 한가지일 뿐이이다. 자바라는 말이 앞에 붙는다면 자바 언어차원에서 그 객체지향 형식이라는 개념을 돕기위한 실제적인 여러가지 문법을 떠올릴 수 있을것이다.

당장 객체지향에 대해서 검색해보면 나오는 캡슐화니 추상화니 상속이니 다형성이니 머리를 어지럽게 만드는 용어부터 맞닥뜨린다. 하지만 어떻게 객체지향 프로그래밍이라는 방법론이 나왔냐라는 관점에서 시작해서, 객체지향 프로그래밍을 바라본다면 더 쉽게 접근할 수 있지 않을까? 사실 내가 처음에 객체지향 프로그래밍이라는 말을 들었을 때, 어떤 그룹에 속하는 단어인지 알수조차 없었기 때문에 더욱이 이해하기 힘들었던 것 같다.

이런식으로 객체 지향 프로그래밍이라는 말의 의미가 조금 와닿았을때 객체지향을 이루는 다양한 개념들을 더 빠르게 자바 문법과 함께 습득할 수 있을것이다.

profile
TIL 남기는 공간입니다

0개의 댓글