본문 바로가기

portfolio

(17)
FASTAPI와 mongoDB ODM을 활용한 CRUD , SEARCH 엔드포인트 구축 fastapi엔드포인트에 mongodb 비동기 ODM으로 사용할 beanie CRUD 구축 1. Question모델의 answers필드가 Answer의 모델을 참조하고 빈객체를 넣어 질문에 답변들을 달수 있게 구성하였다. # 모델 정의 class Answer(Document): id:str content: str class Question(Document): id:str title: str description: str answers: List[Answer] = [] 1-1. pydantic의 BaseModel을 상속받아 데이터 유효성검사를 위해 모델의 스키마를 정의한다. 생성스키마, 업데이트 스키마를 따로 구분하였다. 여기서 스키마란 데이터의 구조와 명세를 의미한다. # Pydantic을 이용한 질문,..
리액트 노드 socket.io를 활용한 실시간 영화예매시스템 구축 서버에서 socket.emit 이벤트함수를 발신하고 클라이언트에서 이벤트를 발생시켜 socket.on 함수로 수신하면 실시간으로 양방향 통신이 가능하다. server.jsio.on("connection", (socket) => { console.log("A user connected"); // 클라이언트가 'requestData' 이벤트를 보내면 데이터베이스 조회 socket.on("requestData", () => { const query = "SELECT * FROM seats"; // 데이터베이스 조회 실행 db.query(query, (err, results) => { if (err) { // 에러가 있다면 클라이언트에 에러 전송 socket.emit("dataResponse", { status..
장고(DRF) + 리액트 REACT.JS 포트폴리오 2 이전에 이어지는 내용들입니다. https://devttaemppang.tistory.com/2 장고(DRF) + 리액트 REACT.JS 포트폴리오 1백엔드 Django rest framework + 프론트 React.js 그리고 디자인은 부트스트랩5를 사용하여 서점 사이트를 구현해 보았다. 또 찜하기 기능도 만들어보았다 (Context API를 통해 전역 값으로 데이터를 뿌려주devttaemppang.tistory.com 장고 API 데이터 요청을 리액트 비동기로 받아오려면 async-await를 사용해야하고 try-catch로 묶어줘야 에러핸들링이 되면서 콘솔로 에러원인을 파악할 수 있다. 상세페이지 동영상
장고(DRF) + 리액트 REACT.JS 포트폴리오 1 백엔드 Django rest framework + 프론트 React.js 그리고 디자인은 부트스트랩5를 사용하여 서점 사이트를 구현해 보았다. 또 찜하기 기능도 만들어보았다 (Context API를 통해 전역 값으로 데이터를 뿌려주었다) 하지만 찜하기 했던것들이 새로고침하면 사라져서 localstorage를 사용해서 브라우저에 저장해 보았다. 앞에 작업과 이어지는 내용입니다 https://devttaemppang.tistory.com/3 리액트 try-catch, 리액트+장고(DRF) 작업물 완성장고 API 데이터 요청을 리액트 비동기로 받아오려면 async-await를 사용해야하고 그리고 try-catch로 묶어줘야 에러핸들링이 되면서 콘솔로 에러원인을 파악할 수 있다. 상세페이지 동영상devttaem..
python GPT3.5 turbo모델을 사용하여 데이터베이스 객체 조회하기 from openai import OpenAI client = OpenAI(api_key='') def find_product(sql_query): # 쿼리 실행 results = [ {"name": "pen", "color": "blue", "price": 1.99}, {"name": "pen", "color": "red", "price": 1.78}, ] return results sql_query데이터베이스에서 가격이 2.0미만의 제품을 조회하려고 한다. 1. 먼저 함수객체의 세부정보를 정의한다.# 함수 객체 세부정보 정의 functions = [ { "name": "find_product", "description": "sql 쿼리에서 제품 목록 가져와", # 함수 인자에 전달 될 매개변수 정의 ..
웹 보안 HTTPS 설정 https://www.yes24.com/Product/Goods/124156282 프런트엔드 개발을 위한 보안 입문 - 예스24지금이라도 알아두면 쓸데 있는 취약성 관리 대책프런트엔드 분야의 발전으로 다양한 기능과 UI를 개발할 수 있게 됐지만, 그만큼 프런트엔드와 관련된 보안 문제도 많아졌다. 이 책은 보안 관www.yes24.com 1. HTTP통신은 보안과 관련해 세가지 취약점이 있다. - 통신 데이터 도청이 가능하다 -> 은닉하는 구조가 필요하다. - 통신 상대의 진위 여부 확인이 어렵다 -> 통신 상대의 진위 여부를 검증하는 구조가 필요하다. - 통신 과정에서 데이터 수정 여부가 확인이 안된다.... -> 해커의 통신 과정에서의 수정을 막기위해서는 데이터의 결함이나 무결성을 보장할 수 있는 구조..
리눅스 grep 명령어 , 파이프 라인 활용 1. grep - 입력한 문자열에 일치하는 부분을 찾아 출력하는 기능 2. 파이프라인 활용 -> 각 원하는 조건에 맞게 | 기호를 붙인다. https://www.yes24.com/Product/Goods/123878910 효율적인 리눅스 명령어 사용의 기술 - 예스24리눅스 마스터인 저자의 노하우를 바탕으로 리눅스 스킬 레벨 업!더 빠르고, 스마트하고, 효율적인 커맨드 라인 작업 스킬을 익히자!리눅스 명령어는 방대하기 때문에 모든 명령어를 다 외워서 www.yes24.com
mongoDB search INDEX 인데스란 전체 데이터 조회할때 속도를 높이는 것을 말한다 인덱스 구조는 B-TREE로 되어있고 지금부터 node js를 사용해 실습을 해보겠다. const MongoClient = require("mongodb").MongoClient; const url = "mongodb+srv://id:password@클러스터정보/test?(데이터베이스이름)retryWrites=true&w=majority"; const client = new MongoClient(url, { useNewUrlParser: true }); const express = require("express"); const app = express(); async function main() { try { await client.connect(..