반응형

Python3 47

Fast API 설치해서 간단히 hello world 보기

안녕하세요 Dibrary입니다. 이번에는 Fast API를 간단히 정리해보겠습니다. 먼저 아래 사이트를 방문하면 Fast API에 대해 더 자세히 알아보실 수 있습니다. FastAPI FastAPI FastAPI 프레임워크, 고성능, 간편한 학습, 빠른 코드 작성, 준비된 프로덕션 문서: https://fastapi.tiangolo.com 소스 코드: https://github.com/tiangolo/fastapi FastAPI는 현대적이고, 빠르며(고성능), 파이썬 fastapi.tiangolo.com 간단히 설명드리면, 말 그대로 '빠른' 파이썬 프레임워크입니다. 빠른 이유는 아래 이미지를 보시면 어느정도 이해가 될 수 있습니다. Fast API는 크게 Starlette와 Pydantic으로 구성되어..

Airflow에서 보기 편하게 Task를 묶어주는 - TaskGroup

안녕하세요 Dibrary입니다. Airflow 책을 보면서 Task를 구성하고 연결하는 것 까지는 해보았는데, 갯수가 많은 경우는 보기가 복잡할 수 있겠다~ 싶은 점이 있었습니다. 아니나 다를까, 최근 Airflow는 TaskGroup이라는 기능이 있어서 graph에서 보기 편하게 해 주는 기능이 있었습니다. graph를 사용하지 않은 기본 코드를 먼저 작성 해 보겠습니다. 위 코드의 graph를 보면 아래와 같이 나옵니다. 말 그대로 task_0에서 2가지 task로 분기가 되고, task_1_2에서 3가지로 분기가 되었다가 task_1_3_4에서 다시 모입니다. Task의 흐름을 보여드리고자 DummyOperator만 사용했습니다. BashOperator 및 PythonOperator를 사용하셔도 볼..

[파이썬 클린코드] 4장 (SOLID 원칙) 정리

안녕하세요 Dibrary입니다. 이번에는 파이썬 클린코드의 4장 내용을 정리해보겠습니다. 4장은 객체지향적으로 코딩을 작성할 때 생각해 봐야 하는 원칙인 SOLID원칙을 설명하고 있습니다. 1. S (Single Responsibility Principle) 단일 책임 원칙 소프트웨어 컴포넌트(클래스)는 단 하나의 책임을 져야 한다는 것. 아래 코드 처럼 독립적인 동작을 하는 메서드를 하나의 클래스에 정의해버리면 안 된다. 이렇게 하나에 많은 기능을 집약해넣게 될 경우, 외부 요소에 의한 영향 최소화가 안 된다. 보다 응집력있고 작은 추상화가 가능해야 한다. 물론, '단일 책임 원칙'이라고 해서 클래스가 딱 하나의 메서드만을 가져야 한다는 것이 아니다. 2. O (Open/Close Principle) ..

[파이썬 클린코드] 3장 (좋은 코드의 일반적 특징) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 3장 중 핵심 내용만을 정리한 것입니다. 1. 계약에 의한 디자인 컴포넌트는 기능을 숨겨 캡슐화 하고 함수를 사용할 고객에게는 애플리케이션 프로그래밍 인터페이스(API)를 노출해야 한다. 코드가 정상적으로 동작하기 위해 기대하는 것과, 호출자가 반환 받기를 기대하는 것은 디자인의 하나가 되어야 한다. 사전조건 = 코드가 실행되기 전에 체크해야 하는 것들 사후조건 = 함수 반환값의 유효성 검사가 수행 불변식 = 함수가 실행되는 동안 일정하게 유지되는 것 사전조건 검증에 실패하면 클라이언트의 결함으로인한 것이다 사후조건 검증에 실패하면 특정 모듈이나 제공 클래스 자체의 문제로 인한 것이다 중복제거원칙 = 사전조건 검증을 양쪽(클라이언트, 서버)에..

[Django RESTful] 정말 쉬운 Django로 RESTful API 배우는 책

파이썬을 공부하면서 알음알음 Flask와 Django를 옅게 공부해두긴 했었다. 그 중에 화면이 필요없는 개발이 있어서 Flask를 써서 간단하게 구현을 했었는데, JAVA와의 접합부?가 굉장히 마음에 들지 않았었다. 물론, 개발자가 아닌 사람이 보기에는 굉장히 '심플'하게 보여서 괜찮다고 하지만 개발하는 입장에서 아주 께림칙 했었다. 그래서 해당 접합부에 RESTful을 사용할 까 했었지만, Flask에서 RESTful을 어떻게 사용할 지 몰라 우선 구현은 마무리 지었었다. Flask의 RESTful 구현도 모르는데 Django라면 더더욱 몰랐었다. 하지만 작정하고 RESTful을 배워야 했기에 이것 저것 찾다가 이 책의 내용이 눈에 들어왔다. 이 책은 제목 그대로 Django와 Django에서 RES..

독서/서평 2022.09.28

[PySpark 배우기] PySpark 기본 다루기 초급서

이 책은 이미 Spark 관련 책을 하나 가지고 있었기에 여느 스파크 책과 뭐가 다를까~ 싶어서 도서관에서 빌려서 본 책이다. Spark는 Scala로 배워야 가장 최근 경향을 빠르게 따라갈 수 있고, 더 많은 기능이 지원된다고 알고 있는데, 그럼에도 파이썬이라는 언어의 '간결하고 명료함'을 포기할 수 없다면, PySpark를 사용하는 것도 하나의 방법이다. 다만, Spark는 JVM을 기반으로 실행되기 때문에 Python을 사용하면 JVM에서 Python으로 통신하는 부분이 하나 더 추가되는 꼴이라서 Scala보다 당연히? 느릴 수 밖에 없다. 책의 초반에는 이런 개념적인 내용과 스파크의 아키텍쳐 및 실행 흐름을 설명하고있다. 여느 스파크 책과 마찬가지로 간단한 연산 및 메서드를 배우고 그 다음에 어느..

독서/서평 2022.09.27

[BOJ][15651번] N과 M (3) (백트래킹)

안녕하세요 Dibrary입니다. 이번에 정리할 문제는 백트래킹을 사용해서 풀어야 하는? (백트래킹을 쓰기 좋은) 문제입니다. 개인적으로 백트래킹을 좀 어려워해서 정리해두고자 합니다. 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 이 문제를 보자마자 처음 든 생각은 '사용한 숫자를 또 쓸 수 있다니' 였습니다. 즉, 사용한 숫자와 사용하지 않은 숫자의 구별을 할 필요가 없는 셈이죠. 이 문제를 풀 때 중요한 것은 '길이를 맞추는 것'과 '만들 수 있는 모든 경우'를 구해야 하는 것이죠. 길이 맞추는거야 갯수 ..

[Effective Python] 1장 - 파이썬답게 생각하기

안녕하세요 Dibrary입니다. 이 글은 Effective Python (한국어 번역제목은 '파이썬 코딩의 기술' 입니다)의 1장 내용을 정리했습니다. 1. 사용중인 파이썬의 버전을 알아두자 이렇게 간단히 버전을 확인할 수 있습니다. 2. PEP8 스타일 가이드를 따르자 PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Con..

[파이썬 클린코드] 2장 (파이써닉 코드) 정리

안녕하세요 Dibrary입니다. 아래 내용은 파이썬 클린코드의 2장 중 핵심 내용만을 정리한 것입니다. 디자인 패턴은 언어와 무관한 고차원 개념으로, 코드로 즉시 변환되지 않는다. 그러나 관용구는 실제 코딩으로 변환된다. 관용구를 따르는 코드를 파이썬에서 '파이써닉'하다고 한다. 1. 리스트에서 특정 요소를 가져올 때, for문으로 찾지 말고 슬라이싱을 하자. 둘 다 같이 2로 나눴을 때 나머지가 1 나오는 값만 담는 것인데, slice를 사용해서 해당 위치의 값만 곧바로 담을 수 있다. 2. 파일을 열고 닫는 등의 작업이 필요한 경우 '컨텍스트 관리자'를 사용하자. 위 코드는 finally를 이용해서 정상종료 혹은 비정상종료에도 파일을 닫는 코드가 들어있다. with를 사용한 컨텍스트 관리자는 내부에서..

파이썬으로 AWS S3에 있는 파일 GET, PUT하기

안녕하세요 Dibrary입니다. 저번에 만든 AWS S3에 파이썬을 사용해서 파일을 넣고, 꺼내보겠습니다. 이번에 할 파일은 CSV파일로 간단히 해 볼건데, 주의할 점은 각 행마다 column갯수가 같아야 합니다. 즉, 각 행마다 콤마 갯수가 같아야 하는 것이죠. 다르면 어떻게 되냐구요? 이런 tokenizing data 에러를 마주할 수 있습니다. 파이썬으로 AWS를 연동하고 싶으면 boto3 모듈을 설치해야 합니다. 찾아보니 boto3는 AWS를 사용하게 해 주는 SDK라고 합니다. 그리고 aws_access_key_id와 aws_secret_access_key를 가지고 있어야 하는데, 이는 보안이 굉장히 중요하므로 별도로 저는 만들어서 사용했습니다. 위 코드에서 제것의 값은 가렸습니다. 해당 함수를..

반응형