전체 글 560

Foundation Test 위한, 로그인 + token 발행 [개념]

이후 공부한 자세한 내용 [jwt, token] 토큰 개념, 토큰 코드 만들기, 토큰 발행 / 프론트와 연결하는 법 (엔드포인트, api) 토큰? 백엔드가 매번 프론트에게 사용자의 로그인 기록을 주는데, 비밀번호를 암호화해서 줌 --> 로그인 기록 유지 하는 기능 (다른 거 하는 동안) 로그인 성공한 시점에 토큰을 발급. 그 토큰의 pm-developer-justdoit.tistory.com token에 담긴 id는 userId이다. 1) 로그인 성공했을 때 token을 어떻게 만드느냐 -> jwt 2) 비밀번호 암호화 (다음주에, Project1하면서) -> bcrypt 유저가 id (이메일 / db id 아님) , pw 준다 백엔드가 확인 (키가 다 잘 왔는지) 이메일 중복 확인 (가입했는지? 있는 ..

Foundation 2- 개발은 효율을 따지는게 아니구나

효율성을 평생 중시하던 나인데 에러 찾고 구동할때마다 하나씩 에러 나서 산넘어 산이고, 수업시간에 조금씩 추가된 코드가 뭔지 이전 코드랑 하나하나 비교하는데, 아 이걸 이렇게 해야 하나 그냥 다 복붙할까 하는데 복붙했더니 처음 보는 또 다른 에러가 나고 이걸 이렇게 해야하나.. 코드 문제를 푸는게 아니라 이거를 비교하면서 차이점 찾는데 이럴 일이야?하며 시간 아까운데 다들 그러고 있었다. 차분하게 해야 하는, 에러가 뭔지 찾고 ㅇㅇ 마음이 급하거나 성격이 급해지면 안 되는 듯하다 효율 따지면 안 되고..

Foundation 2- 'Client does not support authentication protocol requested by server; consider upgrading MySQL client', sqlState: '08004', / mysql, node.js 연동 오류

찾아보면 mysql version 문제로 down grade하거나 mysql2를 설치하라고 했는데, 나는 이미 mysql가 설치 되어 있었다. 도대체 무엇이 문제인가. 매우 많은 사람들이 이 문제를 동일하게 겪었고, 심지어 동시간대에 백엔드 동기들 2명이나 더 이 문제를 겪었다. 다들 caching_sha2_password 문제라고 하는데 이 한줄로 해결된다. ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root_password'; 위에서 'root_password'에서 비밀번호만 바꿔쓰면 된다! 이거를 터미널에 그대로 쓰고, 비밀번호 자리에 내 비밀번호 쓰면 된다. 그러면, 터미널에서 mysql이 정상작동하고 다시 node 파일명.j..

Foundation 2 - 인증 : token, session,

그래서 인가 어떻게 하는건데? 백은 프론트에게 무엇을 전달 받아야하고, 백은 프론트에게 무엇을 받아서 무엇을 줘야 하는지 → 기술 스택 명확하게 알아야 함. (기술적 펼처짐 이해) unless, 변수, 에러 → 전체 flow 이해 (내가 작성한 소스 코드가 어떠한 결과를 내기 위해 존재하는지 알아야 함) HTTP 사용 : 웹 환경에서 사용자 - 시스템 사이 데이터 교환 HTTP의 대표적 특징 : stateless (“상태없음”: 독립적, 과거 통신에 대한 이력이 저장되지 않는다: 언제? 한번의 request, response 생애 주기가 끝나면, 소멸됨 → 그래서 header에 다양한 메타 정보_과거 이력 동봉해서 보냄 ) 그럼, 인증 인가 어떻게 해? Stateless인데? → 매번 요청할때마다 인증 ..

Foundation 2- 인증과 인가

인증과 인가 인증 - 회원가입 로그인 인가- 인증을 받은 client, browser가 끊임없이, ‘나 A라는 User이고 B라는 자격을 갖고 있고, A,B라는 선제조건을 가져야 가능한 C라는 서비스를 이용하게 해줘'라는 요굴르 끊임없이 하고 공증 받는 과정 인증 (Authentication) 이란? 인증은 누군가 또는 시스템이 실제로 그 누구인지 또는 시스템인지를 결정하는 과정 사용자의 자격 증명 정보가 인증 서버의 자격 증명 정보를 비교, 일치하는지 확인하여 시스템에 대해 액세스 권한 제공 Ex. 사용자가 제시한 정보가 은행의 데이터베이스의 존재하는 정보가 일치하지 않으면 은행 업무를 볼 수 없습니다. 인증의 유형 1. SFA(단일 요소 인증)single factor: 자격증명 정보로서 사용자 ID와..

Foundation 1- replit quiz 5

아침에 애플코딩 유튜브를 헬스하면서 1시간 동안 돌려보았다. 각 언어별 라이브러리를 이해하고, 코드 읽는게 중요하다고. 왼쪽에서 오른쪽으로 순서대로. 윗줄 아랫줄 왔다갔다 아니고. 천천히 저번주엔 안 보이던 코드가 이번주엔 외워지고 이해되고 그렇다. 지금은 replit quiz를 답을 보아도 모르겠지만, 오늘 오후나 내일이나 다음주엔 보일테니 문제와 답을 적어놓는. 5번 퀴즈는 문제만 있다. ## 05. CRUD (update) feed 데이터를 수정할 수 있게 만들어주세요. feed 임시 데이터를 수정하는 함수는 app.js 상단에서 불러오는 `updateFeed` 함수를 이용해주세요. ### 요구 사항 - feed 를 수정하는 express API를 구현해주세요. - mock-database.js 파..

Foundation 1 - quiz 4. replit [Node.js]

## 04. CRUD (delete) feed 데이터를 삭제할 수 있게 만들어주세요. feed 임시 데이터를 제거하는 함수는 app.js 상단에서 불러오는 `deleteFeed` 함수를 이용해주세요. ### 요구 사항 - feed 를 삭제하는 express API를 구현해주세요. // id를 이용하여 feed를 삭제해주세요. const createFeedDto = req.body - mock-database 의 deleteFeed 함수를 파악한 후 적절하게 호출하여 기능을 구현해주세요. //body 형태는 README.md에서 확인해주세요 // feed를 생성할 수 있게 매겨변수를 넘겨주세요. deleteFeed(createFeedDto); res.status(201).json({message:'succ..

Foundation 1- quiz 3. replit [Node.js]

## 03. CRUD (create) feed 데이터를 생성할 수 있게 만들어주세요. feed 데이터를 생성하는 함수는 app.js 상단에서 불러오는 `createFeed` 함수를 이용해주세요. ### 요구 사항 - feed 를 생성하는 express API를 구현해주세요. - mock-database.js 파일의 createFeed 함수를 파악한 후 req.body 에 들어올 데이터를 결정해주세요. //body { "author": { "profileImage": string, "name": string }, "title": string, "contents": string, "images": string[] } //function createFeed(createFeedDto) { const { auth..

Foundation 1- quiz 2 replit

02. CRUD (read) feed 데이터를 읽을 수 있게 만들어주세요. feed 임시 데이터를 불러오는 함수는 app.js 상단에서 불러오는 readFeedById, readFeeds 함수를 이용해주세요. // const { readFeedById, readFeeds } = require('./mock-database'); 요구 사항 feed 에서 하나의 정보와 전체 정보를 읽는 express API를 구현해주세요. feed 상세 정보를 읽는 url은 /feed/:id 로 구성해주세요. // app.get('/feed/:id', (req, res) => { const { id } = req.params; // url 에서 가변 id 가져오기 // id를 이용하여 하나의 feed를 응답으로 보내주세요...

Foundation 1- replit quiz 1

01. hello express get 요청의 query 와 post 요청의 body 를 json으로 reponse 되게 구현하여주세요. HINT1: get 요청은 client로 부터 전송된 request query를 사용합니다. HINT2: post 요청은 client로 부터 전송된 request body를 사용합니다. HINT3: express에서 query 와 body를 가져오는 방법은 유사합니다. 요구 사항 url은 hello 로 설정해주세요. ('/hello') /hello url에 get 요청과 post 요청을 만들어주세요. get 요청의 query 로 world 가 들어오게 만들어주세요. post 요청의 body 로 world 가 들어오게 만들어주세요. 들어온 world 값을 응답으로 내보내..