this는 왜 존재할까요?객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드로 구성되어 있습니다.동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야합니다. 이 때 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 자신이 속
실행 컨텍스트의 동작 과정을 아래의 코드의 실행 과정을 통해 설명해 보겠습니다.전역 객체에는 기본으로 제공하는 변수와 함수들이 저장되어 있습니다.여기서 코드의 평가란 코드가 실행하기 전에 실행 컨텍스트를 생성하고, 변수와 함수 등의 선언문만 먼저 등록하는 과정입니다.평
관심사란 무엇일까요?관심사란 하나의 모듈이 수행하고자 하는 목적을 의미합니다. 보통 모듈은 한 가지의 관심사를 가지는 것을 좋은 코드라고 부릅니다.'하나의 모듈이 여러 가지 기능을 할 수 있으면 좋은 게 아닐까?'라는 생각이 듭니다. 그런데 왜 하나의 관심사만 가져야
검색창을 Debounce와 Cache를 통해 최적화한 내용을 설명하고자 합니다.현재 검색창은 글자를 입력할 때마다 서버에 api 요청 보내 입력된 검색어에 맞는 추천 검색어를 응답합니다.하지만 입력된 글자마다 api 요청을 보내게 되면 불필요한 api 요청이 발생하게
로그인 폼과 회원가입 폼을 만들 때 중복되는 로직과 UI가 많았습니다. 그래서 하나의 폼 컴포넌트로 로그인과 회원가입을 동시에 해결하기 위해 여러 시도를 했었습니다.그 중 compound component pattern을 통해 개발한 폼에 대해 설명하려고 합니다.먼저
의존성 역전 원칙 의존성 역전 원칙을 설명하기 전에 먼저 추상화란 구체적인 구현 세부 사항을 숨기고 필요한 부분만 노출시켜 사용자가 내부 동작을 신경 쓰지 않고 기능을 사용할 수 있도록 하는 것입니다. 예를 들어 우리는 console.log의 내부 구현을 생각하지