본문 바로가기

자바스크립트

[소프트웨어 디자인] 작업들은 어떻게 연결할 수 있을까요? * 본포스팅은 에서 발췌한 내용으로 작성되었습니다.  플루언트 인터페이스는 객체 지향 프로그래밍의 스타일 중 하나로, 객체의 메서드가 this를 반환해서 메서드 호출을 연결할 수 있게 하는 방식입니다. 예를 들어, 만약 우리의 클래스가 다음과 같다면,  다음과 같이 작성할 수 있습니다.  심지어 다음과 같이 할 수도 있습니다.  Array의 플루언트 인터페이스를 사용하면 일반적으로 중간 결과를 임시 변수에 할당하는 것보다 더 읽기 쉬운 표현식을 작성할 수 있습니다. 예를 들면, Array.filter(..)..map(..).와 같은 식입니다.만약 Pledge에 주어진 원래 작업이 성공적으로 완료되면, Pledge는 resolve 콜백을 호출해서 값을 제공해줄 것입니다. 우리는 이 값을 첫 번째 then에.. 더보기
[소프트웨어 디자인] 프로미스는 어떻게 작동하나요? * 본포스팅은 에서 발췌한 내용으로 작성되었습니다.  프로미스가 어떻게 작동하는지 살펴보겠습니다.  이 짧은 프로그램은 두 개의 다른 콜백(resolve: 모든 것이 성공했을 때 실행됨, reject: 문제가 발생했을 때 실행됨)을 인수로 받는 새로운 Pledge를 생성합니다. 최상위 콜백은 우리가 제일 먼저 수행하려는 부분, 즉, 지연이 예상되기 전에 실행하고자 하는 작업을 수행합니다. 여기서는 지연 목적으로 setTimeout의 지연을 0으로 설정해서 작업을 전환하겠습니다. 이 작업이 재개되면 resolve 콜백을 호출해서 지연 이후에 일어날 일을 트리거합니다. 이제 then이 있는 라인을 살펴보겠습니다. 이것은 방금 생성한 Pledge 객체의 메서드이며, 지연 후에 수행하려는 작업을 나타냅니다. t.. 더보기
[소프트웨어 디자인] 비동기 실행은 어떻게 관리할까요? * 본포스팅은 에서 발췌한 내용으로 작성되었습니다. 자바스크립트는 이벤트 루프를 중심으로 구축되었습니다. 모든 작업은 큐의 항목으로 표시되며, 이벤트 루프는 큐의 앞쪽에서 작업을 가져와 실행하고 새로 생성된 작업을 큐의 뒤쪽에 추가하여 나중에 실행하는 식의 작업을 반복적으로 수행합니다. 한 번에 하나의 작업task만 실행되며 각 작업에는 고유한 호출 스택이 있지만 작업 간에 객체를 공유할 수 있습니다  대부분의 작업은 작성된 순서대로 사용 가능한 모든 코드를 실행합니다. 예를 들어, 다음 한 줄짜리 프로그램은 Array.forEach를 사용해서 배열의 각 요소를 차례로 출력합니다.  그러나 몇 가지 특별한 내장 함수를 사용하면 Node가 작업을 전환하거나 실행 큐에 새로운 작업을 추가할 수 있습니다. 예.. 더보기
[자바스크립트 알고리즘] 빅오 표현법과 시간 복잡도 * 본포스팅은 에서 발췌한 내용으로 작성되었습니다.  ✔  빅오 표현법과 시간 복잡도알고리즘을 공부할 때 가장 처음 배워야 할 개념이자 첫 번째 관문은 빅오(Big-O) 표현법입니다. 빅오 표현법을 한마디로 정의하면 ‘최악의 경우가 나올 경우 얼마나 오래 걸리는가?’라 할 수 있습니다. 어려운 말로 상한 점근을 뜻합니다.알고리즘의 성능을 결정하는 요인은 내가 원하는 대로 데이터가 준비되는 경우가 아닌 극단적인 상황을 고려해야 합니다.  빅오 표현법에서는 데이터 입력 조건을 n이라고 할때, n이 무한대로 커지는 경우를 고려해 표기하게 됩니다. 즉 빅오 표현법을 사용하면 알고리즘의 성능을 한눈에 알 수 있습니다.  빅오 표현법을 이해하기 위해 그림 1-1을 살펴봅시다. O(1)인 경우에는 데이터 입력과 상관.. 더보기
[자바스크립트 알고리즘] 알고리즘과 자바스크립트 * 본포스팅은 에서 발췌한 내용으로 작성되었습니다.  아마도 현 시대에서 알고리즘(Algorithm)이라는 단어를 가장 많이 접하고, 들을 수 있는 곳은 다름 아닌 ‘유튜브’일 겁니다. ‘유튜브 알고리즘 신이 택하면 조회수가 떡상한다.’라는 말도 있고, ‘알 수 없는 알고리즘 때문에 갑자기 내 조회수가 떨어졌다.’라고 하면서 유튜브 알고리즘을 탓하는 유튜버들도 있습니다. 이처럼 알고리즘은 주변에서 쉽게 들을 수 있는 단어가 됐지만 동시에 ‘알고리즘이 정확히 무엇을 말하는가?’ ‘알고리즘의 정의는 무엇인가?’와 같은 질문을 하면 답하기 쉽진않습니다. 알고리즘의 사전적인 정의로 ‘주어진 문제를 논리적으로 해결하기 위해 필요 한 절차, 방법, 명령어들을 모아놓은 것’이라는 것을 알 수 있습니다. 그러나 프로그.. 더보기
Vue 3의 대표 신규 기능들 소개 (Vue.js 책추천) *이 포스팅은 에서 발췌한 내용으로 작성되었습니다. Vue는 버전 2까지 발표되면서 이미 웹 애플리케이션을 개발하는데 부족함이 없는 수준에 올라섰다. 하지만 Vue와 함께 웹 애플리케이션의 주축을 이루는 프레임워크들 역시 발전을 거듭하였고, 상호간의 비교를 통해 Vue의 약점들이 드러났다. 특히 웹 애플리케이션의 개발이 대규모 프로젝트가 되면서 코드의 길이가 길어져 가독성이 떨어지고, 다양한 인력들이 개발하는 수많은 컴포넌트들이 공유하는 데이터의 상태 관리는 Vuex만으로는 점차 감당이 되지 않기 시작했다. 이러한 문제를 해결하고자 Vue 3는 다양한 새로운 기능들을 가지고 출시됐다. 이미 해당 문제점을 극복한 다른 프레임워크들의 장점을 적극적으로 도입하는 한편 Vue의 장점을 더욱 부각시킬 수 있는 변.. 더보기
기초부터 블록체인 실습까지《단숨에 배우는 타입스크립트》미리보기 온라인 서점에 등록된 표지만 봐서는 어떤 후가공이 들어갔는지 보이지 않습니다. 실제로 보면 조명에 비춰 반짝입니다. 홀로그램처럼?!... 깔끔한 표지 디자인에 반짝이는 표지, 참 잘 나온 것 같습니다. 도서를 펼치면 판권과 저자의 말로 시작합니다. 저자 야코프페인과 안톤 모이세예프의 말과 그들의 블로그/트위터도 소개합니다. "이 책을 읽으면 타입스크립트가 왜 특출난 언어인지 알게 될 겁니다."라네요. 표지 컬러와 비슷한 색감으로 중간 표지가 들어갔습니다. 큰 제목과 하단에 설명까지, 깔끔하네요 :) 도서의 코드도 구분하기 쉽게 편집해 놓은 것을 알 수 있습니다. 키워드 사용하는 법, 중간중간 코드 설명까지! 입문자에게 큰 도움이 될만한 구성입니다 :) 이번엔 제7장 프로젝트에서 타입스크립트와 자바스크립트.. 더보기