목록전체 글 (252)
Joonas' Note
오류 Beanie Document를 사용하는 Pydantic 모델을 pytest에서 사용하려고 할 때, collection이 초기화 되지 않았다는 오류가 나오면서 테스트 실행 자체를 실패한다. MongoDB와 관련해서 초기화를 하지 못했다는 내용 같은데, fixture 같은 걸로 테스트 실행 전에 아래처럼 추가해줘도 마찬가지로 발생한다. @pytest.fixture(autouse=True) async def test_client(): client = AsyncMongoMockClient() await init_beanie(document_models=[TestModel], database=client.get_database(name="db")) 계속 발생하는 beanie.exceptions.Collect..
아래의 글을 먼저 읽고 진행하시는 것을 추천한다. [FastAPI + React] 소셜 로그인 구현하기 - 구글 로그인 아래 글에서 이어지는 내용입니다. [FastAPI + React] 소셜 로그인 구현하기 - 이메일 로그인 아래 글에서 이어지는 내용이다. [FastAPI + React] 소셜 로그인 구현하기 - 기본 환경 구축 들어가기 전에 Reac blog.joonas.io 들어가기 전에 Google, GitHub, Microsoft 등은 FastAPI Users에서 친절하게 구현을 미리 해주었습니다. 하지만 카카오와 같은 국내 기업들에 대한 로그인은 구현되어 있지 않다. 그래서 이 글에서는 클래스를 오버라이딩해서, 기존에 작성한 FastAPI Users와 완전히 호환되는 로그인을 구현한다. Fast..
아래 글에서 이어지는 내용입니다. [FastAPI + React] 소셜 로그인 구현하기 - 이메일 로그인 아래 글에서 이어지는 내용이다. [FastAPI + React] 소셜 로그인 구현하기 - 기본 환경 구축 들어가기 전에 React는 CRA(Create React App)를 통해 생성한 어플리케이션을 사용하며, 여기서는 5.0.1 버전을 사 blog.joonas.io 들어가기 전에 FastAPI에서 구글 로그인을 지원하는 많은 패키지들이 있다. 우리가 설치한 FastAPI Users에서도 지원하는 방법이 있다. 하지만 이제까지 검색해서 확인한 방법들은 상황이 달랐다. FastAPI 에서 라우팅을 한다고 가정하고 작성된 방법들이 많았었고, 그래서 구글 인증 후에 돌아오는 redirection에 문제가 ..
아래 글에서 이어지는 내용입니다. [FastAPI + React] 소셜 로그인 구현하기 - 기본 환경 구축 들어가기 전에 React는 CRA(Create React App)를 통해 생성한 어플리케이션을 사용하며, 여기서는 5.0.1 버전을 사용했다. 나머지 모듈들은 package.json에서 확인할 수 있다. FastAPI는 0.83.0 버전을 사용했고,. blog.joonas.io 이 글의 목표 Backend는 FastAPI users를 사용해서 라우팅까지 전부 간단하게 구현이 끝났다. 그럼 API에서 생성된 유저 관련 라우터들을, 아래와 같이 React에서 사용할 수 있도록 연동해보자. 전체 내용 앞으로 구현할 내용은 간단하다. 리액트에서 폼을 만들어서, 백엔드의 로그인 엔드포인트로 요청하면, 받은 ..
들어가기 전에 React는 CRA(Create React App)를 통해 생성한 어플리케이션을 사용하며, 여기서는 5.0.1 버전을 사용했다. 나머지 모듈들은 package.json에서 확인할 수 있다. FastAPI는 0.83.0 버전을 사용했고, 그 외에 필요한 패키지들과 버전은 requirements.txt에 적혀있다. 이 글에서는 백엔드로는 RESTful한 API 서버를 FastAPI로 구축하고, 프론트는 React를 별도로 실행한다. 두 프레임워크 모두 기본적인 내용만 다루어도 글이 너무 길어지므로, 각 프레임워크의 기본 예제를 모두 사용했다는 것을 가정하고 글을 작성할 예정이다. React 한국어 튜토리얼 - https://ko.reactjs.org/tutorial/tutorial.html F..
--orphan 옵션으로 체크아웃하면, 이전 히스토리가 아예 없는 새로운 브랜치가 만들어진다. git checkout --orphan brand-new-branch 위 커맨드를 실행하면 brand-new-branch라는 이름으로 새로운 브랜치가 생기는데, 이전 히스토리가 없다. 이대로 커밋을 하나 쌓아보면 이렇게 된다. 참고 How to create a new (and empty!) "root" branch? I would like to define a new "root" branch in this git repository. By "root" branch I mean a branch that is entirely independent of all the other branches in the repos..
JUnit5에서는 4가지 Lifecycle 관리 annoation을 제공한다. JUnit4에서도 있었지만 이름이 바뀌었다. @BeforeAll - (JUnit4 @BeforeClass) @BeforeEach - (JUnit4 @Before) @AfterAll - (JUnit4 @AfterClass) @AfterEach - (JUnit4 @After) Lifecycle 관리 단위를 클래스마다로 바꿀 수 있는데, 호출 순서가 조금 바뀐다. 클래스 인스턴스가 생성되고 호출되므로, @BeforeAll과 @AfterAll은 더 이상 static 함수가 아니어도 된다. 실제 코드는 아래와 같다. HTML 삽입 미리보기할 수 없는 소스 출력이나 클래스 내부 변수의 상태를 확인해보면, 상태가 다른 것을 확인할 수 있다.