본문 바로가기

분류 전체보기

(122)
나의 개발일지 20221227 TIL(Today I learned) - jest Today I learned 애로우 함수 this JEST 오늘은 애로우 함수를 사용하다가 this의 이상한 작동을 발견했다 애로우 함수에서 this가 작동을 하지 않았다 그리고 상위 스코프의 this를 바인딩한다 const cat = { name: 'meow', foo1: function () { const foo2 = () => { console.log(this.name); } foo2(); } }; cat.foo1(); 애로우 함수의 this의 특징을 알았다 애로우 함수를 자주 사용하니까 꼭 기억하자 내가 작업한 코드가 잘 동작하는지 test를 해야한다 그러기 위해서 test코드가 필요하다 이러한 부분을 쉽게 도와주는 jest를 사용해보자 테스트를 위해서 필요하니까 devDependencies에 설..
나의 개발일지 20221226 TIL(Today I learned) - socket.io Today I learned WebSoket - socket.io 객체지향 (추상화, 다형성, 상속) 오늘은 WebSoket과 객체지향의 대해서 학습을 진행했다 웹소켓을 쉽게 사용할 수 있게 도와주는 Socket.io를 사용해보자 웹소켓을 빠른 데이터 통신이 필요할 때 사용한다 채팅에서도 사용하고, 가상화폐 거래소 같은 곳에서도 사용한다 웹소켓을 구현해보자 socket.io를 설치하자 npm i socket.io 설치한 socket.io를 공식 문서를 보고 사용을 해보자 const io = require("socket.io")(3000, { cors: { origin: "*", methods: ["GET", "POST"], }, }); io.on("connection", (socket) => { cons..
나의 개발일지 WIL(Weekly I learned) 2022-12-25 Weekly I learned 이번주는 인증을 위한 JWT, 미들웨어를 학습하고 Sequelize를 이용해서 MySQL을 조작할 수 있도록 학습을 하고 배운 내용을 개인과제를 통해서 실습해보고 복습하는 시간을 가지면서 각 기능에 대해서 알게 되었다 이번주 학습을 통해서 JWT토큰을 만들어서 cookie에 보내줄 수 있고 그 cookie를 이용해서 사용자가 로그인을 했는지 인증을 할 수 있게 되었다 그리고 로그인이 필요한 기능은 미들웨어를 통해서 로그인 여부를 알 수 있게 할 수 있다 Sequelize를 통해서 데이터베이스와 테이블을 생성할 수 있고 1:N의 관계를 형성할 수 있고 CRUD를 구현 할 수 있다 다음주의 목표는 MVC패턴을 이용해서 코드를 관리하고 access token, refresh to..
나의 개발일지 2022-12-23 TIL(Today I learned) - 개인과제 Today I learned 오늘은 개인과제를 마무리를 하는 날이다 게시글의 좋아요를 구현하고 좋아요를 누른 게시글을 뽑아주는 기능을 구현하는 작업을 진행했다 작업을 진행하면서 경로의 문제가 계속 발생을 했다 /api/posts/likes라는 경로로 GET요청이 들어오면 좋아요를 누른 게시글을 보여줘야 하는데 요청이 들어오지 않고 에러가 발생하는 문제였다 어딘가에서 경로를 뺏어간다고 생각을해서 GET /api/posts/likes를 제외하고 나머지를 주석처리를 하고 진행을 해보니까 정상적으로 작동을 했다 예상대로 위에 경로중 하나가 요청을 가져가 버려서 에러가 발생하는 거였다 그다음 제일 위에 코드부터 주석을 풀어가면서 진행을 하니까 /api/posts/:post_id GET 요청 이부분에서 요청을 가져..
나의 개발일지 2022-12-22 TIL(Today I learned) - 개인과제 Today I learned 오늘은 개인과제를 진행했다 어제 공부했던 sequelize를 이용해서 User, Post, Comment, Like의 관계를 연결시켜주고 CRUD를 구현하고 게시글에 댓글을 보여주기 위해서 JOIN을 sequelize로 구현하고 댓글을 최신 작성한 순으로 가져오는 작업을 진행했다 작업 중 연결이 제대로 되지 않아서 JOIN을 할 때 에러가 발생하고 JOIN이 되어도 댓글의 order DESC가 적용이 되지 않는 문제가 발생했다 그리고 커밋을 안하다가 한 번에 커밋을 하고 문제가 발생해서 커밋을 되돌렸다가 작성했던 모든게 날아가 버리는 문제가 발생했다 처음에 JOIN을 하기위해 관계를 설정해주기 위해 시도한 방식이다 아래 코드로 연결을 시켜서 JOIN을 작동했을 때 foreig..
나의 개발일지 TIL(Today I learned) - Sequelize Today I learned 오늘은 개인과제를 진행했다 강의로 학습했던 부분을 이용해서 과제를 진행하는데 이번 강의는 솔직히 너무 부실하고 난잡했다 그래서 더욱 무슨 내용인지 이해를 못했다 따라서 과제를 진행하기 위해서 처음부터 sequelize 다시 학습을 진행했다 Sequelize /config/config.json DB커넥션 정보를 각 환경에 맞게 설정할 수 있다 { "development": { "username": "root", "password": "1234", "database": "dev_database", "host": "127.0.0.1", "dialect": "mysql", "operatorsAliases": false }, ... } username : DB 사용자명 password..
나의 개발일지 TIL(Today I learned) - Access Token, Refresh Token, 미들웨어, SQL, Sequelize Today I learned 오늘은 어제 공부한 미들웨어를 한 번 더 학습하고 Access Token, Refresh Token에 대해서 실습을 진행하면서 학습했다 아직도 확실하게 나의 지식으로 만들지 못했다 더 많이 실습하고 학습해야겠다 그리고 SQL과 ORM Sequelize에 대해서 학습을 진행했다 내일은 이번 주에 학습한 것을 사용해서 저번에 진행한 개인과제에서 회원가입과 로그인 Token을 가지고 회원을 인증하는 부분을 추가하면서 학습을 진행할 예정이다!! Access Token, Refresh Token Access Token이란? Access Token은 사용자의 권한이 확인 되었을 경우 해당 사용자를 인증하는 용도로 발급하게 됩니다 이전에 저희가 구현하였던 Cookie로 jwt를 발급하고 ..
나의 개발일지 TIL(Today I learned) - 미들웨어, nodemon, JWT, mongoose exec(), cookie, sesstion Today I learned 오늘은 node.js 심화 과정을 학습하면서 todo-list를 위한 서버를 만들면서 학습을 진행했다 진행을 하면서 설명이 부족하다고 느끼는 부분과 잘 이해가 안가는 부분을 더 찾아보면서 학습을 진행했다 미들웨이 nodemon mongoose exec() cookie, session JWT Stateless, Statful 미들웨어 미들웨어는 요청과 응답의 중간에 위치해서 미들웨어라고 불리고 요청과 응답을 조작하여 기능을 추가하기도 하고, 나쁜 요청을 걸러내기도 한다 express는 자체적인 최소한의 기능을 갖춘 라이팅 및 미들웨어 웹 프레임워크 express 애플리케이션은 기본적으로 일련의 미들웨어 함수 호출이다 express 내에서 웹 요청과 응답에 대한 정보를 사용해서 ..