본문 바로가기

프로그래밍/Javascript

(6)
javascript 일반 함수와 화살표 함수 javascript에서는 일반적으로 함수를 선언하는데 크게 두 가지의 방법을 갖고 있다. 첫 번째 방법이 바로 일반적으로 사용하는 function () {} 같은 방법이고 두 번째가 화살표 함수이다. 화살표 함수라는 용어 자체는 Mozilla 의 Web Docs에서 가져왔다. 화살표 함수는 선언할 때 다음과 같은 방법을 사용한다. () => {} 처음에 Javascript를 배우기 시작했을 때는, 일반적인 방법과 화살표 함수의 선언 방식은 그저 인자를 선언하는 방법만 다르다고 생각했으나 Vue.js 를 배우면서 큰 차이점을 알게 되어 블로그에 글을 남긴다.
nCTF Framework 소개 섬네일로 에이프릴 이나은을 보고 싶어서 에이프릴 이나은ㅎㅎ 2018.06.13 에 H3X0R CTF 를 진행했었는데 이 때 개발했던 CTF Framework 이다. 처음으로 nodejs 를 이용하여 개발했던 프레임워크이다. 진짜 nodejs를 맨땅에 해딩하는 식으로 배우면서 해서 어플리케이션 구조나 프로그래밍적인 구조는 굉장히 별로라고 생각하지만, 일단 동작은 잘된다ㅋㅋ github에 1일 1git 하려고 했었는데 지금 시험기간이라서 불가피하게 당분간은 못할 것 같다. 기본적으로 Express Engine 을 사용하여 개발했고, Jade Engine 으로 Rendering 작업을 했다. DB 는 MySQL을 사용했다. 함수형 프로그래밍을 구현하여 개발을 하였다. [*] url : https://githu..
callback 함수에서 전역변수로 값을 못불러옴 해당 소스가 있다. 해당 소스를 실행해보면 당연히 console.log(); 에 출력되는 값이 undefined 이다. 이유는 nodejs 가 속도 향상을 위해서 비동기 실행을 사용하기 때문이다. 비동기 실행은 함수들을 순서대로 실행하지 않고 한 함수가 실행되고 있는 중에도 뒤의 다른 함수를 실행할 수 있다는 개념이다. 따라서 globalVar에는 정상적으로 arg 라는 값이 들어가긴 하지만, console.log() 함수가 더 먼저 실행되기 때문에 globalVar를 출력하면 undefined 가 뜨는 것이다. 따라서, 우리는 이러한 현상을 해결하기 위해서 Promise 혹은 async await 라는 개념을 도입할 필요가 있다.
javascript Promise 요즘 H3X0R CTF 사이트를 구축하면서 우리 학교에 js를 잘하는 친구들에게 이것저것 물어보다가 a1paka 라는 친구가 Promise, async await 라는 것들을 소개시켜주었다. 이것들은 콜백 함수의 문제점들을 해결하기 위해서 등장하였다. 콜백함수라고 하면 자바스크립트에서 가장 중요한 개념 중 하나인 비동기식 프로그래밍을 설명하기 가장 좋은 예제가 아닐 수가 없다. 하지만, 콜백함수로 계속 프로그래밍하다간 이유를 모르는 오류들이 하나둘씩 생겨날 것이다. 콜백함수의 drawback은 바로 이것이다. 역설적이게도, 그것은 비동기식 프로그래밍을 구현한 것이라는 점이다. 비동기식 프로그래밍을 생각해보면, 순서에 구애 받지 않고 코드를 실행시키지 않는다는 것을 알 수 있다. 이 과정에서 순서가 맞지 ..
nodejs에서 XMLHttpRequest 사용하기 오늘 xhr을 연습하다가 nodejs에서 XMLHttpRequest를 사용할 수 없나 의문점을 가지게 되었습니다. 역시 제가 예상한대로 누군가 이미 만들어 놓았더군요^^ https://www.npmjs.com/package/request 여기서 npm을 이용해서 다운받고 실행시켜 보시면 됩니다.
[Javascript] 간단한 디버깅 진짜 간단한 디버깅.Debugging for C??만약 C언어에서 간단한 디버깅을 한다고 하면 대충 printf()를 꼽을 수 있겠다. 그냥 변수가 어떤 상황인지 간단하게 디버깅할 때는 printf()로도 충분할 것이다. Then,, for Javascript?만약 Javascript에서 디버깅한다고 하면?? 대표적으로 alert()함수가 있을 수 있겠다. 하지만, 반복문에서 변수의 값이 어떻게 변하는 지 확인할 때 alert()를??절대 무리이다. 엔터만 죽어라 눌러야할 수도 있겠다. 그래서 소개하는 것이 바로 console객체의 log()함수이다. 간단히 log()함수 안에 값을 집어넣는 것만으로도 변수(혹은 상수)의 값이 출력된다. ex) var commonSense = "SeokChan-Yoon ..