Back-End/Server 3

파이썬의 GIL 이란

파이썬은 두 개 이상의 스레드가 바이트코드를 실행하는 것을 원하지 않는다. CPython의 메모리 관리 정책은 Thread Safe하지 않기 때문이다. 이러한 문제를 해결하고자 Python 바이트 코드를 실행하려면 인터프리터 잠금(GIL)을 획득해야 한다는 규칙을 추가했다. GIL [Global Interpreter Lock]이란 Python Object 접근을 제한하는 mutex이다. GIL은 한 번에 하나의 스레드만이 파이썬 바이트코드를 실행하도록 보장하기 위해 CPython 인터프리터가 사용하는 메커니즘이다. PyObject를 묵시적으로 Thread Safe 하도록 만들어서 CPython의 구현부를 단순하게 만든다. 다시 말해 로직 그 자체에 집중한 CPython 구현부를 작성하며 그 외 변수들의 ..

Back-End/Server 2022.09.05

HTTP 인증에 관한 개요

BASIC 인증 유저네임과 패스워드를 base64 의 형태로 인코딩하여 전송하고 서버는 이를 디코딩하여 인증을 확인한다. 형태는 다음과 같다. username = 'foo' password = 'supersecretpassword' credentials = `${username}:${password}` encoded = base64.encode(credentials) request.headers.Authorization = `Basic ${encoded}` 장점 HTTP 기본 인증 프로토콜로 대부분의 브라우저에서 지원 구현이 간단함 단점 base64로 인코딩 되기 때문에 패킷 탈취 시에 보안에 매우 취약함. (SSL 반드시 필요) DIGEST 인증 Basic 인증을 기반으로 보안을 강화한 인증방식. 서버..

Back-End/Server 2022.05.08

무료 도메인(Free Domain) Freenom의 Not Available 문제.

유명 무료 도메인 공급 업체인 Freenom 에서 무료 도메인을 발급 받으려고 하는 경우에 어떤 도메인을 검색해도 모두 Not Available 로 비활성화되서 제대로 진행이 되지 않는 문제가 있다. 버그인지 의도인지는 모르겠지만 여러가지로 시도 중 해결할 수 있는 방법을 찾았다. 바로 마지막 최상위 도메인(TLD)까지 모두 입력하는 것이다. 무료의 경우 .tk / .ml / .ga / .cf / .gq 등의 무료 TLD 를 포함하는 전체 도메인을 입력하면 정상적으로 진행되는 것을 발견했다. 자동으로 선택되기 때문에 우측상단에 1 domain in cart가 확인 되었다면 checkout 버튼을 클릭하여 진행하면 된다. 이후에 진행하는 방법은 이미 많은 자료가 있기 때문에 생략한다. 끝. ex) 구글 혹..

Back-End/Server 2020.02.14