객체지향적 코드에 대한 고찰

이창희·2023년 3월 21일
0

Java

목록 보기
13/13

내 코드는 당연히 객체지향이야~!

개발을 시작하면서 Java를 알게 되었고 절차지향적, 객체지향적을 구분해서 프로그래밍을 해본 적 없던 나는 객체지향적 프로그래밍을 당연시 하고있었다. 어느 순간 돌아보니 "내가 하는 모든 개발은 객체지향이야" 라는 생각이 지배적이였던 것 같다.
취업을 하기위해 코테를 보던 중 도저히 해결이 되지않아 풀지 못하고 제출하게 되었다. 그런데 해결책이 궁금했던 나는 주석으로 코드를 보시는 분에게 어떻게 하면 풀 수 있을까에대한 힌트를 달라고 했고 문제점을 지적받았다.

코테를 절차지향 적으로 풀었던 것이다. 적잖치 않은 충격을 받았다. 이후 다시 객체지향을 복습하게된 계기가 되었다. 주저리주저리 적은 주석을 보고 답변을 해주신 분에게 감사를 표한다.

왜 객체지향을 써야하나?

무심코 객체지향을 정리하기 시작하면 why를 빼먹기 쉽다. 검색해서 객체지향에 대한 원칙과 정의는 많은데 왜 써야하는지에 대한 명쾌한 대답을 찾기 쉽지 않았다. 그래도 몇몇의 레퍼런스들에서 이해를 시켜주었다.

객제치향 프로그래밍을 해야하는 이유, 객체지향의 본질. 바로 유지보수성 때문이었다. 그렇다 절차지향적으로 짜더라도 유지보수가 쉽다면 절차지향 프로그래밍을 마다할 이유가 없었다.

유지보수성이 뛰어난 코드는 어떤 효과를 만들어낼까?

보기에 이쁘다? 한눈에 이해할 수 있다? 모두 맞는 말이지만 가장 공감갔던 부분은 ‘인간의 뇌가 가지는 인지범위의 한계를 인정하는 효과’이다.

프로그래머의 뇌 책에 따르면 개발자가 단기간 동안 인지(STM: Short Term Memoery)할 수 있는 항목의 최대치가 12개를 넘지 않는다고 한다.실제로 이 글을 읽으면서 공감 되었던 부분이다. 프로젝트 진행중 로직 구현을 하다가 잠시 밥을 먹고 오기만해도 어디서 부터 시작해야되더라? 싶고 이 때문에 체크리스트를 작성하기도 하지만 모든 것을 인지하면서 개발하기란 쉽지 않았다. 개발자가 흔하게 겪은 일이자 흔히 하는 실수라고 한다.

돌돌객 (돌고돌아 객체지향프로그래밍)

돌고돌아 객체지향적 코드를 짜기위한 습관을 들여야겠다고 생각했다.
그러기 위해서는 항상 ‘내’가 아닌 ‘동료’로, ‘지금’이 아닌 ‘나중’에 코드를 읽는다는 상황을 가정한다. 완전히 컨텍스트를 비운 동료의 입장에서 코드를 읽는다고 가정하면, 현재 메서드나 프로퍼티의 위치가 올바른지 아닌지를 바로 알아낼 수 있다. 특히나 “이걸 왜 여기다 짜놨어?” 를 경험해본 개발자라면 더욱더 그럴 것이다.


객체지향을 의식하고 개발하자!!!
오늘도 한층 성장한 나자신에게 박수👏

reference

profile
백앤드 개발자를 꿈꾸는 개발자 지망생입니다.

0개의 댓글