과거 다른 블로그에서 쓴 글을 퍼왔습니다. Introduction 내가 관리하는 API 서버는 다양한 타입의 클라이언트들로 오는 요청을 처리하고 있다. 기본적인 oauth 인증을 이용하는 웹 어플리케이션 뿐만 아니라, Windows server application, aws lambda 등 많은 어플리케이션이 HMAC 인증을 사용하고 있다. DRF (django Rest Framework)의 Permission Class 로 구현되지 않고, view 로직에 signature 검증 로직이 있는 상태다. 즉, 아무 인증 없이 django 의 Authentication 을 통과하여 view 로직 초반에서 signature를 검증한다. 나는 이 signature 검증 로직을 view 함수 밖으로 끄집어내어 pe..
파이썬은 파이썬만의 배우기 쉬운 문법때문에 잘 다루기 쉽다는 오해를 받습니다. 공식 문서를 꼼꼼히 살펴보면 파이썬의 구현을 잘 설명되어 있는데, 꽤 복잡한 구조로 구현이 되어 있음을 확인할 수 있습니다. 시간이 허락한다면 꼭 공식 문서를 읽어보시기 바랍니다. C vs Python (Cpython) /* C code */ int a = 1; int b = 2; int c = a + b; 위 코드는 C 코드의 일부분이며, 간단하게 두 변수를 선언, 초기화하고 덧셈 연산을 수행하는 코드 조각입니다. 이 프로그램을 실행한다면 아래와 같이 작동하게 됩니다. int 4바이트 만큼의 메모리를 할당하고 a라는 이름을 붙인다 (컴퓨터는 a를 방금 할당한 메모리의 주소로 기억한다.) 변수 a 자리에 1을 저장한다. (0x..