<aside> 💡 객체 지향 프로그래밍 입문 시리즈

인프런의 객채 지향 프로그래밍 입문을 기반으로 작성한 게시물 입니다. (본 시리즈의 모든 예시는 JavaScript(TypeScript)로 변환하여 작성하였습니다.)

객체 지향 프로그래밍 입문_1

객체 지향 프로그래밍 입문_2

객체 지향 프로그래밍 입문_3

객체 지향 프로그래밍 입문_4

객체 지향 프로그래밍 입문_5

객체 지향 프로그래밍 입문_6

객체 지향 프로그래밍 입문_7

</aside>

"변경하기 쉬운 코드 작성을 위해서 "

들어가며

회사에서 현재 사용중인 서비스들에 대한 리팩토링 및 기능 추가를 요구하였다.

기존의 코드는 완전한 절차 지향이라 말하기는 힘들지만 그렇다고 객채 지향 코드라고 하기는 민망한 부분이 있었다.

때문에 버그를 발견하기도 힘들고 이를 디버깅 하는 과정도 힘이 들었고, 새로운 기능 추가를 위해 코드 이곳 저곳을 수정해야 하는 수고스러움이 있었다.

이러한 찰나에 더 나은 코드란 무엇인가 라는 생각을 하게 되었고, 나아가 좋은 코드 아키텍처 설계와 객체 지향 프로그래밍에 깊이를 더한 공부를 하고자 다짐하게 되었다.

일하던 도중 너무 많은 업무와 밀려오는 짜증에 못이겨 인프런에서 "객채 지향 프로그래밍 입문"이라는 강의를 구매하였다. 강의도 총 151분으로 긴편이 아니라 이를 초석 삼아 객체 지향 및 도메인 주도 개발에 대해 포스팅을 이어 나가보려고 한다.

객체 지향, 왜 써야 될까?

대부분의 서비스는 사이즈가 커질 수록 많은 변화가 요구된다. 이는 완전 새로운 기능의 추가일 수도 , 새로운 유형의 결제 방식일 수도, 혹은 법적 제재와 같은 외부 요인일 수도 있다.

이에따라 서비스를 코드로 구현하는 개발자는 새로운 코드가 기존 코드와 충돌이 없을지 분석 해야 할 뿐만 아니라 새로운 기능의 구현에도 많은 시간을 쏟게 된다. 이는 곧 개발 인력의 충원이 필요함을 나타냄으로 비용 또한 많이 요구 된다고 볼 수 있다.

이를 위하여 객체 지향 프로그래밍은 지속적으로 변화하는 세상에 맞춰 더 낮은 비용으로 코드를 변경하는 것에 도음을 주는 하나의 도구라고 볼 수 있다.