본문 바로가기

포스코x코딩온48

[포스코x코딩온] 풀스택 부트캠프 8주차 정리 -1 (비밀번호 암호화, socket) 비밀번호 암호화 비밀번호를 데이터베이스에 바로 저장해놓으면 해킹의 위험이나 데이터베이스를 관리하는 사람이 멋대로 고객 정보를 활용할 수 있다. 그래서 비밀번호를 암호화해서 저장하는 것이 정배다. 단방향 암호화 복호화가 불가능하다. 그래서 비교할 때 암호화된 값을 통해서 비교한다. 서로 다른 데이터에 대해서도 같은 해시 값이 나올 수 있다. (해시 값 충돌) Hash 방식이 있다. Hash: 해시 함수에 의해 얻어지는 값으로 임의의 크기의 데이터를 (레인보우 테이블을 방지하기 위해 salt나 iteration을 활용해도 됨) 고정된 크기의 데이터로 변환한다. 양방향 암호화 복호화가 가능하다. 대칭키, 공개키 방식이 있다. 데이터의 기밀성을 유지하거나 안전한 통신을 위해 사용한다. 대칭키: 암호화와 복호화에.. 2023. 12. 13.
[포스코x코딩온] 풀스택 부트캠프 7주차 정리 2 - Cookie, Session, dotenv, aws, 서버구축, jwt Cookie 웹 브라우저에 저장되는 key value 쌍의 데이터파일. (key, value, 만료일, 경로정보)로 구성됨 쿠키의 동작 방식 1. 클라이언트가 페이지 요청 2. 서버에서 쿠키 생성해서 HTTP 헤더에 쿠키 포함시켜 응답 (쿠키 만료기간이 있으면 브라우저 닫혀도 사라지지 않음) 3. 클라이언트가 같은 요청을 할 경우 HTTP헤더에 쿠키를 같이 보냄 (요청 + 나 네가 쿠키 준 그 사용자다 어필.) 4. 서버에서 쿠키를 읽어 이전 상태 정보를 변경 할 필요가 있을 때 쿠키를 업데이트 해서 변경된 쿠키를 HTTP헤더에 포함시켜 응답 그냥 서버에서 클라이언트에게 뿌려주는 데이터 조각이라고 생각하면 될 것 같다. app.js const express = require('express'); cons.. 2023. 12. 9.
[포스코x코딩온] 풀스택 부트캠프 7주차 정리 1 - Mysql연동, sequelize mysql 서버측에서 데이터베이스 중 하나인 mysql을 이용할 수 있게 하는 3 party pakage이다. 사용법은 아래 코드 참조. 아래서 볼 수 있듯이 연결된 DB 객체를 바탕으로 query라는 method를 이용해서 쿼리문을 그대로 적어주는 것이 문법이다. 다만 require("mysql2")로 import를 하면 콜백함수만 쓸 수 있고, promise는 사용할 수 없다. 콜백함수를 사용하는 이유 - (데이터베이스에 연결하는 것은 시간이 걸리는 작업이기 때문이다.(비동기), 밑에 있는 코드가 만일 데이터베이스의 결과를 이용하는 구문이라면, 즉 쿼리문이 실행되고 나서 실행되어야 하는 동작이라면, 해당 구문이 완료되기를 기다려야 하기 때문에 콜백함수를 이용한다.) const mysql = requi.. 2023. 12. 5.
[포스코x코딩온] 풀스택 부트캠프 6주차 정리 2 - 파일업로드, MVC 파일 업로드 파일 업로드 또한 form을 활용한다. 다만 form과 input에 적어주어야 할 속성이 있다. 프론트측 html 업로드 위 코드와 같이 form에는 enctype="multipart/form-data", input에는 type="file"로 설정해주어야 한다. * input의 multiple은 여러 파일을 첨부할 때 이용한다. 파일을 업로드하기 위해서는 서버에서 multer 라는 미들웨어를 이용, 저장 경로와 이름 등을 미리 설정해 줘야 한다. -서버측- const uploadDetail = multer({ // storage: 저장할 공간에 대한 정보 storage: multer.diskStorage({ // destination: 경로 설정 destination(req, file, do.. 2023. 11. 30.
[포스코x코딩온] 풀스택 부트캠프 6주차 정리 1 - form전송, 동적 form 전송 form 전송 front (브라우저)측에서 보낸 form값을 back(서버) 측에서 받는 것. form의 method 에 따라 서버측에서 받는 방식이 달라진다. input에서 type을 password라고 잡으면 한글로 입력해도 영어로 자동변환 되니까 알아두자. GET: GET방식의 경우 form 속성(프론트)에서 action:'/ 경로이름' method='GET'으로 설정 서버측에서 app.get('/경로이름', function(req, res) { req.query(에 저장.) }) 정보 가져오거나 검색할 때 쓰임. 서버값이나 상태 변경하지 않을 때 쓰임. URL 쿼리 문자열에 데이터를 실어 전송. POST: POST방식의 경우 form 속성(프론트)에서 action:'/경로이름' method='PO.. 2023. 11. 28.
[포스코x코딩온] 풀스택 부트캠프 5주차 정리 2 - 구조분해 할당, 스프레드 연산자, promise 구조분해 할당 간단하게 말하면 key - value,나 배열 구조를 변수에 할당하는 것. key - value쌍이 경우 변수 - value의 구조로 정의하는 것. // 객체 구조분해 (destructuring) const cookie = { choco: '초코맛', vanilla: '바닐라맛', mint: '민트', } const {mint, choco, vanilla} = cookie; // const {mint: flavor1, choco: flavor2, vanilla: flavor3} = cookie; flavor라는 이름으로 변수를 생성해 할당 // 윗줄의 코드는 const {mint, choco, vanilla} = {choco: '초코맛', vanilla: '바닐라맛', mint: '민트'}.. 2023. 11. 23.