이전에 조사했었지만,, 너무너무 어렵게 느껴졌던 개념이다.이번 기회에 closure를 부셔버리겠어,, 부서지는건 나일지도 👀 Closure란?클로저는 주변 상태(어휘적 환경)에 대한 참조와 함께 묶인(포함된) 함수의 조합입니다라고 MDN에 나와있지만 정말 무슨 말인지 이해가 안된다,, 코드를 살펴보자.function doSomething() { const x = 10; function sum(y) { console.log(x+y); } return sum;}const something = doSomething();something(5); // 15doSomething 함수는 sum 함수를 리턴하고 있다.sum 함수에서는 doSomething 함수의 x 변수를 참조하고 있다. doSomething..
👀 this란?Java에서 this는 자기 자신을 가리키는 참조 변수로 객체 자신에 대한 참조 값을 의미한다.주로 매개변수와 객체 자신의 멤버 변수 명이 같을 때, 구분하기 위해 사용된다.public class Person { private String name; public Person (String name) { this.name = name; }}이런 식으로 멤버 변수에 매개변수를 할당해주기 위해 사용한다. 하지만 JS에서 this 키워드는 다른 언어에서와는 다르게 동작한다!!(왜 맨날 JS 너만 달라...) JS에서 this에 바인딩되는 객체는 해당 함수의 호출 방식이나 함수 선언 위치에 따라 달라지게 된다.어떤 객체가 바인딩 될 지 주의해야 한다는 의미이다.👀 일반..
👀 JS 엔진과 구동 환경자바스크립트를 실행하기 위해서는 자바스크립트 엔진이 필요하다.Google에서 만든 V8 엔진이 가장 대표적인 예시이다. 자바스크립트 엔진은 Memory Heap과 Call Stack으로 이루어져 있다.Memory Heap : 메모리 할당이 일어나는 곳으로 변수와 함수 같은 객체 등이 담기는 곳이다.Call Stack : 함수를 호출들이 쌓이는 스택이다.자바스크립트 엔진 자체는 싱글 스레드이다. 실제 자바스크립트가 구동되는 환경인 웹 브라우저는 멀티 스레드로 동작하기 때문에 비동기 처리가 가능한 것이다.정확히는 Web API가 멀티 스레드로 동작하는 것이다. 따라서 자바스크립트의 런타임 환경은 위의 그림과 같다.Web APIs : 브라우저에서 제공하는 API들로, 비동기 처리를 ..
Debounce와 Throttle은 이벤트나 함수 호출의 빈도를 줄여서 성능을 최적화 시키기 위해 사용되는 개념들이다.검색하는 상황을 예시로 들어보자.한 글자 입력시 마다 요청을 보내는 것보다, 입력 중간중간 특정 시점이나 입력이 끝난 후 요청을 보낸다면 api 호출의 수가 줄어들게 된다.이 때, Throttle은 특정 시점에 api를 호출하는 것이고 Debounce는 입력이 끝난 후에 api를 호출하는 것이다.👀 Debounce연이어 발생한 이벤트를 하나의 그룹으로 묶어서 처리하는 방식이다.주로 처음이나 마지막으로 실행된 함수를 처리하는 방식으로 사용한다. 요청이 들어오고 일정 시간이 지난 후에 요청을 수행한다.일정 시간 안에 같은 요청이 추가로 들어오면 이전 요청은 취소된다. 이벤트를 실행하는 기점..
❗️이벤트 전파(Event Propagation)자바스크립트에서 이벤트가 발생하면 세가지 단계를 거친다.캡쳐링 단계상위 요소 -> 하위 요소 DOM 트리의 가장 상위 요소인 document에서 이벤트가 발생한다.document부터 하위 요소들을 타고 target 요소까지 내려온다.target 단계이벤트 target에 도달이벤트가 target에 도착하면, 콜백 함수를 통해 이벤트를 처리한다.버블링 단계하위 요소 -> 상위 요소다시 이벤트가 target부터 상위 요소들을 타고 document까지 올라간다.캡쳐링 단계와 동일하게 모든 부모 요소를 지나간다.한 줄 요약하자면!이벤트 캡쳐링 : 가장 상위 요소에서 이벤트가 발생한 타겟 요소까지 내려가는 것이다.이벤트 버블링 : 타겟 요소에서 이벤트가 발생했을 때,..
웹 사이트를 들어갔는데 필요한 정보를 한 번에 찾을 수 없다면 매우 불편하다.또한 화면의 구성이 이상하다면 정보를 보는데 방해가 될 수가 있다.이러한 점들을 고려해서 웹 레이아웃을 정해야 한다. 🌟 반응형 vs 적응형- 반응형화면 크기가 변경됨에 레이아웃이 달라지는 방식이다.깃허브 사이트가 반응형 사이트의 예시이다.화면의 크기가 변함에 따라 요소들의 크기가 변하다가 어느 순간이 되면 레이아웃이 변경되는걸 볼 수 있다. 장점웹/모바일 모두 동일한 사용자 경험을 제공한다.하나의 디자인에서 레이아웃만 변경하면 된다. 단점레이아웃을 세밀하게 조정해야 하기 때문에 반응형보다 까다롭다.모든 콘텐츠를 불러와서 화면 크기에 따라 자동으로 조정하기 때문에 로딩시간이 적응형에 비해 오래 걸린다. - 적응형모바일, 태블..