본문 바로가기
728x90
728x90

경일76

[React] state, event, 조건에 따른 render 0. 목차 1. 개요 2. state 3. event 4. 조건에 따른 render 1. 개요 어제에 이어서 react 기초 개념에 대한 내용이다. state,event 그리고 ternary operator를 이용해 조건에 따른 render를 하는 방법에 대해 공부했다. 2. state 어제 공식문서를 보고 따라 쳐보긴 했지만 정확한 개념이 이해가 안돼서 state에 대한 내용을 정리하지 못했는데, 오늘 수업을 통해 state 와 조금 친해진 기분이다. 우선, state가 뭔지 정확하게 개념을 정리하는게 중요할 것 같다. react 에서 state란, component 안에 저장 되어 있는 데이터이다. 어제 정리했던 props 와는 분명한 차이가 있다. props는 부모 컴포넌트로 부터 자식 컴포넌트에게.. 2022. 4. 13.
[React] 첫걸음(JSX, Babel, Component, Props) 0. 목차 1. 개요 2. React 세팅 3. Component 4. Props 1. 개요 드디어 리액트다. 개발 공부를 시작하기 전에도 이미 몇번 들어본적 있고, 프론트 쪽에서 가장 핫한 기술 중 하나이다보니, 걱정도 되고, 설레기도 한다. 천천히 해보려고 한다. 우선 리액트가 뭐하는 앤지 알아봐야 할듯 하다. 리액트 공식 홈페이지에 들어가보면 리액트는 라이브러리 입니다 라고 소개가 되어있고, 공식홈페이지를 제외한 다른 곳에서는 리액트는 프레임워크 입니다 라고 소개가 되어있다. 음.. 사실 프레임워크라고 칭하는게 의미상 맞긴 한듯한데, 만든 사람들이 라이브러린데요 ㅡㅡ 라고 하는데 아님 프레임워크임 이라고 하는 것도 좀.. 애매하다. 결론은 뭐라 불러도 상관없을듯 하긴 하다. 프레임워크는 디렉토리 구.. 2022. 4. 13.
[node.js] kakao(카카오) OAuth 2.0 로그인 기능 0.목차 1. 개요 2. 카카오 디벨로퍼 3. 기능개발 1. 개요 드디어 OAuth 2.0 을 기반으로 한 소셜로그인 기능을 구현 해본다. 제일 해보고 싶었던 것 중에 하나라 하는 내내 재밌게 할 수 있었다. 2. 카카오 디벨로퍼 우선 카카오 디벨로퍼 사이트에 들어가서 카카오 로그인을 한 뒤, 커다란 시작하기 버튼을 눌러주자. 애플리케이션을 추가하기를 누른뒤에 필요한 정보들을 입력해주자 그리고 생성한 애플리케이션을 클릭하면 이런 애가 나온다. 여기서 기억해야될 내용은 REST API 키 이다. 소중하게 잘 보관하자. 여기로 들어오면 이런내용이 보인다. 수정 버튼을 눌러서 카카오 로그인 이후 이동할 페이지를 적어주자 그리고 저 redirect URI 도 잘 보관해두자. 이번엔 일로 가면 된다. 여기가면 이.. 2022. 3. 16.
[node.js] 백엔드 서버에 저장된 이미지 프론트 서버에 전달 0. 목차 1. 개요 2. 백 서버에 저장 3. 프론트 서버에 전달 1. 개요 이거 하다가 의문이 들었다. 서버컴퓨터에 파일을 저장은 했는데 프론트 서버에서 '님 아까 저장한 파일 좀 써야됨 그거 어딧음?" 이라고 요청을 보내면.. 나는 이거 어떻게 전달을 해줘야되지...? 라는 의문이 생겨서 이것저것 해보았다. 2. 백서버에 저장 // routes/upload/upload.js router.post('/', upload.single('imgUpload'), (req, res) => { const { filename } = req.file; const { subject } = req.body; const filePath = `http://localhost:4001/${.. 2022. 3. 15.
[node.js] multer 이용해서 파일 업로드 파일업로드 1. 개요 2. FRONT 3. BACK 1. 개요 파일 업로드를 하는 방법을 알아볼거다. 그런데 직접 구현 하는건 거의 불가능에 가까우ㄴ니 외부 라이브러리를 사용하자 사용할 라이브러리의 이름은 multer 이다. 2. FRONT 우선 서버에다 파일을 보낼 HTML을 만들어준다. 전송 기본적은 form 태그이다. 그런데 기존에 만들던 form 태그와 다른점은 form 태그의 enctype이란 속성이 들어가있다. form태그로 전달해줄 Content-type을 지정해주는 역할을 한다. 파일 업로드에 사용되는 Content-type은 multipart/form-data 이다. (default는 x-www-form-urlencoded 이다) 그리고 한가지 더 input type에 file을 이용해준.. 2022. 3. 15.
[node.js] jwt, jsonwebtoken 라이브러리 이용해서 로그인하기 0.목차 1. 개요 2. 세팅 3. 토큰생성(sign) 4. 디코드 payload(veryfy) 1. 개요 2022.03.03 - [경일/nodejs] - [node.js] 쿠키와 세션, 그리고 JWT [node.js] 쿠키와 세션, 그리고 JWT 0. 목차 1. JWT가 뭔데. 2. JWT 구현 3. JWT로 로그인 해보기 1. JWT가 뭔데 JSON Web Token 의 약자다. 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰을 의미한다. 그런데 우리 이런 역할을 하 kong-dev.tistory.com 위 포스팅에서 jwt 방식으로 로그인을 구현했었다. 그리고 crypto 를 사용해서 직접 토큰을 암호화 하고, 64진수로 변환했던 payload를 다시 복호화 해서 사용했었다. 내용이 어렵.. 2022. 3. 9.
[node.js] CORS 해결 방법 (SOP와 CORS) 0. 목차 1. 개요 2. SOP와 CORS 3. 해결방법 4. CORS 외부 라이브러리 1. 개요 개발자들은 참 신비로운 존재다. 뭘 그렇게 쪼개는걸 참 좋아한다. 그리고 코드가 중복적으로 사용되는걸 겁나 싫어한다. 그리고 이젠 하다하다 서버도 둘로 쪼갠다. 프론트서버랑 백서버 백서버에서는 주로 db와 통신을 하고, 프론트에서는 db와 통신한 데이터를 이용해 화면을 구성한다. 아 그렇구나.. 라고 받아들이기 직전에 ..이게 되나? 라는 생각이 든다. 서버가 두개라는 거는 서로다른 포트를 통해 통신을 한다는 건데, A라는 포트에서 열린서버가 B라는 포트에서 열린서버에 요청을 보내는게 된다고? 당연히 안된다. 근데 되게 만든다. 왜 안되는지와 어떻게 되게하는지에 대한 포스팅이다. 2. SOP와 CORS 실.. 2022. 3. 7.
[node.js] axios를 이용한 비동기 통신 0. 목차 1. 개요 2. axios 설치 3. get 요청 4. post요청 1.개요 비동기 통신을 하는 방법에는 크게 3가지 방법이 있다. 1. XMLHttpRequest 2. fetch 3. axios 1번은 한번 쳐보고 데이터가 어떻게 전달되고 전달 받는지만 보면 충분한 것 같고, 2번은 실제로 사용해을 해보았다. 2022.02.17 - [경일/nodejs] - [node.js] ajax, fetch, async, await, 로그인 기능 구현 [node.js] ajax, fetch, async, await, 로그인 기능 구현 0. 목차 1. 개요 2. 해결 3. 후기 1. 개요 2022.02.15 - [경일/nodejs] - [node.js] fetch(async, await)로 로그인기능 만들.. 2022. 3. 7.
[node.js] 쿠키와 세션, 그리고 JWT 0. 목차 1. JWT가 뭔데. 2. JWT 구현 3. JWT로 로그인 해보기 1. JWT가 뭔데 JSON Web Token 의 약자다. 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰을 의미한다. 그런데 우리 이런 역할을 하는 다른애들을 이미 알고 있다. 바로 쿠키와 https://kong-dev.tistory.com/129 [nodejs] 쿠키 먹는거 말고 0.목차 1. http 통신 2. 브라우저 3. 쿠키 1. http 통신 서버에 요청을 보낼때는 일정한 규격에 따라 요청을 해야한다. 그런데 이 규격만 맞춰 준다면 새로운 내용을 작성해서 보내줄 수도 있다. 이제 kong-dev.tistory.com 세션이다. https://kong-dev.tistory.com/131?category=9.. 2022. 3. 3.
[node.js] mysql2, connection pool, async, await 으로 사용 0. 목차 1. 개요 2. 일단 한번 써보기 3. mysql2 async, await 깔끔 ^^ 4. db.js 파일 분리 1. 개요 [mysql] connecting pool (feat.node.js) 0. 목차 1. 개요 2. connecting pool 쓰는 이유 3. node.js connecting pool 생성 1. 개요 https://kong-dev.tistory.com/125?category=998366 [nodejs] node에서 mySQL 연결(Error: connect ECONNREFUSED ::1:330.. kong-dev.tistory.com 이어지는 글이다. 수업에서 connecting pool 을 사용하면 코드가 더러워진다고 했다. 그런가.. 그렇기때문에 코드를 조금이라도 깔끔.. 2022. 2. 18.
[mysql] connecting pool (feat.node.js) 0. 목차 1. 개요 2. connecting pool 쓰는 이유 3. node.js connecting pool 생성 1. 개요 https://kong-dev.tistory.com/125?category=998366 [nodejs] node에서 mySQL 연결(Error: connect ECONNREFUSED ::1:3306) 매우 간단하다. 우선 npm 을 통해 mysql 라이브러리를 다운 받아주자. $ npm init -y $ npm install mysql 다운 받은 라이브러리를 require를 통해 땡겨오고, const mysql = require('mysql') 이제 연결설정을 만.. kong-dev.tistory.com 이런걸 한적이 있다. 사실 그냥 저 포스팅 이후로 db 연결할 때는 계속.. 2022. 2. 17.
[node.js] ajax, fetch, async, await, 로그인 기능 구현 0. 목차 1. 개요 2. 해결 3. 후기 1. 개요 2022.02.15 - [경일/nodejs] - [node.js] fetch(async, await)로 로그인기능 만들어보기 [node.js] fetch(async, await)로 로그인기능 만들어보기 0. 목차 1. 개요 2. 기본세팅 3. HTML 4. fetch 5. 결과 1. 개요 수업시간에 ajax 비동기 통신에 대한 내용이 나와서 ajax 검색해보다가, promise 를 리턴하는 fetch 문법 사용이 더 편리할것 같아서 fetch 문법.. kong-dev.tistory.com 이거 하다가 마지막에 뻘짓을 했었는데 말이지.. ㅎㅎ 해결했다. 2. 해결 app.post('/user/login', (req, res) => { const { us.. 2022. 2. 17.
[mysql] root계정 비밀번호 잃어버렸을때 (M1, homebrew설치) 기존의 설정이랑 수업을 들으면서 따라하던 설정이랑 충돌이 일어났었는지... 진짜 이거 때문에 고생고생 개고생을 했다... 혹시나 또 이런일이 생길까봐, 나처럼 고통받는 사람 있을 까봐 남김. 일단 해결책은 두가지다. 안전모드로 진입해서 비밀번호 인증없이 mysql로 접속하고, 비밀번호를 변경하는 것. 그리고.. 완전히 삭제했다가 지우는것... 1. 안전모드 진입 우선 mysql 서버를 중지 시켜야 한다. $ brew services stop mysql 그리고 프로세스를 확인해보자 $ ps -ef | grep mysql 출력되는 내용이 1줄 보다 많다면 위에 두개를 지워 주면 된다. 대충 이런애가 출력 되는데, 0 옆의 숫자가 PID 넘버다 저걸 이용해서 지워주면 된다. $ sudo kill -9 [PID.. 2022. 2. 17.
[node.js] fetch(async, await)로 로그인기능 만들어보기 0. 목차 1. 개요 2. 기본세팅 3. HTML 4. fetch 5. 결과 1. 개요 수업시간에 ajax 비동기 통신에 대한 내용이 나와서 ajax 검색해보다가, promise 를 리턴하는 fetch 문법 사용이 더 편리할것 같아서 fetch 문법 사용해봄 로그인 기능 만들거임 2. 기본세팅 const express = require('express'); const nunjucks = require('nunjucks'); const session = require('express-session'); const MemoryStore = require('memorystore')(session); const fs = require('fs'); const userList = [ { userid: 'kong12.. 2022. 2. 15.
[node.js] 프론트 없이 POST request 확인하기(feat. 포스트맨) 0. 목차 1. 개요 2. curl 3. Content-type 4. 포스트맨 1. 개요 최근 몇번의 팀플을 위한 팀플 연습..? 을 통해 브랜치를 나누고 깃헙에 push 하면서 프론트와 백을 나눠서 작업하는 걸 해봤다. 프론트와 백이 동시에 작업을 시작했는데, 몇 가지 문제 점이 있었다. 1-1. ..? input name 뭘로 할거임..? 예를 들어 로그인 기능을 만든다고 해보자. id : pw : 로그인 프론트가 신나게 front 브랜치에다가 html 태그를 작성을 했다. 그리고 백엔드도 신나게 user branch 에다가 라우터를 만들었다. app.post('/user/login', (req, res) => { const { id, pw } = req.body; ... res.render('ind.. 2022. 2. 15.
[nodejs] 회원만 이용가능 한 게시판 만들기 (feat. mySQL) 0. 목차 1. 개요 2. DB 3. 파일 쪼개기 4. CRUD 기능개발 5. 후기 1. 개요 2022.02.11 - [경일/nodejs] - [node.js] express-session, mySQL 로그인 기능 구현 [node.js] express-session, mySQL 로그인 기능 구현 0. 목차 1. 개요 2. mySQL 3. 기본셋팅 / 파일 쪼개기 4. 기능개발 5.후기 1. 개요 mySQL 안한지 너무 오래됐다. 까먹을거 로그인기능 mySQL 이용해서 만들거다. 회원가입기능은 다음에.. 2. mySQL 데이터 베 kong-dev.tistory.com 위 포스팅에서 만든거에다가, 회원만 이용가능한 게시판을 만들거다.ㅎ 2. DB user table board table 이런 식으로 디비를 .. 2022. 2. 12.
[mySQL] ERROR 1062 (23000): Duplicate entry '0' for key 'user.PRIMARY' 해결 이런상태였다. pw 는 왜 또 null yes 냐;; 뭐.. 일단 그렇다 치고... _id 를 primary key 로 설정하고싶었다. ALTER TABLE user MODIFY _id INT PRIMARY KEY; 를 입력하면 _id 가 primary key 로 입력 돼아하는데 ERROR 1062 (23000): Duplicate entry '0' for key 'user.PRIMARY' 자꼬 이런 에러가 뜬다 열받게... 프라이머리 키는 중복이 되면 안되는 값인데, 중복이 된다는 내용. 확인을 해보니 이미 들어가 있는 데이터들의 _id 값이 0 으로 들어가있었다. 아 그럼 auto_increment 넣으면 되겠네. ALTER TABLE user MODIFY _id INT (11) AUTO_INCREM.. 2022. 2. 12.
[node.js] express-session, mySQL 로그인 기능 구현 0. 목차 1. 개요 2. mySQL 3. 기본셋팅 / 파일 쪼개기 4. 기능개발 5.후기 1. 개요 mySQL 안한지 너무 오래됐다. 까먹을거 로그인기능 mySQL 이용해서 만들거다. 회원가입기능은 다음에.. 2. mySQL 데이터 베이스에 요렇게 데이터 입력 해놨다. 이거 입력하는건 2022.02.03 - [경일/DATABASE] - [mySQL] mySQL 기본 사용법, CRUD(Create, Read, Update, Delete) [mySQL] mySQL 기본 사용법, CRUD(Create, Read, Update, Delete) 0.목차 1. 개요 2. CREATE DATABASE 3. CREATE TABLE 4. CRUD 1. 개요 https://kong-dev.tistory.com/122?c.. 2022. 2. 11.
[nodejs] express-session 이용해서 로그인 기능 구현 0. 목차 1. 개요 2. 기본세팅 및 임시데이터 생성 3. 라우터 나누기 4. 미들웨어 나누기 5. ?? 이젠 HTML도 쪼갠다고? 6. 기능구현 1. 개요 2022.02.09 - [경일/nodejs] - [nodejs] express-session 사용하기 [nodejs] express-session 사용하기 0. 목차 1. 개요 2. 기본 세팅 3. express-session / MemoryStore 설치 및 적용 1. 개요 2022.02.09 - [경일/nodejs] - [nodejs] 세션으로 구현한 로그인 기능 라우팅 [nodejs] 세션으로 구현한 로그인 기능 라우.. kong-dev.tistory.com 이전 포스팅에서 다룬 express-session 이용해서 로그인 기능 구현해볼거임 .. 2022. 2. 9.
[nodejs] express-session 사용하기 0. 목차 1. 개요 2. 기본 세팅 3. express-session / MemoryStore 설치 및 적용 1. 개요 2022.02.09 - [경일/nodejs] - [nodejs] 세션으로 구현한 로그인 기능 라우팅 [nodejs] 세션으로 구현한 로그인 기능 라우팅 0. 목차 1. 개요 2. express 라우터로 나누기 3. 미들웨어 나누기 1. 개요 2022.02.08 - [경일/nodejs] - [nodejs] 세션 이용해서 로그인기능 만들기 [nodejs] 세션 이용해서 로그인기능 만들기 0. 목차 1. 개요 2.. kong-dev.tistory.com 위의 포스팅에서 가라로 session 을 만들어서(그냥 빈객체 하나 생성해서 사용) session을 통한 로그인 기능을 구현했었다. 이번에.. 2022. 2. 9.
728x90
728x90