본문 바로가기

728x90
반응형

Language

(57)
[SQLAlchemy] Imperative Mapping, One to Many Mapping HTML 삽입 미리보기할 수 없는 소스 관련글 2024.02.25 - [Language/Python] - [SQLALchemy] Imperative Mapping, Eager/Lazy Loading [SQLALchemy] Imperative Mapping, Eager/Lazy Loading HTML 삽입 미리보기할 수 없는 소스 개요 SQLAlchemy의 imperative mapping 방식을 계속 다루다 보니 Repository라고 정의한 계층에서 Session Query를 많이 작성하게 된다. 예를 들어 다음과 같은 형식이다. sessio jakpentest.tistory.com 개요 이 글은 SQLAlchemy의 Imperative Mapping 방식을 이용해 1:N의 관계를 다루는 방법에 관해 ..
[SQLAlchemy] Imperative Mapping, exclude properties HTML 삽입 미리보기할 수 없는 소스 개요 imperative mapping을 사용하다 SELECT 쿼리로부터 특정 Column들을 제외하고 싶은 상황들이 있다. 이때 주요한 점은 SELECT로 얻은 Class의 attribute를 제외하는 방법이 아닌 SELECT 단계부터 특정 열을 제외하는 방식을 적용해 보고자 함이다. 즉, instance의 namespace 자체에서 임의로 정의한 Column들이 제외되어있어야 함을 의미한다. 1. Idea "특정 Column을 제외시키고 싶다"라는 생각에서 출발했지만 SQLAlchemy가 그러한 기능을 제공하지 않는다면 코드를 따로 작성해야 했다. 다행히 https://docs.sqlalchemy.org/en/14/orm/mapping_api.html에서 ex..
[SQLAlchemy] Imperative Mapping, Column 합성 HTML 삽입 미리보기할 수 없는 소스 개요 SQLAlchemy의 Imperative Mapping을 이용하다보니 “테이블의 열(column)을 모아서 Object로 표현할 수 있는 방법이 있지 않을까”를 고민하게되었다. 예를 들어 다음과 같은 코드가 있다고 가정해보자. class Member: address1:str address2:str 위의 코드를 ORM 관점에서 보자면 DB 테이블에 address1과 address2라는 열(column)이 존재한다고 생각해볼 수 있는 코드이다. 그러나 위와 같은 코드를 다음과 같이도 표현할 수도 있다. @dataclass class Address: address1:str address2:Str class Member: address:Address 위 코드를 통해 ..
[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..

728x90
반응형