Programming
-
[Python / pytest] pytest timeout, pytest 시간 제한하기Programming/Python 2023. 5. 11. 22:35
pytest로 test 스크립트들을 짜다 보면 time과 관련된 설정을 해야 될 경우들이 있습니다. 예를 들면, 무조건 몇초이내에 실행되야 성공으로 판단되는 test case나, 중간에 잘못된 로직으로 빠지면 test가 절대 종료되지 않아 특정 시간 후에는 끊어내야 하는 그런 케이스들이 있을 수 있습니다. 이런 경우에 일정 시간 내에 테스트가 종료되지 않으면 fail 처리를 할 수 있는 방법이 있습니다. 1. 모든 테스트에 일괄된 timeout 적용 우선 pytest-timeout 모듈을 설치합니다. pip install pytest-timeout 그 후 pytest command를 실행시킬때 뒤에 timeout option을 추가하면 됩니다. pytest --timeout=10 → 위에 커맨드처럼 실행..
-
데이터 추출과 삽질,,, 과정 기록 / python multi-threadingProgramming/Python 2023. 5. 1. 16:20
너무너무 무식한 과정들을 거쳐서 부끄럽지만,,그래도 기록 멀티 프로세싱, 멀티 스레딩은 더 공부해보기 1️⃣ 개요 회사에서 진행 중인 프로젝트 과정 중에 성능시험을 위해 20만개 정도의 데이터를 추출해야 할 일이 생겼다. 정확히 말하면 계정을 생성하고, 각 계정에 해당하는 토큰을 발급 받아 두어야 하는 과정이 있었다. 계정 발급은 API를 통해서만 만들 수 있었기 때문에 계정을 발급하는 과정을 script를 이용해 만들어 두었었다. 2️⃣ 첫 번째 시도 맨 처음에는 정말 단순 무식하게 20만개를 차근차근 하나씩 돌렸다 ㅋㅋ….. 스크립트 자체를 0 ~ 20만까지 for 문을 돌려서 만들려고 시도를 했다. 정말 미친짓이었고 이렇게 돌리다가는 이틀 밤을 새도 다 안돌아갈 지경이었다. 3️⃣ 두 번째 시도 휴..
-
gRPC streaming vs unary, grpc streaming의 종류와 life cycleProgramming/Protocol 2023. 4. 22. 23:25
grpc의 가장 큰 특징은 unary와 streaming인 것 같다. uanry와 streaming의 구분은 되게 중요한데, 아주 간단히 설명하자면 Unary는 단방향 통신이고 streaming은 열려있는 파이프라인 같은 것을 만드는 개념이다. unary는 우리가 흔히 아는 rest api와 같은 느낌으로 단건 요청, 단건 응답이고, streaming은 파이프라인,,같은 것을 열어놓고 연속하여 응답을 받는 방식이다. 또하나 신기한점은 streaming 또한 한가지 방식만 제공하는게 아니라 server side streaming, client side streaming, 양쪽에서 streaming을 하는 bi-direcitonal streaming을 모두 지원한다는 점이다. 1️⃣ gRPC service ..
-
gRPC란? gRPC vs REST / Protobuf, Profo fileProgramming/Protocol 2023. 1. 23. 13:15
이번 글은 gRPC란 무엇인지, REST와 어떤 차이점이 있는지에 대한 내용입니다. 📌왜 gRPC를 써야 할까? (gRPC vs REST) REST API는 payload가 크고 , 주고 받는 Message format이 고정되어 있지 않다. Server-Client간 상호 협의가 자주 필요하며, 규격이 바뀔 때 마다 협의를 해야 한다. REST API(HTTP 1.1)는 모든 Request마다 TCP 연결을 해야 하지만, HTTP 2를 기반으로 하는 gRPC는 한번의 연결로 여러 요청을 처리 할 수 있다. ✔️HTTP 1.1 vs HTTP 2 HTTP/1.1은 클라이언트의 요청이 올 때 마다 서버가 응답을 하는 구조로, 매 요청마다 connection을 생성해야 한다. HTTP2는 한 connectio..
-
Go :: Go 로 REST API 작성해보기 / go rest api exampleProgramming/Go 2023. 1. 11. 15:29
오늘은 Go 언어를 공부하면서 REST API 예제 코드를 작성해 보았습니다. 전체 코드는 아래 링크를 참고해주세요 https://github.com/kumakuma34/GoRestExample GitHub - kumakuma34/GoRestExample: Go Rest API Example Go Rest API Example. Contribute to kumakuma34/GoRestExample development by creating an account on GitHub. github.com - Router 라이브러리를 이용해서 서버를 띄웠습니다. - 별도의 DB를 사용하지 않고 메모리를 이용해 테스트를 진행하였습니다. 📌 Go module 등록하기 → 작업하고 있는 디렉토리 안에서 진행 go mo..
-
python pytest :: fixtures 사용해 보기Programming/Python 2023. 1. 3. 17:07
아래 글은 공식 문서인 하단 링크를 참고하여 정리한 글 입니다. https://docs.pytest.org/en/6.2.x/fixture.html pytest fixtures: explicit, modular, scalable — pytest documentation Software test fixtures initialize test functions. They provide a fixed baseline so that tests execute reliably and produce consistent, repeatable, results. Initialization may setup services, state, or other operating environments. These are accesse..
-
Python pytest 살펴보기, 예제 코드Programming/Python 2023. 1. 3. 16:41
안녕하세요, 오늘은 Python에서 제공하는 test library 모듈인 pytest에 대해 알아보려고 합니다. 이 글은 공식 문서인 , 아래 링크를 참조하여 정리한 글 입니다. https://docs.pytest.org/en/7.2.x/getting-started.html#request-a-unique-temporary-directory-for-functional-tests Get Started — pytest documentation Note The -q/--quiet flag keeps the output brief in this and following examples. docs.pytest.org 📍Pytest 설치하기 pip install -U pytest //pytest 버전 확인 pyte..
-
Mac M1 :: python command not found error 해결하기Programming/Trouble Shooting 2022. 12. 28. 23:37
오늘은 python command not found error를 해결해보겠습니다 brew install python으로 설치를 다 완료했는데도 터미널에서 Python 명령어를 치면 해당 에러가 뜨는 경우가 있어요 주로 Python3를 설치했을 때 일어나는 현상인 것 같습니다. 그럴 때는 python 명령어 경로를 다시 설정해 주면 됩니다. 터미널을 열고 아래 명령어만 입력하면 해결이 됩니다. 명령어 입력 후에 꼭 터미널을 다시 열어주세요 ! echo "alias python=/opt/homebrew/bin/python3" >> ~/.zshrc