목록전체 글 (63)
백고등어 개발 블로그
오늘 한 일 동기와 비동기에 관해서 다시 생각해보았다. 동기와 비동기, 블락킹와 논블락킹은 절차지향과 객체지향과 같이 개념일뿐이고, 그것을 코드로 표현하다보니 자바스크립트의 콜백으로 표현이 가능할뿐이다 그리고 콜백의 단점을 보완하기 위해 문법적으로 Promise, async/await 키워드가 나왔다 이벤트 루프의 동작으로 설명하자면 callstack 영역은 동기영역, webAPI 영역은 비동기영역으로 말할 수 있다 비동기적으로 동작하는 특정 함수들인 setTimeout, setInterval, AJAX 등등은 내부적으로 처리되는 순서에 따라서 동작되는 순서가 달라질 수 있다 그렇게 뒤죽박죽으로 실행되는 순서를 순차적으로 실행할 수 있도록 하는 방법은 자바스크립트의 콜백(callback)만 사용해서 해결..
오늘 한 일 자바스크립트의 비동기 처리에 관해 학습했다. callback 을 이용한 비동기 함수의 전달 방법과 콜백 지옥을 해결하기위한 비동기 처리 객체인 Promise 와 Promise 의 단점을 보완한 async/await 키워드에 관련해서 학습했다.
오늘 한 일 오늘 N-Queens 문제를 풀었다 N-Queens란? n*n 체스판에 n 개의 퀸을 배치할 때 각각의 퀸들이 서로의 공격범위에 들어오지 않도록 배치할 수 있는 방법이 몇가지가 있는지 알아내야하는 문제이다 문제를 해결하기 위해 생각해야할 것들을 아래와 같이 정리해보았다. 1. 퀸의 공격범위를 어떻게 구현할 것인가? 2. 다음 퀸을 배치할 때 기존에 배치된 퀸의 공격범위에 들어왔을 때 어떻게 처리해야할지? 3. n 개의 모든 퀸들이 서로를 공격하지 않는 배치방법이 하나 발견되고 나서 그다음 배치를 구성할 때 어떻게 기존의 배치와 다르게 구성할 수 있을지? 4. 어떻게보면 n*n 체스판의 모든 칸들을 검사해야하는데 어떻게 모든 칸을 검사할 수 있을지?
오늘 한 일 부트 캠프 과정을 함께 진행하면서 뵙게된 분의 코드를 함께 살펴보면서 새로운 것을 알게 되었다 현재 이벤트가 발생한 객체를 삭제하는 방법에 대해 알게 되었는데 아래의 코드를 사용하면 된다 function childClickDOM0(event) { log("Child click DOM0, removing"); this.parentNode.removeChild(this); } *물론 이벤트 호출 함수에 따라서 this 는 달라진다! 참고 : stackoverflow.com/questions/2732818/if-you-delete-a-dom-element-do-any-events-that-started-with-that-element-contin