분류 전체보기(44)
-
[JavaScript] API에 요청하고 결과를 받아올때까지 기다리기: async, await
async, await API에 요청한 것을 받아올때까지 기다려야 할 때가 있습니다. 그러나 일반적인 코드로 작성하면 요청을 해놓고 바로 다음 줄의 코드가 실행되어 문제가 되는 경우가 있습니다. 이럴 때 async, await를 사용하면 작업이 처리될때가지 기다렸다가 처리가 완료되면 다음 코드가 실행됩니다. async와 await는 다음의 특징이 있습니다. 비동기 코드를 동기 코드처럼 실행할 수 있습니다. 함수 앞에 async를 붙이면 함수가 promise를 반환합니다. await를 사용하면 promise가 처리될때까지 기다렸다가 처리가 완료되면 다음 코드부터 실행됩니다. async, await 사용하기 함수의 이름 앞에 async를, 요청이 완료될 때까지 기다릴 작업의 앞에 await를 붙입니다. aw..
2022.09.01 -
[React] 함수형 컴포넌트에서 상태를 변화시키기: useState()
useState() 클래스형 컴포넌트에서는 this.state로 상태를 관리합니다. 함수형 컴포넌트에서는 Hook이 도입되면서 useState()로 상태를 관리할 수 있게 되었습니다. useState()의 특징은 다음과 같습니다. useState(state)는 초기의 state값을 받아서 초기화해야합니다. 이 값은 처음 렌더링이 될 때 사용됩니다. 함수형 컴포넌트의 최상위에서 실행되어야 하며 반복문, 조건문, 중첩된 함수 내에서는 실행하면 안됩니다. 클래스형 컴포넌트의 this.state 기능과 똑같으며, 함수가 끝나도 상태가 남아있습니다. useState() 사용 방법 App.js에 다음 내용을 추가합니다. import React, { useState } from "react"; function App..
2022.08.31 -
[React] 컴포넌트가 렌더링 될 때 작업 실행하기: useEffect()
useEffect() React로 만든 웹페이지는 한 개의 페이지에 여러개의 컴포넌트로 이루어져 있습니다. 그리고 만약 일부 컴포넌트에서 변동이 있다면 React는 페이지 전체를 처음부터 새로 만드는 대신에, 기존 웹페이지와 비교하여 차이가 있는 부분만 ReactDOM에 알려서 이 부분만 새로 렌더링을 시킵니다. 그리고 이렇게 렌더링이 될 때마다 비동기로 추가적인 작업(Side Effect)을 실행해야 할 때도 있습니다. 가령 API에 요청해서 값을 받아왔을 때 컴포넌트를 새로 렌더링해서 이 값을 업데이트 시키고 싶을 때가 있습니다. 이럴 때 바로 React Hook인 useEffect()*를 사용하면 됩니다. * 기존의 클래스형 컴포넌트에서는 React의 생명 주기에 기반하여 componentDidMo..
2022.08.30 -
[Python] 일정한 주기나 특정 시간에 코드 실행시키기: Apscheduler
Apscheduler 일정한 주기마다 실행되어야 하는 코드를 예약할 수 있는 Python 기반 스케쥴링 라이브러리입니다. 데몬이 아니며 앱 내부에서 실행됩니다. BlockingScheduler: 하나의 프로세스에서만 동작하며 스케쥴링 된 작업이 실행될때 다른 작업은 일시중단됩니다. BackgroundScheduler: 백그라운드에서 동작하며 스케쥴링 된 작업이 실행될때 다른 작업도 할 수 있습니다. Apscheduler 설치하기 터미널을 키고 다음을 입력합니다. pip install apscheduler Apscheduler 사용하기: BackgroundScheduler BackgroundScheduler 객체를 초기화하고 그 객체의 add_job()를 실행해서 작업을 예약합나다. 1. 특정 시간에 주기..
2022.08.29 -
[Django] 서버의 DB를 RESTful API로 접근하기: Django-rest-framework
Django-rest-framework RESTful API에 해당합니다. Model-View-Controller(MVC) 패턴을 따릅니다. RESTful API REST의 원리*를 따르는 API입니다. * HTTP URI/ HTTP Method/ HTTP message pay load REST API의 설계 규칙을 지켜야 합니다. 1. URI는 정보의 자원을 표현해야 합니다. 2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현해야 합니다. Django-rest-framework 사용하기 1. Django-rest-framework를 설치합니다. pip install djangorestframework 2. Django 프로젝트와 앱을 생성합니다. 3. set..
2022.08.25 -
[Django] CORS 해결하기: django-cors-headers
CORS(Cross-Origin Resource Sharing) 클라이언트가 서버에 요청할 때, 포트, 호스트, 스킴을 비교해서 출처가 같아야 합니다. CORS를 위반해도 서버는 정상적으로 응답을 합니다. 웹 브라우저가 판단해서 CORS 위반이라면 응답을 파기합니다. Django에서 CORS를 해결하기 1. 터미널에서 다음을 실행하여 django-cors-headers를 설치합니다. pip install django-cors-headers 2. settings.py에 다음을 추가합니다. 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware'는 MIDDLEWARE의 최상위에 위치해야 합니다. INSTALLED_..
2022.08.21