Python 22

[Python] sqlalchemy Attributeerror: 'engine' object has no attribute 'cursor' 에러 해결하기

engine_dm_db = sa.create_engine(AccessConfig().get_dm_db_connection_string()) df_unique_device = pd.read_sql(query, engine_dm_db) 이 코드를 작성해서 mssql에 있는 데이터를 가져오려고 했다. sqlalchemy를 이용해서 연결을 했는데, 실제 실행하려고 하니 Attributeerror: 'engine' object has no attribute 'cursor' 라는 오류가 난다 시도해 본 방법들 create_engine한 다음에 그 객체에 .connect()추가 이 경우에는 connect에 cursor가 없다는 AttributeError: 'Connection' object has no attribu..

Python/오류해결 2024.01.25

[Python] Streamlit이란? Streamlit 기초 및 사용 상 장단점

이번에 프로젝트를 하면서, 결과를 Streamlit을 통해 웹사이트 형태로 제공을 하게 되었다. 그래서 Steamlit에 대한 기본 내용과, 사용해 본 소감등을 정리해보려고 한다. 이런 분들께 도움이 될 것 같아요. 웹으로 서비스를 제공해야 하는데 인력 부족으로 어떻게 해야 할 지 고민이신 분 Streamlit을 통한 서비스를 고민하고 계신 분 Streamlit이란? Python 기반의 오픈 소스 라이브러리 Python 스크립트를 통해 데이터 시각화, 대화형 웹 애플리케이션, 대시보드 등을 손쉽게 만들 수 있음 공식 사이트에서는 "A faster way to build and share data apps"라고 말하며, 데이터 애플리케이션을 구축하고 공유하는 가장 빠른 방법을 제공한다고 함 웹사이트 구축에..

Python/일반 2024.01.21

[CPython 파헤치기] 1~4 장 파이썬 언어와 문법

CPython 파헤치기를 기본으로 공부하며 작성한 글입니다. CPython Cpython 이란? 기본적으로 우리가 많이 활용하는 파이썬으로, C언어로 작성된 파이썬 인터프리터를 의미한다. Cpython이 파이썬이 아니라 C로 작성된 이유는 컴파일러의 작동 방식 때문인데, 새로운 프로그래밍 언어를 만들려면 컴파일러를 컴파일 할 수 있는 프로그램이 필요하고 이를 개발는 데에는 가장 안정적이고 오래된 언어로 먼저 작성되기 때문이다. 특히 윈도우와 리눅스 커널 API가 모두 C로 작성이 되어 있기 때문에 C로 선택하는 것이 꽤나 합리적인 선택이었다고 한다. 파이썬의 문법 파일은 파서 표현식 문법(Parsing Expression Grammer, PEG) 사양을 사용한다. * : 반복 + : 최소한 한 번 반복 ..

Python/CPYTHON 2023.03.30

[파이썬 클린코드] Chapter5 : 데코레이터를 사용한 코드 개선

파이썬 클린코드 2nd edition 을 읽고 정리한 내용입니다. 1. 파이썬의 데코레이터 데코레이터는 일종의 문법적 설탕(syntax sugar)이라고 할 수 있는데, 데코레이터 이후에 나오는 것을 첫 번째 파라미터로 사용하여 결과 값을 반환하게 하기 때문이다. 이렇게 데코레이터를 사용하게 되면, 한 곳에서 함수의 전체 정의를 찾을 수 있게 되어 가독성을 크게 향상시킬 수 있게 된다. 데코레이터는 함수, 메서드, 제너레이터, 클래스 등 어떤 호출 가능한 객체에도 적용이 가능하다. 1-1. 함수 데코레이터 데코레이터를 사용하여 기능을 변경하는 가장 간단한 방법이다. 활용 방법 파라미터 유효성 검사 사전 조건 검사 기능 전체 정의 서명 변경 원 함수의 결과 캐시 등 def uppercase_decorato..

[파이썬 클린코드] Chapter4 : SOLID원칙-2

파이썬 클린코드 2nd edition 을 읽고 정리한 내용입니다. 3. 리스코프 치환 원칙 Liskov substitution priciple 설계의 안정성을 높이기 위해서 객체가 가져야 하는 일련의 특성. 클라이언트가 특별히 신경쓰지 않더라도, 부모 클래스 대신 자식 클래스를 사용해도 정상적으로 동작해야 한다는 것을 의미한다. 3-1. 도구를 사용해 LSP검사하기 mypy나 pylint등을 사용하여 LSP문제를 검출해 낼 수 있다. 만약 코드 전체에 타입 어노테이션을 사용하고, mypy를 설정한 경우에는 초기에 기본 오류 여부와 LSP준수 여부를 빠르게 확인할 수 있게 된다. 3-2. 예시 class Rectangle: def __init__(self, width, height): self.width ..

[파이썬 클린코드] Chapter4 : SOLID원칙-1

파이썬 클린코드 2nd edition 을 읽고 정리한 내용입니다. 0. SOLID란? S : 단일 책임 원칙 O : 개방 / 폐쇄의 원칙 L : 리스코프 치환 원칙 I : 인터페이스 분리 원칙 D : 의존성 역전 원칙 1. 단일 책임 원칙 Single Resposibility Principle 클래스와 같은 소프트웨어 컴포넌트는 단 하나의 책임만을 져야 한다는 원칙. 도메인의 문제가 변경되는 경우에만 변경이 필요하고, 다른 이유로 변경이 필요하다면 그것은 추가적인 추상화가 필요함을 의미하게 된다. 1-1. 너무 많은 책임을 가진 클래스 독립적인 동작을 하는 클래스를 하나의 인터페이스에 정의하는 경우에는 유지 보수를 어렵게 하고, 오류가 발생할 확률을 높게 한다. 1-2. 책임 분산 모든 메서드를 다른 클..

[파이썬 클린코드] Chapter3 : 좋은 코드의 일반적인 특징

파이썬 클린코드 2nd edition 을 읽고 정리한 내용입니다. 계약에 의한 디자인 계약이란, 통신 중에 지켜져야 할 규칙을 문서화 하는 것을 의미한다. 계약에서는 주로 사전조건과 사후 조건을 명시하며, 때로는 불변식이나 부작용을 기술하기도 한다. 즉, 계약을 통해서 각 컴포넌트들이 지켜야 할 부분을 명시하고 그 것을 기반으로 개발하는 것을 의미한다. 이렇게 하면 여러가지 장점들이 있는데 검증에 실패한 경우 오류를 쉽게 찾아서 수정 가능 사전조건의 경우 클라이언트, 사후조건은 컴포넌트 등 서로 연관되어 있는 부분이 다르기 때문에 책임소재를 신속하게 파악 가능함 사전조건의 경우 런타임 중에 조건이 맞는지 확인할 수 있기 때문에 조건이 맞지 않는다면 실행하지 않아야 함 등을 들 수 있다. 사전조건 함수나 ..

[파이썬 클린코드] Chapter2 : 파이썬스러운 코드

파이썬 클린코드 2nd edition 을 읽고 정리한 내용입니다. Pythonic 파이썬스럽다 파이썬으로 작업을 처리하는 고유한 관용구를 따른 코드 파이썬스러운 코드를 작성하는 이유 일반적으로 더 나은 성능을 보여줌 이해하기가 쉬우며, 실수를 줄이고 문제의 본질에 집중할 수 있게 됨 인덱스와 슬라이스 파이썬에서는 음수를 사용하여 끝에서부터 접근할 수 있고(다른 언어와 다른 점), 슬라이스를 활용하여 특정 구간의 요소를 가져올 수도 있다. 슬라이스를 사용하는 경우, 시작 인덱스는 포함되지만 마지막 인덱스는 제외된다. 슬라이스의 경우 내장객체이므로 이렇게 호출을 할 수도 있다. my_numbers = (1,2,3,4,5,6,7,8,9,10) interval = (1,7,2) # 시작, 중지, 간격 my_nu..

[파이썬 클린코드] Chapter1 : 코드 포맷팅과 도구

파이썬 클린코드 2nd edition 을 읽고 정리한 내용입니다. 들어가며 클린코드란? 다른 사람이 읽고 이해 및 활용(유지보수)할 수 있는 코드를 말한다. 문서화 Documentation 코드를 문서화하는 것은 주석을 추가하는 것과는 다르다는 사실을 인지하기. 코드를 문서화하기 위해서는 docstring과 annotation을 이용할 수 있다. 코드 주석 code comments 좋은 코드의 경우 이미 명환하게 되어 있기 때문에 주석이 필요하지 않으므로, 최대한 적은 주석을 목표로 하는 것이 좋다. 그렇기 때문에 주석을 작성하기 전에 1.새로운 함수를 추가 하거나 2.다른 더 나은 변수명을 사용 하는 방법으로 개선을 시도해보는 것이 좋다. Docstring 소스코드에 포함된 문서를 말할 수 있으며, 코..

[Python] 주피터노트북에서 아나콘다 가상환경 실행하기

이전에 아나콘다 프롬프트에서 가상환경을 생성했다. 2022.07.25 - [Python] - [Python] 아나콘다 프롬프트에서 가상환경 목록 확인, 활성화, 생성, 삭제 하기 [Python] 아나콘다 프롬프트에서 가상환경 목록 확인, 활성화, 생성, 삭제 하기 가상환경 목록 확인 아나콘다 프롬프트에서 생성된 가상환경 목록을 확인하려면 다음과 같이 실행하면 된다. conda info --envs 그러면 이렇게 생성된 가상환경 목록과 위치가 나오게 된다. 특정한 convin305.tistory.com VSCODE같은 것을 쓰면 그냥 클릭으로도 바꿀 수 있는데 주피터 노트북에서는 등록을 손수 해줘야 한다. 확인해보니 현재 내가 가진 환경은 base / automl / testenv 이렇게 총 3개로 나오고..

Python/일반 2022.08.13