본문 바로가기

개발/python

(7)
파이썬 클래스와 인스턴스 이해하기: 개념, 예제 코드 및 활용 방안 소개 파이썬 클래스와 인스턴스 이해하기: 개념, 예제 코드 및 활용 방안 소개 파이썬은 객체 지향 프로그래밍 언어로, 클래스와 인스턴스를 활용하여 구조화된 코드를 작성할 수 있습니다. 이 글에서는 파이썬의 클래스와 인스턴스 개념을 소개하고 예제를 통해 이해를 돕겠습니다. 클래스(Class)란? 클래스는 객체의 공통된 속성(attribute)과 동작(method)을 추상화한 설계도입니다. 즉, 클래스를 통해 연관된 데이터와 기능을 하나로 묶어서 캡슐화할 수 있으며, 더 나아가 상속과 같은 객체 지향의 기능을 활용할 수 있습니다. 간단한 클래스 예시: python class Person: def __init__(self, name, age): self.name = name self.age = age def int..
파이썬 데코레이터의 원리 및 활용법: 코드 가독성과 효율성 향상 시키기 파이썬 데코레이터는 코드의 확장성과 재사용성을 개선하여 가독성과 효율성을 향상시키는 방법입니다. 이 글에서는 파이썬 데코레이터의 원리와 활용법에 대해 알아보겠습니다. 데코레이터란? 데코레이터는 함수나 메소드의 기능을 변경하지 않으면서 부가적인 처리를 추가할 수 있는 기법입니다. 파이썬에서는 기존 함수를 호출하는 것이 아닌, 함수를 감싸고 있는 새로운 함수를 호출함으로써 이 기법을 구현합니다. 데코레이터 작성하기 데코레이터는 전달받은 함수를 개조하여 반환하는 함수를 사용해 작성할 수 있습니다. 예제를 통해 간단한 데코레이터를 만들어 보겠습니다. python def my_decorator(func): def wrapper(): print("Something is happening before the func..
파이썬 GIL(Global Interpreter Lock) 이해하기: 병렬처리에 관한 성능 제한과 해결 멀티스레딩을 활용할 때 파이썬의 Global Interpreter Lock(GIL)이라는 특징에 자주 부딪힙니다. 이번 글에서는 GIL에 대한 이해와 이로 인한 병렬 처리 성능 제한 문제 및 해결 방법을 알아보겠습니다. 파이썬 GIL(global interpreter lock) 이란? 파이썬 GIL은 CPython 인터프리터에서 스레드가 동시에 실행되지 않도록 제어하는 메커니즘이자 잠금 기능입니다. GIL은 동시에 실행되는 스레드가 공유 리소스에 접근할 때 발생하는 동기화 문제를 방지하기 위해 도입되었습니다. 그러나 이로 인해 하나의 프로세스 내에서 여러 스레드를 실행하더라도 한 번에 하나의 스레드만 실행되어 CPU 바인드 작업에 병목 현상이 발생할 수 있습니다. GIL(global interpreter..
파이썬 제너레이터와 이터레이터: 차이점, 장단점, 사용법 파이썬 제너레이터와 이터레이터는 파이썬에서 데이터를 순차적으로 처리하는 데 사용되는 객체입니다. 이터레이터는 데이터를 순차적으로 읽을 수 있는 객체이며, 제너레이터는 이터레이터를 생성하는 함수입니다. 이터레이터 이터레이터는 __iter__() 메서드를 구현하는 객체입니다. __iter__() 메서드는 이터레이터를 반환합니다. 이터레이터는 next() 메서드를 사용하여 데이터를 순차적으로 읽을 수 있습니다. next() 메서드는 다음 데이터를 반환하고, 더 이상 데이터가 없으면 StopIteration 예외를 발생시킵니다. 제너레이터 제너레이터는 yield 키워드를 사용하여 데이터를 생성하는 함수입니다. yield 키워드는 함수의 실행을 중단하고 데이터를 반환합니다. 함수가 다시 호출되면 yield 키워드..
[파이썬] Python coding convention (파이썬 코딩 컨벤션) Python coding convention 파이썬 코딩 컨벤션은 파이썬을 코딩할 때 사용하는 일종의 올바른 스타일 관례라고 할 수 있다. 세살 버릇 여든간다고 초반에 잘못 잡아 놓은 코딩 버릇은 시간이 지날 수록 바꾸기 어려울 것이다. 현업에 들어가기전 주요 파이썬 코딩컨벤션을 살펴보며 올바른 파이썬 코딩 스타일을 가질 수 있도록 해야겠다. PEP8 PEP8은 파이썬의 코딩 스타일 가이드이다. 여기서 PEP는 파이썬의 개발은 파이썬 개선 제안서(Python Enhancement Proposal)의 줄인 말이다. PEP 프로세스는 새로운 기능을 제안하고 커뮤니티의 의견을 수렴하여 파이썬의 디자인을 결정을 문서화하는 파이썬의 주요 개발 프로세스를 말한다. Style Guide for Python Code ..
파이썬 효율적 메모리 관리하기 파이썬의 메모리 관리 파이썬의 좋은 점은 파이썬의 모든 것이 객체라는 것 객체가 더 이상 필요하지 않으면 Python 메모리 관리자가 자동으로 객체에서 메모리를 회수 = 동적 메모리 할당이 파이썬 메모리 관리의 기초 Python 메모리 관리자는 Python의 메모리 할당을 관리 모든 파이썬 객체와 데이터 구조를 포함하는 개인 힙이 있습니다. Python 메모리 관리자에는 객체 별 할당자가있어 int, string 등과 같은 특정 객체에 대해 메모리를 명확하게 할당 그 아래에서 원시 메모리 할당자는 운영 체제의 메모리 관리자와 상호 작용하여 개인 힙에 공간이 있는지 확인 Python 메모리 관리자는 "블록"이라는 메모리 청크를 관리합니다. 동일한 크기의 블록 모음이 "풀"을 구성 풀은 힙 = 64 풀에 할..
[파이썬] 코딩테스트용 문법 정리 자료형 수 자료형 정수형 실수형 #소수부가 0일 때 0을 생략 a = 5. # 5.0 # 10억의 지수 표현 방식 (최단 경로문제에서 자주 사용) a = 1e9 # 100000000.0 # 컴퓨터는 2진수 체계이기 때문에 실수 덧셈을 정확히 하지 못한다. 보통 5째 자리에서 반올림 하면된다. a = 0.3 + 0.6 print(rount(a,4)) 수 자료형의 연산 a = 7 b = 3 # 나누기 a / b # 나머지 a % b # 몫 a // b # 거듭 연산자 a ** b # a의 b승 리스트 자료형 리스트 초기화 a = [1,2,3,4,5,6,7,8,9] print(a) print(a[4]) # 빈 리스트 선언 방법 a = list() a = [] # 크기가 N이고 모든 값이 0인 1차원 리스트 초..