본문 바로가기

💻 개발/JavaScript11

[JS] 비동기 처리: 콜백 지옥과 Promise, Async/Await 오늘을 그동안 막연하게 바라만 봐왔던 Promise에 대해 살펴보면서, 과거에는 어떤 형식으로 사용했는지, Promise가 나오고, Async/Await 이 나오고 코드가 어떻게 달라졌는지 살펴볼 것이다. 프로미스 (Promise)프로미스는 ES2015(ES6)에 도입된 문법으로, 비동기 작업의 완료 또는 실패를 나타내는 객체이다.자바스크립트의 비동기 작업을 보다 직관적이고 가독성 좋게 처리하며, 이름 뜻 그대로 약속이라는 의미를 가진다.한 마디로 이 객체로 감싼 내용은 미래의 어떤 시점에 완료하기로 약속하는 것이다. 따라서 내용이 수행되었는 지를 나타내는 3가지의 상태를 가진다.대기 (Pending)  : 아직 결과를 받지 못 한 상태.이행 (Fulfilled)   : 연산이 성공적으로 완료된 상태.거.. 2025. 1. 10.
[JS] 구조 분해 할당과 일반 할당 알고리즘 문제를 풀다보면, 같은 로직을 다양한 방식으로 구현할 수 있다.그 중에서 동일한 결과를 보이는 일반 할당과 구조 분해 할당의 차이에 대해 알아보고자 한다. function fibonacci (n) { let a = 0, b = 1; for(let _=2; _function fibonacci (n) { let [a, b] = [0, 1]; for(let _=2; _ 오른쪽 코드처럼 구조 분해 할당을 사용한 코드가 더욱 간결하고 가독성있는 것 같다.(나만 그렇게 느낄 수도 있다!)하지만 구조 분해 할당 방식이 성능적인 측면에서 좋은 방법인지 몰라 swap 함수를 제외하고는 거의 사용하지 않았었다. 오늘은 구조 분해 할당의 개념부터 실제 동작 방식 및 성능적 특성에.. 2025. 1. 8.
[JS] 문자열 인덱싱: 괄호 표기법 vs charAt() vs at() 오늘은 알고리즘 문제를 풀다가 괄호 표기법 및 charAt 메서드의 차이가 궁금해져서 이에 대해 알아보려고 한다. 이 차이가 궁금한 문제는 프로그래머스 - JaednCase 문자열 만들기 이다.  JavaScript에서 문자열에서 index의 요소를 가져오는 방법에는 괄호 표기법([])과 charAt() 메서드와 at() 메서드 2가지가 있다.각 방법의 사용법 및 특징, 사용 상황에 대해 알아보자! 괄호 표기법 (string[index])/* 괄호 표기법 - string[index] */const str = "Hello World"; console.log(str[0]); // 'H'console.log(str[6]); // 'W' console.log(str[null]); // undefined.. 2025. 1. 7.
[JS] 문자열과 배열의 메모리 할당 차이 오늘은 알고리즘 문제를 풀다가 겪은 문자열과 배열의 메모리 할당 차이에 대해 얘기해보려고 한다. 문자열과 배열의 메모리 할당 차이를 느낄 수 있는 문제는 프로그래머스- 햄버거 만들기 이다.  문자열과 배열에서 Push의 시간복잡도가 왜 다를까?문자열에서 뒤에 문자를 추가할 때 드는 시간복잡도는 O(n)이다.반면에 배열에서 뒤에 문자를 추가할 때 드는 시간 복잡도는 O(1)이다! 이 차이는 바로 불변성 에 있다.자바스크립트에서 문자열은 '불변(immutable)'이라는 성질을 가지고 있다. 이는 한번 만들어진 문자열은 절대 수정할 수 없다는 뜻이다. 그렇다면 반박할 사람들이 있을 수도 있다. 'var 나 let 변수 선언자를 사용하면 문자열을 재할당할 수 있잖아요!'let str = "Hello";str .. 2025. 1. 6.
[JavaScript] 변수 타입과 암시적/명시적 형변환 자바스크립트에서 다음 코드는 어떤 결과를 출력할까요?console.log(2 + "3");console.log("5" - 2); A : 타입이 다르니까 TypeError를 낼 것 같아!B : 음... 자바스크립트는 느슨한 언어라고 했으니 일단 동작을 할거야! 그렇담 5와 2를 출력해!C : 암시적 형변환이 일어나서 +의 경우 "23"을 출력하고, -의 경우 3을 출력합니다. 정답은 C 입니다~! 자바스크립트는 동적 타입 언어로, 여러 타입의 변수를 동시에 연산하면 암시적 형변환이 일어납니다.이 사실은 알고 있었지만 자바 스크립트만 사용한 프로젝트를 해본적이 적고, 있다고 해도... 저렇게 타입을 섞어서 사용해본 적은 없었습니다. 그래서 암시적 형변환이 일어나지만 결과가 어떻게 되는지는 몰랐습니다.이번 기.. 2024. 12. 31.