다음 중 모듈을 제대로 읽어 들이지 못하는 코드는?
import sin, cos, tan from math
서순 오류
번호 | 모듈 이름 | 모듈 기능 |
---|---|---|
0 | wave 모듈 | wav 음악 형식과 관련된 처리를 할 때 사용합니다. |
1 | curses 모듈 | curses 라이브러리는 텍스트 기반 터미널을 위한 독립적인 스크린 페인팅과 키보드 처리 기능을 제공합니다. |
2 | socket 모듈 | 이 모듈은 BSD socket 인터페이스에 대한 액세스를 제공합니다. |
3 | magic 모듈 | python-magic 은 파일 타입 식별 라이브러리인 libmagic 의 파이썬 인터페이스입니다. |
4 | pdb 모듈 | pdb 모듈은 파이썬 프로그램을 위한 대화형 소스 코드 디버거를 정의합니다. |
출처: https://docs.python.org/ko/3.8/howto/curses.html
출처: https://docs.python.org/ko/3/library/socket.html
출처: https://pypi.org/project/python-magic/
출처: https://docs.python.org/ko/3.7/library/pdb.html
os
모듈 사용해보기# 모듈을 읽어 들입니다.
import os
# 디렉토리를 읽어 들이는 함수
def read_directory(path, level):
# 디렉토리의 요소 읽어 들이기
print("\t" * level + "현재 디렉토리:", path)
dirent_list = os.listdir(path)
# 디렉토리의 요소 구분하기
for dirent in dirent_list:
if (dirent.startswith('.')):
continue
full_path = os.path.join(path, dirent)
if (os.path.isdir(full_path)):
read_directory(full_path, level + 1)
else:
print("\t" * level + "- 파일:", dirent)
read_directory(".", 0)
내가 이 짬에 이런 코드를 짜야 하나 싶고... 막 그러네
from primePy import primes
print(primes.between(100, 1000))
임베디드에서 파이썬은 완전히 대척점에 있는 언어라서 실제로 사용할 일이 많진 않지만 유저-장치 간 통신에서는 꽤나 요긴하게 썼던 경험이 있다. 특히 socketserver
라이브러리는 클라이언트 용 애플리케이션으로 포워딩할때 도움이 되었다.
앞 장에서 살펴본 socketserver
모듈을 분석하는 것이 과제이다.
책에서는 pip
를 통해 설치 경로를 파악하고 해당 파일을 열어서 분석하는 방법을 소개하나, 필자는 nvim
의 CoC (coc-pyright)
를 통해 파일을 열어 접근한 뒤 분석하려 한다.
세줄 요약:
socketserver
라이브러리는 synchronous
하게 설계되어 있다. 여기에서는 synchrounous
라는 용어보단 실제론 blocking
이라는 용어가 더 올바른 것 같다. 물론 이는 시스템 콜 관점에서 그렇다는 것이고 라이브러리의 추상적 개념성 위에서는 synchrounous
라는 용어도 쓸 수 있을 것 같다만..TCPServer
그리고 UDPServer
클래스는 IP
계층에서 동작하고 우측의 UnixStreamServer
와 UnixDatagramServer
는 UNIX Domain Socket
을 사용하게 된다.Mix-in class
를 활용하여 multiple requests 에 대한 처리 방식을 택할 수 있는데, ForkingMixIn
을 택하게 되면 요청-대-프로세스 구조를 가지게 되며, ThreadingMixIn
을 택하게 되면 요청-대-쓰레드 구조를 택하게 된다.This is bad class design, but saves some typing. (딱 이 수준 ㅋ)