빠르게 결론부터 말하자면 원인은 엔드포인트에 있다.엔드포인트 마지막에 / 를 붙이면 307 Temporary Redirect를 한다. 이유는 이러하다.@app.post("/test/")async def test(): return {"message": "Success"}위와 같이 엔드포인트를 정의 했을 경우/test는 정의된 경로가 아니므로, FastAPI가 /test/로 자동 Redirect하면서 307 응답을 보낸다.따라서 엔드포인트 마지막에 /만 없어지면 문제를 해결할 수 있다.
window 환경에서 fastapi를 통해 개발하다 보면 이상하게 터미널이 먹통이 되어서 ctrl + c를 눌러도 서버가 꺼지지 않고 말을 안들을 때가 있다.이게 문제가 뭐냐면 터미널을 강제 종료할 경우 서버가 종료되지 않은 상태로 유지가 된다. 다시 터미널을 켜서 로컬 서버를 다시 올려도 현재 마운트 되고 있는 서버는 이전 서버라 수정 사항이 반영되지 않는 어이없는 상황이 발생한다. 개발하다 너무 불편해서 구글링을 해본 결과 나와 비슷한 이슈를 겪고있는 사람이 정말 많았고,그렇게 알게 된 해결방법 두 가지를 공유한다.1. 터미널을 통해 작업중인 python 종료이 방법은 터미널에서 명령어를 통해 현재 실행중인 python 프로그램을 모두 종료하는 방법이다.사실 현재 사용중인 8000번 포트를 종료시키는..
Django를 통해 개발을 하다 보면 수많은 Model을 정의한다.Model을 정의하다 보면 매번 같은 필드가 반복된다.예를 들어 object가 생성될 경우 auto_now_add 되는 필드 등은 보통 모든 모델에 존재한다.그렇다면 반복되는 코드들을 줄일 수 있는 방법이 있을까?정답은 있다. 바로 상속을 통해 Model을 구현 가능하다.아래 예제를 보겠다. 아래는 예시 모델이다.class Model1(models.Model): field_1 = models.CharField(max_length=10) field_2 = models.BooleanField(default=True) created_at = models.DateTimeField(auto_now_add=True) update..
오늘은 Django 하나 만으로 프론트엔드와 백엔드를 구현하고자 하는 사람들을 위해Django에서 어떻게 html을 렌더링하고 static 파일을 불러오는지 알아보고 실습을 해보기로 하겠다.우선 기본 프로젝트 구조는 이러하다. django_project/├── django_project/├── app1/├── app2/└── manage.py1. templates 디렉토리, static 디렉토리 생성우선 html 파일과 static 파일을 모아놓기 위해 각 디렉토리를 생성하도록 하겠다.root 폴더 아래에 만들면 되고, 위치는 manage.py, 앱과 같은 위치이다.앱을 만들 때 createapp을 하는 것 처럼 명령어로 만들 필요는 없고 그냥 만들어줘도 된다.django_project/├── djang..
실제 서비스를 운영하다보면 사업자등록정보에 대한 진위여부 혹은 상태조회를 해야할 때가 있다.이번에는 국세청에서 제공하는 사업자등록정보 진위확인 및 사업자등록 상태조회 API 서비스 사용법에 대해 알아보겠다. 1. 국세청 사업자등록정보 진위확인 및 상태조회 API란?국세청 사업자등록정보 진위확인 및 상태조회 API는 한국 국세청이 제공하는 서비스로, 특정 사업자등록번호의 유효성과 상태를 확인할 수 있는 API이다. 이 API는 주로 온라인 서비스 제공자나 플랫폼 운영자가 사업자의 등록 정보를 검증하거나, 해당 사업자가 정상적으로 영업 중인지 확인하기 위해 사용된다. 주요 기능은 아래와 같다. 1) 사업자등록번호 진위확인 • 입력된 사업자등록번호가 실제로 국세청에 등록된 번호인지 확인 • 올바른 사업자등록..
이번에 새로운 프로젝트를 진행하게 되었다.프로젝트 기획 회의 중 이번에는 테스트코드를 제대로 활용하는 방안으로 가는 것으로 이야기가 나왔다.테스트코드에 대해서 깊게 알지 못했던 나는 이번 기회를 통해 테스트코드 즉 TDD에 대해 살펴보고 연습해보기로 했다.1. TDD란 ?테스트 주도 개발(TDD, Test-Driven Development)테스트를 먼저 작성한 후 그 테스트를 통과하기 위한 최소한의 코드를 작성하고, 이후에 리팩토링을 통해 코드를 개선하는 개발 방법론이다. * TDD의 세 가지 주요 단계 1) Red (실패하는 테스트 작성)• 원하는 기능에 대한 테스트를 작성하지만, 아직 기능이 구현되지 않았기 때문에 테스트가 실패 • 예: 특정 URL로 요청하면 “Hello, world!“를 반환해..
***해당 글은 CORS에 대한 기본적인 배경과 개념도 다루고 있습니다.시간이 없어서 바로 해결 방법을 확인하실 분은 3번으로 바로 가주세요! 1. CORS 배경 이해하기웹개발을 하면서 누구나 마주하게 되는 악명높은 CORS 오류에 대한 모든 것을 이야기 해보겠다.모든 오류는 구조를 알아야 올바르게 해결할 수 있다.우선 CORS를 이해하기 위해서 선행으로 알아야 하는 개념이 있다. * SOP (Same-origin policy) SOP (Same-origin policy), 동일 출처 정책이라고 부른다.이는 브라우저가 다른 출처에서 로드된 자원과 상호작용 하지 못하도록 요청 발생을 제하하고,동일 출처 (Same Origin)에서만 접근이 가능한 정책이다. 동일 출처, 다른 출처? 대체 출처가 뭔데? * ..
간단한 기능 테스트를 위해 React 프로젝트를 생성하는데 오류가 발생했다. 오류 내용을 간단히 살펴보니 React의 버전 충돌로 인한 의존성 문제로 확인된다.현재 프로젝트에서는 19.0.0 버전이 사용중인데 특정 라이브러리가 18.0.0을 요구하고 있다는 내용이다. 해결 방법 1 npm이 의존성 충돌을 자체적으로 해결할 수 있도록 --legacy-peer-deps 플래그를 사용해 설치npx create-react-app --legacy-peer-deps 해결 방법 2 생성된 프로젝트로 이동 후 React 버전을 다운그레이드npm install react@18 react-dom@18