쿠키(Cookie)란? 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 사용하는 방법입니다. 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 웹 서버가 웹 브라우저에게 보내는 데이터중 하나입니다. 300개까지 쿠키 저장이 가능하고 하나의 도메인 당 20개의 값만 가질 수 있으며 하나의 쿠키 값은 4KB까지 저장가능합니다. 클라이언트 PC의 쿠키 파일에 데이터를 저장하여 웹 페이지들끼리 공유합니다. 사용자가 따로 설정하지 않아도 브라우저가 request header에 쿠키를 자동으로 넣어 서버에 전송합니다. 클라이언트의 PC에 데이터를 저장하므로 보안에 취약하여, 보안과 무관한경우에 사용합니다. 쿠키는 userId=user-1321;userName=sparta 와..
문제 게시물의 댓글을 조회 하는 과정에서 프리즈마 에러가 떳다. 시도 위 처럼 게시물의 아이디를 못가져오는 것 같아서 받아오는 게시물을 문자열로 받아오나 싶어서 number로 변환을 시켜주었다. 똑같이 에러가뜬다.. 자세히 읽어보니 타입을 BigInt라고 설계했었던걸 알수가 있었다. 타입을 BigInt로 지정해주었다. SyntaxError가 발생하였다.. 다시 잘 읽어보니 req.param은 객체형태로 전달되는데 그 객체를 BigInt로 변환하려고 했기 때문에 발생한걸 알수 있었다. 해결 객체 자체의 값을 꺼내와서 변환해준뒤 실행해주었다. 값이 잘 나오는걸 확인할 수 있다.
프리즈마 공식문서 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값이나 중복값을 가질 수 없습니다. * [학생] 릴레이션에..
Swagger란? 개발한 Rest API를 편리하게 문서화 해주고 프론트 와의 협업에서도 쉽게 API를 호출하고 테스트 할수 있게 해줍니다. 즉, UI를 이용하여 API를 쉽게 테스트하여 개발자가 문서를 작성하지 않아도 되므로 개발 시간을 단축할수있고 API 버전 관리가 용이해지고 다양한 API문서를 통합할 수 있습니다. 패키지 설치 // yarn 패키지 yarn add swagger-ui-express yarn add swagger-autogen // npm 패키지 npm install swagger-ui-express npm install swagger-autogen 모듈 설정 및 경로 설정하기 //app.js import swaggerUi from "swagger-ui-express"; import..
연동하기 전에는 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..