[JS]OOP - 객체 지향 프로그래밍

최찬호·2021년 4월 13일

📌OOP?

컴퓨터언어를 공부하다보면 자주 보이는 말들이 있다. 바로 함수형 프로그래밍, 객체지향 프로그래밍! 항상 이리저리 검색하다가 보기만 했었는데 오늘!!! 객체지향프로그래밍에 대해서 알아보도록 하겠습니다!

객체 지향 프로그래밍 (Object-Oriented Programming) 줄여서 OOP로 통용되는 개념은 많은 유명한 프로그래밍 언어(Java, C++, C#, Python, PHP, Ruby, Object-C)는 객체지향 프로그래밍을 지원한다. 많은 프로그래밍언어가 지원을 한다는 것은 다른지향 프로그램들과는 다른 장점을 가지고 있지 않을까??? 라는 생각이 든다. 그럼우선 객체지향의 특징과 장점을 알아보도록 하겠습니다!

🎁OOP의 특징

OOP의 특징은 네가지로 나뉜다. 캡슐화, 상속, 추상화, 다형성이다. 이것이 객체지향프로그래밍의 전부이다. 객체지향프로그래밍이 무엇이냐? 라고 묻는다면 이 네가지를 떠올리면 된다. 이제 각각 무엇을 의미하고있는지 알아보도록 하자!

캡슐화 (Encapsulation)
캡슐화란 하나의 객체에 대해 그 객체가 특정한 목적을 위해 필요한 변수나 메소드를 하나로 묶는 것을 의미한다. 따라서 클래스를 우리가 만들 때 훗날 이클래스에서 만들어진 객체가 특정한 목적을 가지고 사용해야할 변수와 그 변수를 가지고 특정한 액션 즉 메서드 또는 함수를 관련성 있게 클래스에 구성해야한다.
그리고 또 하나의 특징은 바로 정보의 은닉화이다. 캡슐화를 통해 변수에 접근하는 것을 막을 수 있다. 보여서는 안되는 사용자의 정보에 접근할 수 없도록 할 수 있는 것이다.

상속 (Inheritance)
객체지향프로그래밍에 있어서 상속이란 개념은 무엇보다도 가장 중요한 개념이라고 생각된다. 상속이란 부모객체로부터 속성과 메서드를 상속받는 자식객체를 생성할 수 있다는 것이다. 이것이 의미하는 바는 하나의 부모객체를 통해 여러자식객체를 생성함으로써 재사용성을 기대할 수 있다.

추상화 (Abstraction)
추상화란 공통점을 찾아 일반화하고 단순화하는 것이다. 이를 객체에 적용하면 공통점으로 일반화한 객체를 생성하고 그 객체를 상속, 재사용할 수 있게 하는 것이다.

다형성
부모클래스로 부터 상속받은 메소드를 재정의(오버라이팅)하는 것이라고 생각한다. 각각의 인스턴스들의 필요(특징)에 맞추어 메소드를 오버라이팅 하는 것이다.

profile
백엔드개발자가되기위해 노력하고있습니다.

0개의 댓글