Ted's Codding study

객체 지향 프로그래밍(Object Oriented Programming, OOP) 본문

TypeScript

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

Ted93 2024. 6. 23. 19:29

프로그램을 객체들의 집합으로 보는 패러다임(구조)

각 객체들은 서로 메시지를 전달하며 상호 작용

1. 객체

  • 상태와 행동을 가지는 모든 것
  • 상태는 속성(attribute), 행동은 메서드(method)로 표현

 

2. '객체 지향 프로그래밍'의 주요 개념

2-1) 클래스(Class)와 객체(Object)

클래스

  • 공통적 성질을 가진 대상들을 정의한 것
  • 데이터(속성)와 메서드(행동, 동작)을 포함
  • ex) (요리) 레시피 필요한 재료(데이터, 속성)와 조리방법(메서드, 동작) 포함

객체

  • 클래스에 의해서(정의된 대로) 생성된 실체(데이터)
  • 클래스에 의해 생성되어 클래스에서 정의한 행동을 수행 가능
  • ex) 요리된 팬케이크 레시피를 바탕으로 실제로 완성된 팬케이크, 실제로 존재

 

2-2) 캡슐화

  • 객체의 속성과 행동(메서드)을 하나로 묶는 것
  • 외부에서 직접 접근 X, 대신 메서드(행동)를 통해서만 접근 가능

 

2-3) 상속

  • 하나의 클래스가 다른 클래스의 특성과 기능을 이어받는 것
  • 코드의 재사용성을 높이고, 중복을 줄이는 것이 가능

 

2-4) 다형성

  • 하나의 인터페이스나 클래스가 여러 형태로 동작하는 것
  • 메서드 오버로딩과 오버라이딩을 통해 실현

 

2-5) 추상화

  • 복잡한 시스템을 단순화시키는 프로세스
  • 사용자가 세부 구현 내용을 몰라도 시스템을 쉽게 사용 가능하도록 설계

 

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

3-1) 재사용성

  • 클래스를 정의하면 그 클래스의 객체(인스턴스)를 여러 개 생성 가능
  • 코드의 재사용성이 증가, 개발 시간과 비용 단축

 

3-2) 유지보수성

  • 클래스는 코드를 논리적인 단위로 분할
  • 가독성을 향상, 유지보수 용이

 

3-3) 신뢰성

  • 캡슐화, 상속, 다형성 등의 객제 지향 원칙은 개발자가 신뢰성 높은 코드를 작성하는 데 도움

 

3-4) 확장성

  • 상속을 이용하면 기존 클래스를 확장하여 새로운 기능을 쉽게 추가 가능

 

 

노션으로 보고 싶다면?

https://short-echidna-b16.notion.site/Object-Oriented-Programming-OOP-ebf516447e4945b6ac7e612105e29172?pvs=4

 

객체 지향 프로그래밍(Object Oriented Programming, OOP) | Notion

목차

short-echidna-b16.notion.site