분류 전체보기
-
⚡️ Rust로 작성된 Python 린터로 Flake8, Pylint, Autoflake에 비해 10배에서 100배 가량 빠름 🐍 pip으로 설치 가능 🛠️ pyproject.toml 지원 🔌 black과 호환 Huggingface도 isort와 flake8을 ruff로 대체함 Installation and Usage Installation Ruff is available as ruff on PyPI pip install ruff For Conda users, Ruff is also available as ruff on conda-forge: conda install -c conda-forge ruff Usage ruff check . # Lint all files in the current direct..
Ruff : An extremely fast Python linter⚡️ Rust로 작성된 Python 린터로 Flake8, Pylint, Autoflake에 비해 10배에서 100배 가량 빠름 🐍 pip으로 설치 가능 🛠️ pyproject.toml 지원 🔌 black과 호환 Huggingface도 isort와 flake8을 ruff로 대체함 Installation and Usage Installation Ruff is available as ruff on PyPI pip install ruff For Conda users, Ruff is also available as ruff on conda-forge: conda install -c conda-forge ruff Usage ruff check . # Lint all files in the current direct..
2023.02.16 -
허깅페이스에 데이터셋을 업로드하려고 하니 아래와 같은 에러 발생 disk space가 충분하지 않다고 함 OSError: Not enough disk space. Needed: Unknown size (download: Unknown size, generated: Unknown size, post-processed: Unknown size) has_sufficient_disk_space를 True로 반환하도록 설정하니 해결 from datasets import load_dataset datasets.builder.has_sufficient_disk_space = lambda needed_bytes, directory=".": True
OSError: Not enough disk space. Needed: Unknown size (download: Unknown size, generated: Unknown size, post-processed: Unknown size)허깅페이스에 데이터셋을 업로드하려고 하니 아래와 같은 에러 발생 disk space가 충분하지 않다고 함 OSError: Not enough disk space. Needed: Unknown size (download: Unknown size, generated: Unknown size, post-processed: Unknown size) has_sufficient_disk_space를 True로 반환하도록 설정하니 해결 from datasets import load_dataset datasets.builder.has_sufficient_disk_space = lambda needed_bytes, directory=".": True
2023.01.31 -
1. Event Handler 이벤트가 발생했을 때, 그 처리를 담당하는 함수 FastAPI에선 Application이 실행할 때, 종료될 때 특정 함수를 실행할 수 있음 from fastapi import FastAPI import uvicorn # Fastapi 객체 생성 app = FastAPI() items = {} @app.on_event("startup") def startup_event(): print("startup event") items["foo"] = {"name": "Fighters"} @app.on_event("shutdown") def shutdown_event(): print("shutdown event") with open("log.txt", mode="a") as log: ..
[Product Serving Part.5] FastAPI 기초-31. Event Handler 이벤트가 발생했을 때, 그 처리를 담당하는 함수 FastAPI에선 Application이 실행할 때, 종료될 때 특정 함수를 실행할 수 있음 from fastapi import FastAPI import uvicorn # Fastapi 객체 생성 app = FastAPI() items = {} @app.on_event("startup") def startup_event(): print("startup event") items["foo"] = {"name": "Fighters"} @app.on_event("shutdown") def shutdown_event(): print("shutdown event") with open("log.txt", mode="a") as log: ..
2023.01.16 -
Path Parameter vs Query Parameter 웹에서 GET Method를 사용해 데이터 전송 가능 ID가 402인 사용자 정보를 가져오고 싶을 때는? Path Parameter 방식 /users/402 서버에 402라는 값을 전달하고 변수로 사용 해당 경로에 존재하는 내용이 없으면 404 Error 발생 Query Parameter 방식 /users?id=402 Query String API 뒤에 입력 데이터를 함께 제공하는 방식으로 사용 Query String은 Key, Value의 쌍으로 이루어지며 &로 연결해 여러 데이터를 넘길 수 있음 데이터가 없는 경우 빈 리스트가 나옴 → Error Handling이 필요 언제 어떤 방식을 사용해야 할까? Resource를 식별해야 할 경우 →..
[Product Serving Part.5] FastAPI 기초-2 / PydanticPath Parameter vs Query Parameter 웹에서 GET Method를 사용해 데이터 전송 가능 ID가 402인 사용자 정보를 가져오고 싶을 때는? Path Parameter 방식 /users/402 서버에 402라는 값을 전달하고 변수로 사용 해당 경로에 존재하는 내용이 없으면 404 Error 발생 Query Parameter 방식 /users?id=402 Query String API 뒤에 입력 데이터를 함께 제공하는 방식으로 사용 Query String은 Key, Value의 쌍으로 이루어지며 &로 연결해 여러 데이터를 넘길 수 있음 데이터가 없는 경우 빈 리스트가 나옴 → Error Handling이 필요 언제 어떤 방식을 사용해야 할까? Resource를 식별해야 할 경우 →..
2023.01.16 -
FastAPI는 최근 떠오르는 Python Web Framework이다. Node.js, go와 대등한 성능 Flask와 비슷한 구조, Microservice에 적합, 쉽다 Swagger 자동 생성 Pydantic을 이용한 Serialization FastAPI vs Flask Flask보다 Router 문법이 간결하다. Flask @app.route("/books", method=["GET"]) def books_table_update(): Title = request.args.get("title", None) Author = request.args.get("author", None) FastAPI @app.get("/books_title/{book_title}/author/{author}") asyn..
[Product Serving Part.5] Poetry로 프로젝트 생성 및 FastAPI 기초FastAPI는 최근 떠오르는 Python Web Framework이다. Node.js, go와 대등한 성능 Flask와 비슷한 구조, Microservice에 적합, 쉽다 Swagger 자동 생성 Pydantic을 이용한 Serialization FastAPI vs Flask Flask보다 Router 문법이 간결하다. Flask @app.route("/books", method=["GET"]) def books_table_update(): Title = request.args.get("title", None) Author = request.args.get("author", None) FastAPI @app.get("/books_title/{book_title}/author/{author}") asyn..
2023.01.16 -
Server의 형태 모놀리식 아키텍쳐 (Monolithic Architecture) 하나의 큰 서버에서 모든 것을 처리 마이크로서비스 아키텍쳐 (Microservice Architecture - MSA) 개별 서버로 구성하고 서로 통신하도록 하는 경우 REST API 정보를 주고 받을 때 사용되는 형식 → REST란 형식의 API 요청의 모습을 보고 어떤 일을 하는지 알 수 있음 기본적인 데이터 처리 : 생성, 조회, 수정, 삭제 CRUD : Create, Read, Update, Delete Representational State Transfer의 약자 → Resource, Method, Representation of Resource로 구성 Resource : Unique한 ID를 가지는 리소스, ..
[Product Serving Part.5] 백엔드 프로그래밍Server의 형태 모놀리식 아키텍쳐 (Monolithic Architecture) 하나의 큰 서버에서 모든 것을 처리 마이크로서비스 아키텍쳐 (Microservice Architecture - MSA) 개별 서버로 구성하고 서로 통신하도록 하는 경우 REST API 정보를 주고 받을 때 사용되는 형식 → REST란 형식의 API 요청의 모습을 보고 어떤 일을 하는지 알 수 있음 기본적인 데이터 처리 : 생성, 조회, 수정, 삭제 CRUD : Create, Read, Update, Delete Representational State Transfer의 약자 → Resource, Method, Representation of Resource로 구성 Resource : Unique한 ID를 가지는 리소스, ..
2023.01.16 -
문제 설명 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 두 집을 털면 경보가 울립니다. 각 집에 있는 돈이 담긴 배열 money가 주어질 때, 도둑이 훔칠 수 있는 돈의 최댓값을 return 하도록 solution 함수를 작성하세요. 제한사항 이 마을에 있는 집은 3개 이상 1,000,000개 이하입니다. money 배열의 각 원소는 0 이상 1,000 이하인 정수입니다. 인접한 집을 털면 경보가 울림 → [1, 2, 3, 1] 에서 idx 0과 idx -1은 인접함 → 첫번째 집을 털 경우와 첫번째 집을 털지 않을 경우로 분리 dp[i] 값 → (i-2)번째 집을..
DP_#PRO42897 : 도둑질문제 설명 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 두 집을 털면 경보가 울립니다. 각 집에 있는 돈이 담긴 배열 money가 주어질 때, 도둑이 훔칠 수 있는 돈의 최댓값을 return 하도록 solution 함수를 작성하세요. 제한사항 이 마을에 있는 집은 3개 이상 1,000,000개 이하입니다. money 배열의 각 원소는 0 이상 1,000 이하인 정수입니다. 인접한 집을 털면 경보가 울림 → [1, 2, 3, 1] 에서 idx 0과 idx -1은 인접함 → 첫번째 집을 털 경우와 첫번째 집을 털지 않을 경우로 분리 dp[i] 값 → (i-2)번째 집을..
2023.01.16 -
1. CI/CD(Continious Integration/Continuous deploymen) Local : 각자의 컴퓨터에서 개발, 각자의 환경 통일을 위해 Docker 등을 사용 Dev : Local에서 개발한 기능을 테스트할 수 있는 환경 Staging : Production 환경에 배포하기 전에 운영하거나 보안, 성능을 측정하는 환경 Production : 실제 서비스를 운영하는 환경 서버에 코드를 보내는 것과 반복적으로 진행할 Test를 어떻게 실행해야할까? Dev Branch에 Merge되면 → Local에서 Git Pull & Test 실행 후 괜찮으면 코드 배포 (FTP로 파일 전송) → 매번 해주기가 너무 번거롭다! → CI (Continuous Integration:지속적 통합) !!..
[Product Serving Part.4] Github Action을 사용한 CI/CD1. CI/CD(Continious Integration/Continuous deploymen) Local : 각자의 컴퓨터에서 개발, 각자의 환경 통일을 위해 Docker 등을 사용 Dev : Local에서 개발한 기능을 테스트할 수 있는 환경 Staging : Production 환경에 배포하기 전에 운영하거나 보안, 성능을 측정하는 환경 Production : 실제 서비스를 운영하는 환경 서버에 코드를 보내는 것과 반복적으로 진행할 Test를 어떻게 실행해야할까? Dev Branch에 Merge되면 → Local에서 Git Pull & Test 실행 후 괜찮으면 코드 배포 (FTP로 파일 전송) → 매번 해주기가 너무 번거롭다! → CI (Continuous Integration:지속적 통합) !!..
2023.01.13