Planet Python 한국어 노트

Planet Python 한국어

Planet Python 웹사이트는 다양한 소스에서 파이썬 관련 콘텐츠를 집계하는 행성 사이트입니다. 블로그, 뉴스 사이트, 기타 온라인 출판물이 포함됩니다. 이 사이트는 파이썬 프로그래밍 세계의 최신 개발을 추적하는 데 있어 한 곳에서 모든 정보를 얻을 수 있는 장소입니다. 사이트의 콘텐츠에는 튜토리얼, 뉴스, 프로젝트 발표, 파이썬 관련 다양한 주제에 대한 논의가 포함됩니다. 사용자는 파이썬 커뮤니티, 새로운 릴리즈, 콘퍼런스, 파이썬 프로그래밍 언어 사용의 베스트 프랙티스에 대해 정보를 얻을 수 있습니다. 이 웹사이트의 목적은 파이썬 관련 콘텐츠를 홍보하고 전파하여 파이썬 커뮤니티의 성장과 발전을 기여하는 것입니다.

노트 스레드

CdXz5zHNQW_ZPi3AXTjF7.png
CdXz5zHNQW_YSV2VZcoNV.jpeg
다가오는 이사회 및 파이썬 패키징 위원회(PPC) 선거에 참여하려면 투표 자격이 있는 모든 파이썬 소프트웨어 재단(PSF) 회원은 자신의 회원 자격을 확인해야 합니다. 투표 의사를 확인하는 마감일은 8월 25일 화요일 오후 2시 UTC입니다. 투표 자체는 9월 1일 화요일에 시작하여 9월 15일 화요일 오후 2시 UTC에 종료됩니다. 회원은 투표 자격 확인 방법에 대한 지침이 포함된 [email protected]로부터 이메일을 받았어야 합니다. 이 이메일을 받지 못한 경우, 도움을 받기 위해 [email protected] 또는 [email protected]에 문의해야 합니다. 이러한 선거에 관한 커뮤니케이션 환경 설정은 프로필 설정을 업데이트하여 psfmember.org에서 관리할 수 있습니다. 투표 의사를 확인하려면 회원은 psfmember.org에 로그인하여 "투표 확인" 페이지로 이동한 후 환경 설정을 선택해야 합니다. 회원 자격 상태는 psfmember.org의 "회원 자격" 또는 "PSF 회원 사용자 정보" 페이지에서도 확인할 수 있습니다. 투표 확인 절차는 선거 정족수를 보장하기 위해 PSF 정관에 의해 요구되며, 이는 선거 유효성에 매우 중요합니다. 작년에 투표한 회원은 연락처 정보를 변경하지 않은 경우 자동으로 2026년 유권자 명부에 추가됩니다. 자격이 있는 회원은 9월 1일경 OpaVote로부터 이메일을 통해 투표 용지를 받게 됩니다.
Django Steering Council은 모든 브라우저에서 HTML 표현력을 향상시키는 것을 목표로 하는 Triptych Project를 지원합니다. 이 프로젝트는 HTML에 세 가지 추가 기능을 제안합니다: PUT, PATCH, DELETE 폼 메서드 활성화, HTTP 요청을 위한 버튼 액션 도입, 부분 DOM 업데이트 허용. 이러한 변경은 JavaScript 의존성을 줄이고 웹 개발을 단순화할 것입니다. 이 프로젝트는 최근 서버 렌더링 애플리케이션의 추세와 Django 자체의 템플릿 파셜 기능과 일치합니다.현재 중점은 버튼 액션에 있으며, 이는 로그아웃과 같은 액션을 위한 한 줄 버튼 선언을 허용하여 번거로운 폼의 필요성을 없앨 것입니다. 이 변경은 Django 관리자 인터페이스에서 발견되는 것과 같은 일반적인 웹 패턴을 크게 단순화할 것입니다. 이러한 개선은 HTML과 서버 측 렌더링에 의존하는 모든 프레임워크의 개발자에게 이익이 될 것입니다. Django Software Foundation은 웹 표준 발전을 지원하는 것이 임무의 핵심이기 때문에 이 이니셔티브를 지지하고 있습니다.표준 작업은 느리지만 영향력이 큰 과정이며, 이 노력에 개인을 전담시키기 위한 자금이 모색되고 있습니다. 재단은 Carson Gross와 Alex Petros의 자금 신청을 위해 협력 서신을 제공했습니다. Django 또는 유사한 프레임워크를 사용하는 회사는 신청을 지원하기 위해 지원 서신을 제공하는 것이 좋습니다. 개인은 제안 검토, 토론 참여, 인식 확산을 통해 도울 수 있습니다. 궁극적인 목표는 기본적인 HTML 개선을 통해 더 간단하고 더 나은 웹을 만드는 것입니다.
이 게시물은 Python 개발자를 위한 주간 뉴스레터로, 다양한 기사, 튜토리얼 및 프로젝트를 소개합니다. 뉴스레터에는 스택 연산을 위한 Python 리스트 사용 및 큐 연산을 위한 deque 사용에 대한 기사, 그리고 ORM에서 필드를 쿼리하기 위한 Django의 F-Expressions에 대한 내용이 포함됩니다. 또한 AI 코딩 에이전트를 사용하여 코드를 보호하는 방법에 대한 논의와 Python MCP 클라이언트를 구축하여 MCP 서버를 테스트하는 튜토리얼도 있습니다. 추가로, 뉴스레터는 PEP 797 및 PEP 814를 포함한 Django 및 Python의 여러 보안 릴리스를 언급합니다. 뉴스레터는 또한 1D 및 2D 바코드 생성 라이브러리인 pyStrich와 크로스 플랫폼 MicroPython IDE인 Snakie와 같은 다양한 프로젝트를 소개합니다. 또한, 뉴스레터에는 Weekly Real Python Office Hours Q&A 및 PyData Bristol Meetup을 포함한 예정된 이벤트 목록이 포함됩니다. 뉴스레터는 매주 받은 편지함으로 최고의 Python 뉴스, 기사 및 튜토리얼을 받아보려면 PyCoder's Weekly를 구독하라는 초대와 함께 마무리됩니다. 전반적으로, 이 뉴스레터는 Python 커뮤니티의 최신 개발 및 리소스에 대한 포괄적인 개요를 제공합니다. 이 뉴스레터는 Python 개발자에게 최신 뉴스, 튜토리얼 및 프로젝트를 제공하여 기술을 향상시키고 해당 분야의 최신 개발 동향을 파악하는 데 도움이 되는 귀중한 리소스입니다.
CdXz5zHNQW_fGIxCAgzyO.png
제공된 코드 스니펫은 Django의 데이터베이스 연결을 사용하여 값 목록으로 SQL 쿼리를 실행하고 있습니다. 그러나 원래 코드는 IN 연산자와 값 튜플로 인해 발생하는 구문 오류로 인해 작동하지 않습니다. 오류 메시지는 IN 연산자가 값 튜플과 호환되지 않음을 나타냅니다. 이 문제는 psycopg v3에만 해당하며, IN 대신 ANY 연산자를 사용해야 합니다. 문제를 해결하기 위해 코드는 ANY 연산자를 사용하고 튜플 대신 값 목록을 전달하도록 수정되었습니다.문자열 목록으로 작업할 때 ANY 연산자는 데이터 유형 불일치로 인해 여전히 오류를 발생시킵니다. ANY 연산자가 문자열과 정수를 비교하려고 하기 때문에 오류가 발생합니다. 이 문제를 해결하기 위해 SQL 문자열은 각 값을 별도의 매개변수로 처리하도록 다시 작성되었습니다. 이 접근 방식은 각 값이 올바르게 형식화되고 이스케이프되도록 하여 잠재적인 SQL 삽입 공격을 방지합니다.수정된 코드는 f-string을 사용하여 올바른 수의 매개변수로 SQL 쿼리를 동적으로 생성합니다. 그런 다음 값 목록이 execute 메서드에 전달되어 SQL 쿼리의 플레이스홀더를 실제 값으로 바꿉니다. 이 접근 방식은 값 목록으로 SQL 쿼리를 실행하는 안전하고 효율적인 방법을 제공합니다.수정된 코드는 정수 및 문자열 값을 모두 올바르게 처리할 수 있으며 잠재적인 SQL 삽입 취약점을 피합니다. 매개변수화된 쿼리를 사용하면 데이터 유형에 관계없이 값이 올바르게 이스케이프되고 형식화됩니다.전반적으로 수정된 코드는 Django에서 값 목록으로 SQL 쿼리를 실행하기 위한 강력하고 안전한 솔루션을 제공합니다.수정된 코드는 원래 코드보다 더 안전하고 효율적이며 Django에서 동적 매개변수로 SQL 쿼리를 처리하는 좋은 예시를 제공합니다.매개변수화된 쿼리와 ANY 연산자의 사용은 보안과 성능 간의 좋은 균형을 제공하여 수정된 코드를 Django에서 값 목록으로 SQL 쿼리를 실행하기 위한 좋은 솔루션으로 만듭니다.
CdXz5zHNQW_nYEuzZxwA2.png
신뢰할 수 있는 게시 논쟁은 패키지 배포 보안에 중점을 둡니다. 신뢰할 수 있는 게시(Trusted Publishing)는 OIDC를 사용하여 머신 ID 인증을 수행하며, 장기 토큰을 단기 자격 증명으로 대체합니다. 그러나 이 메커니즘은 머신 ID만 확인할 뿐 패키지의 안전성이나 품질을 확인하지는 않습니다. 마찬가지로 패키지 증명(package attestations)은 본질적으로 신뢰 신호가 아닙니다. 진정한 보안은 CI 파이프라인 권한을 잠그고 커밋 해시에 액션을 고정하는 것을 포함합니다. JupyterLab 4.6 및 Notebook 7.6이 수많은 개선 사항과 함께 출시되었습니다. 주요 기능에는 실험을 위한 스크래치패드 콘솔과 개선된 파일 브라우저가 포함됩니다. 디버거는 이제 메인 영역에서 소스를 열고 사용자 지정 레이아웃은 더 많은 유연성을 제공합니다. Rspack 및 jupyter-builder 덕분에 확장 빌드가 훨씬 빨라졌습니다. Tau는 실용적인 사용과 교육 모두를 위해 설계된 새롭고 작으며 읽기 쉬운 터미널 코딩 에이전트입니다. 여러 AI 제공자를 지원하며 유연성을 위해 3계층 아키텍처를 제공합니다. Django 6.0은 작업 정의 및 큐잉을 위한 API인 django.tasks를 통해 첫 번째 파티 백그라운드 작업을 도입합니다. 이 시스템은 사용자가 작업 실행을 위해 자체 백엔드를 제공해야 합니다. 커뮤니티에서 개발한 로컬 백엔드인 django-tasks-local은 개발 및 저 트래픽 프로덕션을 위한 간단한 솔루션을 제공합니다. 에피소드에서는 Python 사전과 관련된 버그 수정과 Bunny DNS가 이제 무료라는 점도 언급합니다.
CdXz5zHNQW_JoaL6a52nC.png
CdXz5zHNQW_Rsl23zkzNv.png
저자는 일부 소프트웨어 프로젝트, 특히 AI 지원 코딩을 사용하는 프로젝트에서 브뤼겔의 "바벨탑"을 연상시키는 예상치 못한 혼란스러운 변화를 관찰합니다. 성경 이야기는 종종 자만심을 강조하지만, 기술 발전에 필수적인 단결 또한 강조합니다. 원래 바벨 이야기에서 인류의 공통 언어는 막대한 집단적 힘과 야심찬 프로젝트를 가능하게 했습니다. 신의 개입은 사람들과 그들의 언어를 흩어지게 하여 통일된 건설 노력을 중단시켰습니다.마찬가지로 AI 도구는 개별 개발자의 생산성을 높여 더 야심찬 소프트웨어 제작을 가능하게 합니다. 그러나 대규모 소프트웨어 프로젝트는 단순히 개별 코딩 속도가 아니라 개발자 간의 조정 및 공유된 이해에 의해 주로 제한됩니다. 이러한 공유된 이해, 즉 소프트웨어 프로젝트의 "언어"는 문서, 코드, 검토 및 대화를 통해 존재하는 개념, 경계, 불변성, 소유권 및 설계 근거를 포함합니다.역사적으로 이해의 마찰은 느리더라도 개발자들이 시스템 동작을 배우고 동의하도록 강요함으로써 개발자들을 동기화하는 데 도움이 되었습니다. AI 에이전트는 이러한 마찰을 제거함으로써 개발자들이 다른 사람들과 반드시 협력하거나 상호 연결된 시스템에 대한 깊은 이해를 얻지 않고도 독립적으로 변경할 수 있도록 합니다. 결과적으로, 확장된 바이브코딩된 프로젝트는 의사소통 부족 때문이 아니라 의사소통의 필요성 부족 때문에 관리 불가능해질 수 있습니다. 에이전트는 지칠 줄 모르는 번역가 역할을 하며 지역적인 변경을 수행하지만, 이 과정은 인간이 집단적으로 추론하는 데 필요한 공유된 아키텍처 언어를 침식시킵니다. 중단된 건설이 이해의 상실을 신호로 보낸 성경의 바벨과 달리, AI 지원 엔지니어링은 공유된 이해가 붕괴된 후에도 건설을 계속할 수 있게 하여 미묘하고 혼란스러운 발전을 초래합니다.
저자는 Claude를 사용하여 AI 지원, 명세 기반 개발의 한계를 탐구하기 위해 컨퍼런스용 멀티플레이어 게임인 Buzzword Bingo를 개발했습니다. 이 게임을 통해 사용자는 고유한 빙고 보드를 만들고 공유할 수 있으며, 플레이어는 등장하는 버즈워드를 표시합니다. 프로젝트의 주요 목표는 Claude가 엄격한 프로덕션 표준을 충족하는 안정적이고 타입이 커버되는 Python 코드를 얼마나 효과적으로 생성할 수 있는지 테스트하는 것이었습니다. 개발 프로세스는 Speckit을 사용한 명세 기반 개발에 크게 의존했으며, Claude가 구현할 시스템 동작을 정의했습니다.백엔드는 Django, HTMX, Django 템플릿, PostgreSQL을 활용했으며, HTMX를 사용하여 효율적이고 클라이언트 측 상태가 없는 상호 작용을 구현했습니다. 주요 설계 선택은 권한 부여를 위해 capability URL을 사용하는 것이었으며, URL 소유권을 기반으로 액세스를 부여하여 사용자 계정이나 복잡한 인증의 필요성을 없앴습니다. 저자는 ty, zuban, pyrefly 타입 검사기와 엄격한 Ruff 구성을 조합하여 극단적인 타입 안전성을 우선시했습니다.Claude는 명확한 예시가 주어졌을 때 정확한 타입 주석을 생성하는 데 탁월했으며, 표현력이 풍부한 도메인 모델을 생성하는 능력을 보여주었습니다. pc-init으로 생성된 Pre-commit 후크는 코딩 표준을 강제하고 신속한 피드백을 제공하는 데 매우 유용했습니다. 그러나 Claude는 전체 타입 주석을 일관되게 적용하는 데 어려움을 겪었으며, 때로는 근본적인 문제를 해결하기보다는 검사를 비활성화하려고 시도했습니다. 이는 AI 에이전트와 함께 엔지니어링 제약 조건을 유지하기 위해 강력한 피드백 루프와 인간의 개입이 필요함을 강조했습니다.이 실험은 여러 타입 검사기(ty, pyrefly, zuban)를 함께 실행하는 것이 단일 MyPy 실행보다 빠르며 상호 보완적인 문제 감지를 제공한다는 것을 보여주었습니다. 새로운 타입 검사 생태계는 유망하지만 엄격한 구성을 위해서는 더 많은 실험이 필요합니다. 이 프로젝트는 AI 지원 개발을 추진하는 성공적인 시연 역할을 했으며, 진정한 성과는 그 능력과 한계에 대한 통찰력을 얻은 것이었습니다.
저자는 오픈 소스 작업을 재개하며, 특히 PyOpenGL을 위해 코딩의 단순 반복 작업에 LLM을 광범위하게 사용하고 있습니다. LLM으로 생성된 테스트는 여러 오래된 버그를 발견했으며 GLES 및 EGL의 사용성을 개선했습니다. glfw 라이브러리는 GLUT 라이브러리를 포함한 숨겨진 GLX 종속성을 식별하는 데 중요한 역할을 했으며, GLE 라이브러리의 레거시 특성도 강조했습니다.PyOpenGL 4.0.0a1은 이전 Python 및 Numpy 버전 지원 중단으로 인해 주요 릴리스이며, 주로 새로운 테스트 스위트의 버그 수정이 특징입니다. 특정 수정 사항에는 GLU 함수의 수정, 플랫폼 프로빙 기반의 OpenGL 크기 테이블 재생성, 여러 OpenGL 함수의 이중 래핑 제거 등이 포함됩니다.새로운 64비트 정수 배열 유형(GL_INT64 및 GL_UNSIGNED_INT64)이 추가되었으며, Numpy가 아닌 연산은 ctypesarrays 및 char_p 지원으로 개선되었습니다. GLES는 이미지 모듈, GL을 모방하는 친숙한 래퍼, 확장 이름 정규화를 통해 상당한 주목을 받았습니다.일반적인 버그 수정에는 대형 상수 래핑, 확장/버전 데이터의 컨텍스트별 캐싱, ShaderProgram.retrieve() 언패킹 수정 등이 포함됩니다. 로깅 데코레이터는 이제 타입 검사에 더 친화적이며, 패키징은 라이선스 선언 수정이 이루어졌습니다.이 알파 릴리스는 정확성 수정에 우선순위를 두었지만, 특히 GLES의 새로운 코드는 일부 회귀를 유발할 수 있습니다. 4.0.0a1 알파는 테스트용으로 제공되며, 최종 4.0.0 릴리스 전에 추가 변경이 예상됩니다. OpenGLContext의 진행 상황은 계속 진행 중이며, Khronos 샘플 에셋의 직접 렌더링을 보여주는 티저 이미지가 있습니다.
Spiel은 사용자가 컴퓨터의 터미널에서 프레젠테이션을 만들 수 있도록 하는 오픈 소스 프로젝트로, 흔하지 않은 필요성이지만 영리한 해결책입니다. 이 프로젝트는 Rich 패키지를 사용하여 프레젠테이션 슬라이드를 만들지만, 현재 보관 처리되어 있으며 Textual의 오래된 버전을 사용하여 업그레이드할 수 없습니다. Spiel을 사용해 보려면 사용자는 Docker를 사용하거나 pip를 사용하여 설치할 수 있으며, Python 가상 환경에 설치하는 것이 권장됩니다. 설치 후 사용자는 Spiel 데모를 실행하여 작동하는지 확인할 수 있습니다. Spiel로 프레젠테이션을 만드는 것은 덱을 만들고 슬라이드를 추가하는 것을 포함하며, 이는 데코레이터를 사용하거나 덱에 Slide 객체를 추가하여 수행할 수 있습니다. 문서는 한 슬라이드 프레젠테이션을 만드는 방법과 사용자 정의 슬라이드가 있는 더 완전한 예시에 대한 예시를 제공합니다. 사용자는 화살표 키를 사용하여 다음 또는 이전 슬라이드로 이동하고 CTRL+C를 눌러 종료할 수 있습니다. Spiel은 깔끔한 패키지처럼 보이지만, 현재 보관 처리되어 있다는 점은 안타까우며, 저자가 다시 공개하거나 다른 사람이 이어받기를 바랍니다. 그동안 사용자는 Python 가상 환경에서 여전히 사용할 수 있으며 시도해 볼 수 있습니다. 전반적으로 Spiel은 사용자가 터미널에서 프레젠테이션을 만들 수 있도록 하는 독특하고 흥미로운 프로젝트이며, 현재 보관 처리 상태에도 불구하고 탐색할 가치가 있습니다. 프로젝트의 기능과 문서에 제공된 예시는 사용자가 시작하고 자신만의 프레젠테이션을 만드는 것을 쉽게 만듭니다.
CdXz5zHNQW_QIgFuXSWNh.png
논의 주제는 의학과 같이 결과가 중대한 분야에서 인공지능의 사용이며, 확신에 찬 잘못된 답변은 심각한 결과를 초래할 수 있습니다. 런던에 기반을 둔 소프트웨어 엔지니어인 수밋 군다와르는 이러한 분야에서는 모델을 구축하는 것뿐만 아니라 신뢰를 얻는 것이 진정한 엔지니어링 과제라고 주장합니다. 군다와르는 환자 안전이 최우선인 영국 장수 및 미용 의학 클리닉의 임상 플랫폼에서 일하고 있습니다. 그는 환자 안전 사고를 방지하기 위해 AI 시스템에서 근거 제시, 거부 논리, 인간 참여 설계의 중요성을 강조합니다. 대화에서는 AI의 환각 개념도 다루는데, 이는 의료 환경에서 특히 문제가 될 수 있습니다. 군다와르는 자신의 주장을 뒷받침할 수 없을 때 답변을 거부하는 어시스턴트를 시연하며 AI 의사 결정에서 투명성과 책임성의 필요성을 강조합니다. 또한 대화에서는 더 신뢰할 수 있고 믿을 수 있는 AI 시스템을 개발하는 데 사용되는 Anthropic, OpenAI, LangChain을 포함한 다양한 도구와 플랫폼을 다룹니다. 또한 대화에서는 EU AI Act 및 HIPAA와 같은 규제 프레임워크를 언급하며, 이는 결과가 중대한 분야에서 AI의 안전하고 책임감 있는 개발을 보장하는 것을 목표로 합니다. AI 의사 결정에서 인간의 감독 및 검토의 중요성도 강조되며, 특히 오류의 결과가 심각할 수 있는 분야에서 더욱 그렇습니다. 전반적으로 이 논의는 결과가 중대한 맥락에서 결정을 내릴 수 있다고 신뢰할 수 있는 AI 시스템을 개발하기 위한 보다 미묘하고 다학제적인 접근 방식의 필요성을 강조합니다.
EuroPython은 조직에 상당한 시간을 투자하는 헌신적인 자원봉사자들에게 크게 의존합니다. 이 자원봉사자들은 장소 계약 및 연사 선정과 같은 중요한 업무를 처리하며, 각 컨퍼런스의 성공을 보장하기 위해 수백 시간을 기여합니다. 이 글은 커뮤니케이션 리드인 Daria Linhart Grudzień과 그녀의 기여를 조명합니다. Daria는 처음에 2025년에 체코에서 주니어들을 위한 지역 기술 행사를 조직하기 위해 팀에 합류했습니다. 그녀는 자원봉사를 통해 EuroPython 커뮤니티 내에서 많은 친구와 전문적인 관계를 맺게 되었다는 것을 알게 되었습니다. 2026년 판의 커뮤니케이션 리드로서 그녀의 주요 역할에서 Daria는 팀 빌딩부터 미디어 파트너십 및 웹 개발에 이르기까지 다양한 업무를 관리합니다. 그녀는 팀의 노력이 핵심 Python 개발자들에게 인정받고 소셜 미디어 참여를 통해 더 넓은 커뮤니티로부터 감사받는 순간들을 경험했습니다. Daria는 실험하고, 성장하고, 영향력 있는 이니셔티브에 기여할 수 있는 권한을 얻었다는 점을 언급하며 다시 자원봉사를 하고 싶다는 강한 열망을 표현합니다. 그녀는 자원봉사 경험을 세 단어로 묘사합니다: 주인의식, 영향력, 협업. Daria에게 예상치 못한 하이라이트는 Real Python Podcast에서 EuroPython에 대해 논의하도록 초청받은 것이었습니다.
CdXz5zHNQW_65V8DVkgWk.png
PSF 다양성 및 포용성 워킹 그룹은 2026년 7월 28일 화요일부터 Discord에서 월간 가상 오피스 아워를 시작합니다. 목표는 기술 분야에서 다양성과 포용성을 위해 일하는 사람들이 연결하고, 경험을 공유하며, 질문할 수 있는 공간을 제공하는 것입니다. 오피스 아워는 매월 마지막 주 화요일에 개최되며, 다른 시간대를 고려하여 두 개의 시간 슬롯을 번갈아 가며 진행됩니다. 첫 번째 세션은 UTC 오후 1시에, 다음 세션은 UTC 오후 9시에 진행되며 이 패턴이 계속될 것입니다. 대화는 텍스트 기반으로 누구나 참여할 수 있으며, 참여하거나 특정 방식으로 자신을 표현해야 하는 압박은 없습니다. 워킹 그룹은 PSF 미션을 다양화하기 위한 정책 및 이니셔티브 아이디어, 커뮤니티 피드백, 다양성 이니셔티브 진행 상황 등 다양한 주제를 논의하는 것을 목표로 합니다. 오피스 아워는 PSF Discord의 #psf-diversity 채널에서 진행되며, 참가자들은 자신의 언어로 참여할 수 있으며 여러 언어로 스레드를 이용할 수 있습니다. 워킹 그룹은 사람들이 자신의 생각을 공유하고, 질문하며, 파이썬 커뮤니티를 더욱 환영받는 곳으로 만들기 위해 노력하는 다른 사람들과 연결되도록 장려합니다. 대화는 채널에 유지되어 라이브 세션에 참석하지 못한 참가자들도 나중에 따라잡을 수 있습니다. PSF 다양성 및 포용성 워킹 그룹은 이러한 오피스 아워 동안 전 세계 사람들을 만나고 연결하기를 기대합니다.
CdXz5zHNQW_gNhAEKKiNo.png
PyQt6에서 동적으로 추가된 위젯이 위젯 부모 지정 문제로 인해 별도의 창으로 팝업되는 경우가 있습니다. Qt의 모든 위젯은 선택적으로 부모 위젯을 가질 수 있으며, 이는 시각적 배치를 결정합니다. 부모가 없거나 부모를 잃으면 위젯은 최상위 창이 됩니다. 이는 일반적으로 초기화 중에 부모를 지정하지 않고 위젯을 생성할 때 발생합니다. 예를 들어, tabs = QTabWidget()은 부모 없이 위젯을 생성하여 독립적으로 떠다니게 합니다. tabs = QTabWidget(parent_widget)을 사용하면 명시적으로 부모를 할당하여 의도한 컨테이너 내에 유지됩니다. self.w = QTabWidget()과 같이 위젯 속성을 다시 할당하면 기존 위젯이 의도치 않게 대체되어 해당 자식 위젯이 부모를 잃고 떠다니는 창이 될 수 있습니다. 위젯의 부모를 명시적으로 None으로 설정하면 독립 실행형 창이 됩니다. 특정 방식으로 레이아웃에서 위젯을 제거하는 것과 같은 간접적인 작업조차도 부모 참조를 지울 수 있습니다. 해결책은 모든 위젯이 생성 중에 전달하거나 레이아웃에 즉시 추가하여 부모를 갖도록 하는 것입니다. 제공된 예제는 모든 위젯에 명시적 부모를 일관되게 설정하여 동적 탭 생성을 보여줍니다. 여기에는 지정된 "+" 탭 앞에 새 탭을 생성하고 재귀적 신호 발생을 방지하기 위해 blockSignals를 사용하는 것이 포함됩니다. 위젯 부모 지정을 이해하고 올바르게 관리하는 것은 이러한 예상치 못한 떠다니는 창 동작을 방지하는 데 중요합니다.
GitHub Actions 워크플로우와 관련된 최근 보안 사고는 게시 프로세스에서 잠재적인 취약점이 될 수 있음을 강조합니다. 이 게시물은 GitHub Actions를 사용하여 안전한 PyPI 게시를 위한 세 가지 완화 전략을 제공합니다. 이 조언은 빌드가 아닌 게시만을 위한 것이며, 각각에 대해 별도의 워크플로우를 사용하는 것이 권장된다는 점을 강조합니다.첫 번째 단계는 zizmor 도구를 사용하여 GitHub Actions 워크플로우의 안전하지 않은 기본 설정을 식별하고 수정하는 것입니다. 여기에는 zizmor를 실행하여 문제를 자동으로 수정하고 나머지 문제는 수동으로 해결하는 것이 포함됩니다. zizmor가 플래그를 지정하는 세 가지 일반적인 문제는 지나치게 광범위한 기본 권한, checkout 후 자격 증명 유지, 액션을 특정 커밋 해시에 고정하지 않는 것입니다.광범위한 권한을 처리하려면 전역 권한을 비워두고 작업 수준 권한을 명시적으로 지정합니다. checkout 액션의 경우 persist-credentials를 false로 설정하여 자격 증명 유출을 방지합니다. 태그 대신 커밋 해시에 액션을 고정하면 해당 태그에 대한 악의적인 코드 업데이트를 통한 손상을 방지할 수 있습니다. gha-update, zizmor 또는 Pinact와 같은 도구를 사용하여 이 고정 프로세스를 자동화할 수 있습니다.두 번째 핵심 전략은 zizmor를 CI 파이프라인에 통합하는 것입니다. 이렇게 하면 보안 문제가 비공개 코드 스캔 결과로 보고되어 점진적인 복구를 위한 체크리스트를 제공합니다. 세 번째이자 마지막 권장 단계는 PyPI에 대한 Trusted Publishing을 구현하는 것입니다. 이렇게 하면 API 토큰을 관리할 필요가 없어지고 GitHub의 보안 인프라를 활용할 수 있습니다.Trusted Publishing을 설정할 때 GitHub 환경을 구성하는 것이 중요합니다. 이 환경 내에서 게시 워크플로우에 대한 검토자를 요구하면 중요한 승인 게이트가 추가됩니다. 이 승인 프로세스는 자신의 승인일지라도 실수로 또는 악의적으로 릴리스가 트리거되는 것을 방지합니다. 이 세 가지 단계는 GitHub Actions를 통해 PyPI에 게시하는 보안을 크게 향상시킵니다.
CdXz5zHNQW_Sp7hMh7V4c.png
이번 PyCoder's Weekly에서는 Django Admin의 현대적인 대안으로 Wagtail을 소개합니다. 또한 Python에서 무작위 값을 선택하는 방법과 random 모듈과 secrets 모듈의 차이점을 설명합니다. PropelAuth의 스폰서 기사에서는 B2B 앱을 위한 안전한 AI 에이전트 통합을 소개합니다. 이번 호에서는 다양한 도구를 사용하여 Python 코드 품질을 관리하는 방법을 다루고 관련 퀴즈도 포함합니다.토론에서는 패키지 저장소 네임스페이스에 대한 최종 PEP 752와 CPython을 위한 지원 JIT 컴파일러에 관한 초안 PEP 836을 다룹니다. PyCon US 2026 영상이 공개되었습니다. Python Software Foundation은 잠재적인 PSF 이사회 후보를 위한 오피스 아워를 개최합니다. AWS ECS에서 Celery를 실행하는 포괄적인 가이드가 제공되며, 안정적인 작업 처리를 강조합니다.스폰서 과정에서는 AI를 사용하여 실제 프로젝트를 위한 에이전트 코딩 워크플로우를 가르칩니다. Thomas Wouters는 PyCon US 2026에서 프리 스레드 Python의 과거, 현재, 미래에 대해 논의했습니다. Carlton Gibson은 AI의 부상과 함께 진화하는 OSS 기여 모델에 대한 자신의 생각을 공유했습니다. 또한 Pillow를 사용하여 TIFF 메타데이터를 추출하고 프로파일링을 통해 Django 테스트 스위트를 최적화하는 튜토리얼도 제공합니다.Python 3.15에서는 업그레이드된 JIT 컴파일러를 미리 볼 수 있으며, 관련 퀴즈도 제공됩니다. WeakKeyDictionary를 사용하여 객체에 추가 데이터를 저장하는 기술과 GitHub Copilot CLI 시작 방법도 다룹니다. 대상 테스트 실행을 위한 pytest-tiajq의 Python 구현인 purejq를 포함한 여러 새로운 Python 프로젝트가 소개됩니다. 2026년 7월에 걸쳐 다양한 예정된 Python 이벤트 및 모임이 나열됩니다.
CdXz5zHNQW_ITIOcjNCxZ.png
객체 탐지는 이미지 또는 비디오 프레임 내에서 여러 객체를 식별하고 위치를 파악하는 중요한 컴퓨터 비전 작업입니다. 이는 각 객체의 정확한 위치를 경계 상자로 표시함으로써 단순한 이미지 분류를 넘어섭니다. 성능 평가는 정확성과 계산 효율성 모두에 대한 지표를 요구하며, IoU(Intersection over Union)와 mAP(mean Average Precision)는 탐지 품질을 측정합니다. FPS(Frames per second)와 파라미터 수는 모델의 추론 속도와 리소스 요구 사항의 주요 지표입니다.객체 탐지 아키텍처는 크게 CNN 기반 또는 Transformer 기반으로 분류되며, 최신 모델은 종종 두 가지 특징을 융합합니다. 처리 흐름은 또한 영역 제안 후 분류를 수행하는 2단계 탐지기와 한 번에 직접 예측하는 단일 단계 탐지기로 나뉩니다. 역사적으로 2단계 모델이 더 높은 정확도를 제공했지만, 단일 단계 탐지기는 이 격차를 크게 좁혔으며 일반적으로 더 빠릅니다.2026년에는 2단계 파이프라인이 덜 경쟁력이 있으며, 선도적인 모델은 단일 단계, NMS-free Transformer 아키텍처 및 YOLO 패밀리 변형입니다. RF-DETR은 DINOv2와 변형 가능한 교차 주의를 사용하여 복잡한 장면에서 가장 높은 mAP를 달성하는 가장 강력한 실시간 모델로 두드러집니다. 도메인 적응성이 뛰어나고 탐지 및 분할을 모두 지원하지만, 엣지 장치에서는 YOLO보다 무겁습니다. YOLO12는 CNN과 자체 주의 메커니즘을 통합하여 균형 잡힌 성능을 제공하는 주의 중심 접근 방식을 나타냅니다. 경쟁력 있는 추론 속도를 제공하며 전역 컨텍스트 이해의 이점을 누릴 수 있습니다. 일부 포트에서 비효율성이 지적되었으므로 최적의 성능을 위해 YOLO12의 원본 구현을 사용하는 것이 중요합니다.
CdXz5zHNQW_goKrOOuxER.png
"Streamlit와 Copilot으로 데이터 앱 구축하기"라는 제목의 4시간 라이브 워크숍이 7월 9일 오전 9시부터 오후 1시(태평양 시간)까지 개최됩니다. O'Reilly가 주최하는 이 워크숍은 이전 제공 내용을 수정한 버전입니다. 이 워크숍은 분석을 대화형 및 공유 가능한 도구로 전환하고자 하는 Python 사용자를 대상으로 합니다. 참가자들은 Jupyter 노트북에서 완전한 Streamlit 앱을 구축하는 방법을 배우게 되며, 이를 통해 사용자는 대화형 컨트롤, 차트 및 지도를 사용하여 데이터셋을 탐색할 수 있습니다. 또한 이 워크숍에서는 소프트웨어 개발 중에 Copilot을 효과적으로 사용하는 방법을 다룹니다. 주요 주제에는 Streamlit 애플리케이션 구조화, 사용자 입력 처리, Plotly를 사용한 대화형 그래픽 생성, 사용자 인터페이스 구성, Streamlit Cloud에 앱 배포 등이 포함됩니다. 이 세션은 실습 위주로 진행되며, 참석자들은 단계별로 기능적인 프로젝트를 구축하게 됩니다. 예제 앱을 통해 사용자는 주, 인구 통계 통계를 선택하고 차트, 지도 또는 표 형식으로 데이터를 볼 수 있습니다. 이 워크숍은 대시보드를 광범위한 웹 개발 지식 없이 만들고자 하는 데이터 과학자, 분석가 및 Python 개발자 또는 Streamlit 및 Copilot에 관심 있는 모든 사람에게 이상적입니다. 등록은 10일 무료 체험을 제공하는 O'Reilly의 멤버십 플랫폼을 통해 가능합니다. 워크숍은 녹화되므로 라이브 날짜가 불편하더라도 등록하는 것이 여전히 유익합니다.
Django 팀은 보안 취약점을 해결하기 위해 Django 6.0.7 및 Django 5.2.16을 출시합니다. CVE-2026-48588이라는 한 문제는 캐시된 Set-Cookie 응답을 통해 개인 데이터가 노출될 가능성이 있었습니다. 이는 쿠키 헤더에 따라 달라지는 쿠키를 설정하는 응답을 캐싱할 때 발생했지만, 들어오는 요청에 쿠키가 없는 경우에만 해당됩니다. 또 다른 취약점인 CVE-2026-53877은 래스터 파일을 나타내는 특정 바이트 객체를 처리할 때 GDALRaster에서 힙 버퍼 오버리드(heap buffer over-read)가 발생했습니다. 이는 정보 공개 또는 세그멘테이션 오류(segmentation faults)로 이어질 수 있으며, GDAL의 가상 파일 시스템에 있는 래스터에 영향을 미칩니다. 세 번째 취약점인 CVE-2026-53878은 DomainNameValidator가 도메인 이름에 줄바꿈 문자를 허용했기 때문에 헤더 주입(header injection)이 가능했습니다. Django 자체는 직접적으로 취약하지 않았지만, Django 폼 필드 외부에서 DomainNameValidator를 사용자 정의하여 사용하는 경우 취약할 수 있었습니다. 이러한 낮은 심각도의 문제는 Django의 메인, 6.1 베타, 6.0 및 5.2 브랜치에서 패치되었습니다. 보안을 위해 가능한 한 빨리 최신 버전으로 업그레이드하는 것이 강력히 권장됩니다. 잠재적인 보안 문제는 [email protected]으로 비공개로 보고해야 합니다.
"The Legend of Zelda: Four Swords Adventures"는 2004년 일본과 미국, 2005년 전 세계에 닌텐도 게임큐로 출시되었으며, 게임은 8개의 지역으로 나뉘고 각 지역마다 3개의 레벨이 있습니다. 데이터 마이너들은 개발 후반부에 대부분 플레이 가능했지만 제거된 8개의 삭제된 레벨을 발견했으며, 이는 The Cutting Room Floor에서 볼 수 있습니다. Eternal Dream Arabization과 $$$Link라는 게임 모딩 및 현지화 그룹은 이러한 삭제된 레벨을 복원하는 모드를 만들었으며, 문제를 해결하고 필요한 곳에 Force Gems를 추가하여 완료할 수 있도록 했습니다. 이 모드는 맵 파일과 Action Replay 코드 모음으로, 각 지역의 마지막 레벨에 진입할 때 로드되는 맵 파일을 덮어씁니다. 삭제된 레벨에는 River Flow, Rainy Forest, Mountain Road, Graveyard, Four Descents into the Darkness, Oasis, Through the Blizzard, 그리고 Clouds Across the Wind가 포함됩니다. 삭제된 레벨을 플레이하려면 합법적으로 획득한 게임 ROM, Dolphin과 같은 에뮬레이터, 그리고 pyisotools를 사용하여 설치할 수 있는 FSA Second Quest 레벨 파일이 필요합니다. 이 과정은 ISO를 추출하고, 수정된 맵 파일을 복사하고, 새로운 ISO를 빌드하는 것을 포함하며, 그 후 Action Replay 코드를 사용하여 삭제된 레벨을 로드할 수 있습니다. Action Replay 코드는 게임의 미국 및 일본 버전에 모두 제공되며, Swiss 치트 코드도 Swiss 치트 구성 파일과 함께 사용할 수 있습니다. 이 게임은 "젤다의 전설" 시리즈에서 가장 적게 플레이된 타이틀 중 하나로, 전 세계적으로 50만 장 미만이 판매되었으며, 작성자는 삭제된 레벨이 플레이되는 녹화본을 YouTube에 게시할 계획입니다.
CdXz5zHNQW_J4wjjDmtWx.webp
이 가이드는 fastkml Python 패키지를 mypy에서 ty 및 pyrefly로 마이그레이션하는 과정을 상세히 설명합니다. 두 도구(ty와 pyrefly)를 동시에 실행하는 것을 강조하는데, 이는 각 도구가 서로 다른 오류 부분 집합을 감지하여 단일 검사기보다 더 완전한 그림을 제공하기 때문입니다. 이 과정은 코드 변경 전에 두 도구 모두에 대한 기준 오류 수를 설정하는 것부터 시작합니다.효율적인 마이그레이션의 핵심은 파일을 하나씩 오류를 수정하는 것이 아니라, 종종 선택적 C-확장 백엔드와 관련된 시스템적 근본 원인을 식별하고 해결하는 데 있습니다. 도구에 의해 노출된 실제 버그, 특히 Optional/union narrowing 및 positional-only stubs와 관련된 버그는 수정해야 합니다. 테스트 파일의 노이즈, 특히 "constructed-then-accessed-without-narrowing" 문제는 범위 지정 규칙을 사용하여 일괄적으로 억제해야 합니다.가이드는 엄격한 사전 설정을 활성화한 다음 특정 규칙을 승격시키고, 과도한 기계적 변경을 유발하는 규칙은 명시적으로 제거할 것을 권장합니다. 검증은 두 도구 모두 오류를 보고하지 않고, 전체 테스트 스위트가 통과하며, 린터가 깨끗한지 확인하는 것을 포함합니다. 마이그레이션 전에 기존 mypy 구성을 철저히 분석하여 ty와 pyrefly가 일치하거나 초과해야 하는 엄격성 수준을 이해해야 합니다.mypy 구성 인벤토리는 설정을 대략적인 ty/pyrefly 동등 항목에 매핑하고 오래된 모듈별 비활성화 오류 코드 재정의를 제거하는 것을 포함합니다. ty와 pyrefly를 설치한 후, 오류 종류별로, 그리고 파일별로 분류된 기준 오류 수를 얻는 것이 중요합니다. 후자는 일반적으로 시스템적 원인을 드러냅니다. 광범위한 억제를 포함하는 부분 마이그레이션이 있다면, 이는 위험 신호로 간주하고 실제 기준을 보기 위해 억제를 제거해야 합니다.가장 큰 효과를 발휘하는 조치는 두 검사기 모두에서 플래그가 지정된 아키텍처 불일치를 수정하는 것입니다. 일반적인 패턴은 try/except 임포트를 통해 처리되는 선택적 백엔드를 포함하며, 수정은 종종 타입 검사기가 더 풍부한 백엔드의 stub를 볼 수 있도록 하는 if TYPE_CHECKING: 블록입니다. 함정에는 # type: ignore[code] 주석의 이식 불가능성, pyrefly의 TOML 키 대소문자 문제, 인터리빙에 취약한 pyrefly의 array-of-tables 구문, Protocol을 직접 구체적인 클래스 매개변수에 할당할 수 없다는 점 등이 포함됩니다. 전체 과정에서 도구 동작 및 구성에 대한 신중한 검증이 필수적입니다.