목록Develop/JavaScript (15)
Judaeng

지난 글에선 객체지향 언어에서 핵심이 되는 개념인 클래스(Class)에 대해 정리한 글을 작성했다. 오늘은 Javascript에 프로토타입(Prototype)이라는 개념을 정리하려고 한다. 자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어 있다. 객체지향의 상속 개념과 같이 부모 객체의 프로퍼티를 마치 자신의 것처럼 쓸 수 있는 특징이 있다. 자바스크립트에서는 이러한 부모 객체를 프로토타입 객체라고 부른다. 클래스라는 개념이 존재하는 Class 기반 언어들은 상속을 사용한다. Class 기반 언어들의 예를 들자면 Java, C++ 등이 있다. 하지만 Javascript는 이와 달리 Prototype 기반 언어이다. 클래스가 없기 때문에 상속 같은 기능도 따로 존재하지 않는다. 정리하자면..

✏️객체지향 프로그래밍(OOP)란? '사람이 세계를 보고 이해하는 방법을 흉내 낸 방법론'이다. 객체(Object) 객체란 말 그대로 대상을 나타내는 단어이다. 예를 들어, 사람 개인 한 명 한 명을 모두 객체라 할 수 있고, 책, 물건 등을 객체라고 할 수 있다. 사람은 생김새와 성격이 똑같을 수는 없기 때문에 개인의 객체라고 할 수 있고, 책도 내용이 같을지는 몰라도 한 권의 책에 흠집을 낸다고 해서 모든 책들이 전부 흠집이 나는 것이 아니기 때문에 객체라고 할 수 있다. 객체는 속성과 동작으로 구성되어 있다. 자바에서는 이 속성과 동작을 각각 필드(field)와 메서드(method)라고도 부른다. 다시 정리하자면 객체 = 속성 + 행동이다. 속성은 객체의 특징이나 상태를 말하고, 행동은 행동, 동작..

this⚡ Javascipt에 this에 알아보기 전에 this는 '이것'이라는 뜻이다. 상황에 따라 다른 대상을 지칭하며 쓰일 수 있는 말이다. Javascript에서도 this는 상황에 따라 지칭하는 대상이 바뀐다. 그 상황은 '함수가 호출되는 상황' 일 때이다. Javascript의 this는 일단 기본적으로 함수가 호출될 때 결정되며, 보통 자신을 호출한 주체의 정보가 담긴다. this는 함수 실행 시 호출(invocation) 방법에 의해 결정되는 특별한 객체이다. 함수 실행 시 결정되므로, 실행되는 맥락에 따라 this는 다르게 결정된다. 🙄함수 실행 방법 1. 전역 공간에서의 this 2. 메서드로서 호출 3. new 를 이용한 생성자 호출 4. 함수로서 호출 5. call/apply를 통한..

Blocking vs Non-Blocking ✅Blocking 다른 작업을 하려면, 하던 작업을 멈춰야 함 요청에 대한 결과들이 동시에 일어남 ✅Non-Blocking 다른 작업을 확인만 하고, 미룰 수 있음 요청에 대한 결과들이 동시에 일어나지 않음 Blocking을 전화, Non-Blocking을 문자에 비유해서 생각하면 좀 더 이해하기 쉽다. 전화는 하던 작업을 멈추고 받아야 하지만, 문자는 확인만 한 후 답장을 미룰 수 있다. 전화 문자 하던 일을 멈추고 받아야 한다(blocking) 확인 후, 나중에 답장할 수 있다.(non-blocking) 요청에 대한 결과가 동시에 일어난다. (synchronous) 요청에 대한 결과가 동시에 일어나지 않는다. (asynchronous) 이제 두 가지 개념을..