본문 바로가기

Node.js

(3)
res.json과 res.send 그리고 Etag 1. 조금이라도 더 효율적인 Express를 위하여! 웹개발 공부를 하면서 느끼는 것은, 사실상 경제학의 뿌리가 아닐까 싶기도 하다 한정된 자원을 어떻게 효율적으로 배분할 것인가? 라는 경제학의 근본 명제가 거의 비슷하게 적용된다. '한정된 리소스를 어떻게 효율적으로 사용할 것인가?' 그런 의미에서 res.send와 res.json을 알아보려 한다. 사실 거의 JSON으로 정보를 주고받기 때문에 거의 무지성 수준으로 res.json을 사용하지만, 왜 res.send 대신 사용하는지는 생각해볼 시간이 없었던것 같다. 다음 코드는 res.send의 소스코드이다 깃헙에 올라온 소스코드인데, switch문으로 불리언,넘버,오브젝트 검사를 하면서 마지막이 this.json으로 빠지는 부분이 있다. res.json..
Semantic Versioning 알아보기 게이머들은 패치에 울고 웃는다 특히 롤이나, 히오스(ㅠㅠ)같은게임이 으레 그렇다. 이 패치 하나에 캐릭터들 인기가 좌우된다. 해당 게임인 롤 패치노트에선 보통 버그 수정이나 캐릭터들의 능력치 향상 등이 이루어졌다 (간단한 것들은 13.16 -> 13.17 등으로 라벨링 하는듯 하다) 뭔가 새로운 게임모드가 추가되면 14로 넘어가거나, '시즌'이라는걸 도입하기도 한다. 게임도 소프트웨어의 일종이고, 이러한 패치는 보통 위의 그림처럼 xx.xx등으로 나타내는 경우가 많다. 본인의 경우에는 근 20년전 포트리스, 바람의나라 등부터 계속 봐왔던 패치인데 정작 이 숫자들이 무엇을 의미하는지는 최근에 알게 되었다. 특히 Node에서도 이 버전 관리가 매~우 중요하다 라이브러리 안쓰는 사람 없을거고, 해당 라이브러리..
Node.js의 구성 - libuv의 존재 (Udemy node advanced concept 강의내용 + 추가로 공부한 내용들 정리) 노드JS의 정의부터 짚고 넘어가야될 것이, 노드 JS는 프레임워크나 프로그래밍 언어가 아니라, 자바스크립트 런타임 환경이라는 것이다 (첫 입문할때 다들 무슨 서버 이름같은건줄 안다) 그 베이스에는 V8엔진이 있고, 또 중요한것은 libuv의 존재인데, 이건 C++로 작성된 코드이기에 이걸 뜯...어보기엔 너무나 거대하다. 노드JS 표준 라이브러리에인 crypto에는 'pbkdf2' 라는 함수가 있다. crypto는 hash 라이브러리로, 이 함수는 password와 salt 등을 받아 암호화를 해주는 핵심 함수이다. 깃허브에 올라온 코드를 살펴보면, 1. process.binding() 을 통하여 자바스크립트로 ..