Python (7) 썸네일형 리스트형 [Python] 메모리 관리 메모리 관리 레퍼런스 카운트 파이썬의 모든 객체에 카운트를 포함하고 이 카운트는 객체가 참조될 때 증가하고 참조가 삭제될 때 감소되며 카운터가 0이 되면 메모리 할당이 삭제되는 방식 파이썬이 메모리 관리 시 레퍼런스 카운트와 가비지 컬렉션에 의해 관리 파이썬은 내부적으로 malloc()과 free()를 많이 사용하기 때문에 메모리 누수 위험이 있음, 이러한 이유로 인해 레퍼런스 카운트를 사용함 [Python] GIL(Global Interpreter Lock) GIL 파이썬 인터프리터가 한 스레드만 하나의 바이트코드를 실행하는 것 하나의 스레드에 모든 자원을 허용하고 나머지 스레드는 Lock을 검 파이썬의 모든 객체는 reference count를 갖고 있는데 멀티스레드에서 여러 스레드가 하나의 객체를 사용한다면 reference count를 관리하기 위해 모든 객체에 Lock을 걸어야하며 비효율 적이기 때문에 GIL을 사용하게 되었음 멀티스레드 회피를 위해 멀티프로세싱을 사용 [Python]ABC(Abstract Base Class) Abstract Base Class ABCmeta class로 선언하면 단독으로 객체 선언이 안되고 상속만 가능한 클래스가 됨. @abstractmethod로 함수에 데코레이터를 선언하면 자식클래스는 필수로 해당 함수를 선언해야함. 코드예시 from abc import ABCMeta, abstractmethod # 해당 클래스는 객체 선언이 안됨. class ABCMetaTestClass(metaclass=ABCMeta): def __init__(self): print("Parent Initial") @abstractmethod def test(self): print("Parent Test") class TestClass(ABCMetaTestClass): def __init__(self): print(".. [Python] django vs flask django 기능이 많고 강력함 ORM, Session 관리 등 framework 내 많은 기능을 갖고 있음 커뮤니티가 python web framework 중 가장 큼 무거운 어플리케이션에 사용 요새 Python을 통한 Web Application을 서비스하는 회사 대부분이 사용 중 flask 단순하고 매우 가벼움 기능이 다양하지 않지만 개발자 입맛대로 자유롭게 구현 가능 가벼운 어플리케이션에 사용한다고 하지만 상용 Application도 Flask로 구축 가능 [Python] @staticmethod vs @classmethod @staticmethod 클래스 내부에서 데코레이터를 통해 사용 self 인자를 갖고 있지 않음, 이로인해 클래스 객체를 선언하지 않고 직접 접근 가능함. ex)Test.static_function() @classmethod 클래스 내부에서 데코레이터를 통해 사용 self 대신 cls 인자를 갖고 있음, staticmethod와 마찬가지로 클래스 객체를 선언하지 않고 직접 접근 가능함. ex) Test.class_function() 상속에서 차이가 남.(코드 예시 확인) 코드 예시 class Test: name = "Test" @staticmethod def static_function(): return Test.name @classmethod def class_function(cls): return c.. [Python] is vs == is 래퍼런스 비교할 때 사용 None, True, False 체크할 때 사용 == 값을 비교할 때 사용 Integer, String, List, Dict 등 비교할 때 사용 [Python] requests 라이브러리 안녕하세요 개발하는돼지🐷 입니다. 오늘은 Python에서 HTTP 요청을 보내는 모듈인 requests에 대한 정리입니다. 1. GET import requests REQ_URL = "https://devleoper-pig.tistory.com/" REQ_PARAMS = {"name": "pig", "type": "animal"} response = requests.get(REQ_URL, params=REQ_PARAMS) print(response.status_code) print(response.text) requests.get을 통해 사용 가능 하며 데이터 전달 시 params를 통해 전달 해야 합니다. 2. POST import requests REQ_URL = "https://devleoper-p.. 이전 1 다음