파이썬의 데코레이터 데코레이터(decorater)는 데코레이터 이후에 나오는 것을 데코레이터의 첫 번째 파라미터로 하고 데코레이터의 결과 값을 반환하게 하는 문법적 설탕(syntax sugar)이다. ※데코레이터라는 이름은 래핑된 함수의 기능을 수정하고 확장하기 때문에 정확한 이름이지만, "데코레이터 디자인 패턴"과 혼동하면 안된다. 함수 데코레이터 함수에 데코레이터를 사용하면 어떤 종류의 로직이라도 적용할 수 있다. 파라미터의 유효성을 검사하거나 사전조건을 검사하거나, 기능 전체를 새롭게 정의할 수도 있고, 서명을 변경할 수도 있고, 원래 함수의 결과를 캐시하는 등의 작업을 모두 할 수 있다. #decorator_function_1.py class ControlledExeption(Exeption): ..
[FastAPI] 현대적이고, 빠르고, 파이썬 표준 타입 힌트에 기초한 python 3.6+ 의 API를 빌드하기 위한 웹 프레임워크 설치하기 pip install fastapi pip install uvicorn 테스트용 소스코드 from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} 실행 python3 -m uvicorn main:app --reload --host=0.0.0.0 [pydantic] FastAPI에서 Type Hints를 사용하는 것 *Type Hints: 파라미터 값이 어떤 자료형이 들어와야 하는지 코드상에서 명시하는 것 *pydantic은 p..
[docstring]: 기본적으로 리터럴 문자열이며, 로직의 일부분을 문서화하기 위해 코드 어딘가에 배치됨 -코드에 포함된 문서(documentation) --> 이유가 아니라 설명 주석(comment) ≠ 문서 docstring은 주석을 다는 것이 아니라 코드의 특정 컴포넌트에 대한 문서화이다 가능한 많은 docstring을 포함하는 것이 좋다 docstring을 코드에 포함시키는 것이 좋은 이유는 파이썬이 동적 타이핑을 하기 때문이다. --> 파이썬은 파라미터의 타입을 체크하거나 강요하지 않기 때문에, 예상되는 함수의 입력과 출력을 문서화하면 사용자가 사용할 때 함수가 어떻게 동작하는지 이해하기 쉽다 [annotation]: 코드 사용자에게 함수 인자로 어떤 값이 와야 하는지 힌트를 주는 것 anno..
클린 코드인지 아닌지는 다른 엔지니어가 코드를 읽고 유지 관리할 수 있는지 여부에 달려 있다 효과 유지보수 향상 기술 부채의 감소 애자일 개발을 통한 효과적인 작업 진행 성공적인 프로젝트 관리 3. 클린코드는 코딩 표준, 포매팅, 린팅 도구나 다른 검사 도구를 사용한 코드 레이아웃 설정과 같은 것 그 이상의 것 4. 클린코드란 품질 좋은 소프트웨어를 개발하고, 견고하고 유지 보수가 쉬운 시스템을 만들고, 기술 부채를 회피하는 것 5. 클린코드는 PEP-8이나 코딩 스타일과 관련이 없으며, 유지보수성이나 소프트웨어 품질에 관한 것임 6.좋은 코드 레이아웃에서 가장 필요한 것은 일관성이다 7.코딩 가이드라인은 품질 표준을 지키기 위해 프로젝트에서 따라야만 하는 최소한의 요구사항이다 8.파이썬이 따라야 하는 ..
import numpy as np import pandas as pd dates = pd.date_range("20210629", periods=6) df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list("ABCD")) #위에서부터 모든 데이터 확인 print(df.head()) #아래에서부터 3번째 데이터까지만 확인 print(df.tail(3)) #인덱스 목록 print(df.index) #컬럼 목록 print(df.columns) #pandas의 dataFrame을 numpy의 array로 변환 print(df.to_numpy()) #통계 데이터 요약값 print(df.describe()) #column과 index 자리 바꾸기 pri..
#pip install numpy #pip install pandas # pandas, numpy IMPORT import numpy as np import pandas as pd # Series 객체 생성 s = pd.Series([1,3,5, np.nan, 6,8]) print(s) # DataFrame 객체 생성 dates = pd.date_range("20210629", periods=6) print(dates) #인덱스 및 라벨 df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list("ABCD")) print(df) #dict 타입 df2 = pd.DataFrame( { "A": 1.0, "B": pd.Timestamp("202106..
Django 설치하기 pip3 install django Django 프로젝트 생성 django-admin startproject ★vscode 원격 연결 (1)terminal에서 설치 sudo yum install openssh-server && sudo systemctl start sshd.service && sudo systemctl enable sshd.service (2)VSCODE: Remote Development 확장팩을 설치후, Remote-SSH: Connect to Host.. Django app 생성 프로젝트폴더 안(manage.py 경로가 있는 곳)에서 다음 명령어를 실행한다 sudo python3 manage.py startapp