목록프로그래밍/JavaScript, TypeScript (3)
만재송
V8 이란? V8은 독일 구글 개발 센터에서 만들어진 JavaScript 엔진이다. 오픈 소스이고 C++로 작성되었다. 클라이언트쪽(Google Chrome)과 서버쪽(node.js) JavaScript 어플리케이션 모두에 쓰인다. V8은 웹 브라우저 안에서 실행되는 JavaScript의 성능을 높이기 위해 처음 고안되었다. 속도를 높이기 위해서 V8은 인터프리터 (프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경)를 이용하는 대신 JavaScript 코드를 좀더 효율적인 기계어 코드로 번역한다. V8은 SpiderMonkey나 Rhino(Mozilla)같은 많은 요즘의 JavaScript 엔진처럼 JIT(Just-In-Time) 컴파일러를 적용하여 JavaScript 코드를 실행할..
코드 보안 자바스크립트와 타입스크립트를 공부하면서 가장큰 불안요소가 내가 만든 코드에 접근하여 코드를 조작하는 부분이었다. 크롬이나 익스플로러 등, 웹으로 동작하는 모든것들은 개발자 창을 통해 코드를 볼 수 있고, 콘솔창에서 어떤 함수나 변수에 접근도 가능하다. 물론 해킹을 방지하기 위해서 자바스크립트 난독화 라던지 암호화 등 많은 보안 기술이 나왔지만, 여전히 허점은 존재하는 것 같다. 이번 내용은 필자가 자바스크립트와 타입스크립트를 공부하면서 이 기능을 잘 사용하면 코드 보안에 도움이 될 것 같은 기능들을 설명하겠다. 클로저 (closure) 클로저는 이미 생명 주기가 끝난 외부 함수의 변수를 참조하는 방법이다. 외부 함수가 종료 되더라도 내부함수가 실행되는 상태면 내부함수에서 참조하는 외부함수는 닫..
콜백 지옥 이라니.... 간단한(?) 커피 주문 시스템 코드가 있다고 하자. 이 코드는 굉장히 비 효율적 이라서, 핸드폰 번호를 알아야 아이디를 알 수 있고, 아이디를 알아야 이메일을 알 수 있고, 이메일을 알아야 이름을 알 수 있고, 이름을 알아야만 주문을 할 수 있다. 작성하면 아래와 같다.function getId(phoneNumber) { /* … */ } function getEmail(id) { /* … */ } function getName(email) { /* … */ } function order(name, menu) { /* … */ } function orderCoffee(phoneNumber) { const id = getId(phoneNumber); const email = get..