
이번에 새로 시작한 프로젝트의 API설계가 끝났다.생각한 부분과는 다르게 만들어져서 어떻게 구현이 될 지 궁금하다..🤔생각보다 API 설계라는 게 뚝딱 완성되는 게 아니었다..강사님 말씀에 의하면 실무에서 API 설계만 해도 한달이 걸린다던데... 확실히 지금은 적은 양이다 보니금방 뚝딱 끝난 것 같지만 실제론 아니라는 것.. 이번 API 설계 하면서도 많이 고치게 되고 많이 지우게 되었다.또한, 이 API 설계를 토대로 DB도 설계를 해야하니.. 생각보다 개발 전에 할 일이 엄청 많은 것 같다.이렇게 API 설계를 하여도 절대 네버 100% 끝난 설계가 아니다.개발을 하면서 내용이 추가될 수도 삭제될 수도 있으니 달라질 수도 있다는 점 🙄 usersidusernamepasswordcreated_a..

💥 유효성 검사(Validation)유효성 검사는 말 그대로 "사용자가 입력한 값"의 유효성(타당성)을 확인하는 것이다.유효성 검사를 위한 외부 모듈은 express-validator를 사용했다.코드의 일부를 가져와봤다.우선 위에 express-validator를 먼저 require 해준다.마지막 코드처럼 validate 를 모듈형태로 만들어 필요한 곳에 편하게 사용할 수 있도록 만들었다.실제로 전체 코드에서 이 모듈이 총 4번 필요했다. 그래서 이렇게 모듈형태로 만들어 놓고 쓰니 정말 편했다. 사실 위의 코드는 다음 강의 까지 듣고난 후 최종 리팩토링 된 코드이다.3일에 들었던 강의에선 next() 라는 함수가 나오지 않았어서 오류가 하나 있었다.에러를 안 만났더니 그대로 끝나버리는 오류였다. 에러를..

회원가입 회원 개별 조회 회원 로그인 회원 개별 삭제 12월 2일 과제를 왜 이제서야 업로드 하냐고 묻는다면.... 사실 중간에 이해가 안 간 부분이 꽤 있었다.그래서 한 번 더 돌려보면서 다시 한 번 더 작업해보려고 과제를 따로 제출하지 않았었다.당일에 들었을 땐 음.. 이렇게 하면 오류 나지않을려나? 했던 부분들이 있었는데그 부분들은 이후에 유효성 검사와 함께 리팩토링 하면서 해결이 되었었다.또한, 마지막 강의 때 실패해도 201이 뜨는 걸 보고 고쳐보려고 했는데.... 못 고쳤다 ^ㅁ^..역시 아직은 여기까진 아닌가보다 🤣확실히 포스트맨으로 직접 실습해보고 보면서 하니까 왜 오류가 나는 지 이럴 땐 어떻게 해야할 지 등등많은 걸 느낄 수 있어서 좋았던 것 같다.
[BOOK STORE]1. 메인 페이지2. 상세 페이지3. 장바구니 페이지4. 주문서 작성 페이지5. 주문 목록 페이지6 .회원가입 페이지7. 로그인 페이지8. 비밀번호 초기화 페이지이전에 해본 API와 다른 API도 등장할 것 같고, 사용해본 API도 등장할 것 같다.이것 또한 복습이니 이번에도 코드만 따라하는 것이 아니라 제대로 하나하나 다 이해해가며 잘 들어야 할 것 같다. 이번엔 요구사항이 좀 존재하는데, 좋아요를 눌렀을 때 좋아요가 올라간다거나.. 좋아요 전체 수를 보여준다거나..한 페이지에 상품은 8개만 보이게끔하기, 페이지 넘버를 눌렀을 때 페이지가 넘어가게 하기 등..해보지 않은 부분들도 꽤 많아서 기대 반 두려움 반 ㅎ...뭔가 sql은 이렇게 될 것 같고, api는 이런 식일 것 같은데..

💥 JWT(Json Web Token) : json형태의 데이터를 Web에서 안전하게 전송하기 위해 사용하는 Tokencf. 토큰(Token) : (인증용) 입장 가능한 유저 / (인가용) 관리자 권한&일반 유저 권한=> 토큰을 가진 사용자가 "증명"을 하기 위한 수단 💥 JWT의 장점- 보안에 강함! - 서버가 상태를 저장하지 않음! - 서버 부담을 줄여줄 수 있다!cf. 토큰을 발행하는 서버를 따로 만들 수도 있다. 💥 JWT 구조Encoded에 적혀있는 것이 JWT 이다. 아무리봐도 뭔 뜻인 지 1도 모르겠다. "암호화"가 되어있기 때문이다.Decoded는 "복호화"를 했다고 한다. 암호화를 거꾸로 풀어냈다고 보면 된다. JWT는 크게 3가지로 나뉜다.HEADER 와 PAYLOAD, SIGNA..

사이트를 이용하다보면 이런 팝업이 뜨는 경우가 있다.로그인 세션이 만료되었습니다! or 세션이 만료되었습니다. 재로그인 하시길 바랍니다. 등등...유저 입장에선 굉장히 화나는 팝업 중 하나 이다 ㅎ.. 하지만 모든 시스템엔 이유가 있는 법!오늘은 로그인 세션과 쿠키 세션을 알아보려고 한다! 💥 로그인 세션- 세션(Session) : 페이지를 새로 고침하거나 브라우저를 닫았다가 열어도 일정 시간동안 로그인이 유지되어 있는데, '연결'상태를 유지할 수 있게 해주는 것 - 인증(로그인) Authentication ex) 쇼핑몰 상품 볼 때 => 인증X / 상품 구매 => 인증O / 마이페이지 => 인증O : 해당 사이트에 가입된 유저인 지 아닌 지 확인하는 것 - 인가 Authorizationex) 사..

미들웨어, 모듈const express = require('express')const router = express.Router()const conn = require('../mariadb')router.use(express.json()) 회원가입router.post('/join', (req, res) => { if(req.body == {}) { res.status(400).json({ message : `입력 값을 다시 확인해주세요.` }) } else { const { email, name, password, contact } = req.body let sql = `INSERT INTO users (email, name..

DB 테이블 실습 과정은 크게 5가지로 나누었다.1. "Board" 스키마 생성하기2. 사용자 테이블 생성하기3. 사용자 데이터 삽입하기4. 게시글 테이블 생성하기5. 게시글 데이터 삽입하기 스키마를 생성하기 전에, Docker를 켜놓고 mariadb가 있는 컨테이너에 접속한 후 mariadb를 실행해야한다. 1) mariadb가 있는 컨테이너 접속 : docker exec -it mariadb /bin/bash 2) mariadb 실행 : maraidb -u root -p 3) password 입력이렇게 되면 연결이 잘 된 것이다. cmd에 치면 된다. 이제 "Board" 스키마를 생성해보겠다.1. "board" 스키마 생성CREATE DATABASE Board;USE Board; 우선 Board 데이..

💥 데이터베이스데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체 💥 데이터베이스의 목적데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 한다. 💥 DBMS(DataBase Management System)우리는 데이터베이스를 운영하고 관리하기 위해 DBMS를 통해 데이터베이스를 사용한다.날 것의 DB는 굉장히 어렵고 복잡하기 때문에 DBMS를 쓴다고 생각하면 될 것 같다. 모든 시스템에도 브랜드가 있듯이, DBMS에도 종류가 다양하다.하지만, 데이터베이스에 연산을 요청하기 위해 사용되는 주요 명령어는 동일하다. TOP1 . Oracle Database TOP2. MySQL TOP3. MaraiDB 💥 RDBMS(Relational DataBase ..

2024.11.27 - [웹 개발 공부하기] - [11.27] router()를 사용해서 깔끔하게 정리해보기😋💥 express우선, 터미널에npm install express 와npm install express-generator -g 를 쳐서 express와 generator를 설치한다!그 다음, express를 치면 쫘라라라락 내려가면서 왼쪽 explorer 창에 폴더/파일 들이 생긴다! - bin/www : 서버를 실행할 수 있는 스크립트 파일 : HTTP 모듈에 express 모듈을 연결하고 포트를 지정할 수 있는 파일이다. - public : 외부에서 접근 가능한 파일들을 모아두는 폴더 - views : 템플릿 엔진을 기반으로 하는 템플릿 파일들을 모아두는 폴더 - routes : 서버..