PEP8은 파이썬 코드 작성시 지켜야 할 코드컨벤션 가이드라인으로 가독성과 일관성을 위해 장려됩니다. 공백과 간격, class나 함수명의 naming, 표현식 등의 기준이 있습니다. 팀 프로젝트의 경우 사전에 app명, class, 함수명의 기준을 정해놓았고 공백등의 간격은 같은 코드포메터를 사용하도록 했습니다.
한 시점에 하나의 스레드에만 자원을 할당하고 나머지는 lock을 걸어 멀티스레드가 싱글스레드처럼 동작하는 것을 말하며 병목현상이 일어날 수 있습니다.
mutable 자료형은 변경가능하다는 의미이며 쓰기가 가능합니다. 예시로는 리스트, 딕셔너리 등이 있습니다.
immutable 자료형은 변경불가능 하다는 의미로 읽기만 가능하며 예시로는 숫자, 문자열, 튜플 등이 있습니다.
args: arguments 개수가 정해지지 않는 인자를 여러개 받을 때 사용됨
인자를 받아 전부 더하는 함수가 있다고 할 때 def plus(a,b,c) 라고 인자를 정의하면 인자를 3개까지 밖에 받지 못하지만 def plus(*args) 라고 할 경우 개수에 상관없이 인자를 받을 수 있음
**kwargs: keywords arguments 개수가 정해져 있지 않은 인자를 key-value 형태로 받을 때 사용할 수 있음
가장 큰 차이는 메모리를 공유하는가를 볼 수 있습니다. 비유하자면 10개의 주방에서 10명의 요리사가 10개의 일을 하는 것은 멀티프로세싱, 1개의 주방에서 10명의 요리사가 10개의 일을 하는 것이 멀티 스레딩이라고 할 수 있습니다. 메모리 공유가 필요한 간단한 작업의 경우 멀티스레딩, 독립적으로 메모리를 사용하고 안정적인 운영이 필요한 경우 멀티프로레싱을 활용할 수 있습니다.
동기는 요청시 응답이 돌아올 때까지 다른 작업을 진행하지 않고 비동기의 경우 응답을 기다리지 않고 다른 활동이나 다른 요청을 진행합니다.
: 비유해보자면 프레임워크는 집, 라이브러리는 조립형 가구라고 할 수 있습니다. 프레임워크는 골조, 뼈대로서 집을 지탱하는 기둥이나 벽의 개수, 방의 위치, 주방위치 등을 쉽게 바꿀수 없는 것처럼 주어진 틀에 따라 코드를 작성해야 합니다. 반면 라이브러리의 경우 조립형 가구처럼 원하는 기능, 형태, 크기 등을 조절하여 배치가 가능합니다.
→ 이 부분은 잘 모르겠다... 좀더 공부 필요
immutable mutable
GIL
PEP8
arg kwargs
프레임워크와 라이브러리
멀티스레드와 멀티프로세스
대용량트래픽
ORM