codingPpushu's dev story

Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.

0%

What?

Full stack - Clone Coding
setInterval timeupdate input type range

How?

  • Total Time and Current Time
    => setInterval vs timeupdate

    • 강의에서 setInterval 이벤트로 처리한 걸 video dom의 timeupdate 이벤트로 처리함
    • 실제 비디오 재생, 재생 위치를 호출하므로 직접적으로 관련있음
  • Volume Bar part One
    => input range type으로 화면 구성

What?

Full stack - Clone Coding
passport-local-mongoose array push populate video routes 보호
mixin play() / pause() mute property webkitRequestFullscreen()
webkitExitFullscreen()

How?

  • Change Password
    => passport-local-mongoose 사용 (이전에 설치함)
    => 암호화 된 패스워드를 현재 패스워드와 비교한다.

  • Adding Creator to Video
    => user 없이 video upload 되지 않게 수정
    => video 생성시 creatro id 저장해야함
    => video id를 array push로 넣는다.
    => populate : object id 타입에만 사용할 수 있음

  • Protecting Video Routes
    => video routes 보호를 위한 코드 작성
    => 영상 업로드 한 유저 영상 모아보기 처리
    => user를 얻을 때 video들도 얻어내야함

  • Starting the Video Player
    => mixin 만들어 템플릿에 코드 추가
    => 스타일링 완료

  • Play Pause Functionallity
    => 재생, 정지 기능 추가
    => play() / pause();

  • Mute Unmute
    => mute property

  • Enter Fullscreen Exit Fullscreen
    => 이벤트 리스너를 변경하고 제거해주는 방식으로 처리
    => webkitRequestFullscreen() / webkitExitFullscreen()

What?

Full stack - Clone Coding
multer

How?

  • Edit User Profile
    => Profile page Avatar image, id 수정 가능하게 구현
    => multer 이용해 uploadAvatar 구현
    => editprofile pug 파일에 인코딩 속성 추가
    => 이미지 파일 형식만 들어오게 수정

What?

Full stack - Clone Coding
express session resave saveUninitialized MongoStore
github login kakao login Relationships

How?

  • Sessions on Express
    => express session : 세션 관리 위함 (설치)
    => env에 환경변수 추가
    => resave 설정
    => saveUninitialized 설정
    => 서버는 사용자가 어떤 쿠키를 가지고 있는지 알아야 함

  • MongoStore and Middlewares
    => 데이터베이스를 사용해 세션 저장
    => cokiestore와 mongo 간 연결 만들어 줌
    => routes 출입 제한 설정

  • Github Log In part One
    => passport를 이용해 github login 구현
    => passport를 이용해 kakao login 구현

  • Relationships
    => user profile : styling, routes 수정

What?

Full stack - Clone Coding
user authentication cookie passport user model
seializeUser / deserializeUser

How?

  • User authentication
    => 사용자 인증 : passport 미들웨어 사용
    => cookie
    => passport-local-mongoose 설치
    => user model 생성 및 import(init)
    => seializeUser : user id
    => deserializeUser
    => controller postjoin 함수 수정

What?

Full stack - Clone Coding
sass nodemon

How?

  • STYLING
    => sass 이용한 스타일링 완료
    => nodemon은 css 저장할 때 마다 server 재시작해 package.json –ignore ‘scss’ 추가

What?

Full stack - Clone Coding
regular expression webpack

How?

  • Searching Videos
    => regular expression (정규표현식) : string으로 부터 캐릭터를 가져옴.
    => video controller 에서 비디오를 찾으면 값을 바꿈
    => 완전 일치가 아닌 일부 포함된 단어를 찾음 (mongoose regex 사용(여러가지 옵션 있음))

  • WEBPACK
    => module bundler
    => package.json : 백엔드 부분과 프론트 부분을 분리해주는 script 작성
    => webpack.config.js : 설정 작성 (webpack 호출되면 가장 먼저 확인하는 파일)

  • !. 업데이트가 안 된 오래된 강좌여서 그런지 설치 과정 중 에러가 많았다. webpack 과 프레임워크간 오류도 있었고, window 사용자 경우 따로 설정해 줘야 하는 부분도 있었다. 하나씩 검색해 해결했지만, 생각보다 시간이 오래 걸렸다🤣🤣🤣

What?

Full stack - Clone Coding
get sort ESLint

How?

  • Deleting a Video
    => 삭제 할 비디오 url에 접근해 내용을 가져와서 비디오를 삭제한다.
    => routes에서 deleteVideo 함수에 id 값을 지워주는 코드 추가한다.
    => sort({_id:-1}) : 업로드 영상을 최신순으로 정렬 (id, 제목으로 정렬 가능)

  • ESLint
    => 틀린 부분을 알려준다.
    => 자세한 설치 과정은 개인 노션에 정리완료

What?

Full stack - Clone Coding
relationship async / await try catch multer
mongdb database

How?

  • Comment Model
    => relationship : 서로 다른 Schema를 가진 데이터가 문맥상(웹 상에서) 연관성을 가지고 있을 때 서로의 Schema를 ref를 통해 연결 시켜준다. / id(데이터 이름)만 넘기는 방식

  • Home Controller
    => async / await : 프라미스 반환 / 프라미스 처리를 기다린다 (결과는 그 이후 반환)
    => try catch : error를 잡아서 throw 해준다

  • Uploading and Creating a Video
    => file upload시 파일 자체를 db에 저장하는 것이 아닌 file의 location을 넘긴다.
    => file을 Upload하고 URL을 반환하는 middleware를 만든다.
    => multer 설치 후 video 폴더 재지정
    => mongdb database 수정 방법

  • Getting Video by ID
    => search에서 query로 trem 받은것처럼 video id를 받음
    => url로부터 정보를 가져오는 유일한 방법 : (:)과 이름을 넣으면 됨

  • Editing a Video
    => video 수정시 title, description에 빈 공간 없게 수정

What?

Full stack - Clone Coding
mongoDB file model schema
dotenv mongoose

How?

  • More Controlers
    => 상세 페이지 다이렉션 구현, 로그아웃 처리, upload(get/post) 처리 구현
    => 요약 : 라우팅 처리 잘해야됨

  • MONGODB
    => NoSQL 데이터베이스이며 적은 규칙과 절차로 작업이 가능해 가볍고 쉽게 다룰 수 있음
    => 생성이 빠르고 엄격하지 않아 채팅 프로그램 등에 적합

  • Connecting to MongoDB
    => String으로 된 데이터 베이스 요청

  • Configuring Dot Env
    => .env : dotenv.config 로 .env 파일 불러옴
    => 변수들을 process.env에 넣음

  • Video Model
    => 데이터가 어떻게 생겨야 할지 알려준다.
    => file/model/schema

  • 팀 project 진행중..