For Fun/잡학 지식

    WSL에서 GUI 프로그램 실행하는 방법 - WSL에서 Playwright Headed 모드를 너무 사용하고 싶었습니다 ㅠㅜ<img src=">

    WSL에서 GUI 프로그램 실행하는 방법 - WSL에서 Playwright Headed 모드를 너무 사용하고 싶었습니다 ㅠㅜ

    안녕하세요. 요즘 테스트 자동화 툴 도입을 진행하면서 Playwright 를 쓰고 있습니다. 회사에서는 ubuntu를 사용하면서 별 문제 없었지만집에 와서 WSL에서 Playwright를 사용하니 Headed 모드(브라우저가 실행되는) 실행되지 않더라고요 ㅜㅠ 구글을 뒤져보니 영어로 정리된 자료는 있는데 한국어로 정리된 자료가 없어서 이참에 정리해봤습니다.0. Headed 모드, Headless 모드가 뭐에요?Headed 모드는 브라우저의 UI가 실행되는 모드이고, Headless 모드는 UI가 실행되지 않는 모드입니다. 혹시 Headless 모드를 사용하는 이유가 궁금하실까요?UI가 실행되지 않는 Headless 모드를 사용하는 이유는 바로 속도와 효율성 때문입니다. UI가 실행되지 않기 때문에 실행 ..

    [Python] json 데이터에 한글이 포함되어 있을 때 dumps 호출하면 깨지는 현상

    [Python] json 데이터에 한글이 포함되어 있을 때 dumps 호출하면 깨지는 현상

    안녕하세요. 오늘은 Python을 이용해서 로그를 저장하다가 발견한 한글 깨짐 이슈를 기록해보려고 합니다. 정말 간단한 이슈였는데 힘들게 찾아서 참 씁쓸했습니다... ㅋㅋㅋ TL-DR json 데이터에 한글이 포함되어 있는 상태에서 dump 해야 한다면 ensure_ascii=False 인자를 추가하자! 예시) json.dumps(data, ensure_ascii=False) 1. 로그 저장 과정 로그가 저장되는 과정을 간단하게 설명하면 아래 그림과 같습니다. IoT Core로 들어온 데이터가 Kinesis Data Firehose를 통해서 Amazon Lambda로 전달됩니다. Lambda로 전달된 데이터는 약간의 가공을 거친 뒤 S3에 저장됩니다. 뒤에 Glue, Athena도 있지만 크게 중요하지 ..

    [Python] GIL로 인한 멀티쓰레드 성능 이슈 분석 - 멀티쓰레드가 멀티쓰레드가 아니에요 ㅜ

    [Python] GIL로 인한 멀티쓰레드 성능 이슈 분석 - 멀티쓰레드가 멀티쓰레드가 아니에요 ㅜ

    안녕하세요. 날씨가 따뜻해졌는데 다들 봄을 잘 즐기고 있으신가요? 저는 낮에 기온이 20도가 넘어가니 땀이 나더라고요 ㄷㄷㄷ 올 여름은 시원했으면 좋겠습니다 ㅜㅠ 이번에는 python의 Global Interpreter Lock(GIL)에 대해서 조금 공부해보려고 합니다. 갑자기 python GIL을 공부하는 이유가 무엇이냐고요? 최근에 AWS IoT Core 관련 작업을 진행하면서 프로그램이 멈추는 버그를 겪었는데 그 원인을 GIL로 추정하고 있기 때문입니다... GIL이 무엇인지, GIL로 인해서 겪을 수 있는 성능 이슈에 어떤 것이 있는지 알아보도록 하겠습니다. 1. GIL이 무엇인가요? GIL은 파이썬 인터프리터가 한 번에 하나의 스레드만 실행하도록 제한하는 메커니즘입니다. 파이썬의 핵심 구성 요..

    API Gateway란?

    이번에는 API Gateway에 대해서 공부해보도록 하겠습니다. 트위니에서 관제 시스템을 개발하면서 외부와의 통신은 API Gateway를 활용했습니다. 개발 초기에는 관련 책도 많이 보고 자료도 많이 찾아보면서 개념들이 머리에 쏙쏙 박혀 있었지만 시간이 흐르고 "아 그거 그거 뭐였지?" 싶은 순간이 너무 많아지더라고요 ㅜㅠ 이번에 다시 한번 머리에 쏙! 박아 넣으려고 정리해봤습니다. 1. API Gateway가 뭐에요? Appilication Programming Interface의 약자인 API와 서로 다른 네트워크를 연결해주는 Gateway의 합성어로 API들의 진입점을 일컫습니다. 특히, 독립적이고 작은 서비스들을 엮어서 기능을 제공하는 Micro Service Architecture(MSA)에서..