분류 전체보기(277)
-
[유튜브 클론코딩] 2.24 Log In and User Profile Controller
2.24 Log In and User Profile Controller Login 화면 만들기 Login도 비슷한 작업을 해야하므로 이전의 login은 getLogin으로 이름을 바꾸고 postLogin 함수를 만든다. login에는 할 일이 많지는 않다. 로그인을 하면 그냥 로그인 버튼만 클릭하는 것이다. 만약 로그인에 성공했다면 routes.home으로 redirect하면 돼. join의 흐름과 같지. export const getLogin = (req,res) => res.render("login", {pageTitle: "Login"}); export const postLogin = (req,res) => { res.redirect(routes.home); } ↑ userController.js ..
2021.02.24 -
[유튜브 클론코딩] 2.23 Join Controller
2.23 Join Controller search화면 작업하기(home화면과 유사함) 이제 다음으로 search 화면을 작업할 것이다. search도 home 화면과 거의 비슷하다. 일단은 비디오 검색 기능을 구현하지는 않겠다.(데이터베이스를 아직 안했기 때문에) videoController.js에서 search에 videos(데이터베이스)를 전달해준다. search.pug도 똑같이 작업해준다.(mixin을 include해서) export const search = (req, res) => { const {query: { term: searchingBy }} = req; res.render("search", {pageTitle: "Search", searchingBy, videos}); }; ↑ vide..
2021.02.24 -
재귀함수
재귀 함수 재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미함 단순한 형태의 재귀 함수 예제 '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력 어느정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력됨 function recursive(){ console.log('재귀 함수를 호출합니다.'); recursive(); } recursive(); 재귀 함수의 종료 조건 재귀 함수를 문제 풀이에서 사용할 때는 재귀 함수의 종료 조건을 반드시 명시해야 함. 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출될 수 있음. 팩토리얼 구현 예제 n! = 1 X 2 X 3 X ... X (n-1) X n 수학적으로 0!과 1!의 값은 1임. 내가 구현한 코드(자바스크립트) f..
2021.02.24 -
[유튜브 클론코딩] 2.22 Home Controller Part 2
2.22 Home Controller Part 2 mixin pug에서 데이터만 다르고 반복되는 HTML코드를 여러 템플릿에서 사용하기 위해 mixin을 제공한다. (다른 정보, 같은 구조) 예를 들어, 여기 home 페이지에는 비디오가 한칸으로 보이겠지만 누군가의 profile 페이지에서도 그 비디오를 볼 수 있어야할 것이다. 따라서, HTML을 재활용 할 것이다. footer를 include해서 재활용하는 것처럼, 비디오 블록 html 코드를 만든다. views > mixin>videoBlock.pug 작성하기 views 안에 mixin이라는 폴더를 만들고 videoBlock.pug 파일을 만든다. 여기서부터 조금 다르다. html 코드를 처음부터 작성하지 않을 것이다. mixin이라고 적고 그 다음..
2021.02.23 -
[유튜브 클론코딩] 2.21 Home Controller
2.21 Home Controller **userRouter랑 videoRouter에서 각각 users부분이랑 videos부분 지우고 userController랑 videoController에서도 users랑 videos 지운다. 당연히 users.pug랑 videos.pug도 지운다. (필요없어져서 지우는 거임) db.js 만들기(진짜 데이터베이스 전에 임시로 만드는 파일) 이제 form 화면은 다 만들었고, 데이터베이스를 연동하기 전에 가짜로 전체 어플리케이션의 흐름을 만들어보겠다. 우선 home 화면을 보자. 여기에서 video 목록을 보여줘야 한다. 이것을 위해 (가짜 정보를 위한) db.js 파일을 하나 만든다. videos는 video의 배열이다. export const videos = [ {..
2021.02.23 -
[자료구조] 큐(Queue)
큐(Queue) 스택이 LIFO(Last-In, First-Out) - 가장 나중에 들어온 것이 가장 먼저 나가는 구조 였다면 큐는 FIFO(First-In, First-Out) - 가장 먼저 들어온 것이 가장 먼저 나가는 구조(선입선출) 큐는 입구와 출구가 모두 뚫려있는 터널과 같은 형태로 시각화 할 수 있음. 예시 마트 계산대에서 줄을 서면 줄을 먼저 산 사람이 물건을 먼저 산다 모 대학교 카페 중에 '큐'라는 이름의 카페가 있다. 커피를 사려고 가장 먼저 줄을 선 사람이 먼저 커피를 주문한다 큐의 대표적인 사용 사례 프로세스 스케줄링 대부분의 입출력(파일 입출력 등) 프린터 대기열 네트워크 패킷 처리 게임 대기열(롤,오버워치) 큐의 대표적인 구현 방법 정적인 어레이(Fixed Array) 장점: 구..
2021.02.23