본문 바로가기

Javascript/Node.js

Node.js RSA Encryption, Decryption 1. Private Key & Public Key 생성 // generate rsa private.key openssl genrsa -out private.key 2048 // generate rsa public.key openssl rsa -in private.key -out public.key -pubout 2. Node.js crypto를 사용한 RSA Encryption, Decryption const crypto = require('crypto'); const rsaPrivKey = `-----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAxmtuWLe0poapjNrP7wyhsPgGCikuQRU7nI+0sj9QBexrt2Mt kVwhXdXevHXcR9sA90Bkrs..
Node.js AES Encryption, Decryption const crypto = require('crypto'); const algorithm = 'aes-128-cbc'; const secretKey = 'abcdefghijklmnop'; const iv = '00000000000000000000000000000000'; const encrypt = (message) => { const cipher = crypto.createCipheriv(algorithm, Buffer.from(secretKey), Buffer.from(iv, 'hex')); const encrypted = cipher.update(message); return Buffer.concat([encrypted, cipher.final()]).toString('hex'); }; const ..
query 결과 csv로 저장하기 Node.js 서버 개발을 하던중 query 결과를 csv로 저장해줘야 하는 일이 있었는데 한글이 포함되어 있다 보니 파일내 한글들이 깨지는 이슈가 있었다. 단순히 query를 날려서 결과를 받아오면 결과물인 json 데이터를 parsing 하여 파일에 ','로 구분자를 두고 write하는 방식으로 구현하였기 때문에 query 결과에서의 한글이 깨지지 않았다면 특별히 문제될 것이 없다고 생각했었다. 실제로 query 결과에서는 한글이 전혀 깨지지 않고 있었다. 하지만 재밌게도 Notepad로 파일을 열면 한글이 정상적으로 보이는데, AcroEdit나 Excel로 파일을 열면 한글이 깨지는 것이었다. 지금이야 재밌지만 개발할 때는 재미없었다. 심지어 Notepad로 열었던 파일을 다시 저장하기만 누르고 다..
Node.js로 카카오 플러스친구 스마트 채팅 개발하기 (2) 카카오 플러스친구 서비스를 위한 웹 프로그램을 개발해보도록 하겠습니다. 최근에는 Language마다 웹 프로그래밍을 지원하는 프레임워크들이 존재하고 특히 Javascript를 서버 프로그램 개발영역으로 끌어들인 Node.js는 기존의 프론트엔드 개발자들이나 Javascript 개발자들을 백엔드 영역까지 진출시키는데 크게 기여했습니다. 개인적으로 플러스친구는 복잡한 기능을 수행하기보다 간단한 질의에 대한 응답형태로 구현되기 때문에 최대한 가볍고 간단하게 개발하는게 맞다고 생각했고, Node.js를 이용하여 개발하였습니다. Node.js를 처음 사용해보시는 분들을 위하여 Node.js 설치부터 개발까지 한번 같이 해보도록 하겠습니다.우선 Node.js를 설치합니다. Node.js를 설치하는 방법은 설치파일을..
Node.js로 카카오 플러스친구 스마트 채팅 개발하기 (1) 카카오 플러스친구는 카카오톡에서 개인이 아닌 단체 등에서 정보제공이나 상담을 목적으로 생성한 계정을 의미합니다. 비즈니스적인 측면에서 사용될 가능성이 높지만 꼭 그렇게 하지 않더라도 개인적으로 정보제공을 위해서 생성해도 충분히 역할을 할 수 있습니다. 개인적으로 텔레그램의 봇 API를 사용해본 사람으로서 카카오 플러스친구 기능이 상대적으로 빈약한 것이 사실이라 안타깝긴 하지만 국내 카카오톡 사용자가 텔레그램 사용자에 비하여 압도적으로 많기 때문에 카카오 플러스친구 스마트 채팅 기능으로 서비스를 개발할 수밖에 없었습니다. 때때로 개발을 할때 제가 사용하고 싶은 플랫폼을 사용하기보다 사용자들의 편의성을 위해 플랫폼을 선택하는 경우가 많은데 이 경우가 그런 경우가 아닐까 생각됩니다. 어쨌든 제가 만들고자 했던..