본문 바로가기

Back-End/NodeJS

(6)
노드 프로젝트를 깔끔하게 작성하기 기본적인 자바스크립트 깔끔한 코드 작성https://github.com/qkraudghgh/clean-code-javascript-ko변수 이름 짓기 : 깔끔하고 의미 내포함수 한가지 행동알수있는 이름중복 제거매게변수로 플래그 사용 금지조건문을 캡슐화하기명령형 -> 함수형프로그래밍부정 조건문 사용 금지조건문 작성을 피하라객체 & 자료구조클래스단일 책임 원칙 (SRP)개방/폐쇄 원칙 ex : 면적 계산하는 놈 / 원 / 사각형 )인터페이스 분리 원칙의존성 역전 원칙메소드 체이닝을 상요하세여상속보단 조합을 사용하세요테스트동시성Callback => async,await에러 처리단순히 출력만 하지 마세요포맷팅회사에 맞추세요주석주석이 많다는건 코드가 더럽다는 것코드 위치 설명 X코드 기록 남기지 마세요Node C..
3. 노드 기능 알아보기 util 모듈 ( promisify, depricated )// util 모듈const util = require('util');const crypto = require('crypto'); // deprecated method임을 알려 줄 때 사용const dont_use_me = util.deprecate((x,y)=>{ console.log(x+y);},'이 함수는 이제 안 쓸거에요~'); dont_use_me(1,2); // DeprecationWarning이 출력됨 // callback -> promiseconst randomBytesPromise = util.promisify(crypto.randomBytes);const pbkdf2Promise = util.promisify(crypto.pbk..
1. Node.js 개요 새로운 스타트업에 이직을 하게 되었는데 이 곳은 Spring 대신 Node.js를 사용하고 있어 공부를 시작하게 되었습니다. Node.js에 대한 이해를 위하여 Node.js 디자인패턴 ( Node.js design pattern ) 책 전체를 단원별로 리뷰해보려 합니다. Node.js 플랫폼에 관하여몇 가지 원칙과 디자인 패턴들을 보면, 그 자체로 Node.js 플랫폼과 그 생태계의 개발 기술을 알 수 있다고 합니다. 단원별로 차근차근 공부를 하게 되면 진짜 Node.js의 철학을 이해할 수 있겠죠. Node.js 철학경량 코어코어 기능을 최소한으로 하고 나머지를 사용자의 몫으로 넘겼습니다. 이 덕에 유지보수 측면에서 편리해지고, 전체 생태계의 발전에 긍정적인 문화를 가져올 수 있었습니다. 경량 모듈이..
ES2015 이후의 비동기 제어 흐름 패턴( Asynchronous Control Flow pattern ) -node.js ES2015 이후의 비동기 제어 흐름 패턴 아직 자바스크립트를 사용해보지 않아, 콜백지옥이 얼마나 심각한지는 모른다. 뭐 무튼 불편하니까 계속 대안이 나오고 있지 않을까? 이번 포스팅에서 유명한 대안책인 Promises, Generators / async, await ( ECAMA 2017 ) 에 대해 알아볼 것이다. PromisesPromise는 비동기 작업의 결과를 제어할 수 있는 object를 반환해주는 함수이다. ( 말이 이해하기 힘들다.... 그냥 비동기 작업의 결과가 성공/실패일 때 제어할 수 있도록 제공해주는 함수이다.) promise.then([onFulfilled], [onRejected]) 기존의 콜백 지옥asyncOperation(arg, (err, result) => { if(err..
1. Asynchronous Event-Driven 프로그래밍에 관하여 - Mastering Node.js Asynchronous Event driven 프로그래밍에 관하여Node는 event-driven, asynchronous I/O를 이용하여 프로세스가 blocking 되는걸 방지해준다. 이번 포스팅에서는 Node를 이용하여 어떻게 이벤트 드리븐 프로그래밍을 구현하는지 알아볼 것이다. 1. 노드가 timers, callbacks, I/O events를 어떻게 다루는지 2. Promises, Generator, asyns/await를 이용하여 어떻게 동시성을 제어하는지 이 포스팅의 예제를 살펴보면, Node가 왜 성공했는지 살펴볼 수 있다고 한다...(?) Node`s Unique design Event loopEvent loop는 Javascript 코드가 돌고 있는 thread에서 동작한다. 이벤트를 ..
0.노드란 무엇인가? - Mastering Node.js Events for everything 운영체제에게 파일을 열어달라고 요청하면, 해당 작업은 즉각적으로 실행될 것이다. 하지만, 네트워크, 인터넷을 통한 작업은 이 전의 작업처럼 빠르거나 신뢰할 수 없다. 개발자들은 소프트웨어가 느려지지 않도록 이러한 작업들을 잘 처리해야 한다. 보통 C, Java 개발자들은 thread를 통해 해결한다. pthread_t my_thread; int x = 0; /* Make a thread and have it run my_function(&x) */ pthread_create(&my_thread, NULL, my_function, &x);Click me Node는 Javascript에서 thread 개념이 필요없다고 우리에게 보여주고 있다. Thread에 관해서 고려..