기술면접-1
가상환경
가상환경은 다른 환경들과 라이브러리가 분리되는 Python 환경
각 앱별로 필요한 환경이 다르기에 이로 인한 충돌을 피하기 위해서 앱별로 가상환경을 만들고, 가상환경 속에 라이브러리들을 설치한다.
가상환경을 실행시키고 패키지를 설치하면 가상환경에만 설치되고, 외부(시스템) 영역에는 패키지가 설치되지 않는다.
가상환경이 주는 이점 : 한 컴퓨터에서 다른 여러 환경들을 사용할 수 있도록 해준다. 가상환경의 단점 : 로컬에 종속되어, 다른 PC에서 해당 앱을 실행시키기 위해서는 다른 PC도 같은 환경을 구성해줘야한다.
nginx, apache
nginx | apache | |
---|---|---|
처리방식 | MPM(Multi Processing Module) | Event Driven |
MPM : 두 가지로 나뉜다. (prefork, worker)
-
prefork(프로세스 기반)
클라이언트 측 요청 : 프로세스 = 1 : 1 => 프로세스당 하나의 쓰레드로, 요청에 따라 프로세스 생성 프로세스 특성상, 메모리 공유를 하지 않기 때문에, 독립적이고,
따라서 안정적으로 사용 가능하지만, 메모리를 많이 차지한다.
실행 중인 프로세스를 복제
안전하지 않은 제 3자가 만든 모듈 사용가능
디버깅이 빈약한 플랫폼에서 쉽게 디버깅 가능 -
worker(쓰레드 기반) 클라이언트 측 요청 : 프로세스 = n : 1 => 프로세스당 여러개 쓰레드(최대 64개) 쓰레드간 메모리를 공유하기때문에, 메모리 사용량이 비교적 적다.
쓰레드를 많이 사용해서 context switching 비용이 든다.
따라서 통신량이 많은 서버에 적합하다.
Event Driven 방식 : 이벤트 구동 방식
- Event Driven(이벤트 구동)
여러 이벤트 처리방식에서 처럼 이벤트 발생시 처리하는 방식 하나의 마스터 프로세스와 여러 worker 프로세스로 구성되어있다. 클라이언트 요청을 reactor에서 받아들이고,
handler에서 각 worker로 전달하고, worker에서 처리한다.
proxy
proxy : 대리
추가 : ~ 2022-09-30
도커, 컨테이너
도커는 앱을 배포할 때 컨테이너로 묶어서 배포
함수형 프로그래밍
따로 정리해야할듯
orm, odm
db운용
댓글남기기