Iterator는 반복을 위해 설계된, 특별한 인터페이스를 가진 객체이다. [Symbol.iterator] 프로퍼티를 가진 객체를 Iterable하다고 한다. 이터러블 객체는 for...of문으로 순회할 수 있고 Spread 문법을 사용 가능하다. Generator는 Iterator를 반환하는 함수이다.
Read순수함수를 조합하고, 데이터의 불변성을 최대한 보장함으로써 부수효과를 최소화하는 프로그래밍 패러다임이다. 무조건 좋다는 건 아니다. '함수형 사고'라는 책에 이런 말이 써있다고 한다. '객체지향 프로그래밍은 움직이는 부분을 캡슐화하여 코드 이해를 돕고, 함수형 프로그래밍은 움직이는 부분을 최소화하여 코드 이해를 돕는다' 즉, 어느 하나가 우세한 게 아니라 패러다임이 다른 것이다.
Read개인적으로, 자바를 공부하며 자꾸만 그 차이점을 헷갈리게 되었던 개념이 추상클래스와 인터페이스다. 둘 다 객체 생성을 할 수 없고, 설계도 같은 느낌의 개념이라 공통점이 있는데, 차이점을 위주로 다뤄본다.
Read오버라이딩과 오버로딩은 이름이 비슷해 초심자가 헷갈릴 수 있는 개념이다. 둘 다 '동일한 이름의 메서드'에 대한 개념이라는 공통점이 있는데, 어떤 차이점이 있는지 알아보자.
Read객체지향 프로그래밍은 문제를 여러 개의 객체 단위로 나눠 작업하는 방식을 말한다. 객체지향 프로그래밍의 5대 개념인 추상화, 캡슐화, 은닉화, 상속, 다형성에 대해 정리해본다.
ReadJava와 같은 클래스 기반 언어에서는 Class를 통해 객체를 생성하는데, JavaScript는 Class가 없어 Function과 prototype을 통해 객체를 만든다. 이 때문에 자바스크립트는 프로토타입 기반 언어라고도 불린다. Function의 기본 property인 prototype과 객체의 기본 property인 __proto__, 그리고 프로토타입 체인에 대해 알아본다.
Readn개의 원소를 순서대로 배열하는 것을 정렬이라 한다. 3가지 기본 정렬(선택 정렬, 버블 정렬, 삽입 정렬)과 3가지 고급 정렬(병합 정렬, 퀵 정렬, 힙 정렬)에 대해 각각의 원리와 수행 시간을 알아본다.
Read네트워크를 통해 서버로부터 데이터를 가져오기 위한 통신 방식은 Http 통신과 Socket 통신 2가지가 있다. 전자는 단방향이고, 후자는 양방향이다.
Read