Class, Prototype 개념을 통한 객체 지향 프로그래밍 학습
알고리즘 풀이를 위한 재귀 및 자료구조 학습
객체 지향 프로그래밍(OOP, Object Oriented Programming)은 절차적 프로그래밍과 다르게, 데이터와 기능을 하나로 묶어 처리합니다. 속성과 메소드가 하나의 객체에 포함되며, Class로 명명합니다.
객체 지향 프로그래밍은 어떤 컴퓨터 언어를 사용하는 것과 관계 없이, 적용할 수 있는 일종의 패러다임 입니다.
자바스크립트는 객체 지향 언어라고 할 순없지만, 객체 지향으로 코딩할 수 있습니다. 이를 위해 ES6 Class 문법이 생겼습니다.
Class는 어떠한 기능을 구현하기 위한 설계도, 청사진입니다. 이 Class 내에는 객체를 구성하는 속성이 있고, 객체의 기능을 정의한 메소드들이 포함되어 있습니다.
이 설계도를 바탕으로, 우리는 인스턴스(Instance)라고 부르는 세부사항이 도입된 객체를 만들 수 있습니다.
Class가 자동차 설계도라면, 인스턴스는 이 설계도로 만들어진 다양한 자동차들이 되겠습니다.
Javascript는 객체를 상속하기 위해 Prototype을 사용합니다. Javascript는 프로토타입 기반 언어입니다. 모든 객체들이 메소드와 속성들을 상속받기 위해 프로토타입 객체를 갖고 있습니다.
Prototype객체는 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속받을 수 있습니다. 이를 프로토타입 체인(Prototype Chain)이라 부릅니다.
프로토타입 체인에서 한 객체의 메소드와 속성이 다른 객체로 복사되는 것이 아닌, 체인을 타고 올라가며 접근해 해당 메소드와 속성을 참조합니다.
재귀(Recursive)함수란, 함수 안에서 함수 자신을 입력변수를 바꾸어 다시 호출하는 함수 입니다.
동일한 반복이 중첩될 때, 어떤 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우에 사용할 수 있습니다.
반복문으로 표현할 수 있지만, 재귀를 적용한 코드가 더 간결하며, 직관적입니다.
자료구조는 알고리즘을 풀이하는데 필요한 문제 접근 방법 개념입니다.
같은 문제를 다양한 개념으로 접근할 수 있고, 이는 다양한 자료구조로 알고리즘에 접근할 수 있다는 의미입니다.
대표적 자료구조는 Stack, Queue, Graph, Tree 네 종류가 있습니다.
이번 주간 학습 정리는 학습한 내용을 정리하는 것이 아직 많이 부족하여 간단한 개념만 작성하고, 이와 관련해 추가적인 포스팅을 하도록 하겠습니다.
일주일이 너무 짧게 느껴지는 요즘입니다. 무더운 여름 이겨내겠습니다!