이 글은 헤드퍼스트 디자인 패턴(한빛 미디어, 에릭 프리먼 외)를 읽고 정리한 것입니다.전략 패턴이란?알고리즘군을 정의하고 캡슐화 하여, 각각의 알고리즘군을 수정해서 쓸 수 있도록 만드는 전략이다. 이를 통해 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경하는 것이
CloudFront를 사용하면 한 번 요청한 객체에 대해서 캐싱을 해 전 세계에서 사용자와 가장 가까운 지역에 캐싱되어 있던 객체를 사용자에게 제공 한다. 그렇다면, 파이썬 코드로 어떻게 Cloudfront Invalidation을 실행할 수 있는지 알아보자. 그리고
이 글은 Udemy의 AWS Certified Solutions Architect Associate Practice Exams를 공부하며 정리한 것입니다. 만약 어떤 회사가 Windows Server용 IIS(인터넷 정보 서비스)를 사용하는 웹 응용 프로그램을 가지고
만약 어떤 회사에서 고객의 기밀 데이터를 보호하기 위해 authentication token을 통해 EC2 인스턴스에 대해 특정한 프로필 자격 증명(credentials)을 사용해서만 RDS 데이터베이스에 액세스할 수 있도록 하도록 설정해야 한다고 하자. 만약 이 회사
여러 상황에 따른 Solutions architecture로서의 해결책에 대해 알아 보도록 한다.어떤 회사에서 자주 접근하는 데이터를 S3에 저장하려고 하는 데 이 때 객체의 삭제 또는 생성이 일어날 경우 S3 버킷이 SQS에 알림을 보내도록 설정하고 싶다. 이 알림은
이 글은 모범 사례로 배우는 Django 테크닉에 관한 명서 "Two Scoops of DJango"(대니얼 로이 그린펠드, 오드리 로이 그린펠드 저, 2016)를 읽고 요약 정리하여 작성한 것입니다. 이 책을 읽고 새로웠던 것, 기존에 잘 알지 못했던 것을 위주로 작
Cloudfront에 signed cookie로 access 하기 람다 concurrent invocation limit 1000개까지 가능
파이썬 버전을 업데이트할 미래의 나를 위한 공유오늘 파이썬 버전 3.8.1 -> 3.9.9로 업데이트 하면서 마주한 에러를 리포트 한다.파이썬은 현재 버전 3.10.4까지 release 되었다. zappa를 사용해 lambda로 서버를 실행하는 우리 서비스는 람다가,
AWS 자격증 시험 준비 워크샵 내용 정리(시험에 잘 나오고 헷갈리는 내용 위주로 정리함)3가지 SSE-S3, SSE-KMS, SSE-C가 있다.SSE-S3: S3가 관리한다. \- 다른 리전에서도 복제된 데이터를 복호화 할 수 있다.SSE-KMS는 다른 리전으로
이 글은 Django Docs를 읽고 정리한 것입니다. 장고 settings에 들어갈 수 있는 환경변수 중 DATABASE_ROUTERS가 있다. 이 환경 변수에는 마스터 라우터(django.db.router)가 사용해야 하는 라우터의 클래스 명이 리스트로 아래와 같
generate_series 함수는 특정 value에 따라 행의 개수를 늘리기 위해 사용한다.SQL을 사용하면서 특정 value에 따라 row의 갯수를 늘려야 할 때가 있다.예시 상황예를 들면 특정 유저에게 상품권을 지급하기 위한 "유저 id", "금액" 컬럼을 가진
Graphene Node에 대해 공부하기에 앞서 GraphQL에서 사용하는 cursor 개념 자체를 먼저 알아보도록 한다. Cursor 페이지네이션에는 두 가지 개념이 있다. offset/limit 기반 cursor 기반 apollographql에서 설명하는 off
성능 개선 도우미를 자세히 알아 보기에 앞서, 성능 개선 도우미가 DB에 부하를 줄 수 있는지부터 살펴 보려 한다.성능 개선 도우미는 DB에 얼만큼 부하를 줄까?우아한 형제들 기술 블로그에 따르면 성능 개선 도우미 모니터링을 하는 경우 DB에 부하를 줄 수 있다. 성능
Query Validation GraphQL로 쿼리를 실행하면 Query AST가 쿼리가 유효 하며 실행 가능한 상태인지 확인한다. 아래에 자주 사용되는 validator와 custom validator에 대해 소개한다. 추상 구문 트리(abstract syntax
Dataloader > Dataloader를 이용하면 GraphQL에서 발생할 수 있는 N+1 problem을 해결할 수 있다. Dataloader는 현재 사용하는 앱에서 데이터를 가져오는 데 사용할 수 있는 fetching layer로, 이를 이용하면 데이터베이스나
Middleware Middleware는 schema 내의 필드를 검사 하기 위해 사용할 수 있다. 어떤 객체, 함수든resolve(next_middleware, *args)에 응답할 수 있다면 middleware가 될 수 있다. resolve(next_middlew
이 글은 Graphene Docs를 읽고 작성한 것입니다. Union Union 타입은 필드를 갖지 않으며 다만 다른 ObjectType들의 모임(?)으로 이루어진다. 또한, Union 타입을 정의할 때는 types만 명시해 연결하는 역할을 하며 field를 추가할
이 글은 를 읽고 정리한 것입니다. Aurora Serverless v2 > Aurora Serverless는 낮은 빈도/ 예측 불가한 워크 로드에 대응하기 적합한 데이터베이스로, 사용량이 많은 경우 리소스를 확장해야 하며 반대로 사용량이 적은 경우 리소스를 축소해야
Enums Enum은 unique, constant 값을 설정하기 위해 사용하는 GraphQL 타입이다. 아래와 같이 Episode enum class를 만들 수 있다. 방법 1 방법 2 만약 사용하려는 Enum이 이미 정의되어 있다면 Enum.f
Resolvers Resolver는 스키마의 필드에 해당하는 데이터를 가져와서 쿼리 하는 데 도움을 주기 위한 메소드이다. Resolver는 lazy 실행이기 때문에 만약 resolver가 정의된 필드가 쿼리에 포함되지 않는다면 해당 resolver는 실행되지 않는다.