본문 바로가기

Coding/내일배움캠프

[내일배움캠프] 5.1 객체 지향 프로그래밍 (OOP) - Node.js 4기 TIL | Day 48 | 24.02.19.(월)

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

 

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

 

  1. 프로그래밍 패러다임

    - 프로그래밍 패러다임은 프로그래밍의 방식이나 관점을 바탕으로 효율적이고 명확한 코드를 작성하는 방법을 나타낸다.

    - 프로그래밍의 세계에서는 가장 대표적인 세 가지의 프로그래밍 패러다임이 존재합니다.

    1. 구조적 프로그래밍 (Structured Programming)
    2. 객체 지향 프로그래밍 (Objected-Oriented Programming, OOP)
    3. 함수형 프로그래밍 (Functional Programming)
  2. 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)

    - 객체 지향 프로그래밍은 코드를 추상화하여 개발자가 더욱 직관적으로 사고할 수 있게 하는 대표적인 프로그래밍 방법론으로 적용되고 있습니다.
  3. 무엇을 목표로 코드를 작성해야 할까요?

    - 코드는 가독성이 좋아야 하며, 재사용성이 높고, 유지보수가 쉬워야 합니다.
  4. 왜 객체 지향 프로그래밍을 사용해야 할까요?

    - 객체 지향 프로그래밍(OOP)은 프로그램을 객체들의 집합으로 볼 수 있는 설계 원칙을 제공합니다. 이 원칙에 따라, 각 객체는 특정 데이터와 그 데이터를 처리하는 함수(메서드)를 함께 갖게 됩니다.

 

03. 객체 지향 프로그래밍의 핵심 원칙

 

  1. 캡슐화 (Encapsulation)

    객체 내부의 세부적인 사항을 감추는 , 중요한 정보를 외부로 노출시키지 않도록 만드는 것을 캡슐화(Encapsulation)라고 합니다.

    Javascript
    완벽한 캡슐화를 지원하지 않습니다. 그러나, 개발자들은 변수 앞에 언더바(_) 붙여 내부의 변수를 숨긴 처럼나타내는 규칙을 따르곤 합니다.
  2. 상속 (Inheritance)

     
    상속(Inheritance) 하나의 클래스가 가진 특징(함수, 변수 데이터) 다른 클래스가 그대로 물려 받는 것을 말합니다.
     
    이미 정의된 상위 클래스의 특징을 하위 클래스에서 물려받아 코드의 중복을 제거하고 코드 재사용성을 증대시킵니다.
  3. 추상화 (Abstraction)

     
    객체에서 공통된 부분을 모아 상위 개념으로 새롭게 정의하는 것을 추상화(Abstraction)라고 합니다. , 불필요한 세부 사항을 생략하고, 중요한 특징만을 강조함으로써 코드를 더욱 간결하고 관리하기 쉽게 만드는 원칙입니다.
  4. 다형성 (Polymorphism)

    다형성(Polymorphism) 하나의 객체(클래스) 다양한 형태로 동작하는 것을 의미합니다. 이는 객체가 가진 특성에 따라 같은 기능이 다르게 재구성되는 것을 의미합니다.
    , 동일한 메서드나 함수명을 사용하더라도, 클래스마다 메서드가 다르게 동작하는 것이 다형성의 핵심입니다.