#TIL35, 객체 지향 프로그래밍(OOP: Object Oriented Programming)

April·2021년 6월 22일
0

🌹CS

목록 보기
7/17
post-thumbnail

개인 공부를 위해 작성했습니다

객체 지향 프로그래밍

(OOP: Object Oriented Programming)

객체 지향 프로그래밍이란?

기능성을 가지고 있는 프로그래밍 패러다임
( ↔︎ 명령이 순차적, procedural 기능 강화)

  • 서로 메시지를 주고 받을 수 있으며 데이터를 처리할 수 있는
  • 객체(Object)들의 모임으로 파악하고자 하는 프로그래밍 패러다임 중 하나이다
  • OOP의 기본 구성 요소: 클래스, 객체, 메소드

객체 지향 프로그래밍의 장점

  • 코드에 대한 재사용성이 높다
  • 프로그램을 유연하고 변경이 용이하게 만든다
  • 프로그램의 개발과 보수를 간편하게 만든다
  • 직관적인 코드 분석이 가능하다

이러한 장점들을 관통하는 객체 지향 프로그래밍의 중요한 특성은 강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 지향한다는 점이다.

  • 응집력(cohesion) : 프로그램의 한 요소가 해당 기능을 수행하기 위해 얼마만큼의 연관된 책임과 아이디어가 뭉쳐있는지를 나타내는 정도. 프로그램의 한 요소가 특정 목적을 위해 밀접하게 연관된 기능들이 모여서 구현되어 있고, 지나치게 많은 일을 하지 않으면 그것을 응집력이 높다고 표현한다.

  • 결합력(coupling) : 프로그램 코드의 한 요소가 다른 것과 얼마나 강력하게 연결되어 있는지, 얼마나 의존적인지를 나타내는 정도. 결합력이 낮다는 것은 한 요소가 다른 요소들과 관계를 크게 맺고 있지 않은 상태를 의미한다.

OOP의 경우 클래스에 하나의 문제 해결을 위해 데이터를 모아 놓은 객체를 활용한 프로그래밍을 지향하므로 응집력을 강화하며, 클래스 간에 독립적으로 디자인함으로써 결합력을 약하게 할 수 있다.


✨ tl;dr

  • 클래스(=관련있는 변수나 함수를 묶어놓은 container) ex) 붕어빵틀
  • 데이터 ex) 팥, 크림, 고구마 등
  • 메소드(=행동) ex) 시간이 지나면 붕어빵이 익는다
  • 객체(인스턴스) 각 데이터가 들어간 붕어빵


profile
🚀 내가 보려고 쓰는 기술블로그

0개의 댓글