목록전체 글 (138)
나의 개발일지(김지헌)
어제 부터 해서 몽구스를 사용 한 코드들을 MySql과 시퀄라이즈를 사용 하는 방법으로 바꾸면서 진행 했다. 바꿀때 마다 에러가 너무 많아서 하나하나 찾아보면서 진행을 했다. 수정 하는 코드인데 udateOne을 사용 하는 코드가 조건문을 더해져서 좀 바뀌어서 많이 햇갈렸다 더보기 router.put('/:commentId', authMiddleware,async (req,res)=>{ //일단 아이디 받아오고 일치하는지 확인 해당 try{ const user = res.locals.user // id 를 가져옴 2번 const { commentId } = req.params const {comment} = req.body //수정할 코맨트 const findUser = await Comments.fin..
오늘도 과제에 나온 api명세서를 보고 회원가입및 로그인 기능과 글작성을 몽고 디비와 몽구스를 사용하여 하고 있었고 댓글 및 좋아요만 놔두고 다 구현 해놨는데 과제 요구사항에 MYSQL과 시퀄라이즈를 시용하여 구현을 해야해서 몽구스로 짠 코드를 MYSQL과 시퀄라이즈를 사용한 방법으로 바꾸는 중입니다. 기존 미들웨어 코드 토큰 검증 하는 부분인데 authorization이 프론트에서 보내주는 부분이라서 썬더 클라이언트에서 bearer와 쿠키로 바꿨는데 시퀄라이즈를 사용하면서 쿠키파서를 이용하여 토큰으로 확인을 했다. 더보기 const jwt = require('jsonwebtoken') const User = require('../models/user') module.exports=(req,res,nex..
Restful API, --좋은 REST API-- 1.URL을 명사로 작성 2.하위 문서를 나타낼 땐 / 3.파일 확장자 (.html)쓰지말기 4.띄어기니는 (-) 사용 5.자료하나당 하나의 URL 6.내서버랑 통신할 수 있는 방법 = API .get("/add") --API 설계 하기 --- 1.하나의 자료는 하나의 URL 2.하나를 알면 둘을 알 수 있어야한다 3.요청과 응답은 정보가 충분히 들어있어야 한다 4.클라이언트랑 서버랑 역할구분이 확실 해야함 package.json npm을 패키지를 주고받는 장소이고 그 주고 받는 패키지에 대한 상세한 설명서라고 할 수 있다. 패키지의 이름, 버전, 데이터 등이 담긴 파일이 바로 package.json 입니다. MYSQL 더보기 DDL은 데이터를 정의할 ..
오늘은 쿠키와 세션 그리고 관계형 데이터베이스와 비관계형 데이터 베이스를 공부를 하고 api구현을 했다. 쿠키와 세션 더보기 쿠키와 세션이란? 쿠키(Cookie): 브라우저가 서버로부터 응답으로 Set-Cookie 헤더를 받은 경우 해당 데이터를 저장한 뒤 모든 요청에 포함하여 보냅니다. 데이터를 여러 사이트에 공유할 수 있기 때문에 보안에 취약할 수 있습니다. 쿠키는 `userId=user-1321;userName=sparta` 와 같이 문자열 형식으로 존재하며 쿠키 간에는 세미콜론`(;)` 으로 구분됩니다 세션(Session): 쿠키를 기반으로 구성된 기술입니다. 단, 클라이언트가 마음대로 데이터를 확인 할 수 있던 쿠키와는 다르게 세션은 데이터를 서버에만 저장하기 때문에 보안이 좋으나, 반대로 사용..
오늘은 주특기 숙련주차에 들어갔다. 이번 개인 과제는 로그인 회원가입 및 좋아요 기능을 구현하는 과제가 있었도 mysql을 사용하여 하는것이였다. 숙련주차 영상을 보면서 공부를 하고 빨리 진도를 나가서 과제를 하고 부족한 개념들을 더 알아볼려고 한다. 객체 리터널 더보기 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법입니다. 여기서 객체 리터럴은 객체를 생성하기 위한 표기법입니다. 객체 리터럴은 객체를 생성하기 위해 Class를 먼저 선언하고 new 연산자와 함께 생성자를 호출할 필요가 없이 일반적인 숫자, 문자열을 만드는것과 유사하게 객체를 생성할 수 있습니다. 구조 분해 할당 더보기 ES6에서 새롭게 도입한 문법이며 객체(Object) 나 배열(L..
오늘은 10시부터 12시까지 입문 주차 시험이 있었다. 입문 과제가 좀 많이 어려웠기 때문에 시험 문제에 대해 좀 어려울꺼 같다고 걱정을 많이 했다. 그래서 시험 문제를 보니 과제를 했다면 풀수 있게 나왔다. get 요청으로 user 목록을 받아오고 정보를 추출해서 보내준다. 더보기 //회원 전체 목록 조회 router.get('/user', async (req,res)=>{ try{ const findUser = await User.find() //모든 유저의 정보를 받아온다 const users = findUser.map((user)=>{ //map을 이용하여 키값을 바꿔준다. return { userId : user._id, name : user.name, ID : user.ID, pw : user..
//10진수를 다른진수로 바꿀때 toString() 괄호안에 필요한 진수 넣기 //다른 수를 10진수로 표시할때 는 parseInt() // 자연수 n이 매개변수로 주어집니다. // n을 3진법 상에서 앞뒤로 뒤집은 후, // 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. // n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 // 45 1200 0021 7 function solution(n) { var answer = 0; let N = n.toString(3).split("").reverse().join("") //n을 toString(3)을 이용하여 문자로 변환하고 쪼개서 배열로 만들어준다 // [1,2,0,0] reverse()로 ..
어제 매니저님께서 피드백 주신 try{}catch{}문으로 바꾸고 코드 수정하고 과제를 마무리 하였다. 목요일 이후에 코드는 따로 올릴려고 합니다. 그리고 기초적인 내용이 부족한거 같아서 코딩 앙마의 자바스크립트 기초 강좌를 보면서 부족했던 부분의 개념을 채워 넣는 식으로 공부를 하였습니다. 반복문 break,continue 더보기 반복문의 break ,continue break - 만나는 순간 코드 실행을 멈추고 반복문을 빠져나옵니다. while(true){ let answer = confirm('계속 할까요?') if(!anwer){ berak; 브레이크 문을 만나면 코드가 종료되면서 반복문을 빠져나온다 } } continue - 만나는 순간 코드 실행을 멈추고 다음 반복으로 진행된다. for(let..