본문 바로가기

전체 글77

JavaScript - Callback 자바스크립트는 싱글 스레드 방식으로 코드를 처리하기 때문에 동기적이라 볼 수 있다. * 동기(Synchronous)는 요청을 보내고 요청의 응답을 받아야 다음 코드로 넘어가는 방식이고, 비동기(Asynchronous)는 요청을 보내고 응답과 관계없이 다음 코드를 실행하는 방식이다. 그래서 호이스팅(hoisting)이 된 이후부터는 코드가 작성한 순서에 맞춰서 동기적으로 실행된다. 이런 동기적 처리는 대량의 데이터를 요청 또는 서버에서 요청에 대한 응답을 언제 줄 지 모르기 때문에 지연된다. 이런 문제점을 해결하기 위해 여러 방법을 통해 자바스크립트를 비동기로 조작할 수 있다. 콜백(Callback) 함수란 다른 함수의 인자로써 이용되는 함수 또는 어떤 이벤트에 의해 호출되는 함수이다. 위 예에서 보면 s.. 2021. 2. 28.
2020. 10. 13 "토마토" 나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 "팰린드롬(palindrome)"이라 부른다. 팰린드롬(palindrome)과 아닌 것을 구분하여 true와 false로 출력한다면 다음과 같이 표현할 수 있다. function palindrome(word) { for(let i = 0; i < Math.floor(word.length / 2); i++) { let left = word[i]; let right = word[word.length - 1 - i]; if(left !== right) { return false; } } return true; } console.log(palindrome("기러기")); console.log(palindrome("토마토")); console.log(pal.. 2020. 10. 13.
유닉스(Unix)와 리눅스(Linux) 유닉스는 교육 및 연구 기관에서 즐겨 사용되는 범용 다중 사용자 방식의 시분할 운영체제이다. 수많은 운영체제들이 유닉스(Unix)라는 하나의 운영 체제에서부터 시작되었다. 유닉스는 1970년대 초반 벨 연구소 직원인 켄 톰슨과 데니스 리치에 의해 개발되었다. 개발에 사용된 언어는 대부분 C로 작성되어서 다른 컴퓨터에 수정해서 적용하기가 편했다. 그렇다 보니 유닉스와 유닉스를 변형할 수 있는 C언어가 그 당시에 인기를 끌게 되었다. 유닉스를 변형해서 다른 컴퓨터에 적용하는 사례가 많아지다보니 다양한 버전의 유닉스가 만들어져 이것을 어느 정도 변형을 제한하는 POSIX(유닉스의 규격과 기능)라는 유닉스의 표준이 만들어졌다. 하지만, 유닉스를 사용하거나 변형할 때 라이센스의 문제가 생겨 자유 소프트웨어 재단에.. 2020. 9. 23.
컴파일러(Compiler)와 인터프리터(Interpreter) 프로그램 언어를 해석하고 실행시키는 대표적인 방법이 컴파일러(Compiler)와 인터프리터(Interpreter)이다. 컴파일러(Compiler) 컴파일러는 고수준 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역 후 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성한다. 번역 실행 과정을 거쳐야 하므로 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역 후에는 다시 번역하지 않아도 되기 때문에 실행 속도가 빠르다. 컴파일러를 사용하는 언어에는 c, c++처럼 비교적 저수준에 가까운 언어이다. 인터프리터(Interpreter) 인터프리터는 고수준 언어로 작성된 프로그램을 한 줄 단위로 번역과 동시에 즉시 실행시킨다. 프로그램이 직접 실행되므로 목적 프로그램은 생성되지 않는다. 줄.. 2020. 9. 22.
JavaScript - setTimeout과 setInterval 그리고 requestAnimationFrame 함수를 당장 실행하지 않고 딜레이 후 실행하고 싶을 때 구현할 수 있는 두 가지 메서드가 있다. setTimeout - 설정해놓은 최소 시간 이후 함수가 한번 실행된다. setInterval - 설정해놓은 최소 시간 마다 일정 간격으로 함수가 주기적으로 실행된다. setTimeout 문법 let example = setTimeout(function|code, [delay], [arg1], [arg2], ...); 파라미터 function | code는 실행을 위한 함수나 문자열이다. 주로 함수를 받으며, 코드의 문자열도 넘길 수 있지만 권장하지 않는다. delay는 실행하기 전의 딜레이 즉, 최소 시간이다. ms단위로 이루어져 있으며, 1000ms = 1s이다. 기본값은 0이다. arg1, arg2..는.. 2020. 9. 21.
JavaScript - Message Queue and Event Loop Message Queue Message Queue는 아래 글 참고 2020/09/03 - [Javascript] - JavaScript - Call Stack(호출 스택) JavaScript - Call Stack(호출 스택) Call Stack 자바스크립트는 싱글 스레드(single-threaded) 프로그래밍 언어이기 때문에, 콜 스택이 하나이다. 따라서 한 번에 하나의 일만 할 수 있다. 콜 스택은 함수의 호출들을 기록하는 자료구조이�� su1993.tistory.com Event Loop Event Loop는 Call Stack과 Callback Queue의 상태를 체크하여 Call Stack이 빈 상태가 되면, Callback Queue의 첫 번째 콜백을 Call Stack으로 밀어 넣는다. 이.. 2020. 9. 18.