제목 : 비밀번호는 왜 해싱할까? - With Node.js웹 어플리케이션 서버(BE) 를 만들 때, 단순한 엔드포인트 제작에 대한 것을 배우고 나서 회원가입 처리를 배운다.데이터베이스에 Plain Text 로 비밀번호를 저장한다면, 보안상 굉장히 위험하므로,Encryption 과정을 거친 후, 데이터베이스에 저장한다.이 때, Encryption 과정은 양방향이 아닌, 단방향 해싱이라고 배운다.따라서, 관리자조차 원래의 비밀번호를 알지 못하기 때문에, 유저는 직접 비밀번호를 바꾸어야 한다.위의 과정을 듣고 나서 대부분의 사이트들이 왜 비밀번호를 찾을 때, 원래의 비밀번호를 알려주지 않고새로운 비밀번호로 지정하게 하는지 이해되었다.그러나, 위의 과정만 필요하다면 이 포스팅은 시작하지는 않았을 것이다.푸는 ..
nodejs
제목 : 웹 어셈블리와 Node.jsNode.js 에서 싱글스레드 기반으로 운용되는 Node.js 환경을 멀티스레딩 환경으로 만들어,CPU 집약 비즈니스를 나눌 수 있는 방식을 탐색 했다.이후, 더 최적화 할 수 있는 방식을 연구하며Web Assembly 라는 것을 알게 되었다. 이 글은 밑의 블로그 포스팅과 이어진다.https://codecreature.tistory.com/201갑자기 왜 어셈블리?Node.js 는 현재 웹 서버와 웹 어플리케이션 서버에서 주요하게 사용되고 있다.하지만, 아무리 CPU 집약 비즈니스 코드를 나누어 스레드로 새로 생성하더라도,새로운 스레드 또한 JavaScript 코드를 해석하기 위해 Node.js 엔진을 사용한다.물론, V8 엔진도 훌륭하지만, 기계어가 가깝게 이미 파..
제목 : Node.js 엔진에서 스레드 추가하기 (Worker)세상에는 정말 빠른 실행 시간과 계산을 보장하는 언어들이 많다.벌써 떠오르기를, C, C++JavaPythonRustSwiftGoKotlin등등..Node.js 기반의 엔진보다 CPU 실행 성능이 뛰어나며, Memory 절약도 뛰어난 언어일 것이다. (Python 은 약간 더 뛰어날듯?)JavaScript 는 위의 언어들 중 몇 개들 보다 더 일찍 만들어 졌지만, 웹 페이지에서의 Dynamic 한 인터랙션을 위해 만들어졌다.기존의 HTML 문서는 DOM (Document Object Model) 로 파싱되어,JavaScript 를 통해 엘리먼트들의 위치나 속성을 동적으로 변경할 수 있게 되었다.웹을 위한 언어에서 머무르던 JavaScript ..
제목 : WebAssembly 와 Node.jsWebAssembly 는 높은 성능을 가진 어셈블리와 비슷한 언어이며,C, C++, Rust, AssemblyScript 를 포함하는 다양한 언어들로부터 컴파일 될 수 있습니다.현재, 이는 크롬, 파이어폭스, 사파리, 엣지, 그리고 Node.js 에서 지원되고 있습니다. 실제 적용된 WebAssembly 와 Node.js 환경은 여기서 볼 수 있습니다.https://codecreature.tistory.com/202 WebAssembly 와 Node.js제목 : 웹 어셈블리와 Node.jsNode.js 에서 싱글스레드 기반으로 운용되는 Node.js 환경을 멀티스레딩 환경으로 만들어,CPU 집약 비즈니스를 나눌 수 있는 방식을 탐색 했다.이후, 더 최적화 할..