본문 바로가기

분류 전체보기

(81)
장고(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통신은 보안과 관련해 세가지 취약점이 있다. - 통신 데이터 도청이 가능하다 -> 은닉하는 구조가 필요하다. - 통신 상대의 진위 여부 확인이 어렵다 -> 통신 상대의 진위 여부를 검증하는 구조가 필요하다. - 통신 과정에서 데이터 수정 여부가 확인이 안된다.... -> 해커의 통신 과정에서의 수정을 막기위해서는 데이터의 결함이나 무결성을 보장할 수 있는 구조..
내장과 상속은 다르다 내장은 구조체를 다른 구조체 안에 내장하는 방법이고 상속과는 별개이다 예제코드를 보면 Bark 메서드를 오버라이드를 하여 상속한것처럼 보이지만 Dog객체를 인수로 받는 DogVoice메서드에 다른 객체인 BullDog, ShibaInu객체를 변수로 대입할 수 없다. 왜냐하면 내장은 상속과 다르기 때문이다.package main import "fmt" type Dog struct{} func (d *Dog) Bark() string {return "Bow"} type BullDog struct{Dog} type ShibaInu struct{Dog} /*오버라이드*/ func (s *ShibaInu) Bark() string {return "멍"} /*Dog객체를 인수로 받아 나중에 DogVoice()메서드..
채널 SELECT 활용 1. 중단알림이 올 때까지 case문을 만나서 여러 채널들을 동시에 실행한다 여러 채널을 동시에 반복하고 싶으면 for문을 넣는다. package main import ( "fmt" "sync" "time" ) /*sync.WaitGroup 모든 작업이 완료될때까지 기다린다.*/ func square(wg *sync.WaitGroup, ch chan int, quit chan bool) { for { select { case n :=
파이썬 객체생성 초기화__init__ , SELF 매개변수 1. 클래스 객체를 만들때 __init__ 인스턴스를 초기화해야한다.def __init__(self): self.switchIsOn = False 1-1. 매개변수 self는 클래스 객체 스코프에 속한 모든 메서드에 접근이 가능하다 그리고 모든 객체 메서는 반드시 매개변수 self가 있어야한다.class LightSwitch(): # 클래스 객체를 만들때 인스턴스를 초기화해야한다. # 매개변수 self는 클래스 객체 스코프에 속한 모든 메서드에 접근이 가능 def __init__(self): self.switchIsOn = False def turnOn(self): self.switchIsOn = True def turnOff(self): self.switchIsOn = False # turn on,of..
네트워크 기초 서브넷팅 서브넷은 하나의 네트워크가 분할된 작은 네트워크이고 또 작은 네트워크로 나누는 작업을 서브넷팅이라고 한다. 서브넷팅을 하는 이유는? IP주소 낭비를 방지하기 위해 네트워크를 분할하여 효율적으로 사용하기 위해서이다. IP주소에는 네트워크ID와 호스트ID가 있고 또 호스트ID에서 서브넷팅으로 분할하면 서브넷ID와 호스트ID로 나눠진다. 서브넷팅 실습 네트워크 주소는 172.16.0.0 서브넷 마스크 255.255.0.0 먼저 네트워크주소를 2진수로 나타내면 10101100 00010000 00000000 00000000 (굵게 표시된 호스트 부분은 B클래스에서는 10으로 표시된다.) B클래스인 경우 앞에 16비트는 네트워크ID, 뒤에 나머지 16비트는 호스트 ID로 나눠진다. B클래스로 나타내면 호스트ID ..
Rust 아토믹(atomic)연산 스레드 아토믹 연산자를 사용하면 여러 스레드가 안전하게 동일한 변수를 읽고 변경할 수 있다. Ordering::Relaxed는 순서 제한은 없으며 원자적 작업만 가능하다. while인자에 load메서드로 감싼 some_work메서드는 Relaxed의 영향을 받는다 (load메서드는 아토믹 변수에 저장된 값을 읽는다 즉 Relaxed로 설정한 인자 값을 읽는다) store 메서드 인자에 Relaxed의 논리값을 true로 설정해서 load메서드를 통해 읽어들어서 백그라운드 스레드가 실행되어break 명령을 만날때까지 스레드가 계속 실행된다(store메서드는 값을 수정하더라도 독자적 참조가 아닌 공유참조를 사용한다.) 종료프로그램 코드예시use std::sync::atomic::AtomicBool; use std:..