본문 바로가기
개발기초

개발기초 객체지향 프로그래밍(OOP)이란 무엇인가? 개발을 하면서 중요하다고 느낀 이유(필요성, 역할분리,유지보수성)

by bestdevgear 2026. 5. 16.
반응형

객체지향 프로그래밍(OOP)

개발 공부를 시작하면 한 번쯤은 반드시 듣게 되는 개념이 바로 객체지향 프로그래밍(Object Oriented Programming, OOP)이다. 처음에는 클래스(Class), 객체(Object), 상속(Inheritance) 같은 용어들이 굉장히 어렵고 추상적으로 느껴질 수 있다. 나 역시 처음 Java를 공부할 때는 문법 자체보다 객체지향 개념이 훨씬 어렵게 느껴졌던 기억이 있다. 그런데 실무 프로젝트를 경험하면서 점점 느끼게 된 건, 객체지향은 단순 이론이 아니라 “프로젝트를 유지보수하기 쉽게 만드는 사고방식”에 가깝다는 점이었다. 오늘은 객체지향 프로그래밍이 무엇인지, 그리고 실무에서 왜 중요하게 느껴지는지 경험 기준으로 쉽게 정리해보려고 한다.


💻 처음에는 객체지향이 왜 필요한지 잘 몰랐다

처음 프로그래밍을 공부할 때는 대부분:

  • 변수
  • 조건문
  • 반복문

같은 기본 문법부터 배우게 된다.

이 단계에서는 프로그램 규모가 작기 때문에 객체지향이 없어도 큰 문제가 없다. 실제로 처음 Java를 공부할 때도 “그냥 코드 동작만 하면 되는 거 아닌가?”라는 생각을 많이 했었다.

그런데 프로젝트 규모가 커지기 시작하면 상황이 완전히 달라진다.

예를 들어:

  • 회원 관리
  • 주문 처리
  • 결제 기능
  • 게시판 기능

같은 것들이 하나의 파일 안에 계속 추가되면 코드가 굉장히 복잡해진다.

실제로 운영 프로젝트를 하다 보면:

  • 기능 수정
  • 요구사항 변경
  • 버그 수정

이 계속 반복되는데, 코드 구조가 정리되어 있지 않으면 수정 자체가 굉장히 어려워진다.

그때부터 객체지향 구조가 왜 필요한지 조금씩 이해되기 시작했다.


🔑 객체지향은 “역할 분리”에 가까웠다

실무를 경험하면서 가장 크게 느낀 객체지향의 핵심은:
👉 역할 분리

였다.

예를 들어 회원 기능이 있다고 하면:

  • 회원 정보 처리
  • 로그인 처리
  • 데이터 저장

같은 역할을 각각 나누어 관리하는 구조에 가깝다.

Spring Boot에서도:

  • Controller
  • Service
  • Repository

구조를 사용하는 이유가 결국 이런 역할 분리 때문이다.

실제로 프로젝트를 운영하다 보면:

  • 화면 수정
  • DB 수정
  • 비즈니스 로직 수정

이 각각 다른 타이밍에 발생한다.

만약 모든 코드가 한곳에 섞여 있으면 수정할 때마다 영향도가 커진다.

예전에 제조 운영 프로젝트를 진행할 때도 특정 기능 수정이 다른 기능 오류로 이어지는 경우를 여러 번 경험했다. 대부분 구조가 복잡하게 얽혀 있는 경우였다.

반대로 역할이 잘 나뉘어 있는 구조는 수정과 유지보수가 훨씬 안정적이었다.


📊 실무에서는 유지보수성이 정말 중요했다

처음 공부할 때는 객체지향을 단순히:

  • 클래스 만들기
  • 상속 사용하기

정도로 생각했다.

그런데 실무에서는:
👉 “몇 년 동안 유지 가능한 구조인가?”

가 훨씬 중요했다.

특히 제조·운영 프로젝트는 시스템 수명이 굉장히 길다.
한번 구축된 시스템이 5년 이상 운영되는 경우도 많다.

이런 환경에서는:

  • 코드 가독성
  • 유지보수성
  • 확장성

이 굉장히 중요해진다.

예를 들어 신규 기능이 추가될 때:

  • 기존 코드를 최소 수정하면서
  • 새로운 기능만 확장 가능하게

구조를 만드는 것이 중요했다.

객체지향 구조가 잘 잡혀 있으면 이런 부분이 훨씬 수월해진다.

실제로 운영 프로젝트에서는:
👉 “처음 만드는 속도”
보다
👉 “나중에 수정 가능한 구조”

가 훨씬 중요하다는 걸 많이 느꼈다.


💡 객체지향을 이해하고 나서 코드 보는 시각이 달라졌다

처음에는 객체지향이 굉장히 어렵게 느껴졌다. 하지만 프로젝트를 경험할수록 점점:
👉 “코드를 어떻게 나눌 것인가”

에 대한 사고방식이라는 걸 이해하게 되었다.

특히 최근 Spring Boot나 MSA 구조에서도:

  • 역할 분리
  • 책임 분리
  • 느슨한 결합

같은 객체지향 개념이 굉장히 중요하게 사용된다.

실제로 실무에서는 단순히 동작하는 코드보다:

  • 수정하기 쉬운 코드
  • 이해하기 쉬운 코드
  • 확장 가능한 코드

를 더 좋은 코드로 보는 경우가 많다.

객체지향은 결국 이런 구조를 만들기 위한 기본적인 사고방식에 가까웠다.


🔥 마무리

객체지향 프로그래밍은 단순히 클래스와 상속을 사용하는 기술이 아니라, 프로젝트를 유지보수하기 쉽고 확장 가능하게 만들기 위한 개발 방식에 가까웠다.

실무를 경험하면서 느낀 건 결국 중요한 건 “동작하는 코드”보다 “오래 유지할 수 있는 구조”였고, 객체지향은 그런 구조를 만들기 위한 중요한 기본기 중 하나라는 점이었다.

반응형

소개 및 문의 면책조항 개인정보처리 방침

© 2026 블로그 이름