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) 확장성
- 상속을 이용하면 기존 클래스를 확장하여 새로운 기능을 쉽게 추가 가능
노션으로 보고 싶다면?
객체 지향 프로그래밍(Object Oriented Programming, OOP) | Notion
목차
short-echidna-b16.notion.site