2025-07-14 주간 URL 모음
- TIL 125 – Images in docstrings
- 요약
- VS Code (그리고 다른 에디터들도 마찬가지로) Python 독스트링을 Markdown으로 렌더링하여, 표준 Markdown 문법을 사용해 이미지를 삽입할 수 있습니다

문법을 사용해 모듈 독스트링에 이미지를 추가할 수 있으며, import 위에 마우스를 올렸을 때 IDE 툴팁에 이미지가 표시됩니다- 이 기능은 정적 이미지와 애니메이션 GIF 모두에서 작동하지만, 인터넷 리소스를 가리키는 URL이 필요합니다 (로컬 파일은 작동하지 않습니다)
- 구현 예시:
__init__.py
에 """"""
를 모듈 독스트링으로 추가하면 import 문 위에 마우스를 올렸을 때 이미지가 표시됩니다 - 이 기능은 함수 독스트링에서도 작동합니다 - 함수명 위에 마우스를 올렸을 때 툴팁에 이미지가 나타납니다
- 잠재적으로 유머러스하기는 하지만, 복잡한 함수를 문서화하기 위해 다이어그램을 추가하는 등의 실용적인 용도가 있습니다
- 이 발견은 BlueSky 사용자 "MACE!!!"가 간접적으로 이 기능을 시연한 것을 통해 이루어졌습니다
- Useful utilities and services over DNS
- 요약
- dns.toys는 창의적인 DNS 서버입니다 - DNS 프로토콜을 자유롭게 활용하여 편리한 명령줄 유틸리티와 서비스를 제공합니다
- 세계 시간 및 시간대 서비스 - 도시별 현재 시간 확인(
dig mumbai.time @dns.toys
)과 특정 날짜 형식을 사용한 도시 간 시간 변환 - 날씨 서비스 - 공백 없는 도시 이름으로 날씨 정보 확인(
dig mumbai.weather @dns.toys
) - 단위 및 통화 변환 - 70개 이상의 다양한 단위 변환(
dig 42km-mi.unit @dns.toys
)과 일일 환율을 사용한 통화 변환(dig 100USD-INR.fx @dns.toys
) - 네트워크 유틸리티 - 내 IP 주소 표시, CIDR 범위 찾기, 좌표 간 직선 거리 계산
- 숫자 및 텍스트 처리 - 숫자를 단어로 변환, 진법 변환(16진법/10진법/8진법/2진법), 에포크 타임스탬프, 영어 단어 정의 제공
- 랜덤 생성기 - 주사위 굴리기, 동전 던지기, 랜덤 숫자 생성, UUID, NanoID, 랜덤 개발자 핑계 제공
- 전문 도구 - 스도쿠 퍼즐 해결, 비타민 정보 제공, 인도 은행 IFSC 코드 조회, DIGIPIN 좌표 변환
- ISS 추적 -
dig iss.sky @dns.toys
로 국제우주정거장의 위치 추적 - 셸 별칭 제공 - 더 쉬운 사용을 위해 Bash, Fish, 또는 Zsh 셸에
dy
단축 명령어 추가 가능(alias dy="dig +short @dns.toys"
)
- CVE-2025-48384: Breaking Git with a carriage return and cloning RCE
- 요약
- Git은 신뢰할 수 없는 저장소에서
git clone --recursive
를 사용할 때 Unix 계열 시스템에서 심각한 원격 코드 실행 취약점(CVE-2025-48384)을 가지고 있습니다 - 이 취약점은 Git의 구성 파서가 구성 파일을 읽을 때와 쓸 때 캐리지 리턴(
\r
) 문자를 다르게 처리하는 데서 비롯됩니다 - Git의 구성 파서는 읽을 때 후행 캐리지 리턴을 제거하지만 쓸 때는 항상 따옴표로 묶지 않아서, 검증된 경로와 실제 경로 사이에 불일치를 만듭니다
- 이 버그는
\r
로 끝나는 경로를 사용하여 읽기/쓰기 주기 동안 변환되는 .gitmodules
파일(저장소에 체크인됨)을 악용합니다 "foo^M"
과 같은 서브모듈 경로가 .git/modules/foo/config
에 쓰여질 때, 따옴표 없이 foo^M
이 되지만 다시 읽을 때는 foo
로 읽힙니다(CR이 제거됨)- 이러한 경로 혼동은 공격자가 서브모듈 내용을 예상과 다른 위치에 쓸 수 있게 하여 검증을 우회하고 중요한 파일을 덮어쓸 수 있게 합니다
- 이 취약점은
.git
디렉토리에 악성 파일을 배치하거나 훅 스크립트를 생성하여 임의 파일 쓰기와 코드 실행을 가능하게 할 수 있습니다 - GitHub Desktop은 기본적으로
--recursive
옵션으로 자동 클론하기 때문에 특히 취약합니다 - 수정 방법은 간단합니다: 구성 값의 캐리지 리턴이 쓰여질 때 항상 따옴표로 묶이도록 보장하는 것입니다
- 이는 웹 프로토콜의 CRLF 인젝션 공격과 유사한 프로세스 간 통신에서의 광범위한 로직 취약점 클래스를 나타냅니다
- (번역)자바스크립트가 웹을 망가뜨렸습니다. (그리고 이를 진보라고 불렀습니다)
- 요약
- 대부분의 웹사이트는 끔찍한 상태로, 느리고 비대하며 불안정한 자바스크립트로 인해 사용자 경험이 악화되고 있음
- 2010년경 변화의 시작점에서 Angular 등장과 함께 "앱처럼 느껴지게 만들어달라"는 요구가 증가하면서 복잡성이 급격히 증가
- 앱 개발자들의 웹 생태계 유입으로 문서가 아닌 애플리케이션을 만들도록 훈련받은 엔지니어들이 패턴, 상태 관리, 의존성 주입 등 복잡한 개념을 웹에 도입
- 개발자 경험(DX) 숭배 문화가 형성되어 사용자 경험보다 개발자의 편의성을 우선시하게 되면서 추상화가 증가하고 실제 사용자와의 거리가 멀어짐
- 복잡성이 기본값이 되어 블로그 포스트 하나 게시하는 데도 빌드 단계, 번들러, 하이드레이션 전략 등이 필요한 과도한 엔지니어링 상황 발생
- 자바스크립트 생태계가 스스로 재구축하며 서버 사이드 렌더링, 라우팅 등 원래 웹이 제공했던 기능들을 다시 만들고 있지만 더 느리고 복잡한 결과물 생산
- 끝없는 반복과 불안정성으로 인해 새로운 프레임워크 마이그레이션, 번들러 교체 등이 계속 발생하지만 실제 사용자 문제는 해결되지 않음
- 마케터, SEO 담당자, 콘텐츠 편집자 등이 배제되어 간단한 작업조차 개발자를 통해야 하는 상황이 되면서 권력이 개발팀에 집중
- 자바스크립트 자체는 강력하지만 잘못 사용되고 있으며, 대부분의 웹사이트는 복잡한 프레임워크 없이도 바닐라 자바스크립트나 jQuery로 충분히 구현 가능
- 해결책은 서버 렌더링된 HTML, 시맨틱 마크업, 가벼운 템플릿 등 웹 기본 원칙으로 돌아가서 사용자를 위한 단순하고 투명한 구축 방식을 선택하는 것
- SETI@home 논문이 통과되어 저널에 출판될 예정 | GeekNews
- 요약
- SETI@home 관련 논문 두 편이 2025년 6월 《The Astronomical Journal》에 게재 예정으로 통과됨
- 현재 중국 FAST 관측소에서 Nebula가 발견한 상위 92개 후보 천체를 재관측 중
- 논문의 결론은 세 가지로 구성됨
- 다른 프로젝트와 달리 SETI@home이 새롭게 수행한 일
- 처음부터 다시 시작할 수 있다면 고쳐야 할 점
- 미래 전파 SETI 프로젝트에 남기는 교훈
- 논문 출판으로 방대한 자원봉사자들의 노력과 전기 요금, 탄소 배출량에 목적과 의미를 부여할 수 있게 됨
- 저자에게는 25년간의 힘든 노력(원본 SETI@home 개발 15년 + BOINC 개발 및 포팅)에 깊은 만족감을 주는 결론
- 인류는 지구의 고독을 초월하기 위해 지능을 가진 다른 생명체를 열렬히 찾는 전반적인 열망이 있음
- "SETI@home은 백만 명이 함께 우주로 손을 뻗어 다른 지성을 찾기를 희망하는 프로젝트" 로, 헛된 시도일지 모르지만 인간이 이룬 전례없는 노력임
- 함께 이룬 성취에 자부심을 느끼자는 메시지로 마무리
- Am I online?
- 요약
- 저자는 애플리케이션의 인터넷 연결성을 확인해야 했고, 단순한 ICMP ping을 통한 기본 연결성이 아닌 전체 네트워크 스택(DNS, TCP, HTTP)을 테스트하고자 했습니다
- Google의
generate_204
엔드포인트 (http://google.com/generate_204
)는 Chrome에서 연결성 검사를 위해 일반적으로 사용되며 204 No Content
상태를 반환합니다 - Google 엔드포인트는 빠르고 신뢰할 수 있으며(Google의 핵심 인프라를 사용), HTTP와 HTTPS 프로토콜을 모두 지원합니다
- 대안 Google 엔드포인트로는
gstatic.com/generate_204
와 clients3.google.com/generate_204
가 있으며, 아마도 같은 백엔드에서 제공되는 것으로 보입니다 - 다른 회사들도 유사한 204 엔드포인트를 제공합니다: Cloudflare (
cp.cloudflare.com/generate_204
), Microsoft (edge-http.microsoft.com/captiveportal/generate_204
), Ubuntu, Xiaomi - 일부 회사들은 대신 200 OK 엔드포인트를 사용합니다: Amazon, Apple, Debian, Gnome, Microsoft, Mozilla - 모두 간결하고 빠른 응답을 반환합니다
- 저자는 네 가지 프로그래밍 언어로 실용적인 구현 예제를 제공합니다: Python, JavaScript, Shell, Go
- 모든 구현체는 동일한 패턴을 따릅니다: 타임아웃과 함께 HTTP 요청을 보내고, 200 또는 204 상태 코드를 확인하고, 불린 결과를 반환합니다
- 구현체들은 적절한 오류 처리를 포함하고 빠른 연결성 검사를 위해 짧은 타임아웃(일반적으로 1초)을 사용합니다
- 저자는 "Google의 큰 팬은 아니지만" Google과 다른 회사들이 연결성 테스트를 위해 이러한 공개 엔드포인트를 제공하는 것에 감사를 표합니다