| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- https://ittrue.tistory.com/90
- 참고자료 https://velog.io/@imok-_/javascript-dom-bom-%ec%9d%b4%eb%9e%80
- https://developers.kakao.com/
- Today
- Total
목록2025/03 (10)
쿠쿠더님의 블로그
저번에 올린거에서 DB를 연결할때 패스워드가 대놓고 보이는 상황을 보셨을꺼예요. 근데 그렇게쓰면 제 USER정보가 누구다 알수있겠줘 그래서 그걸 보안하기위해 dotenv라는 라이브러리를 써서 mysql정보를 보관합니다 . 그럼 이제 env에 대해서 알아보아야겠져??? env란? 어플리케이션 및 웹 개발 중 외부에 공개되면 안되는 정보.이러한 정보가 하드 코딩으로 구성 파일에 포함되면 깃허브나 기타 오픈소스에서 관련 정보들이 노출된 위험이 있음.또한 서버나 토큰 정보가 수정될 경우 하드코딩을 하였기 떄문에 코드를 다시 수정하여 배포해야 하는 문제점도 있다.이때 이러한 문제를 해결하기 위해 env 파일을 사용합니다 . .env 파일 문법DATABASE_USER=sangDATABASE_PASSWORD=f..
JOIN 이란JOIN의 종류 제약조건이란ERD 관계 표현 기록 JOIN 이란 관계형 데이터베이스에서는 중복 데이터를 피하기 위해서 데이터를 쪼개 여러 테이블로 나눠서 저장합니다.이렇게 분리되어 저장된 데이터에서 원하는 결과를 다시 도출하기 위해서는 여러 테이블을 조합할 필요가 있습니다.관계형 데이터베이스에서는 조인연산자를 사용해 관련 있는 컬럼 기준으로 행을 합쳐주는 연산입니다. JOIN의 종류 INNER JOIN : 내부의 조인 SELECT * FROM [테이블1 명] INNER JOIN [테이블2 명] on [테이블1 명].id = [테이블2 명].student_id LEFT JOIN(왼쪽이랑 겹치는거 ) SELECT * FROM [테이블1 명] LEFT JOIN [테이블2 명] on [테이블1 명..
일단은 간단하게 nodejs에서 mysql 을 까는법을 알려주겠습니다 일단은 node.js에서 mysql을 쓸려면 npm i mysql2 로 mysql라이브러리를 다운해줘야합니다 그래야 사용할수 있고 mvc 모델중 m 인 model 에서 연결하는데 const mysql2 = require("mysql2"); // mysql 라이브 러리 불러오기 const mysqlConnect = mysql2.createConnection({ user : "sang", // 내가 만든 user 이름 password : "fkdl1234", // 비번 나중에는 여기서는 안보이게 할꺼입니다.. multipleStatements : true, // 다중 쿼리용 설정입니다. database : "p..
데이터베이스 란?데이터베이스 장점 단점SQL데이터 베이스의 발전 데이터베이스 관리 시스템(DBMS)SQL(Strurured Query Language)데이터베이스의 작업 단위 트랜잭션 작업 단위의 원칙 MYSQL 관계형 데이터베이스의 개념 데이터 베이스란 ? 정보를 규칙적 체계적으로 저장 관리 하기 위한 시스템이다.소프트웨어를 개발할때 필요한 데이터를 효율적으로 관리 하기위해서 사용하는것. 장점단점데이터 독립성비용적인 문제 ( 공짜도 많은)데이터의 중복 통제 가능백업과 회복 방법이 복잡하다.데이터 동시 공유중앙 집중 관리로 인한 취약점 존재 데이터베이스 권한 검증을 통한 보안 데이터 베이스의 발전 파일 시스템 데이터베이스의 발전 파일 시스템 초기의 데이터 저장 방식은 파일 시스템이다. 계층형 데이..
FrountEndBackEndFrountEnd - 사용자의 UI를 관리하는 API를 분리BackENd - 단순한 데이터의 요청만 처리하는 API 요청의 주체가 자바스크립트이면 프리플라이트 요청을 검증을 한뒤에 요청과 응답을 처리해야한다.요청 주체가 어디인지 판단해야 로직을 직접 구현을 할수있다.같은 도메인일 경우는 프리플라이트 요청이 발생하지 않는다.프론트 엔드 서버는 우리가 배포를 진행하는 서버이고 브라우저에 화면을 보여주는 도메인이 프론트엔드 서버프론트 엔드에서 자바스크립트로 요청을 보낼때 프리플라이트 요청을 허용해서 사용하면 된다.우리가 프리플라이트 요청이 발생하지 않은 이유는 SSR환경에서 서버간에 요청 응답을 처리하고 있기 때문.서버에서 html만 배포 CSR 자바스크립트 로직에서 axios로 ..
CORS (cross origin resourse shring)CORS는 웹의 보안정책들 중에서 하나로 웹 어플리케이션의 서로 다른 도메인의 리소스를 접근할때 발생하는보안의 이슈로 제어하기위한 정책을 해결하기 위한 방안이다. 쉽게 한줄로 보안은 유지하되 요청과 응답간에 서로 다른 도메인의 서버여도 리소스의 접근이 가능하게 해결한다. 웹 브라우저 보안 정책 (same-origin-policy)요청을 보낼때 헤더의 내용의 출처가 허용된 도메인인지 검증을 해서 해결같은 도메인의 출처가 아닌경우 데이터의 요청과 응답을 허용하지 않는다.CORS 원리특정 출처에 요청을 허용할수 있도록 하는 로직 개념1. preflight 요청 즉 사전에 허용한 출처인지 검증하는 요청 - 다른 도메인에서 요청이 발생하면 프리플라이..
AjaxFetchAxiosCors일단 AJax 와 Fetch 와 Axios 와 Cors란 - form 태그를 사용해서 요청을 보내고 응답을 처리하는 로직- 태그로 요청을 보냈을때 요청을 받아서 처리하는 주체는 브라우저 페이지- 쉽게 말해서 결국 페이지의 새로고침을 통해 새로운 페이지의 내용을 동적으로 보여준다.- 요청과 응답의 주체를 자바스크립트 로직으로 처리를 하게 로직을 작성 Ajax초기에 웹페이지에서는 모든 데이터를 받아서 처리하고, 페이지의 새로고침 없이 데이터를 화면에 보여주기는 불가능하다. 데이터를 가지고 따로 페이지 새로고침 없이 사용자의 UI를 보여주는데 무리가 있다.데이터를 응답받아서 새로고침 없이 화면을 구성할수 있는 기술을 개발하기 시작XMLHttpRequest라는 객체를 만들었고 a..
파일 업로드 Multer웹에서 파일을 업로드구조 MIME 타입Multer 설치방법 npm i multer 다운은 받은뒤 const multer = require('multer'); 사용하면 된다. 파일 업로드 MUlter - express 환경에서 파일의 업로드를 처리하는 미들웨어를 제공- 파일을 업로드해서 미들웨어에서 메모리에 파일을 저장하는 기능 웹에서 파일을 업로드- form 요소로 파일을 업로드를 했고 데이터를 효과적으로 관리하기 위해 mutipart/form-data 방식을 사용하게되었다.- 업로드한 파일의 파싱 내용도 요청 객체에 생성한다. 구조 - mutipart/form-data 형식의 데이터를 처리하기위해 스트림을 사용한다.- 우리가 원하는 작업 폴더에 파일을 저장한다.- 스토리지 옵션..