TIL 5일차

전영호·2021년 2월 26일
0

오늘은 OOP의 개념에 대해 배웠다
OOP란 Object Oriented Programming의 약어이다.
우리말로하면 '객체 지향 프로그래밍'이라는 뜻이다.
우리가 프로그래밍 언어하면 가장 먼저 떠올리는 'C'는 '절차 지향 언어'인데 절차 지향 언어는 순서와 절차에 따라 진행하는 프로그램을 가르킨다. 때문에 어디에 무슨 코드가 있는 지가 매우 중요하다.

이러한 기반을 가지고 작성한 프로그래밍 언어는 중간 부분을 수정할 때 그 아래쪽의 모든 부분들을 연쇄적으로 전부 수정해줘야 되는 매우 비효율적인 문제가 생긴다.
OOP는 이러한 '절차 지향 언어'의 한계를 극복하기 위해 고안된 프로그래밍 방법이며 '객체 지향 언어'는 이러한 OOP를 토대로 만들어 진 프로그래밍 언어를 말한다.

흔히 우리가 아는 Java, Python등이 이를 기반으로 만들어진 프로그래밍 언어인데.
자바스크립트는 객체 지향 프로그래밍 언어로써 개발된 것이 아니지만 OOP의 개념을 사용하기 위해 여러 시행착오를 겪어 그와 비슷하게 사용할 수 있게 되었다.

객체 지향 프로그래밍의 가장 큰 특징이 4가지가 있는데 이는 캡슐화, 상속성, 추상화, 다형성이 있다. (이에 대한 자세한 내용은 블로그 OOP에 정리해 두었다.)

이전에 배웠던 내용이였지만 헷갈리는 부분도 있었는데 그에 대한 정리가 되었던 시간이었다.
또 자바스크립트 ES6방식에서 제공하게된 Class는 이전 Java를 사용할 때 썻던 방식과 거의 유사해서 사용하기 더 편리했고 익숙했다.

자바스크립트 ES5까지 사용하던 prototype으로 구현하는 방법도 배웠는데 확실히 개념이 좀 까다로웠지만 객체를 기반으로 작성하는 것이라는 개념이 잡히자 어떤 방식으로 사용할 수 있는지 알 수 있었고 super가 아닌 call,apply로 상속을 구현하는 부분도 굉장히 신기하게 다가왔다.

profile
인생 1회차 주니어 개발자

0개의 댓글