분류 전체보기 (28) 썸네일형 리스트형 DNS 모듈 DNS 모듈이란? DNS를 다룰 때 사용하는 모듈 도메일 통해 IP나 DNS 레코드를 얻고자 할 때 사용 A(ipv4주소) AAAA(ipv6주소) NS(네임서버) SOA(도메인정보) CNAME(별칭, 주로 www가 붙는 주소는 별칭인 경우가 많음) MX(메일서버) // mjs방식 // import dns from 'dns/promises' // // // const ip = await dns.lookup('gilbut.co.kr'); // console.log('ip:', ip); // // const a = await dns.resolve('gilbut.co.kr', 'A'); // console.log('A:', a); // // const mx = await dns.resolve('gilbut.co.. url 모듈 url 모듈이란? 인터넷 주소를 쉽게 조작하도록 도와주는 모듈 url 처리에 크게 두 가지 방식이 있음(기존 노드 방식 vs WHATWG 방식) 요즘은 WHATWG 방식만 사용함 WHATWG 방식 주소 체계는 다음과 같음 기본 URL const myURL = new URL('http://188.168.1.202:9090/'); console.log('new URL():', myURL); searchPararms WHATWG 방식에서 쿼리스트링(search) 부분 처리를 도와주는 객체 const myUrl = new URL('http://www.amazon.co.kr/?page3&limit=10&category=nodejs&category=javascript'); console.log('searchPara.. 노드 내장 모듈(os, path) os 운영체제의 정보를 담고 있음 모듈은 require로 가져옴(내장 모듈이라 경로 대신 이름만 적어줘도 됨) os.arch(): process.arch와 동일합니다. os.platform(): process.platform과 동일합니다. os.type(): 운영체제의 종류를 보여줍니다. os.uptime(): 운영체제 부팅 이후 흐른 시간(초)을 보여줍니다. process.uptime()은 노드의 실행 시간이었습니다. os.hostname(): 컴퓨터의 이름을 보여줍니다. os.release(): 운영체제의 버전을 보여줍니다. os.homedir(): 홈 디렉터리 경로를 보여줍니다. os.tmpdir(): 임시 파일 저장 경로를 보여줍니다. os.cpus(): 컴퓨터의 코어 정보를 보여줍니다. os.f.. 노드 내장 객체 process 현재 실행중인 노드 프로세스에 대한 정보를 담고 있음 process.env 시스템 환경 변수들이 들어있는 객체 비밀키(데이터베이스 비밀번호, 서드파티 앱 키 등)를 보관하는 용도로도 쓰임 환경 변수는 process.env로 접근 가능 일부 환경 변수는 노드 실행 시 영향을 미침 예시) NODE_OPTIONS(노드 실행 옵션), UV_THREADPOOL_SIZE(스레드풀 개수) max-old-space-size는 노드가 사용할 수 있는 메모리를 지정하는 옵션 process.nextTick(콜백) 이벤트 루프가 다른 콜백 함수들보다 nextTick의 콜백 함수를 우선적으로 처리함 너무 남용하면 다른 콜백 함수들 실행이 늦어짐 비슷한 경우로 promise가 있음(nextTick처럼 우선순위가 높음) 아래 예제.. 노드 내장 객체(global, console, 타이머) 1. global 노드의 전역 객체 브라우저의 window와 같은 전역 객체 전역 객체이므로 모든 파일에서 접근 가능 window.open 메서드를 그냥 open으로 호출 할 수 있는 것처럼 global도 생략가능 global.console, global.require 등 console, require 등도 global이 생략되어 있는 것 2. console 브라우저의 console 객체와 매우 유사 console.time, console.timeEnnd : 시간로깅(time과 timeEnd 사이의 시간을 로깅해줌, 즉 코드 수행시간 확인) console.error : 에러로깅 console.log : 평범한 로그 console.dir: 객체 로깅 console.trace: 호출스택 로깅(함수 안에서 쓰.. __filename, __dirname _filename, _dirname -노드에서는 파일 사이에 모듈 관계가 있는 경우가 많으므로 현재 파일의 경로나 파일명을 알아야 할 경우가 있음. -노드는 _filename, _dirname 키워드로 경로에 대한 정보를 제공 __filename: 파일명이 포함된, 현재 파일 경로 제공 __dirname: 현재 파일이 있는 경로 제공 node 명령어를 통해 filename.js 파일을 실행하니 파일명이 포함된 경로와 경로를 알려주는 것을 확인할 수 있다 다이나믹 임포트 다이나믹 임포트 CommonJS 모듈에서 사용됨 동적 불러오기, 조건부로 모듈을 불러오는 방식을 말함 dynamic.js const a = false; if(a){ require('./func'); } console.log('성공'); 여기서 a는 false기 때문에 require('./func');는 실행되지 않음. 이렇게 조건부로 모듈을 불러오는 것을 다이내믹 임포트라고함 mjs에서는 위의 방식으로는 불가능 mjs에서는 아래처럼 const a = true; if(a){ const m1 = await import('./func.mjs'); console.log(m1); const m2 = await import('./var.mjs'); console.log(m2); } mjs에서는 - import라는 .. MAP과 SET, WEAKMAP, WEAKSET Map Map은 객체와 유사한 자료구조 const m = new Map(); m.set('a','b'); // key: a , value: b로 Map속성에 추가 m.get(a) // get으로 a의 값 조회 m.size; // size로 속성의 개수 조회 m.has(a); //has로 속성 존재 여부 확인, a를 가지고 있으면 true, 없으면 false m.delete(a); //delete로 속성을 삭제 m.clear;//clear()로 전부제거 Set Set은 배열과 유사한 자료구조 배열을 완전히 대체하기 힘듬 -> 왜? 중복을 허용하지 않기 때문 따라서 기존 배열의 중복을 제거할 때도 사용 const s = new Set(); s.add(false); //add(요소)로 Set에 추가합니다 s... 이전 1 2 3 4 다음