TodayILearned
-
블로킹과 논블로킹 그리고 스레드의 관계(2)TodayILearned/node.js 2020. 10. 30. 00:00
2020/10/28 - [TodayILearned/node.js] - 블로킹과 논블로킹 그리고 스레드의 관계(1) 블로킹과 논블로킹 그리고 스레드의 관계(1) /Nonblocking 논블로킹이란, 이전 작업이 완료 될 때 까지 멈추지않고 다음 작업을 수행함을 의미 블로킹이란, 이전 작업이 멈추지 않으면 다음 작업을 수행하지 않음을 의미 Blocking방식의 코드 funct tuigun.tistory.com single thread/blocking model 한명의 점원이 주문을 받는다. 먼저 주문받은 음식이 나갈 때 까지 추가 주문은 안받는다. 시간이 오래 걸림 효율이 낮음 single thread/nonblocking model 한명의 점원이 주문을 받는다. 주문은 계속해서 받으며, 음식은 만들어지는 ..
-
블로킹과 논블로킹 그리고 스레드의 관계(1)TodayILearned/node.js 2020. 10. 28. 00:45
/Nonblocking 논블로킹이란, 이전 작업이 완료 될 때 까지 멈추지않고 다음 작업을 수행함을 의미 블로킹이란, 이전 작업이 멈추지 않으면 다음 작업을 수행하지 않음을 의미 Blocking방식의 코드 function longRunningTask(){ //오래걸리는 작업 console.log('작업끝'); } console.log('시작'); longRunningTask(); console.log('다음작업'); 실행내역 > 오래걸리는 작업이 끝나지 않으면 다음작업은 호출되지않는다. NonBlocking방식의 코드 function lonRunningTask(){ //오래걸리는 작업 console.log('작업끝'); } console.log('시작') setTimeout(longRunningTask,..
-
노마드 WETUBE챌린지 후기TodayILearned/Wetube 2020. 10. 25. 23:11
아쉽게도, 이번 챌린지에선 졸업을 못했다. 퇴근 후 새벽까지 과제제출을 하고 잠드는 경우가 많았는데, 솔직히 정말정말 힘들었지만 뿌듯했다.. 오늘도 해냈어.. 하는 그런 느낌? 막판에 강의에 쫓겨 결국 완주를 못했지만, 다음에 다시 한 번 도전 할 생각이다. 배운것 해당 챌린지는 백엔드부터 시작해 중간에 프론트엔드, 마지막으로 배포까지 한다. 그동안 배운것들은 아래와 같다. 강의를 듣고 Node.js를 이용한 프로젝트의 전반적인 흐름에 대해 알았다. MVC pattern PUG Express Query string Wep pack, SCSS MongoDB, Mongoose Passport Ajax API 느낀점 인강에서 배울 수 없는 구글링, 에러코드 읽고 문제점 찾기 등의 문제해결법을 배울 수 있었다...
-
[Wetube] multer middlewareTodayILearned/Wetube 2020. 10. 11. 03:29
multernode.js에서 파일업로드를 가능하게하는 모듈이다. middlewares.js사용방법 : dest로 DB가 저장될 곳을 지정 후, 해당 파일이 업로드되는 router로 export해준다.import multer from "multer"; import routes from "./routes"; const multerVideo = multer({ dest: "uploads/videos/" }); export const localsMiddleware = (req, res, next) => { res.locals.siteName = "Wetube"; res.locals.routes = routes; res.locals.user = { isAuthenticated: true, id: 1, }; nex..
-
async, await 의 개념(1)TodayILearned/node.js 2020. 10. 11. 02:22
복습이나 기록을 한 번 미루다보니 쌓이고 쌓이는 글감만 늘어서;; 쳐내야겠다! async: javaScript는 이전의 작업이 끝나기 전에 다른 작업을 시작한다. 따라서 video파일을 읽기 전에 video페이지를 읽음. 빈 video페이지를 읽는 결과를 보여줌. (비디오파일을 보면서 동시에 렌더파일도 확인함) export const home = async(req, res) =>{ //await function은 async없이 쓸 수 없음 const videos = await Video.find({});//await:이하의 과정이 끝날 때 까지 기다림 res.render("home", {pageTitle: "Home", videos})//Video.find({})로 찾은 비디오들이 videos에 저장됨 ..
-
var,let,const 의 특징TodayILearned/node.js 2020. 10. 10. 22:12
공부하면서 let이랑 const는 써봤어도(주로 const), var는 거의 못본것같은데.. 예전에 자바를 하려다가 한번 봤나..? 우리..구면이니..? 자바는 예전에 잠깐 공부하다가 너무~~너무너무~~ 재미가 없어서... 한 한달정도 공부하고 그만 둔 기억이 난다... 파이썬이나 자바스크립트, 노드는 재밌게했는데 자바로 시작했다면 나는 프로그래밍 공부를 안했을테지.. TIL정리해둔 건 노션에 많은데, 과제니 야근, 운동을 우선적으로 챙기다보니 글올리는걸 미루게된다..어떡하냐고.. const 상수 선언문이다. const로 선언된 값은 재할당(immutable)할 수 없다. 재선언도 할 수 없다. 블록스코프이다. initializer가 필요함. 선언만으로는 상수를 생성할 수 없음. let let으로 선언된..
-
[Wetube] 정규표현식 Search 로직 구성TodayILearned/Wetube 2020. 9. 28. 22:51
1. 결과물 검색어로 해당 동영상이 검색된다. 검색어를 포함한 동영상이 검색된다. 2. 목표 regular expression (정규표현식) 에 대해 안다. Search 로직을 구성한다 3. 코드 videoController.js import routes from "../routes"; import Video from "../models/video"; export const home = async (req, res) => { try { const videos = await Video.find({}).sort({ _id: -1 }); console.log(videos); res.render("Home", { pageTitle: "home", videos }); } catch (error) { console..
-
[Wetube] challenge 근황TodayILearned/Wetube 2020. 9. 23. 00:40
오늘로 2주째 들어선 wetube challenge 지난 kokao클론코딩 챌린지는 실패했는데 이번에는 과연 어떨지. 회사생활과 병행이 피곤하긴하지만 꼭 성공하고싶다. 다음 강의는 30% 쿠폰 먹여서 구매할 것이다.... 배운것 Router 의 역할 route를 쪼개주는 역할 : 아래 코드처럼 Wetube내의 많은 routes를 쪼개서 관리할 수 있도록 한다. (Global Router, user Router, video Router 로 나누어 관리함) //global const HOME = "/"; const JOIN = "/join"; const LOGIN = "/login"; const LOGOUT = "/logout"; const SEARCH = "/search"; //user *const* US..