본문 바로가기
반응형
[python3.10 기본] 25. 성능 최적화 25.1 프로파일링 (cProfile, timeit 모듈)프로파일링은 프로그램의 성능 병목 지점을 식별하는 데 사용됩니다. 파이썬에서는 cProfile과 timeit 모듈을 사용하여 프로파일링을 수행할 수 있습니다.cProfile 모듈기본 사용법import cProfiledef slow_function(): total = 0 for i in range(1, 10000): for j in range(1, 100): total += i * j return totalcProfile.run('slow_function()')프로파일링 결과 저장import cProfiledef slow_function(): total = 0 for i in range(1,.. 2024. 7. 2.
[python3.10 기본] 24. 보안 24.1 암호화와 해싱 (hashlib, hmac, secrets 모듈)hashlib 모듈hashlib 모듈은 다양한 해시 알고리즘을 제공합니다. 해시는 입력 데이터를 고정된 길이의 바이트 문자열로 변환하는 데 사용됩니다.해시 생성import hashlibdata = "hello world"hash_object = hashlib.sha256(data.encode())hash_hex = hash_object.hexdigest()print(hash_hex) # sha256 해시 출력hmac 모듈hmac 모듈은 해시 기반 메시지 인증 코드(HMAC)를 생성하는 데 사용됩니다. HMAC은 메시지의 무결성과 진위성을 보장합니다.HMAC 생성import hmacimport hashlibkey = b'secret_.. 2024. 7. 2.
[python3.10 기본] 23. 데이터 과학과 머신러닝 23.1 NumPy 기초NumPy는 고성능 수치 계산을 위한 파이썬 라이브러리입니다. 배열 객체와 다양한 수학 함수 및 연산을 제공합니다. NumPy 설치pip install numpyNumPy 배열 생성import numpy as np# 리스트로부터 배열 생성arr = np.array([1, 2, 3, 4, 5])print(arr) # [1 2 3 4 5]# 2차원 배열 생성matrix = np.array([[1, 2, 3], [4, 5, 6]])print(matrix)기본 연산# 배열 연산arr = np.array([1, 2, 3, 4, 5])print(arr + 5) # [ 6 7 8 9 10]print(arr * 2) # [ 2 4 6 8 10]# 행렬 연산matrix = np.a.. 2024. 7. 2.
[python3.10 기본] 22. 웹 개발 22.1 웹 프레임워크 개요 (Django, Flask 등)DjangoDjango는 완전한 기능을 갖춘 고수준의 웹 프레임워크로, 신속한 개발과 간결한 디자인을 목표로 합니다. Django는 ORM, 관리자 인터페이스, 인증 시스템 등을 기본으로 제공합니다. Django 설치 및 프로젝트 생성pip install djangodjango-admin startproject mysitecd mysitepython manage.py startapp myappDjango 프로젝트 구조mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py myapp/ __init__.py .. 2024. 7. 2.
[python3.10 기본] 21. 네트워킹 21.1 socket 프로그래밍socket 모듈을 사용하여 TCP 및 UDP 소켓 프로그래밍을 수행할 수 있습니다. TCP 서버 예제import socketdef tcp_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 8080)) server_socket.listen(5) print("Server is listening on port 8080") while True: client_socket, addr = server_socket.accept() print(f"Connection from {addr}") .. 2024. 7. 2.
[python3.10 기본] 20. 병행성 및 병렬성 20.1 threading 모듈threading 모듈은 스레드를 사용한 병행성을 지원합니다. 이를 통해 여러 작업을 동시에 수행할 수 있습니다. 기본 사용법import threadingimport timedef print_numbers(): for i in range(10): print(i) time.sleep(0.5)def print_letters(): for letter in "abcdefghij": print(letter) time.sleep(0.5)t1 = threading.Thread(target=print_numbers)t2 = threading.Thread(target=print_letters)t1.start()t2.start()t.. 2024. 7. 2.
[python3.10 기본] 19. 메타프로그래밍 19.1 클래스 데코레이터클래스 데코레이터는 함수 데코레이터와 비슷하게 클래스의 동작을 변경하거나 확장할 수 있습니다. 클래스 데코레이터 예제def add_method(cls): def new_method(self): print("New method added!") cls.new_method = new_method return cls@add_methodclass MyClass: def __init__(self, name): self.name = nameobj = MyClass("example")obj.new_method() # New method added!19.2 메타클래스메타클래스는 클래스의 클래스입니다. 즉, 클래스의 생성과 동작을 제어할 수 있는 특.. 2024. 7. 2.
[python3.10 기본] 18. 고급 함수 18.1 데코레이터데코레이터는 함수를 인자로 받아, 그 함수에 새로운 기능을 추가한 후 반환하는 함수입니다. 데코레이터를 사용하면 코드의 반복을 줄이고, 함수의 동작을 변경할 수 있습니다. 기본 데코레이터def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper@my_decoratordef say_hello(): print("Hello!")say_hello()인자를 받는 데코레이터d.. 2024. 7. 2.
[python3.10 기본] 17. 고급 데이터 구조 17.1 deque와 기타 컬렉션 (collections 모듈)deque는 양쪽 끝에서 빠르게 추가 및 제거가 가능한 양방향 큐입니다. 이 외에도 defaultdict, namedtuple, Counter, OrderedDict 등을 제공합니다. deque 사용법from collections import deque# deque 생성d = deque([1, 2, 3])# 요소 추가d.append(4)d.appendleft(0)print(d) # deque([0, 1, 2, 3, 4])# 요소 제거d.pop()d.popleft()print(d) # deque([1, 2, 3])defaultdict 사용법from collections import defaultdict# 기본값이 int인 defaultdic.. 2024. 7. 2.
[python3.10 기본] 16. 프로젝트 구성 및 배포 16.1 프로젝트 디렉토리 구조효율적인 프로젝트 관리를 위해서는 디렉토리 구조를 잘 설계하는 것이 중요합니다. 일반적으로 파이썬 프로젝트는 다음과 같은 구조를 갖습니다.my_project/├── my_project/│ ├── __init__.py│ ├── module1.py│ ├── module2.py│ └── ...├── tests/│ ├── __init__.py│ ├── test_module1.py│ ├── test_module2.py│ └── ...├── docs/│ ├── conf.py│ ├── index.rst│ └── ...├── setup.py├── README.md├── requirements.txt└── .gitignoremy_project/: 프로.. 2024. 7. 2.
반응형