자바스크립트의 비동기를 위한 방법 중 마지막인 async/await에 대해 간단하게 알아보려 한다. 실제적으로 코드를 작성하며 중요하게 작동하는 내용이라 그런지…다른 내용들보다는 조금 어렵게 다가온다. 계속해서 사용해 보면서 어떻게 비동기 작업을 구현하는 게 제일 효율적인지 알아갈 수 있으리라 믿는다. (아직은 부족함이 많은 정리로 남겠지만 지속적으로 업데이트하며 async/await를 글 하나로 정리할 수 있게끔 해보도록 하겠습니다..) ✏️ async와 await를 사용하면 프로미스를 더 편하게 사용가능하다. async function 앞에 async 키워드를 추가하면 두가지 효과가 있다. 함수는 언제나 Promise를 반환한다. promise가 아닌 값을 반환하더라도 이행상태의 promise로 값을..
✏️ Node.js ➡️ 네트워크 서버 구축에 특화되어 있고, V8엔진은 기존의 인터프리터 언어인 자바스크립트를 컴파일 방식으로 처리해 빠른 속도로 작업을 수행할 수 있도록 합니다. 또한, Livub 라이브러리르 사용함으로 비동기 I/O 처리가 가능하게 해 Blocking 없이 동시 요청이 가능하다. 이전에 node.js에 대해 공부를 하고 정리를 하여 글을 올렸다. Node.js를 공부하다보니 node.js에서 필수적으로 알아야 할 것들이 적어도 2가지가 있다고 생각했다. 첫 번째는 V8엔진, 두 번째는 libuv 라이브러리였다. V8엔진이 어떻게 자바스크립트 코드를 해석하고 실행되는지 또한 정리를 했었고 이번에는 libuv라이브러리가 무엇인지, Node.js안에서 어떤 역할을 담당하고 있는것인지 알아..
v8은 자바스크립트 코드를 어떻게 해석하고 실행할까? 💡 V8엔진의 가장 큰 차이점은 JIT(Just In Time) 컴파일러다. → JIT 컴파일러 소스 코드를 가져와서 parser에게 넘긴다. parser는 코드를 분석한후 AST, 추상 구문 트리로 변환한다 그다음 AST를 자바스크립트를 바이트코드로 변환하는 인터프리터(ignition)로 넘긴다. 컴퓨터가 이해할 수 있는 바이크 코드로 변환이 되었기에 이 바이트 코드를 실행함으로 실제 코드가 작동이 된다. 프로파일러(profiler)라는 곳에서 일정기준이상 동일한 함수가 호출되면 최적화가 가능하다고 판단하고 해당 코드를 컴파일러(TurboFan)로 보내 최적화된 코드(Optimized Machine Code)로 컴파일한다. 그러다 사용이 덜 된다 싶..
"파이썬을 배우면 백엔드는 Django를 사용하고 Javascript를 배우면 백엔드는 node.js를 사용한다"라는 말이 어색하지는 않지만 틀린 말이다. 프로그래밍 언어를 위한 프레임워크가 딱 정해진 것이 절대 아니고 분명히 사용되는 이유가 있기 때문에 함께 이용되는 것임을 잊지 말자. 자신이 사용하고 있는 언어와 프레임워크, 런타임등을 왜 사용고 있는지 꼭!! 알고 사용할 수 있기를 바라며 자바스크립트를 배우며 node.js를 사용하는 입장에서 다시 한번 내가 왜 node.js를 사용하고 있는지 확인해보도록 하겠다. Node.js Node.js는 Chrome 브라우저의 V8Javascript 엔진을 탑재한 이벤트 기반의 Server Side 오픈소스 Javascript 런타임으로, 노드에 내장되어 있..
많은 사람들이 인증/인가의 방법으로 JWT를 사용하고 있다. 나 또한 JWT를 사용했지만, 내가 왜 JWT를 사용했을까?라는 생각을 깊게 해보지 못했던 것 같다. 이번 기회에 그 질문에 대해 깊게 생각해보고 정리를 해보려 한다. 💡 JWT(JSON Web Token) - 유저를 인증하고 식별하기 위한 토큰 기반 인증(Token based Authentication) 먼저 위의 질문에 대해 답을 하기 위해 차근차근히 단계를 밟으며 접근해보도록 하겠다. 보통 서버가 클라이언트 인증을 확인하는 방식으로 쿠키,세션,토큰 이렇게 3가지 방식이 있다고 한다. 토큰 기반 인증 방식인 JWT를 알기 위해 쿠키가 무엇인지, 세션은 또 무엇인지 알 필요가 있어보인다. 웹에서는 HTTP방식을 통해 서로 소통하고 데이터를 주..
4주간의 기업 인턴쉽을 통해 배우고 얻게 된 내용들을 스프린트 별로 나누어 정리해보았다. 그리고 해당 기업에서 사용하는 언어와 스킬들이 선택된 이유에 대해 언어의 특징들을 살펴보며 생각해보았다. Sprint1 : TypeScript & PostgreSQL 👉 TypeScript TypeScript는 2012년에 발표된 오픈 소스 프로그래밍 언어로, 대규모 JavaScript 애플리케이션 개발을 목적으로 Microsoft에 의해 개발 TypeScript는 웹브라우저에서 바로 해석될 수 없고 JavaScript로 변환되어야 웹 브라우저가 해석할 수 있다 → TS를 transpiler라고 부르고 이러한 언어를 Meta Language라고 부른다 장점 정적 타입을 지원 → 컴파일 단계에서 오류를 포착할 수 있다..