확장메뉴
주요메뉴


소득공제

FastAPI로 배우는 백엔드 프로그래밍 with 클린 아키텍처

: 모던 파이썬 웹 프레임워크 FastAPI로 TIL 앱 구축하기

첫번째 리뷰어가 되어주세요
정가
25,000
판매가
22,500 (10% 할인)
배송안내
10/24(목) 발송예정(예약판매)
  • 배송비 : 무료 ?
  • 예정일 이후 1~2일 이내 수령
    eBook이 출간되면 알려드립니다. eBook 출간 알림 신청
    분철서비스 시작 시 알려드립니다. 분철서비스 알림신청
    •  국내배송만 가능
    •  최저가 보상
    •  예약도서와 함께 주문 시 도서 출간일에 함께 배송됩니다. (출판사의 사정으로 출간 지연 가능)
    •  문화비소득공제 신청가능

    품목정보

    품목정보
    발행일 2024년 10월 25일
    쪽수, 무게, 크기 232쪽 | 188*245*15mm
    ISBN13 9791193926529
    ISBN10 1193926521

    카드 뉴스로 보는 책

    책소개 책소개 보이기/감추기

    목차 목차 보이기/감추기

    저자 소개 (1명)

    책 속으로 책속으로 보이기/감추기

    API를 만들면 이를 사용할 다른 구성원에게 전달해야 한다. 조직이 작고 API 사용자가 같은 공간에 있으며 프레임워크의 코드를 이해하고 있다면 소스 코드를 공유해도 상관없다. 하지만 사용하는 언어와 기술 스택이 다른 프런트엔드 개발자가 API 사용자라면 어떻게 사용법을 설명해야 할까? 텍스트로 나름의 형식으로 기술할 수도 있고, 스프레드시트에 보기 좋게 정리할 수도 있다. 심지어 아직도 이런 방법을 많이 사용한다. 하지만 프로그램과 마찬가지로 문서도 레거시로 굳어지면 바꾸기 힘든 법이다. 문서를 배포하는 가장 좋은 방법은 소스 코드에서 API를 문서를 생성하는 것이고, FastAPI는 이를 별다른 설정 없이 지원한다.
    --- p.15

    클린 아키텍처의 의존성 규칙은 그 의존성의 방향이 안으로 향하는 데에 있다. 그림 2-1의 좌측에 바깥 계층에서 안쪽으로 향하는 화살표가 있다. 이 화살표가 의존성의 방향을 나타낸다. 데이터의 형식 역시 마찬가지다. 고수준의 데이터 형식은 저수준에서 자유롭게 사용할 수 있다. 하지만 고수준의 구성 요소가 저수준의 데이터 형식에 의존하면 안 된다. 이는 외부 변경으로부터 내부 요소를 격리해 보호하기 위함이다. 외부에서 제공되는 프레임워크나 라이브러리는 우리의 의지와 상관없이 업데이트될 수 있다. 이러한 변경이 발생했을 때 만약 그 라이브러리의 모듈에 직접 의존하고 있다면 내부의 요소를 함께 수정해야 한다.
    --- p.36

    유저 리소스에서 유저가 자신의 정보를 업데이트할 수 있는 속성은 name과 password다. 일반적으로 이름을 갱신하는 것은 이상한 일이지만, TIL에서는 이름을 닉네임처럼 쓸 것이기 때문에 문제가 되지 않는다. email은 유저가 로그인할 때 사용하는 값이기 때문에 유일한 값으로 변경할 수 없다고 가정하자. / 다시 도메인 계층부터 차례로 구현해보자. 먼저 IUserRepository에 유저 ID로 유저를 검색하는 함수와 유저 리소스를 업데이트하는 함수를 선언한다. 유저 검색 함수가 필요한 이유는 업데이트할 대상을 찾기 위해서다. 만약 데이터베이스에 해당 유저가 존재하지 않을 경우 에러를 일으킨다.
    --- p.78

    시스템을 운영하다 보면 로그인한 유저에 대해 여러 가지 역할role을 부여해야 하는 경우가 있다. 역할에 따라 어떤 리소스에 대해 접근이 가능한지 권한을 제한하고, 역할을 그룹으로 묶어 계층적으로 관리하기도 한다. / 앞서 나열한 API 중, 유저는 자신이 가진 권한으로 실행할 수 있는 API만 호출할 수 있어야 한다. 유저는 회원 탈퇴를 뜻하는 유저 삭제 API와 자신의 정보를 갱신하는 유저 정보 업데이트 API만 가능하다. 유저는 함부로 다른 사람의 정보를 조회하면 안 되므로, 유저 목록 조회는 어드민--- p.애플리케이션 관리자)만 가능해야 한다고 하자. 따라서 권한을 검사하는 인가 기능이 필요하다. 인가 시스템을 제대로 갖추는 작업은 이 책의 범위를 벗어난다. 이 책에서는 단순히 역할을 뜻하는 role이라는 페이로드를 토큰에 추가하고, 그 값이 USER인지 ADMIN인지 구분해 권한을 검사한다.
    --- p.117

    BackgroundTasks는 FastAPI에서 제공하는 도우미 클래스다. 이 클래스를 사용하면 클라이언트로부터 요청을 받은 후 작업을 백그라운드에서 수행할 수 있다. 앞의 예에서 보았듯이 HTTP 요청을 처리할 때 작업이 오래 걸리거나 비동기적으로 처리해야 하는 경우 클라이언트에게 즉시 응답을 보내고 작업을 백그라운드에서 처리하고 싶을 수 있다. 이렇게 처리하면 클라이언트의 사용성이 나아진다. 즉, 요청이 완료되기를 기다리지 않고 다른 작업을 이어서 할 수 있다. / BackgroundTasks 클래스를 사용하면 FastAPI 앱에서 이러한 작업을 손쉽게 처리할 수 있다. 다음 예에서 보겠지만, 엔드포인트 함수의 매개변수로 주입받아 사용하고 FastAPI가 나머지를 처리하도록 할 수 있다. 마치 Request 객체를 직접 주입받아 사용할 때와 마찬가지다.
    --- p.158

    셀러리--- p.Celery)는 유닉스 시스템 기반의 분산 작업 큐--- p.distributed task queue)로서, 비동기 작업을 처리하고 관리하는 데 사용된다. 주로 백그라운드 작업을 처리하거나 스케줄링하고 분산 환경에서 작업을 실행한다. 파이썬 기반의 메시징 시스템은 셀러리 외에도 레디스 큐--- p.Redis queue, RQ), 드라마틱--- p.Dramatiq), 휴이--- p.huey), AIOHTTP와 같은 것을 고려해볼 만하다. 그 외 최근에는 대규모 시스템에서도 높은 성능을 자랑하는 카프카--- p.Kafka)가 인기를 끌고 있다.
    --- pp.166-167

    출판사 리뷰 출판사 리뷰 보이기/감추기

    회원리뷰 (0건) 회원리뷰 이동

      등록된 리뷰가 없습니다!

    첫번째 리뷰어가 되어주세요.

    한줄평 (0건) 한줄평 이동

      등록된 한줄평이 없습니다!

    첫번째 한줄평을 남겨주세요.

    배송/반품/교환 안내

    배송 안내
    반품/교환 안내에 대한 내용입니다.
    배송 구분 예스24 배송
    •  배송비 : 무료배송
    포장 안내

    안전하고 정확한 포장을 위해 CCTV를 설치하여 운영하고 있습니다.

    고객님께 배송되는 모든 상품을 CCTV로 녹화하고 있으며, 철저한 모니터링을 통해 작업 과정에 문제가 없도록 최선을 다 하겠습니다.

    목적 : 안전한 포장 관리
    촬영범위 : 박스 포장 작업

    • 포장안내1
    • 포장안내2
    • 포장안내3
    • 포장안내4
    반품/교환 안내

    상품 설명에 반품/교환과 관련한 안내가 있는경우 아래 내용보다 우선합니다. (업체 사정에 따라 달라질 수 있습니다)

    반품/교환 안내에 대한 내용입니다.
    반품/교환 방법
    •  고객만족센터(1544-3800), 중고샵(1566-4295)
    •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
    반품/교환 가능기간
    •  출고 완료 후 10일 이내의 주문 상품
    •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
    •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
    •  모바일 쿠폰의 경우 유효기간(발행 후 1년) 내 등록하지 않은 상품
    반품/교환 비용
    •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
    •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

      단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

      •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
      •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
    •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

      단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

    •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
    반품/교환 불가사유
    •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
    •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
    •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
    •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
    •  모바일 쿠폰 등록 후 취소/환불 불가
    •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
    •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
    •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    소비자 피해보상
    •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
    환불 지연에
    따른 배상
    •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
    •  쿠폰은 결제 시 적용해 주세요.
    1   22,500
    뒤로 앞으로 맨위로 공유하기