url
인터넷 주소를 쉽게 조작하도록 도와주는 모듈
- url 처리에는 크게 두 가지 방식이 있다.
* 노드 버전 7에서 추가된 WHATWG 방식의 url
가운데를 기준으로 위쪽은 기존 노드 방식, 아래쪽은 WHATWG 구분 방식


- url 모듈안에 URL 생성자가 있다. 이 생성자에 주소를 넣어 객체로 만들면 주소가 부분별로 정리됨. 이 방식은 WHATWG 방식이다.
- WHATWG에만 있는 username, password, origin, searchParams 속성이 존재

- WHATWG와 노드 url은 취향에 따라 사용하면 되지만, 노드의 url형식을 꼭 사용해야 하는 경우가 있다.
- 바로, 주소가 host 부분없이 pathname 부분만 오는 경우(/book/bookList.apsx), WHATWG 방식은 이 주소를 처리할 수 없다.
WHATWG의 searchParams
- WHATWG 방식의 search 부분은 보통 주소를 통해 데이터를 전달할 때 사용(GET 방식)

searchParams의 메소드들

querystring
WHATWG 방식의 url 대신 기존 노드의 url을 사용할 때 search 부분을 사용하게 쉽게 객체로 만드는 모듈


crypto
다양한 방식의 암호화를 도와주는 모듈
단방향 암호화 ( 해시 기법 )



-
현재는 주로 pbkdf2나 bcrypt, scrypt라는 알고리즘으로 비밀번호를 암호화함
-
이중에서 pbkdf2는 노드에서 지원을 한다.
-
pbkdf2는 기존 문자열에 salt라고 불리는 문자열을 붙인 후 해시 알고리즘을 반복해서 적용하는 것

-
64바이트 길이의 랜덤문자열을 만들어 salt로 넣고, 10만번 반복해서 해싱.
-
많이 걸린다고 생각할 수 있지만, 약 1초밖에 안걸림. ( 컴퓨터가 너무 좋아져서 )
-
하지만, pbkdf2는 bcrypt나 scrypt보다 취약함
양방향 암호화



- crypto 모듈은 양방향 비대칭형 암호화, HMAC 등의 다양한 암호화를 제공하고 있음
util
각종 편의 기능을 모아둔 모듈. 계속해서 API가 추가되고 있고, 가끔 deprecated되어 사라지는 경우도 있음.

