본문 바로가기

IT875

자바스크립트 WebAPI와 단일 스레드 JavaScript는 단일 스레드 언어입니다. 이는 JavaScript 엔진이 한 번에 하나의 작업만 수행할 수 있음을 의미합니다. 그러나 이러한 제한으로 인해 JavaScript가 UI 블로킹 문제와 같은 문제를 해결하는 방법이 필요합니다. 이를 해결하기 위해 JavaScript는 Web API를 사용합니다. Web API는 브라우저에서 제공되는 비동기 함수들의 집합입니다. Web API를 통해 브라우저는 JavaScript의 단일 스레드 제한을 우회하여 동시성 작업을 처리할 수 있습니다. Web API는 대부분 비동기 함수들로 구성되어 있으며, 이러한 함수들은 백그라운드 스레드에서 실행됩니다. 예를 들어, setTimeout() 함수는 Web API에 속해 있으며, JavaScript에서 실행되면 W.. 2023. 4. 17.
자바스크립트 콜 스택(Call Stack) 자바스크립트의 콜 스택(Call Stack)은 함수 호출의 실행 컨텍스트(context)를 저장하는 자료구조로서, 함수 호출 시 함수의 실행 컨텍스트를 콜 스택에 저장하고, 함수가 실행을 완료하면 해당 실행 컨텍스트를 스택에서 제거하는 방식으로 동작합니다. 자바스크립트는 함수를 호출할 때마다 실행 컨텍스트를 생성하고, 이 실행 컨텍스트에는 함수의 변수, 매개변수, 내부 함수 등의 정보가 저장됩니다. 이러한 실행 컨텍스트들은 콜 스택에 쌓이게 되며, 함수 실행이 완료되면 해당 실행 컨텍스트는 스택에서 제거됩니다. 사용법 예를 들어, 다음과 같은 코드가 있다고 가정해봅시다. function foo() { console.log('foo'); } function bar() { console.log('bar');.. 2023. 4. 17.
자바스크립트 폼 이벤트(Form Events)와 PreventDefault 자바스크립트에서 폼(Form)은 웹 사이트에서 사용자 입력을 받는 가장 일반적인 방법 중 하나입니다. 폼은 일반적으로 텍스트 상자, 비밀번호 상자, 라디오 버튼, 체크 박스 등의 입력 필드로 구성되며, 사용자는 이러한 필드를 작성하여 웹 페이지의 서버로 데이터를 제출할 수 있습니다. 폼에서 발생하는 이벤트는 대부분 HTML 이벤트와 유사하지만, 몇 가지 독특한 이벤트가 있습니다. 이번 글에서는 자바스크립트에서 폼 이벤트를 어떻게 처리할 수 있는지 알아보고, 이벤트 객체의 preventDefault() 메서드가 무엇이고 어떻게 사용하는지 살펴보겠습니다. 폼 이벤트 종류 자바스크립트에서는 다양한 폼 이벤트를 다룰 수 있습니다. 이 중 가장 일반적인 이벤트는 다음과 같습니다. submit: 폼이 제출될 때 발.. 2023. 4. 17.
자바스크립트 이벤트 위임(Event Delegation) 자바스크립트에서 이벤트 위임(Event Delegation)은 많은 요소들이 동적으로 생성되는 경우 이벤트를 하나의 부모 요소에 등록함으로써 성능을 개선할 수 있는 방법입니다. 보통의 경우, 이벤트를 처리하기 위해서는 각 요소에 이벤트 핸들러를 등록해야 합니다. 이는 요소의 개수가 적을 때는 문제가 되지 않지만, 요소의 개수가 많아질수록 메모리 사용량과 이벤트 처리 속도가 느려질 수 있습니다. 하지만 이벤트 위임을 사용하면 부모 요소에 하나의 이벤트 핸들러만 등록하면 되기 때문에 성능 문제를 해결할 수 있습니다. 사용법 이벤트 위임은 이벤트 버블링(Event Bubbling)을 기반으로 동작합니다. 이벤트 버블링이란 하위 요소에서 발생한 이벤트가 상위 요소로 전파되는 현상을 의미합니다. 예를 들어, 아래.. 2023. 4. 17.
자바스크립트 이벤트 버블링(Event Bubbling) 자바스크립트에서 이벤트 버블링은 DOM 트리의 자식 요소에서 부모 요소로 이벤트가 전파되는 것을 말합니다. 즉, 이벤트가 발생한 요소에서 시작해 상위 요소로 계속해서 이벤트가 전파됩니다. 이벤트 버블링은 이벤트가 전파되면서 상위 요소의 이벤트 핸들러가 자동으로 호출되어 처리될 수 있다는 장점이 있습니다. 사용법 예를 들어, 아래와 같은 HTML 코드가 있다고 가정해봅시다. Click me 이 때, 버튼을 클릭했을 때 발생하는 클릭 이벤트는 버튼에서 시작하여 inner 요소, 그리고 outer 요소까지 이벤트가 전파됩니다. 이벤트가 전파되면서 각 요소에 등록된 이벤트 핸들러가 자동으로 호출되어 처리됩니다. 이벤트 버블링을 이용하면 여러 요소에서 동일한 이벤트를 처리해야 하는 경우, 상위 요소에서 이벤트 핸.. 2023. 4. 16.
자바스크립트 키보드 이벤트 사용법 자바스크립트에서는 키보드 이벤트를 다룰 수 있습니다. 키보드 이벤트는 사용자가 키보드에서 키를 눌렀거나 떼는 등의 동작을 했을 때 발생합니다. 키보드 이벤트는 keydown, keyup, keypress 이벤트로 나뉘며, 각 이벤트는 다음과 같은 시점에서 발생합니다. 사용법 keydown: 사용자가 키를 누를 때 발생합니다. keyup: 사용자가 키를 뗄 때 발생합니다. keypress: 사용자가 키를 누르고 떼는 동작이 완료될 때 발생합니다. 이벤트 발생 시, 해당 이벤트에 대한 정보를 담고 있는 이벤트 객체(event object)가 생성됩니다. 이벤트 객체를 사용하여 사용자가 입력한 키의 정보를 얻거나, 이벤트 발생 시 추가적으로 수행해야 할 작업을 처리할 수 있습니다. keydown 이벤트에서는 .. 2023. 4. 15.
자바스크립트 계층 이동하는 방법 웹 페이지에서 DOM을 다룰 때, 때로는 요소의 위치를 이동해야하는 경우가 있습니다. 이를 위해 자바스크립트에서는 계층 이동(hierarchy traversal) 메서드를 제공합니다. 이들 메서드는 요소를 찾거나, 요소의 위치를 변경하거나, 그 하위 요소들을 다루는 데 사용됩니다. 사용법 다음은 계층 이동 메서드들입니다. parentNode 부모 요소를 선택합니다. 예시: element.parentNode parentElement parentNode와 같지만, 요소노드만 선택합니다. 예시: element.parentElement childNodes 모든 자식 요소를 선택합니다. 예시: element.childNodes children 자식 요소노드만 선택합니다. 예시: element.children fi.. 2023. 4. 14.
자바스크립트 classList JavaScript의 classList는 DOM 요소의 클래스를 조작하는 데 사용되는 속성입니다. 이 속성을 사용하면 요소에 대한 클래스 이름을 추가, 제거, 교체, 토글 할 수 있습니다. 사용법 classList에는 add(), remove(), toggle(), contains(), replace() 등의 다양한 메소드가 있습니다. add(className): 클래스 이름을 추가합니다. remove(className): 클래스 이름을 제거합니다. toggle(className): 클래스 이름이 요소에 있는 경우 제거하고 없는 경우 추가합니다. contains(className): 클래스 이름이 요소에 있는지 확인합니다. replace(oldClassName, newClassName): 클래스 이름을 .. 2023. 4. 14.