프리즈마 공식문서 Custom model and field names Learn how you can decouple the naming of Prisma models from database tables to improve the ergonomics of the generated Prisma Client API. www.prisma.io prisma 사용 하는 이유 • prisma는 Javascript 객체(Object)와 데이터베이스의 관계(Relation)을 연결(Mapping) 해주는 도구입니다. • Prisma는 ORM(Object Relational Mapping)으로 Javascript의 객체와 데이터베이스의 관계(Relation)를 연결합니다. • Prisma의 경우 Model의 형태로 테..
SQL Injection( SQL 주입 ) 웹 애플리케이션이 백엔드에서 구동 중인 데이터베이스에 질의를 하는 과정에 사용되는 SQL 쿼리를 조작하여 데이터베이스를 대상으로 공격자가 의도한 악의적인 행위를 할 수 있는 Injection 기반의 웹 취약점 입니다. 공격자가 SQL Injection 공격에 성공하게 되면 조직 내부의 민감한 데이터나 개인 정보를 획득 할 수 있으며, 심각한 경우에는 조직의 데이터 전체를 장악하거나 완전히 손상시킬 수 있습니다. SQL Injection의 동작 원리 admin' or '1'='1 // 공격자가 아이디입력칸에 입력 비밀번호는 아무거나 입력 공격자가 적은 ID, PW 전송 // http요청을 통해 서버로 전달된 뒤 최종적으로 만들어지는 쿼리 SELECT * FROM ..
관계형 데이터베이스의 데이터 모델의 구성요소중에는 개체, 속성, 관계 이렇게 나뉩니다. 그중 관계는 두개 이상의 개체 간의 연관성을 결정짓는 의미 있는 연결로 개체간의 관계, 또는 속성간의 관계를 나타냅니다. 관계 ■ 일 대 일 ( 1 : 1 ) ■ 일 대 다 ( 1 : N ) ■ 다 대 다 ( N : M ) 일 대 일 관계 ( 1 : 1 ) • 개체 집합 A의 각 원소가 개체 집합 B의 원소 1개와 대응하는 관계입니다. • 즉, 어느 엔티티 쪽에서 상태 엔티티를 보더라도 반드시 단 하나씩 관계를 가지는것을 말합니다. 개체는 정적인 성질과 관련이 있고, 개체들간의 관계는 오퍼레이션을 해결하기 위해 만들어 집니다. 예를 들어 한명의 학생에게는 하나의 학번밖에 존재하지 않습니다. 일 대 다 관계 ( 1 : ..
데이터 무결성 제약 조건 무결성 - 데이터가 결함없이 정확하고 완전한 상태를 의미합니다. ■ 데이터 무결성 제약 조건은 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터 베이스 내에 저장되는 것을 방지하기 위한 제약조건을 말합니다. ■ 테이블에 부적절한 데이터가 입력되는 것을 방지하기 위해 테이블을 설계할 때, 각 컬럼에 대해서 정의한 규칙을 말합니다. 무결성의 종류 개체 , 도메인, 참조, 사용자 정의, NULL, 고유, 키, 관계 무결성 등이 있습니다. 개체 무결성 (NULL 입력 x + 중복허용 x => PK = UNIQUE + NOT NULL) 개체 무결성은 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL값이나 중복값을 가질 수 없습니다. * [학생] 릴레이션에..
연동하기 전에는 Kakao Developers에서 가입후 진행해야합니다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 카카오 API인증 받기 기억하기 - REST API키 기억하기 - Redirect URI(처음만들때는 비어져 있을텐데 이 부분은 서버에서 허가 받은다음 이동할 URL입니다.) EX) http://localhost:3000/user/kakao/finish ※주의 : 이 부분이 같지 않다면 페이지에서 에러가 뜹니다. 같은 경로를 사용해야합니다. 기억해야 할것 정리 - REST API키, Redirect URI, Client Sec..
SQL(Structures Query Language) 이란? • 데이터를 공통적으로 관리할수 있는 표준언어입니다. • 관계대수와 관계해석을 기초로한 혼합 데이터 언어입니다. • 질의어지만, 질의 기능만 있는것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 갖추고 있습니다. • 사용 용도에 따라 DDL( Data Define Language ) - 데이터 정의어, DML( Data Munipulation Language ) - 데이터 조작어, DCL( Data Control Language ) - 데이터 제어어, TCL( Transaction Control Language ) - 트랜잭션 제어어 로 구분됩니다. * 관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도..
Js 유효성 검증을 위한 라이브러리 Joi는 여러 타입과 규칙을 이용해 유효성을 검증할 수 있으며, 유효성 검증에 실패하면 오류를 발생시킵니다. Joi는 클라이언트가 요청한 정보들이 서버로 전달될 떄, 알맞은 형식인지 아닌지 검증하는 작업이 필요하게 되는데 그 때 유효성 검증 작업을 효과적으로 더쉽고 간결하게 작성하 처리할 수 있게 됩니다. Nest.js프레임 워크에서는 Pipe라는 이름으로 불리기도 합니다. Joi패키지 설치 # yarn을 이용해 Joi를 설치합니다. yarn add joi Joi를 이용한 문자열 길이 검증하기 // app.js const Joi = require('joi'); // Joi 스키마를 정의합니다. const schema = Joi.object({ // name Key는 문..
웹 서버에서 요청을 받을 때, 모든 요청에 대한 공통적인 처리를 하고 싶을 때 필요한 것이 미들웨어(Middleware)입니다. 미들웨어 ■ 서버의 요청-응답 과정에서 중간에 위치하여 특정 기능을 수행하는 함수입니다. ■ 모든 요청에 대해서 로그(Logging)를 남기거나, 특정 사용자만 API를 접근(Authentication & Authorization)하게 하고 싶을 때도 미들웨어를 사용합니다. ■ 사용자가 웹페이지에서 Form을 통해 전송한 데이터를 서버에서 쉽게 파싱(Body Parser)하기위하여 사용할수도 있습니다. (express.js Middleware) ■ 다양한 백엔드 리소스에 대한 연결을 관리합니다. 백엔드 데이터베이스에 대한 빠르고 효율적인 액세스를 위해 연결 풀을 생성 할 수 있..