분류 전체보기(277)
-
[자료구조] 연결 리스트 - (2) doubly linked list
연결 리스트 - (2) doubly linked list 이중 연결 리스트 단순 연결 리스트(single linked list)는 다음 노드의 연결 정보만 가지고 있었다면 이중 연결 리스트(doubly linked list)는 다음 노드와 이전 노드, 2개의 연결 정보를 가지고 있음 장점 이중 연결 리스트에서는 처음에서 끝/끝에서 처음, 양방향으로 리스트 순회가 가능 한 방향으로만 링크된 단순 연결 리스트는 순회 시 원소를 찾지 못하면 다시 맨 처음으로 돌아가야 했었으므로 이런 점이 이중 연결 리스트의 장점이라고 할 수 있음 단점 메모리를 더 많이 사용한다 좀 더 복잡하다 단순 연결 리스트와 비교해서 이중 연결 리스트에 추가해야 할 부분 class Node2{ constructor(element){ th..
2021.03.03 -
[유튜브 클론코딩] 3.6 Uploading and Creating a Video
3.6 Uploading and Creating a Video Video가 아닌 파일을 업로드하지 못하게 설정하기 우선 할 건 Video가 아닌 file을 업로드하지 않게 해야한다. upload.pug에서 비디오 파일만 받도록 accept="video/*"를 다음과 같이 추가한다. extends layouts/main block content .form-container form(action=`/videos${routes.upload}`, method="post") label(for="file") Video File input(type="file", id="file", name="file" ,required=true, accept="video/*") input(type="text",name="title"..
2021.03.02 -
[유튜브 클론코딩] 3.5 Home Controller Finished
3.5 Home Controller Finished 이렇게 만든 model들을 어떻게 사용할 수 있을까? 믿지 못할 정도로 간단할 것이다. 현재 상태에서 videoController에서 누군가가 home으로 가면 여기 videos는 undefined일 것이다. 일단 videoController에서 Video를 import 해준다. import Video from "../models/Video"; videoController에 async/await 사용하기 videoController에 async를 추가해준다. async는 비동기이다. (즉 순서대로 실행하느라 기다리지 않고 바로 에러를 보내는 동기적 방식이랑 다른 것이다) 지금 이 상태에서 video를 살펴보라는 조건을 달면 자바스크립트는 default로..
2021.03.02 -
[유튜브 클론코딩] 3.4 Comment Model
3.4 Comment Model Comment model 만들기 models > Comment.js 만든다. import mongoose from "mongoose"; const CommentSchema = new mongoose.Schema({ text:{ type: String, required : "Text is required" }, createdAt : { type: Date, default : Date.now } }); const model = mongoose.model("Comment",CommentSchema); export default model; ↑ Comment.js 스키마를 만들고 그 스키마를 가지고 모델을 만든다. 이것을 init.js에다가 import 해준다. Relations..
2021.03.02 -
[자료구조] 연결 리스트 - (1) Single Linked List
연결 리스트 배열(일종의 리스트) 장점: 구현하기가 쉽고 사용하기 편하다. 배열의 원소에 접근하려면 대괄호에 인덱스만 넣어주면 된다. 단점 크기가 고정되어 있다 배열의 처음이나 중간에서 원소를 추가/삭제 하려면 다른 원소까지 옮겨야 하므로 번거롭다 연결리스트(Linked List) 연결리스트는 일련의 원소를 배열처럼 차례대로 저장하지만 원소들이 메모리상에 연속적으로 위치하지 않는다 각 원소는 원소 자신과 다음 원소를 가리키는 참조 정보(포인터,링크 라고도함)가 포함된 노드로 구성된다 장점: 원소 추가 삭제 시 다른 원소들을 이동하지 않아도 된다(포인터 덕분) 단점: 배열은 특정 원소에 인덱스로 바로 접근할 수 있는 반면 연결 리스트에서는 원소를 찾을 때까지 처음(헤드,head)부터 루프를 반복해야함 연결..
2021.03.02 -
[유튜브 클론코딩] 3.3 Video Model
3.3 Video Model 스키마 MongoDB에 우리의 파일들이 어떤 식으로 생겨야 할 지 알려줘야 하기 때문에 스키마를 작성한다. → 이런게 file의 형태, 즉 model의 형태 → 이것들은 models라는 폴더에 저장될 것이다. MongoDB에 스키마 작성하기(models > Video.js) models 폴더를 만들고 Video.js 파일을 만든다. import mongoose from "mongoose"; const VideoSchema = new mongoose.Schema({ }) ↑ Video.js 본격적으로 스키마를 정의한다. import mongoose from "mongoose"; const VideoSchema = new mongoose.Schema({ fileUrl: { typ..
2021.03.01