본문 바로가기

프로그래밍

자바스크립트 javascript sleep 자바스크립트에서 sleep을 사용할 수 있을까? sleep은 다른 언어에서는 일정한 시간 동안 특정 스레드의 작동을 멈추는 것으로 사용된다. 시간 제한이나 타이머 같은것들을 만들다 보면 유용하게 사용된다. 자바스크립트의 sleep 따라하기 반면, 자바스크립트의 경우에는 setTimeout같은 것들이 있다. 이런 함수의 작동방법이 어떤가? 함수를 등록시켜 뒀다가 몇 초 뒤에 실행시키는 방식 아닌가? 이런 면에서는 거의 '무조건' 비동기식으로 하게 된다는 걸 알 수 있다. 즉 sleep을 구현한다 하더라도 진정한 sleep이라고는 말하기 어렵다는 것이다. 비슷한 방식도 아닌데다가, callback형식이니까 말이다. ECMAScript에서는 가능하다고? 하지만, 우리에겐 ES2017이라는 구세주가 있다. 완벽.. 더보기
ECMAScript 자바스크립트 await Promise async 자바스크립트에서 비동기식 '함수'를 만드는게 가능하다고 생각하는가? 물론 가능하다. 함수를 만든 뒤에, 그 안에 setTimeout으로 실행내용들을 실행해주는 코드를 작성하면 된다. 하지만, 여기서 return 값 같은 것들은 어떻게 해야 될까? 아마 힘들 것이다. 하지만, 이런 점을 더 편하게 바꾸기 위해 ES2017에 새롭게 추가된 async 함수와 각종 기능들을 이용하면 훨씬 편하고 간단하게 만들 수 있다. 그럼, 이런 함수들 / 키워드들을 알아보자. async 키워드 async 키워드는 '비동기'라는 뜻을 가지고 있다. function 키워드 앞에 붙어서 사용되며, 비동기적 함수임을 알려준다. 실제로 이 키워드를 붙인 함수는 값이 return되기도 전에 다음 코드가 실행되 버리는걸 볼 수 있다. .. 더보기
C++ Vector 무한배열 사용법 '무한배열'을 들어보았는가? 지금까지 객체지향을 맛보지 못한 사람이라면, 들어보지 못했을 수도 있다. 무한한 배열이라니, 원래 배열은 크기가 딱딱 정해져 있고 넘어가면 프로그램에 문제가 생기는 것 아닌가? 당연히 맞는 말이다. 배열의 크기를 넘어선 데이터를 저장하면 문제가 생기는 것은 반박할 수 없는 엄연한 사실이다. 하지만, 이런 배열의 불편한 점을 보완해줄 뭔가는 있기 마련이다. 마치 동적 영역 지정 같이 말이다. 이런 형식을 사용하면 프로그래밍 작업의 효율을 높일 수 있고 일단 편하다. 그렇기에 C++를 하면서, 다른 언어를 공부하면서도 알아야 편한 정보 중에 하나다. 그럼, C++에서의 동적배열, 무한 배열 Vector에 대해 알아보자. 사용법 / 기본 정보 C++에 들어있는 기능이다. 그러면 어.. 더보기
C++ 익명함수 사용법 익명함수라고? 익명함수라.. 어디에서 들어보았는가? 아마 자바스크립트나 자바 또는 다른 객체지향 언어에서 들어보았을 것이다. 익명함수는 말그대로 이름이 없는 함수인데, 객체지향에서는 변수에 저장해놓고 사용하거나 특정 행동에 대한 처리를 하기 위해 주로 사용된다.(객체지향의 큰 특징중 하나) 그런데, 이런 익명함수 개념이 객체지향 언어라 그런지, 어쩌다 보니 C++까지 오게 되었다. 그것도 정말 편리한 익명함수의 새로운 표기법인 "람다"를 이끌고 말이다. 그럼, 이런 C++ 익명함수/람다식의 사용법을 자세히 알아보도록 하자. (JS의 람다를 알아보고 싶다면 여기) 익명함수 사용하기 123[]{ 실행내용 }[](매개변수){ 실행내용 }[](매개변수)->반환타입{ 실행내용 }cs 익명함수의 주요 사용법 3가지.. 더보기
자바스크립트 화살표 함수 (람다식) 자바스크립트의 람다식? 람다식이라, 어디에서 들어봤는가? 아마 자바 공부를 하던 사람이라면 어쩌다 한번은 들어봤을 것이다. 자바에서의 람다식은 주로 쓰레드(한번에 여러 작업을 처리)작업을 할 때 필요한 Runnable 객체(실행코드, JS에서는 익명함수)를 편리하게 생성하기 위해 쓰인다. 그런데 이런 기능이 JS에도 있다는 것, 들어봤는가? 목적이 거의 비슷하고, 문법도 비슷하다. 하지만 자바스크립트에서의 이런 기능은 자바의 "람다식" 과는 명칭이 별개로 붙어 있다. (그리고 무엇보다 매일매일 function(){}을 적느라 고생할 필요가 없다는 것이다!) 바로 '화살표 함수'다. 풀네임으로는 화살표 함수 표현, arrow function expression 정도 되겠다. 주로 쓰이는 방식은 위와 같다... 더보기
자바스크립트 강좌 # 자바스크립트란? 자바스크립트는 웹 개발에 있어 절대로 빠져서 안될 언어 중 하나다. HTML이 사이트의 기본 요소를 구축하고 CSS가 디자인을 해 준다면, JS는 실제 작동 내용을 이루어주는 가장 중요한 부분을 맡는다. 그럼, 이런 중요한 언어인 자바스크립트에 대해 간단히 알아보자. # JS는 어떤 언어? 자바스크립트는 브라우저에서 작동하는 어느 운영체제에서나 작동할 수 있는 언어다. 입문하기 쉽고, 상당히 유용하지만, 지금처럼 JS의 규모가 크지 않을 때에는 무시도 받았다 한다. 또 참고로 말하자면, 자바스크립트와 자바는 전혀 다른 언어다. 자바스크립트는 '브랜든 아이크'가 만든 웹 언어인데 반해 자바는 '오라클'에서 만들었으며, 일반 프로그램이나 서버 구축을 위해 사용한다. 이 두개는 이름이 비슷하지만, 각각 하는 .. 더보기
Node.js 강좌 # Node.js가 뭘까? Node.js라는 플랫폼을 들어봤는가? 국내에는 아직 잘 보급되어 있지 않고 강좌도 많이 존재하지는 않지만, 상상을 뛰어넘는 강력한 기능으로 유용히 쓰이는 서버 프로그램이다. 그럼, 자세히 알아보도록 하자. # Node.js? Node.js는 자바스크립트를 기반으로 해서 만들어진 프로그램이다. 굳이 실행 방식이 비슷한걸 따져보자면, Python 정도가 있겠다. 다른 언어에 비해 비교적 쉬운 자바스크립트를 사용해서 프로그래밍할수 있기에, 기본 개념 몇가지만 이해하고 나면 못하는게 없다고 할 정도로 막강해진다. ▲ node.js 로고 # 어디에 사용하지? 아마 이게 가장 의문이 드는 점이었을 것이다. 그래봐야 웹에서만 겨우 쓰이던 언어인 JS일 뿐인데 어떤 기능을 할지 말이다. 하지만 node.js에는 막강.. 더보기