OOP 2)객체 지향

Hover·2023년 3월 15일
0

Javascript

목록 보기
2/6

1. 절차적vs객체 지향

프로그래밍 기법 중 절차 지향 프로그래밍이 있었다.

절차 지향 프로그래밍은 함수에서 함수로 이어지는 순차적인 명령의 조합이였다.

초기의 C언어나 포트란 같은 옛날에 사용하던 언어들이 절차적 언어다.

클래스와 인스턴스를 사용하는 객체 지향 언어는 현대의 언어들이 대부분 가지고있는 특징 중 하나이다.

절차적 언어처럼 순차적으로 작동하는 것이 아닌, 하나의 객체처럼 묶여서 처리가 가능해진다.

자바스크립트는 객체 지향 언어는 아니지만, 객체 지향 패턴으로 작성을 할 수 있다.

2. OOP의 4가지 속성

OOP의 4가지 속성은 다음과 같다.

캡슐화 / 상속 / 추상화 / 다형성

  1. 캡슐화
    데이터(속성)와 기능(메소드)을 하나의 단위로 묶는 것
    속성과 메소드를 한 곳에 묶기 때문에, '은닉'의 개념까지 포함되어 있다.
    객체의 특정 메소드나 속성을 숨기는 목적(보호)으로 사용할 수 있기 때문이다(ex)클로저)

  2. 추상화
    추상화란, 객체가 가진 여러 속성들 중에서 사용자가 필요한 속성들만 간추려내 보여주는 것이다.
    캡슐화의 은닉이라는 다르게 추상화는 클래스를 사용할 때 필요하지 않는 부분은 굳이 노출시키지 않는 느낌이 더 크다.

  1. 상속
    상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것이다.
    게임을 예로 들었을때,'마법사'라는 클래스는 '초보자' 라는 기존의 클래스에서 상속을 받아와 마법사만의 고유한 속성을 넣으면 간편한 작업이 된다.

  2. 다형성
    다형성이란 객체의 프로퍼티 또는 메소드를 다양한 형태로 변형시켜 사용할 수 있는 것을 말한다.
    HTML element를 예시로 들면, select,Checkbox,Textarea 같은 것은 모양과 특징이 다르지만, 같은 element라고 부른다.

    만약 객체에 다형성이 없다면 기존의 부모 클래스에 분기를 통해 하나하나 다르게 만들어야 하는 번거로움이 발생한다.

profile
프론트엔드 개발자 지망생입니다

0개의 댓글