반응형

JavaScript 5

JavaScript, Prototype

서론 ES6+ 이후 class 문법이 지원되면서 prototype을 직접 사용할 일이 드물겠지만, JavaScript 객체를 더 잘 이해하기 위해서는 prototype이 무엇인지 어떻게 동작하는지 어느정도 이해할 필요가 있다. 그래서 이번에는 JavaScript의 prototype에 대해 정리해보고자 한다. Prototype이란? JavaScript에서 prototype은 함수를 정의하자 말자 사용할 수 있는 속성이다. 이 만약 foo라는 함수를 생성하는 경우, foo라는 함수의 속성으로 prototype 이라는 이름의 속성도 함께 생성된다. 이 prototpye 속성은 함수 자체에는 아무런 영향을 미치지 않고, foo를 생성자로 호출(new foo())할 때 생성된 객체는 함수 foo의 속싱인 prot..

JavaScript Promise의 all( )과 race( )

JavaScript는 싱글쓰레드 이벤트 루프 방식으로 동작하기 때문에 동시성을 높이기 위해 최대한 비동기적으로 처리하는 것이 좋다. 시간이 오래 걸리는 어떤 I/O 연산에 의해 코드가 블록되면 그 이후 연산은 수행될 수 없기 때문이다. 웹 브라우저에서 사진을 받기 위해 몇 초를 기다리는 동안 다른 것을 할 수 없는 것을 경험한 적이 있을 것이다. 코드가 블록 되었기 때문이고 이런 부분은 가능하다면 비동기적으로 처리해주는 것이 좋다. 비동기 방식이 보통 더 효율적이지만 동기 방식에 비해 처리가 결코 쉽지않다. 처리 결과가 언제 어떻게 오는지 예측하기 힘들기 때문이다. 이제까지 JavaScript 코드에서 비동기 처리를 위한 여러가지 시도가 있는데 근래 들어서 Promise가 흔히 사용되는 것 같다. 아니 ..

Electron, 간단한 메모장(simple notepad) 만들기

0. 들어가며 이제까지 포스팅했던 내용을 도대로 electron으로 간단히 메모장(notepad)을 만들어본다. 전에 사용했던 module인 dialog, ipc, menu등이 그대로 사용하되 main에서 renderer로 먼저 어떤 요청을 하기 ipcMain으로는 불가능해 이를 해결하기위해 win.webContents.send( )를 사용할 것이다. 1. index.html notepad를 구현하기 위한 껍데기를 index.html에 구현했다. notepad의 중심기능은 글을 쓰고 저장하고 읽는 것이다. 글을 쓰는 곳은 태그로 처리했고, 저장 또는 읽기 후 Main 쪽으로 텍스트 내용을 보내고 받는 것을 2. main.js main.js 쪽 소스코드는 이전과 매우 비슷하다. 다른 점이 있다면 win 변..

Electron 2019.01.06

Electron, Main과 Renderer 프로세스 그리고 IPC

0. 들어가며 Electron은 main, renderer 두 개의 프로세스에 의해 동작한다. 이 두 프로세스에 대해 알아보고, 프로세스간 통신 즉, IPC(Inter Process Communication)를 다뤄본다. 1. main 프로세스와 renderer 프로세스 Electron으로 애플리케이션을 실행시킬 때, main 프로세스가 생성되는데, 이것은 OS의 native GUI와 상호작용하여 애플리케이션의 GUI를 만든다. 즉, main 프로세스는 native GUI 에 접근 가능하다. 또한 NodeJS 모듈도 접근가능하기 때문에 앱 개발이 용이하다. 그러나 단순히 main 프로세스를 실행시킨다고 애플리케이션 창이 만들어 지는 것은 아니다. 애플리케이션 창은 main 프로세스가 실행되는 main.j..

Electron 2018.10.21

JavaScript callback hell과 async-await

JavaScript를 사용하면서 성가신 것 중 하나가 I/O가 일어날 때 비동기 방식으로 동작한다는 점이다. 빈번한 I/O 처리 때문에 때문에, 코딩을 하다 보면 가끔 끔직한 결과를 만나게 될 때가 있는 것 같다. 특히, 연속적인 read, save 할때 말이다. 이를 해결하기 위해서 callback, async module(waterfall), promise 그리고 최근 async-await 까지 나왔다. async-await 방식이 기존에 방식에 비해 코드 가독성이 높아 쓰인다고 했지만 callback만 써왔기 때문에 async-await 코딩 방식에 익숙하지 않아 연습겸 글을 쓴다. Node.js로 모바일 앱 서버를 하나 구축하고 있다고 가정하자. 한 회원이 내가 쓴 글 목록을 보는 부분을 구현하고..

반응형