2021/03(76)
-
[유튜브 클론코딩] 6.9 Recap and User Profile
6.9 Recap and User Profile 인증(Authentication)에 대해 정리하기 📌 local 방식(username / password) username과 password를 post 방식으로 전달하고 우리가 설치해준 플러그인인 mongoose가 자동으로 체크를 해준다. 만약 password가 맞으면 passport에게 맞다고 알리고 쿠키를 생성 📌깃허브 방식 .social-login button.social-login--github a(href=routes.gitHub) span i.fab.fa-github |Continue with Github button.social-login--facebook span i.fab.fa-facebook |Continue with Facebook 깃허..
2021.03.12 -
[프로그래머스][해시] 완주하지 못한 선수
[해시] 완주하지 못한 선수 문제 출처: 프로그래머스(programmers.co.kr/learn/courses/30/lessons/42576?language=javascript) 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 2..
2021.03.11 -
[프로그래머스] [해시] 위장
[해시] 위장 문제 출처: 프로그래머스(programmers.co.kr/learn/courses/30/lessons/42578) 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이..
2021.03.11 -
[자료구조] 해시 - (2) 구현 - 충돌해결 - ② linear probing
🎈선형탐색법(linear probing) 새 원소 추가 시 인덱스가 이미 점유된 상태라면 인덱스+1 을 찾아보고, 인덱스+1도 점유됐다면 인덱스+2를 찾아보는 식으로 충돌을 회피하는 방법 🎀 앞서 기본적인 해시테이블을 구현할 때와 chaining으로 충돌을 해결했을 때에는 기본적으로 해시테이블의 constructor에서 테이블(배열)의 사이즈를 storageLimit으로 지정해놓았었는데, 선형탐색법 방법에서는 제한을 두지 않을 것이다. 🎁 다른 프로그래밍 언어에서는 배열의 크기를 미리 정하게 되어 있는데, 선형 탐색법에서 한 가지 신경쓰이는 부분이 배열 인덱스가 가능한 범위를 벗어났을 경우이다. 자바스크립트에서는 배열을 따로 크기를 지정해놓지 않아도 원소를 추가하면 자동으로 크기가 늘어나므로 전혀 고민할..
2021.03.11 -
[유튜브 클론코딩] 6.8 Github Login Part.3
6.8 Github Login Part.3 githubLoginCallback 함수 수정하기 export const githubLoginCallback = (accessToken, refreshToken, profile, cb) => { console.log(accessToken, refreshToken, profile, cb); }; 지난시간에 깃허브 로그인 누르고 콜백함수로 돌아올 때 console에 주어진 정보를 확인만 했었다. 이제 그것을 수정하려고 한다. 사실 accessToken, refreshToken이런건 필요 없고 profile에 있는 github ID, 이메일, 이름, 그리고 아바타(프로필 사진) 이게 중요하다! 그리고 여기서 cb 함수는 passport에서 제공된 callback 함수..
2021.03.11 -
[유튜브 클론코딩] 6.7 Github Login Part.2
6.7 Github Login Part.2 사용자를 깃허브로 보낼 함수 작성하기(githubLogin) 위에서는 사용자가 깃허브에서 돌아왔을 때 실행할 함수를 작성한 거고 사용자를 깃허브로 보낼 함수도 작성해야 할 것이다. userController에서 하나를 더 생성한다. export const githubLogin = passport.authenticate('github'); ↑ userController.js 이전에 local방식으로 인증했던 거랑 똑같은 코드이다. 공식 문서를 보면 이렇게 나와있는데 즉 누군가 저 루트로 접속하면 passport에서 github 방식으로 사용자를 인증해주겠다는 의미이므로 이걸 위한 루트도 만들어야 한다. 깃허브 로그인을 위한 루트 만들기 routes.js에서 먼저 ..
2021.03.11