안녕하세요. fastapi에서 query, path, body 필드는 생각보다 많이 쓸 겁니다. 이번 시간에는 fastapi에서 Query parameter를 어떻게 쓰는지 몇 가지 예제를 통해 간단하게 배워보겠습니다. main.py입니다. read_root 함수에, keyword: str이라고 적었습니다. path에 있지도 않기 때문에, keyword는 Query 파라미터로 인식됩니다. docs를 보겠습니다. name이 keyword인 query가 있습니다. 그런데 옆에 required가 붙어 있습니다. 이는 없으면 안 된다는 의미입니다. 즉, keyword: str로 선언하면, Query parameter keyword는 string으로 받는 것을 기대합니다. 그리고, required이므로 반드시 필..
전체 글 검색 결과
python의 math에는 trunc가 있습니다. 이 함수는 소수 부분을 날린 결과를 돌려줍니다. 어떤 결과를 출력하는지 간단하게 알아보도록 하겠습니다. 먼저, math.floor(3.4)와 math.trunc(3.4)를 비교해 보겠습니다. 전자는 3.4보다 작거나 같은 수 중 제일 큰 수인 3을 리턴합니다. 다음에, trunc입니다. .4 부분을 날린 결과는 3이므로, 3을 돌려주겠군요. 결과를 보니까 3, 3으로 같음을 확인할 수 있습니다. n.x에서 소수 부분을 떼어내면 n이 됩니다. 이는 n.x를 넘지 않는 가장 큰 수와 동일합니다. 그러니, 양수일 때에는 floor와 trunc가 같은 결과를 냅니다. 그러면 모든 실수에 대해서 floor와 trunc는 같은 결과가 나올까요? 0보다 작은 실수를 ..
ps로 프로세스가 어떤 쓰레드들을 물고 있는지 이 글에 작성했던 적이 있었습니다. 이것을 pstree로 보는 방법을 알아보겠습니다. 테스트용 프로그램은 위와 같습니다. 간단하게 Thread 3개를 생성하고 돌립니다. 쓰레드는 계속 루프를 돌 겁니다. python3 1.py를 입력하면, 프로세스 하나에 Thread 4개가 돌고 있을 겁니다. 메인 쓰레드 하나랑, for loop에서 생성된 쓰레드 3개. ps -aL을 입력해 봅시다. 그러면, PID랑 LWP가 나옵니다. 여기서, LWP는 Light Weight Process의 줄임말입니다. 경량 프로세스, 즉 쓰레드라는 것입니다. 쭉 내려보시면, python3이라는 것이 보입니다. PID가 57273이고, LWP가 57273, 57274, 57275, 57..
실수 x가 0보다 크거나 같을 때 소수점 n째 자리에서 버림, 올림을 하는 방법을 알아보겠습니다. 먼저, math의 floor와 ceil에 대해서 간단하게 알아봅시다. floor는 x보다 작거나 같은 수 중, 가장 큰 것을, ceil은 x보다 크거나 같은 정수 중 가장 작은 것을 돌려줍니다. -1.3이 있습니다. 이것보다 작거나 같은 수들에는 -2, -3, ... 이 있습니다. 이들 중 가장 큰 것은 -2이니, floor(-1.3)은 -2가 리턴됩니다. -1.3보다 큰 것은 -1, 0, 1 .. 이 있습니다. 이 중, 가장 작은 것은 -1이므로 ceil(-1.3)은 -1이 됩니다. 다음에 -1보다 작거나 같은 수는 -1, -2, ... 가 있어요. 이 중 제일 큰 것은 -1이니 floor(-1)은 -1이..
aes 양방향 암호화 알고리즘에는, ECB (electronic code book) 모드가 있습니다. 공식 문서를 보면 떡하니 경고. 절대 쓰지 마세요. 라고 되어 있습니다. weakest라고 쓰여져 있는 것은 덤입니다. 왜 그런지 이것도 간단하게 실습으로 때워보도록 하겠습니다. 모르면 직접 부딪치는 것은 나쁜 전략이 아닙니다. 먼저, Crypto.Util에는 pad와 unpad가 있습니다. ECB 모드를 이용하기 위해, 적당히 pad 함수를 이용하겠습니다. 먼저, 원본인 "a"가 64개 이어 붙여져 있는 문자열이 있습니다. block_size는 16입니다. 이 함수는 style에 아무것도 없을 때, pkcs7을 이용한다고 되어 있습니다. padding 된 결과를 보도록 하겠습니다. 먼저 "a"가 64개..
최근댓글