5.1 객체 지향 프로그래밍 (OOP)
02. 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)
- 프로그래밍 패러다임
- 프로그래밍 패러다임은 프로그래밍의 방식이나 관점을 바탕으로 효율적이고 명확한 코드를 작성하는 방법을 나타낸다.
- 프로그래밍의 세계에서는 가장 대표적인 세 가지의 프로그래밍 패러다임이 존재합니다.
1. 구조적 프로그래밍 (Structured Programming)
2. 객체 지향 프로그래밍 (Objected-Oriented Programming, OOP)
3. 함수형 프로그래밍 (Functional Programming) - 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)
- 객체 지향 프로그래밍은 코드를 추상화하여 개발자가 더욱 직관적으로 사고할 수 있게 하는 대표적인 프로그래밍 방법론으로 적용되고 있습니다. - 무엇을 목표로 코드를 작성해야 할까요?
- 코드는 가독성이 좋아야 하며, 재사용성이 높고, 유지보수가 쉬워야 합니다. - 왜 객체 지향 프로그래밍을 사용해야 할까요?
- 객체 지향 프로그래밍(OOP)은 프로그램을 객체들의 집합으로 볼 수 있는 설계 원칙을 제공합니다. 이 원칙에 따라, 각 객체는 특정 데이터와 그 데이터를 처리하는 함수(메서드)를 함께 갖게 됩니다.
03. 객체 지향 프로그래밍의 핵심 원칙
- 캡슐화 (Encapsulation)
객체 내부의 세부적인 사항을 감추는 것, 즉 중요한 정보를 외부로 노출시키지 않도록 만드는 것을 캡슐화(Encapsulation)라고 합니다.
Javascript는 완벽한 캡슐화를 지원하지 않습니다. 그러나, 개발자들은 변수 앞에 언더바(_)를 붙여 내부의 변수를 숨긴 것”처럼” 나타내는 규칙을 따르곤 합니다. - 상속 (Inheritance)
상속(Inheritance)은 하나의 클래스가 가진 특징(함수, 변수 및 데이터)을 다른 클래스가 그대로 물려 받는 것을 말합니다.
이미 정의된 상위 클래스의 특징을 하위 클래스에서 물려받아 코드의 중복을 제거하고 코드 재사용성을 증대시킵니다. - 추상화 (Abstraction)
객체에서 공통된 부분을 모아 상위 개념으로 새롭게 정의하는 것을 추상화(Abstraction)라고 합니다. 즉, 불필요한 세부 사항을 생략하고, 중요한 특징만을 강조함으로써 코드를 더욱 간결하고 관리하기 쉽게 만드는 원칙입니다. - 다형성 (Polymorphism)
다형성(Polymorphism)은 하나의 객체(클래스)가 다양한 형태로 동작하는 것을 의미합니다. 이는 객체가 가진 특성에 따라 같은 기능이 다르게 재구성되는 것을 의미합니다.
즉, 동일한 메서드나 함수명을 사용하더라도, 클래스마다 그 메서드가 다르게 동작하는 것이 다형성의 핵심입니다.
'Coding > 내일배움캠프' 카테고리의 다른 글
[내일배움캠프] Node.js 4기 TIL | Day 50 | 24.02.21.(수) (0) | 2024.02.22 |
---|---|
[내일배움캠프] Node.js 심화주차 - Node.js 4기 TIL | Day 49 | 24.02.20.(화) (0) | 2024.02.21 |
[내일배움캠프] Node.js 4기 TIL | Day 47 | 24.02.18.(일) (0) | 2024.02.18 |
[내일배움캠프] Node.js 4기 TIL | Day 46 | 24.02.17.(토) (0) | 2024.02.17 |
[내일배움캠프] Node.js 4기 TIL | Day 45 | 24.02.16.(금) (0) | 2024.02.16 |