본문 바로가기

Programming/Python34

Python의 데코레이터 데코레이터는 Python의 가장 강력한 기능 중 하나로, 메타프로그래밍을 가능하게 합니다. 함수나 메소드의 동작을 변경하거나 확장할 수 있는 데코레이터를 통해 코드의 재사용성과 가독성을 크게 향상시킬 수 있습니다. 본 게시물에서는 Python의 데코레이터에 대한 기본적인 이해와 활용 방법을 알아보겠습니다. 데코레이터란? 데코레이터는 다른 함수를 감싸는 함수로, 감싸진 함수의 동작을 변경하거나 확장할 수 있습니다. 이를 통해 기존 함수의 코드를 수정하지 않고도 새로운 기능을 추가할 수 있습니다. Python의 데코레이터는 기본적으로 함수나 메소드를 인자로 받는 함수입니다. 이 함수는 래핑된 함수에 추가적인 기능을 부여하거나 수정하고, 이를 반환합니다. 데코레이터는 @ 기호를 사용하여 적용됩니다. 이는 해당.. 2023. 11. 24.
Python의 타입 힌트 Python의 유연성은 많은 개발자에게 사랑받는 이유 중 하나지만, 크고 복잡한 코드베이스에서는 종종 버그를 야기할 수 있습니다. 타입 힌트(Type Hinting)와 정적 타입 검사(Static Type Checking)는 이러한 문제를 해결하기 위한 강력한 도구입니다. 현대의 Python 개발 환경에서 타입 힌트는 코드의 가독성과 유지 보수성을 크게 향상시킵니다. Python은 기본적으로 동적 타입 언어지만, Python 3.5 이상부터 타입 힌트(type hint) 기능을 통해 변수, 함수의 인자, 그리고 반환 값에 대한 타입 정보를 제공할 수 있게 되었습니다. 이번 게시물에서는 Python에서 타입 힌트를 사용하는 방법과 그것이 개발 프로세스에 어떻게 도움이 되는지를 알아보도록 하겠습니다. 타입 .. 2023. 11. 10.
Python에서의 메모리 관리와 가비지 컬렉션 Python은 메모리 관리와 가비지 컬렉션에 대한 효율적인 시스템을 갖추고 있습니다. 이러한 메모리 관리 체계는 Python 프로그램의 성능과 안정성에 큰 영향을 미칩니다. 이번에는 Python의 메모리 관리 체계와 가비지 컬렉션에 대해 알아보겠습니다. Python의 메모리 할당 Python에서 객체가 생성될 때마다, 해당 객체에 대한 메모리가 동적으로 할당됩니다. Python의 내부 메모리 할당자는 이러한 객체 생성 및 삭제를 효율적으로 처리하기 위한 여러 전략을 사용합니다. 참조 카운트 Python의 주요 메모리 관리 방식 중 하나는 참조 카운팅입니다. 객체가 다른 객체에 참조될 때마다 해당 객체의 참조 카운트가 증가하고, 참조가 해제될 때마다 감소합니다. 참조 카운트가 0이 되면 해당 객체는 메모리.. 2023. 10. 27.
Python에서의 비동기 프로그래밍 베하~ 안녕하세요! 현상수배범입니다. 오늘은 Python에서의 비동기 프로그래밍에 대해 알아보도록 하겠습니다. 비동기 프로그래밍은 현대 소프트웨어 개발에서 중요한 개념 중 하나입니다. 특히 I/O 바운드 작업, 예를 들어 API 요청, 파일 입출력 등에서 비동기 처리는 프로그램의 효율성을 크게 높일 수 있습니다. Python에서는 asyncio 라이브러리를 통해 비동기 프로그래밍을 쉽게 구현할 수 있습니다. 본 글에서는 Python의 asyncio와 aiohttp 라이브러리를 사용하여 비동기 프로그래밍을 어떻게 구현하는지 자세히 알아보겠습니다. 비동기 프로그래밍이란? 비동기 프로그래밍은 말 그대로 '비동기적'으로 동작하는 코드를 작성하는 것을 의미합니다. 이는 프로그램의 여러 부분이 독립적으로, 또는 병.. 2023. 10. 12.
Pandas & Numpy 베하~ 안녕하세요! 현상수배범입니다. 이번 시간에는 Python의 라이브러리인 Pandas와 Numpy에 대해서 알아보도록 하겠습니다. Python의 pandas와 numpy 라이브러리는 데이터 분석과 관련된 다양한 작업을 수행할 수 있게 해줍니다. 둘 다 오픈 소스이며, 데이터 처리, 변형, 분석을 위한 다양한 기능을 제공합니다. 다음은 이 두 라이브러리의 주요 특징 및 비교입니다. Pandas Pandas는 Python에서 데이터 분석을 위한 고수준의 라이브러리입니다. Pandas의 핵심 구조는 Series와 DataFrame입니다. - 특징 Series: 1차원 배열과 유사한 구조로, 인덱스를 가지고 있습니다. DataFrame: 2차원 테이블로, 열마다 다른 타입의 데이터를 가질 수 있습니다. P.. 2023. 9. 27.
Streamlit - Kaggle DALYs 데이터 분석 & 시각화 - 3 베하~ 안녕하세요! 현상수배범입니다. 지난 시간에는 streamlit을 DALYs 데이터의 각각의 변수(질병/재해) 간의 상관 관계 확인 및 시각화를 해보았습니다. 이번 시간에는 이번에는 좀 더 발전된 시각화를 위해 GeoPandas와 Pydeck 라이브러리를 활용해보려고 합니다. GeoPandas란? GeoPandas는 기본적으로 GeoDataFrame이라는 데이터 구조를 사용합니다. 이것은 Pandas의 DataFrame을 확장한 것으로, 각 행이 공간적 객체와 연관된 데이터를 가질 수 있습니다. 공간적 객체는 주로 포인트, 라인, 폴리곤 등을 의미합니다. 주요 기능 1. 공간 데이터 로딩: 다양한 형식의 공간 데이터 파일 (예: GeoJSON, Shapefile)을 쉽게 읽을 수 있습니다. 2. 데.. 2023. 9. 15.
Streamlit - Kaggle DALYs 데이터 분석 & 시각화 - 2 베하~ 안녕하세요! BTC_현상수배범 입니다. 지난번에는 Streamlit을 활용하여, DALYs 데이터에 대해 시각화(box plot)를 해보았습니다. 이번에는 각각의 변수(질병/재해) 간의 상관 관계를 확인해보고 시각화해보고자 합니다. 상관계수란? 상관계수(Correlation Coefficient)는 두 변수 간의 관계의 정도와 방향을 수치적으로 표현한 값입니다. 상관계수의 값은 -1부터 1까지 범위를 가집니다. 1에 가까울수록 두 변수가 강한 양의 상관관계를 가짐 (하나의 변수가 증가하면 다른 변수도 증가) -1에 가까울수록 두 변수가 강한 음의 상관관계를 가짐 (하나의 변수가 증가하면 다른 변수는 감소) 0에 가까울수록 두 변수가 거의 무상관 (하나의 변수의 변화가 다른 변수의 변화에 큰 영향을.. 2023. 8. 31.
[Python] 예외 처리 (try, exept, else, finally) 안녕하세요~ 1-Tier 팀의 One입니다 태풍이 지나가고 또 좋은 날이 왔네요 오늘은 Python의 예외처리에 대해서 알아봅시다! 오류가 발생했을 때 파이썬은 프로그램을 중단하고, 오류 메시지를 보여줍니다. 유연한 프로그래밍을 위해선 오류를 처리해야겠죠?! 그러기 위해선 예외처리를 사용합니다. 예외처리? 프로그램 실행 중 발생할 수 있는 오류나 예외 상황에 대응하기 위한 파이썬의 매커니즘 예외 처리를 통해 오류에 대응하는 코드를 작성하여, 예외 상황에서 프로그램이 비정상적으로 종료되지 않도록 할 수 있습니다. 예외처리는 코드의 안정성과 신뢰성을 향상 시키는데 도움이 되겠죠?! 그럼 파이썬의 예외 처리 방법에 대해 자세히 알아봅시다. try-except 파이썬에서 예외처리는 try-except 문을 사용.. 2023. 8. 21.