본문 바로가기

728x90
반응형

Language/Python

(47)
[Oauth] Python으로 KaKao Oauth Login Test하기 HTML 삽입 미리보기할 수 없는 소스 개요 과거 Google Oauth 로그인을 Python으로 테스트하기에 앞서 다음과 같은 라이브러리가 필요했었다. google-api-core==2.14.0 google-api-python-client==2.108.0 google-auth==2.23.4 google-auth-httplib2==0.1.1 google-auth-oauthlib==1.1.0 이번엔 KaKao Oauth Login(이하 KaKao Login)을 Python으로 테스트해 봤는데. 테스트하는 과정에서 KaKao Login을 위한 Python 라이브러리를 따로 찾을 수 없었다. 머리를 굴려보다 Python에서 KaKao Login을 테스트해보기 위한 방법으로 requests_oauthlib을 이..
[SQLALchemy] Imperative Mapping, Eager/Lazy Loading HTML 삽입 미리보기할 수 없는 소스 개요 SQLAlchemy의 imperative mapping 방식을 계속 다루다 보니 Repository라고 정의한 계층에서 Session Query를 많이 작성하게 된다. 예를 들어 다음과 같은 형식이다. session.query(MemberEntity).filter(MemberEntiy.id == member_id) 만약 join을 사용한다면 Session Query를 아래와 같이 작성한다. session.query(MemberEntity) .filter(MemberEntity.id == member_id) .outerjoin(MemberProfileEntity.member_id == member_id) 위와 같이 Session Query를 작성하는 게 어색하게..
[TroubleShoot] no such file libmysqlclient.21.dylib HTML 삽입 미리보기할 수 없는 소스 Notes 맥북의 brew를 업데이트하고 나니 잘 돌아가던 python-mysqlclient가 동작하지 않게 되었다. driver를 pymysql로 변경하면 문제는 피해갈 수 있지만 MySQLdb(mysqlclient) 쪽이 성능이 더 좋다고 하니 해당 이슈를 해결해보도록 하자. 증상은 다음과 같다. "libmysqlclient.22.dylib" 파일과 이와 관련된 다른 파일도 찾을 수 없다는 에러이며 "libmysqlclient.22.dylib"가 아니라 다음과 같이 "libmysqlclient.21.dylib"도 같은 증상이 일어날 수 있다. Reason: tried: '/opt/homebrew/opt/mysql-client/lib/libmysqlclient.2..
dependency-Injector로 Repository Pattern 사용하기 HTML 삽입 미리보기할 수 없는 소스 1. 개요 어떤 API를 만들던 웬만해서는 repository pattern을 사용하고 있는 중이다. 처음엔 장단점을 의식하면서 사용했지만 지금은 익숙해서 그런지 별로 신경을 쓰고 있지 않는다. 최근 진행하고 있는 프로젝트에도 repositoy pattern을 사용하고 있으며 이와 더불어 "dependency-injector"라는 라이브러리도 같이 사용 중이다. 그러나 처음에 depenencey-injector와 함께 repository pattern을 같이 사용하는 것에 어려움이 많았는데 그 당시 했던 고민을 따로 기록해두지 않아 이번 기회에 이 내용을 정리해 보고자 한다. 2. Repository를 DI 해보자. Repository Pattern에 depende..
[GCP] Python으로 Google Oauth Login 하기 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스  <a..
[SQLAlchemy] dependency-injector로 SQLAlchemy Session 다루기 HTML 삽입 미리보기할 수 없는 소스 개요 FastAPI에서 SQLAlchemy Session을 사용하는 예제들을 살펴보면, 주로 contextmanager를 활용한 방법들이 계속해서 등장한다. 이러한 예제들은 주로 FastAPI에서 제공하는 Depands 함수를 이용하여 Dependency Injector를 구현한 형태이다. 그러나 "dependency-injector"라는 DI 라이브러리를 통해서도 DI를 사용할 수 있는데 이 글에서는 “dependency-injector”를 이용해 SQLAlchemy Session을 FastAPI에서 사용한 방법을 기술하려 한다. dependency-injector library 객체 지향 언어에서 뜻하는 의존성 주입은 꽤나 포괄적이고 그 내용도 심오하지만 기본적..
[GCP] Python으로 Youtube 데이터 다루기 2023.09.26 - [개발 노트/Python] - [Python] Google API 사용을 위한 GCP 설정 개요 이 글에서는 Python에서 Google API를 통해 Youtube 데이터를 조작할 수 있는 코드를 간략히 다룹니다. Google Youtube API Document Youtube API의 경우 Oauth로 인증만 된다면 비교적 쉽게 이용할 수 있습니다. 다음 링크는 Youtube API의 API 문서입니다. OAuth 2.0 승인 구현 | YouTube Data API | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English OAuth 2.0 승인 구현 컬렉션을 사용해 정리하기 내 환경설정..
[SQLAlchemy] Connection 설정에 관한 탐구 HTML 삽입 미리보기할 수 없는 소스 개요 SQLAlchemy를 사용하다 MySQL 쪽에서 자꾸 Aborted Connection이 발생하고 있는 걸 확인했다. 왜 이런 경고가 뜨는지 의문이 들었고 이왕 조사하는 김에 Connection 설정에 관련된 부분들을 더 살펴봤다. 관찰한 결과를 기록하기 위한 용도로 정리했기에 SQLAlchemy의 동작원리와 다소 상이할 수 있는 것에 유의하자. 또한, 사견도 기록하기에 SQLAlchemy을 미리 사용하시는 분이시라면 많이 혼란이 생길 수 있음을 미리 알려드린다. 1. Connection은 실제로 query를 날릴 때 생성된다. Aborted Connection이 일어난 상황은 SQLAlchemy에서 Connection Pool을 잡은 상태였기에 Connect..

728x90
반응형