본문 바로가기

IT_Developers/Node.js41

Node.js - 노드JS 홈페이지 사용법 / 이전 버전 다운로드 / API문서 / nodejs.org Node 공식 사이트 활용법 안녕하세요. 고코더 입니다. Nodejs.org 라는 도메인으로 등록된 이 홈페이지는 nodejs 재단에서 운영하는 사이트 입니다. 공식적으로 설치 파일과 다양한 정보를 제공하는 사이트 입니다. 홈페이지 접속 /다국어 ● 1. 해당 URL에 접속하면 자동으로 /en 으로 영어 홈페이지를 기본으로 보여줍니다. https://nodejs.org/ ● 2. 이 홈페이지는 다국어를 지원합니다. URL뒤에 URI에 KO를 붙혀서 접속하면 한글로된 페이지에 접속이 가능합니다. https://nodejs.org/ko ● 3. 그 밖에도 다른 나라들도 두 글자로 표현된 ISO 639-1 codes 기준으로 접속이 가능합니다. 일본 : nodejs.org/ja 독일 : nodejs.org/d.. 2019. 11. 27.
V8 엔진 - 구글이 만든 자바스크립트 엔진 V8 JavaScript engine 안녕하세요. 고코더 입니다. 2008년 구글은 독일 개발 센터에서 크롬에 성능을 높히기 위해 C++로 개발한 v8이라는 오픈소스 엔진를 발표합니다. 자바스크립트로 작성된 코드를 JIT(Just-In-Time) 컴파일러를 통해 기계어로 변환해주는 역할을 합니다. 자바스크립트을 엔진으로 하는 프로젝트는 이전에도 많았습니다. 1. Chakra - MS의 익스플로러와 엣지에 사용 위해 개발 - https://github.com/Microsoft/ChakraCore 2. JavaScriptCore - 애플 사파리 브라우저에 사용하기 위해 개발 - https://svn.webkit.org/repository/webkit/ 3. Rhino - 모질라에서 개발한 - https://.. 2019. 11. 27.
Node.js - 비주얼 스튜디오 코드(VSCode)에서 노드 디버깅하기 VS Code에서 debugging 안녕하세요. 고코더 입니다. 이번 시간에는 노드를 실행하고 이 후에 디버깅 하는 방법을 알아봅니다. 최근에 나오는 IDE 개발 프로그램들은 기본적으로 디버깅 환경이 구축 되어 있습니다. MS가 만든 비주얼 스튜디오 디버깅 기능은 강력합니다. 이 기능의 차등을 두어 가격을 달리할 정도 인데요. 무료 프로그램 vscode도 필수적이고 꼭 필요한 디버깅 기능을 마련해두었습니다. 디버깅 방법 개발 프로그램에서 디버깅은 필수적이면서 가장 중요한 역할을 합니다. 이 역시도 VSCode에서는 쉽고 간편하게 사용이 가능합니다. ● 1. VS Code에서는 디버깅 기능을 제공합니다. 라인 왼쪽에 빨간 점을 찍어주면 해당 부분에서 프로그램 실행이 중단되어서 디버깅이 가능합니다. ● 2... 2019. 11. 27.
Node.js - 비주얼 스튜디오 코드(VSCode)로 노드 실행하기 노드JS를 비주얼 스튜디오 코드로 실행하기 안녕하세요. 고코더 입니다. 현재 지금은 개발 프로그램 홍수 속에 살아가고 있습니다. 많은 선택지 안에서 노드를 실습하는데 있어서 가장 좋은 프로그램이 무엇일까 고민을 합니다. 개인이라면 유료 프로그램을 쓰기에는 다소 무리가 있습니다. (크랙 버전은 논하지 않겠습니다.) 그래서 노드JS 학습을 위한 최고의 무료 프로그램이 무엇일지 고민하다가 비주얼 스튜디오 코드를 선택하게 되었습니다. 해당 글에서 장점을 정리하였습니다. -> VSCode - 비주얼 스튜디오 코드란? 설치 방법은 아래 글에서 확인 하시길 바랍니다. -> 비주얼 스튜디오 2019 - 쉬운 설치 및 다운로드 / 첨부파일 프로젝트 파일 열기 VS Code에서는 폴더 열기는 프로젝트로 현재 개발하고 있는.. 2019. 11. 27.
Node.js - 동기(synchronous), 비동기(ansynchronous) 예제로 배워보자 노드JS에서 비동기로 소스 파일을 변경해보자 안녕하세요. 고코더 입니다. Node.js의 가장 큰 특징중 하나는 비동기로 처리가 가능하다는 것입니다. 이전에도 설명을 자세히 다루었지만 다시 정의하자면 하나의 요청이 처리가 완료 되기 전에 다음 요청으로 진행이 가능합니다. Node의 최대 성능을 처리해야 한다면 동기를 사용해야 합니다. 하지만 개발자의 의도에 따라 동기 처리와 비동기 처리가 가능합니다. 동기(synchronous) 예제 ● 1. 동기 방식으로 순차적으로 실행 가능한 Node 소스를 개발하였습니다. 파일을 읽어 올수 있도록 FileSystem(fs) 모듈을 이용해 파일을 불러오는 방식입니다. callback을 지정하지 않아 동기식으로 차례대로 실행을 합니다. 1234567var fs = re.. 2019. 11. 25.
Deno - node를 만들었던 라이언달의 새로운 언어 노드가 아쉬워서 새로 프로그램을 만들었어요. 흔한 천재의 취미 안녕하세요. 고코더 입니다. ● 1.수학자 출신 천재 프로그래머 라이언 달은 노드JS 리더 자리를 넘기고 조이엔트 마저 떠났습니다. 그가 창시한 노드JS에 대한 아쉬움이 있었던거 같습니다. JSConf EU 2018에서 Node.js에 후회했던 10가지(10 Things I Regret About Node.js)를 발표하면서 새로운 서버사이드 언이인 Deno를 발표하였습니다. ● 2.Node.js를 창시한 천재 개발자 라이언 달이 생각한 아쉬운 점은 이렇습니다. 1. Promises를 고집하지 못한 것 2. 보안 문제 3. GN으로 빌드 시스템을 업데이트 하지 못한 것 4. 빌드시스템에 C++대신 FFI를 제공하지 못한 것 5. Package.. 2019. 11. 22.
Node.js - 싱글 스레드(Single thread), 비동기(Asynchronous) 이란? 노드JS가 운영되는 방식 안녕하세요. 고코더 입니다. Node.js의 가장 큰 특징이라고 하면 싱글 쓰레드에 비동기 처리 방식입니다. 사용자의 요청은 한 곳에서 받지만 작업은 실질적으로 멀티쓰레드로 운영하여 결과를 구현합니다. 예제로 이 방식을 표현해보겠습니다. ● 1. 싱글 스레드, 비동기 예제 " 따뜻한 오후 서점 독서중인 고코더는 배가 고파서 푸드코트로 이동합니다. 주문 방식은 먼저 한식,중식,일식,양식등 다양한 입점사들의 요리를 보고 선택을 합니다. 그리고 계산대 앞에서 줄을 섭니다. 앞 손님은 돈까스를 주문합니다. 저는 요리 시간이 오래 걸리는 스테이크를 주문했습니다. 제 뒤에 기다리던 분은 재 빠르게 라면 하나를 주문합니다. 카운터 점원이 계산을 하면서 호출벨을 나눠주고 요리에 맞는 입점사 식.. 2019. 11. 22.
Node.js - IO.js의 반란 노드의 분기된 프로젝트 그리고 재결합 Node.JS와 IO.js에 분열과 결합 그리고 노드js 재단 안녕하세요. 고코더 입니다. ● 1. 개발자의 의견과 회사와의 마찰로 분기되는 프로젝트의 대표는 MaraiDB입니다. 몬티 와이드니어스는 오라클이 MySQL을 상업적으로 대하는 태도에 반하여 회사를 나와 그의 동료들과 함께 마리아디비를 만들게 됩니다. mysql을 만들었던 개발자니 똑같은 분기된 포크 프로젝트를 수행할 수 있는 능력이 있고 이 후로 두 데이터베이스는 같지만 다른 길을 걸어 가게 됩니다. ● 2. 10여년이란 짧은 역사를 가진 노드도 이런 역사를 가지고 있습니다. 마리아 데이터베이스처럼 fork된 프로젝트는 io.js입니다. 3세대 리더를 맡게된 TJ 폰테인을 신뢰하지 못한 노드 주축 개발자들은 노드js와 거의 같은 기능을 수행.. 2019. 11. 22.
Node.js - express 게시판 만들기 / 글 삭제 / delete 게시판 만들기 delete 안녕하세요. 고코더 입니다. 이번 시간에는 상세보기 페이지에서 글을 삭제할때에 해당 비밀번호가 맞다면 해당 글을 수정하는 페이지를 만들어 보겠습니다. ● 1. '/delete' board.js 글 삭제 코딩 추가 ● 1-1. board.js에 코딩을 추가합니다. ● 1-2. 상세보기를 표현할 라우터를 추가합니다. router.post('/delete',function(req,res,next) { var idx = req.body.idx; var passwd = req.body.passwd; var datas = [idx,passwd]; var sql = "delete from board where idx=? and passwd=?"; conn.query(sql,datas, fu.. 2019. 8. 3.