nodejs7 [Node.js] Node.js와 브라우저의 차이 Node.js와 브라우저의 차이점이라... 서로 확연하게 다른 개념이라 이런 걸 굳이 알아야 하나 싶은 질문이지만 놀랍게도 공식문서에서 해당 개념을 설명해 놓았다! https://nodejs.dev/learn/differences-between-nodejs-and-the-browser Differences between Node.js and the Browser How writing JavaScript application in Node.js differs from programming for the Web inside the browser nodejs.dev 시간이 없으신 분들을 위해 번역해 옮겨 본다. Differences between Node.js and the Browser 브라우저와 Node... 2022. 3. 23. [NodeJS] NodeJs는 싱글스레드일까? nodejs는 과연 싱글 스레드일까? 구글링을 하면 다소 모호한 답변들이 많이 올라와 있다. 싱글 스레드이지만 멀티스레드와 같이 동작한다... 뭐야 이게... 내가 산 주식 가격이 오를 수도 있지만 떨어질 수도 있다는 말이랑 똑같잖아... 오늘은 왜 이런 기이한 말이 나왔는지 알아보자. nodeJS 동작 원리 nodej의 v8엔진은 자바스크립트를 기계어로 번역하는 일을 하는데, 웹에서와 마찬가지로 스택에 이벤트를 쌓고 상단의 이벤트를 우선 처리해 반환하는 방식으로 작동한다. 우리가 싱글 스레드 언어라고 부르는 이유다. 하지만 한 번에 처리하기 어려운 작업이나 비동기 처리의 경우 v8엔진은 이벤트를 잠시 큐에 옮겨놓고 해당 요청이 처리되면 이벤트 루프가 다시 스택에 옮겨놓는 방식으로 동작하는데, 웹의 경우.. 2022. 3. 14. [NodeJS] 런타임이란 무엇일까? nodeJS란 무엇인가요?라고 물으면 항상 따라 나오는 답변이 있다. nodejs === javascript runtime environment 음... 그렇다면 런타임이란 무엇일까? 구글에는 아래와 같이 나와있다. What Does Runtime Environment (RTE) Mean? The runtime environment is the environment in which a program or application is executed. It's the hardware and software infrastructure that supports the running of a particular codebase in real time. 런타임 환경이란 무엇인가요? 런타임 환경이란 프로그램이나 어플.. 2022. 3. 14. [Socket.io] socket.io 룸 생성과 메세지 전달 프로세스 오늘은 socket.io의 룸 생성과 메시지 전달 프로세스에 대해 알아보자. 무지 성으로 socket.io를 이용해 메시지 기능을 넣고 보니... 정말 오류가 난리도 아니다. 일단은 제일 난감한 오류는 한명이 메시지를 보내면 메시지와 상관없는 모오오든 유저들이 메시지를 받아버리는 기이한 현상이 있었다. 왜 그럴까? 원인은 바로 socket.io의 braodcast 기능 때문이었다. socket.io은 아래처럼 특정한 대상을 지칭하지 않으면 broadcast로 메세지를 전달한다. 용어에서 짐작할 수 있듯 소켓에 연결된 모든 유저에게 방송을 해버리는 것이다. socket.emit("send-message", {message}) 그래서 특정사람에게만 메시지를 보내고 싶다면 그 사람의 socket id를 추가하.. 2022. 3. 11. [JS] 이메일 인증 코드 생성하기 이메일 인증이나 별도의 인증코드를 만들어 보내줘야 할 때 그냥 번호만 띡 하고 만들어서 보내면 뭔가 보안상 안 좋을 것 같기도 하고 제일 큰 문제는 멋있지가 않다... 그래서 이번에는 랜덤으로 코드를 생성해주는 crypto.randomBytes를 사용해 보았다. crypto.randomBytes( size, callback ) 사용방법과 설명은 GeeksforGeeks에서 자세히 잘 나와있다. // Node.js program to demonstrate the // crypto.randomBytes() method // Including crypto module const crypto = require('crypto'); // Calling randomBytes method with callback cr.. 2022. 2. 13. [NodeJs] nodeJS를 이용해 이메일 보내기 오늘은 nodeJS를 이용해 이메일을 보내는 방법을 알아보자. 사실 mailchimp와 같은 Third-party API를 활용하면 간단하게 메일을 작성해서 메일을 주고받을 수 있지만, Third-party API를 이용하면 해당 API를 또 한 번 학습해야 하는 데다 지원하는 기능 이외에 기능을 추가하기가 어려운 단점이 있다. 따라서 오늘은 SMTP 프로토콜을 이용한 이메일 전송방법을 알아보려한다. NodeJS에는 SMTP 프로토콜 통신을 위한 준비가 모두 되어있다. 일단은 아래 모듈을 다운받아 주자 npm install nodemailer createTransport() 메서드는 메일을 보내기 전 환경을 셋업 하는 메서드다. 필자는 naver를 이용했기 때문에 아래와 같이 설정했다. const nod.. 2022. 1. 30. [nodeJs] Yahoo Finance에서 주식 데이터 끌어오기 국내 커뮤니티를 돌아다니다 보면 주식 데이터를 활용한 프로그래밍에 대한 글은 많지만 막상 그 안을 들여다보면 거의 크롤링을 이용한 데이터 끌어오는 방식에 초점이 맞춰져 있다. 사실 그럴 수 밖에 없는 것이, 국내에 주식 데이터 api를 제공하는 기업이 사실상 전무하다 보니 이런 현상이 일어나는 듯하다. 인공지능과 빅데이터를 외치는 사람은 많지만 정작 프로그래밍에 필요한 데이터를 제공하는 곳은 없는 대한민국... 이전에는 한국거래소에서 실시간 정보를 api를 통해 제공한 듯 하지만 지금은 그마저도 서비스를 종료해 데이터를 받아올 수 없게 되어 버렸다. 그래서 방법이 없을까... 고민을 하던 중 Yahoo Finance에서 주식 데이터를 api로 받아 올 수 있음을 발견했다. 1. RapidApi 가입 ht.. 2022. 1. 29. 이전 1 다음