목차 4장 요약 기본 라우팅 - 04/server5.js 5장 요약 비동기 vs 동기 처리 (cause: 자바스크립트 싱글 스레드) 논블로킹 = 비동기 처리원리( 이벤트 루프 ) 비동기 처리 하는 방법 지난번, ch1,2,3은 각각 다른 포스팅으로 정리했지만 이번 ch4,5는 이어지는 부분이 있고, ch4 는 내용의 분량이 적은 것 같아 하나의 포스팅으로 쓰려 한다. 4장요약 : 기본 라우팅 라우팅(routing) 이란 클라이언트에서 들어오는 요청에 따라 다른 응답을 하여 해당 함수를 실행하는 것을 말함. 05/server-5.js // 라우팅 연습하기 (결과 비교 파일 : 04\results\server-5.js) const http = require("http"); const server = http..
전공
파일 관리 모듈이 필요한 이유 : 서로 다른 운영체제 간에 파일 관리가 가능 03-1 path 모듈 //1. join path.join(path1, path2, path3); //result: path1\path2\pat3 //2. diranme path.dirname(path); //result: 경로에서 파일 이름을 제외한 경로만 추출 //3. basename path.basename(path); path.basename(path,extension); //4. extname path.extname(path); //5. parse path.pare(경로); 03-2 FS 모듈 일반 모듈 사용하는 것과 사용법 같음 const fs = require("fs"); fs.함수명 동기 처리로 디렉터리 읽기 - ..
목차 02-1 자바스크립트 기초 문법 02-2 자바스크립트 비동기 처리 02-3 노드의 모듈 02-4 노드의 코어 모듈 02-1 자바스크립트 기초 문법 템플릿 리터럴 이를 사용하기 위해서는 백틱(`) 이 사용되어야 한다. let num1 = 10; let num2 = 20; // 연결 연산자 사용 console.log(num1 + "과 " + num2 + "를 더하면 " + (num1 + num2) + "입니다."); // 템플릿 리터럴 사용 console.log(`${num1}과 ${num2}를 더하면 ${num1 + num2}입니다.`); 함수 //함수선언 function add(num1, num2) { ... } //1회성 함수 const a = function(){... } //선언과 동시 실행 ..
spring boot로 백엔드 개발 공부를 하고 있는데, 아직 부족한게 많지만 node.js 로 하는 백엔드 개발은 어떨지 궁금해서 스터디를 참여했다. 책은 Doit! Node.js입문. 으로 하고, 책 서두를 읽어보니, node.js 로는 백엔드, 프론트엔드 모두 참여를 할 수 있다해서 스프링부트보다 좋은 점이 많은 것 같다(?) 진짜.. 생각이 단순하다... 1-3 node.js 실행환경 설정 1. 노드 설치 https://nodejs.org/en 2. vs code 설치 vs code는 설치가 되어있어서 그대로 사용했다. 간단하게 01폴더에 있는 hello.js 파일을 vs code 내의 terminal에서 실행해보았다. 또한 책의 관련 소스파일들을 clone해서 새 레포지토리에 만들었다. http..
https://www.acmicpc.net/problem/10816 ⊙ 문제 주어진 N개의 수들에서 M개 수들의 개수를 출력하는 문제이다. ⊙ 문제 접근 과정 처음 시도에서 주어진 N개 수들을 하나의 배열에 넣고, 주어진 M개 수들을 하나의 배열에 넣어 lower_bound를 직접 함수로 구현하였는데, 잘못 구현하여 오류가 났다. 런타임 오류(segdefault), 시간초과, 틀림 오류가 났고, 두번째 시도로 인터넷에 찾아봐서 unordered_map 자료구조를 사용하여 O(1) 의 시간 안에 찾을 수 있게 구현했다. 세번째 시도로 upper_bound, lower_bound STL을 이용해 풀었다. 또한 추가로 두 함수를 직접 구현해봤다. ⊙ 문제 풀이 //첫번째 시도 - 틀린 부분이 있습니다. #in..
1.우선순위 큐 큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료구조이다. 우선순위 큐(Priority Queue)는 먼저 들어오는 데이터가 아니라, 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조이다. 우선순위 큐는 일반적으로 힙(Heap)을 이용하여 구현한다. 힙(Heap)은 우선순위 큐를 위해 고안된 완전이진트리 형태의 자료구조이다. 최대 힙 (Max Heap)❝ key(부모노드) ≥ key(자식노드) ❞ 부모 노드의 키 값이 자식 노드보다 크거나 같은 완전이진트리이다. 최소 힙 (Min Heap)❝ key(부모노드) ≥ key(자식노드) ❞ 부모 노드의 키 값이 자식 노드보다 작거나 같은 완전이진트리이다. 2.우선순위 큐 구현방법 ..
https://www.acmicpc.net/problem/5430 ⊙ 문제 테스트케이스 개수 T에 대해 각 테스트케이스마다 수행할 함수 p, 배열에 들어있는 수의 개수 n, [x1,...,xn] 과 같은 형태로 배열에 들어있는 정수가 주어진다. 각 테스트 케이스에 대해서, 정수배열에 대해 함수를 수행한 결과를 출력하고, 빈 배열에 대해서 D를 수행할 경우 error를 출력한다. 이때, 정수배열에 대해 함수를 수행한 결과는 다음 규칙을 따른다. 함수 p는 'D'와 'R' 문자의 혼합 문자열이다. D에 대해서는 정수 배열의 맨 왼쪽 원소를 삭제하고, R에 대해서는 정수 배열을 reverse 시킨다. (예 : 1,2,3,4 -> 4,3,2,1 ) ⊙ 문제 접근 과정 첫 시도 deque를 사용하지 않고, 그냥 ..
덱(Deque)은 double-ended queue의 줄임말로서 큐의 전단(front)와 후단(rear)에서 모두 삽입과 삭제가 가능한 큐를 의미한다 배열을 이용한 원형 덱의 구현 : 배열을 이용한 원형 덱의 동작은 원형 큐에서와 거의 비슷하다. 덱은 좀 특별한 형태의 큐로 볼 수 있으므로 CircularQueue 클래스를 상속해서 CircularDeque 클래스를 만들자. //1CircularDeque.h #include "1CircularQueue.h" class CircularDeque : public CircularQueue { public: CircularDeque() {}; void addRear(int val) { enqueue(val); } int deleteFront() { return ..