Profile img

McK

@mck@hackers.pub · 13 following · 15 followers

우리.인생
@mck@uri.life

McK shared the below article:

일본 서버를 한국과 거의 비슷한 속도로 원격 접속하기

고남현 @gnh1201@hackers.pub

이 글에서는 한국에서 일본 서버를 사용할 때 발생하는 네트워크 지연 문제를 다루고, 해저 케이블망을 활용하여 이를 개선하는 방법을 소개합니다. 저렴한 일본 서버를 선택했지만, 실제 한국에서의 통신 속도가 예상보다 훨씬 느린 250ms에 달해 미국 시애틀보다도 못한 상황을 겪었습니다. 하지만 Microsoft Azure의 한국 리전을 중간 서버로 활용하여 데이터 센터 간 통신을 시도한 결과, 핑 시간을 30ms대로 크게 단축시키는 데 성공했습니다. 이는 86%의 속도 향상으로, RDP를 통해 원격 데스크탑을 사용하는 환경에서 체감 속도를 극적으로 개선했습니다. 이 글은 해외 서버를 사용할 때 네트워크 지연을 줄이는 실질적인 해결책을 제시하며, 독자에게 더 빠르고 효율적인 원격 작업 환경을 구축하는 데 도움을 줄 수 있습니다.

Read more →
6

McK shared the below article:

GitHub Action Rerunner

초무 @2chanhaeng@hackers.pub

GitHub Action Rerunner는 팀원들이 레포지토리에 대한 직접적인 쓰기 권한 없이도 실패한 GitHub Actions를 재실행할 수 있도록 권한을 위임하는 웹 애플리케이션입니다. 레포지토리 소유자는 개인 및 조직 레포지토리를 등록하고, 암호화된 Personal Access Token을 등록하여 공유 가능한 고유 링크를 생성할 수 있습니다. 팀원은 이 링크를 통해 자신에게 할당된 PR 목록을 확인하고, 실패한 Action을 원클릭으로 재실행할 수 있습니다. Next.js, React, Tailwind CSS, PostgreSQL, Prisma ORM, Octokit 등의 기술 스택을 사용했으며, GitHub OAuth를 통해 안전한 계정 관리를 제공합니다. 이 도구를 사용하면 레포지토리 보안을 유지하면서도 팀원들이 CI/CD 프로세스를 효율적으로 관리할 수 있어 개발 생산성을 향상시킬 수 있습니다.

Read more →
7

지금 아이디어는 load에서 SSR인지 여부에 따라서 T | Promise<T>를 던져서 SSR에서는 바로 데이터 / CSR 에서는 Promise 결과가 스트리밍되게 하고 +page.svelte에서는 항상 :then을 씌워주면 SSR때도 Promise 아닌게 들어오면 :then을 렌더링하니까 어떻게 될 거 같긴 한데 어쨌든 SvelteKit의 간단한 구조는 포기해야 하니까... (어쩔 수 없는거지 싶기도 하고)

McK shared the below article:

Optique 0.7.0: Smarter error messages and validation library integrations

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

Optique 0.7.0 introduces enhancements focused on improving the developer experience and expanding its ecosystem for type-safe CLI argument parsing in TypeScript. This release brings automatic "Did you mean?" suggestions to help users correct typos, along with seamless integrations for Zod and Valibot validation libraries, ensuring more robust and efficient CLI development. Duplicate option name detection is now included to catch configuration bugs early, and context-aware error messages provide users with precise feedback. The update also features customizable shell completion naming conventions and improved line break handling in error messages. With these new features, Optique aims to streamline CLI development in TypeScript, making it more intuitive and less error-prone. This release underscores Optique's commitment to providing developers with powerful tools for building high-quality CLI applications.

Read more →
7

panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x100d12fe0]

vscode 언어 서버가 죽어버림

0
0
2
1
1

사용 이틀째.

딱히 불편함은 없고 빠릿빠릿해서 좋다. iTerm2에 있던 그 많은 설정은 거의 필요 없었다는걸 새삼 느꼈다. Ghostty에서 설정을 열면(cmd+,) config 파일 고치라고 편집기가 뜬다 🤣

새 창이나 탭을 띄울 때 현재 위치에서 띄우지 못 하는데, 셀 통합이 불안정해서란다. iTerm2용 통합 스크립트를 다 막아도 "invalid OSC command: 1337;ShellIntegrationVersion=14;shell=zsh"가 찍히는 중. 공식 설명서 따라서 수동으로 읽었는데 되다 말다 그럼.

2
0
1
1

2025년 터미널 에뮬레이터 현황: 방랑하는 챔피언들 1위 Ghostty, 2위 Foot, 3위 Kitty가 상위권을 차지함 세 터미널 모두 Unicode 처리 정확도(WIDE/LANG/ZJW/VS16) 항목에서 최고 점수 기록 VTE 기반 터미널(GNOME Terminal, Terminator, LXTerminal 등) 은 하위권 유지 성능(Elapsed time) 측면에서 Foot, WezTerm, tmux, Konsole 등이 빠름 (100초 미만) iTerm2와 Extraterm은 CPU를 과도하게 사용하며, 테스트 시간을 단축해야 했음

과연 이번에도 "돌고 돌아 iTerm2로 돌아옴"이 될 것인가?

https://news.hada.io/topic?id=24130 https://www.jeffquast.com/post/state-of-terminal-emulation-2025/

1
2
0
6

컴포넌트 새로 만들다가 써야할 함수를 급하게 날림으로 짜고 남겨뒀던게 기억나서 에이전트한테 테스트 짜달라고 했더니,

주석으로 테스트 대상 코드에 문제 있다고 줄줄이 적어놔서 뭐냐니까 svelte lune mode를 못 알아먹은 거였다. 미덥잖아서 다른 에이전트에 리뷰 던지니까 이번엔 deprecated 된 놈*으로 바꿔야 한다며 … 아주 그냥 쌍으로 환각 파티를 벌이는구만

나도 모르게 감정 이입을 했는지 deprecated 명시한 문서를 던져주니까 한 놈은 수긍하고 한 놈은 끝까지 우긴다 🤣

SvelteKit 2.12: $app/stores deprecated $app/store/page$app/state/page

1
0

멀쩡한 코드에 문제 있다며 vscode가 절규하는 원인을 한참 뜯어봤더니, 몇몇 언어 서버의 버그가 합쳐져 화음을 이루어 괴롭혔다는 결론. 설정 파일에 단 두 글자 넣자 사라졌다. (솔직히 // *-ignore 넣고 넘어갈까 했는데)

1
1
1

Ignores hidden directories and files, by default.

fd의 features 가운데 하나. 익숙치 않은 사람은 포기하고find로 돌아갈만한 지점일듯.

Warn when forgetting --hidden on a filename starting with . sharkdp/fd#1588

그나마 있는 경고를 보기도 까다롭다. .profile, \.profile, ^\.profile 모두 기대와 다른 결과가 나온다.

 fd '^\.profile'
[fd error]: The pattern(s) seems to only match files with a leading dot, but hidden files are filtered by default. Consider adding -H/--hidden to search hidden files as well or adjust your search pattern(s).
0
4
  • 역명부기: 역이름 옆에 광고를 함
  • 혁명부기: 혁명을낉여오라하지않앗느냐
3
1
0
0
1

McK shared the below article:

"expression"은 "표현식"이 아니라 그냥 "식"

蛇崩 (じゃくずれ) @ja@hackers.pub

이 글은 프로그래밍 용어 "expression"을 "표현식"이 아닌 간결한 "식"으로 번역해야 한다고 주장합니다. 필자는 "expression"이 수학에서 유래되었으며, 수학에서는 이미 "식"으로 번역되어 사용되고 있음을 지적합니다. 또한, 프로그래머들이 "표현식"을 선호하는 이유로 사전적 정의와 초·중등 교육에서 비롯된 선입견을 들지만, 실제로는 "식"으로 번역해도 의미 전달에 전혀 문제가 없다고 강조합니다. 오히려 "표현식"은 "representation"의 번역어인 "표현"과 혼동될 수 있으며, "정규표현식"과 같이 불필요하게 긴 용어를 만들어낼 수 있다고 비판합니다. 결론적으로, 필자는 "expression"을 "식"으로 번역하는 것이 더 정확하고 간결하며, 전산학 용어의 일관성을 유지하는 데 도움이 된다고 주장하며, "정규식"이라는 간결한 용어 사용을 옹호합니다.

Read more →
10
0
0
0

https://github.com/be5invis/Sarasa-Gothic

터미널/에디터용 고정폭 폰트를 찾는다면 Sarasa Term K를 추천합니다. 이쪽도 한중일 폰트를 모두 지원합니다. Noto Sans Mono CJK도 좋지만 폰트 미세 조정이 안 되는 환경에서 Sarasa Term이 좀더 정확하게 렌더링됩니다. 영문과 한글만 쓰면 네이버의 D2Coding도 훌륭하지만 이쪽은 가나, 한자 지원이 약하죠.

2

그래서 살짝 손 봄

function rmdsstore() {
  find "${@:-.}" \
    -name Library -prune -o -name OrbStack -prune -o \
    -type f -name .DS_Store \
    -print0 | xargs -0 rm
}
0
1

macOS Tahoe에서 일렉트론 애플리케이션이 말도 안되게 느렸던 이유는 Liquid Glass 도입으로 시스템에 전반적 연산이 늘어난게 아니라 Electron이 AppKit의 private API를 잘못 쓰면서 WindowServer에서 GPU를 미친듯이 쓴 것이었다.

https://github.com/electron/electron/pull/48376

5
1

"웹 접근성을 고려한 콘텐츠 제작기법 2.2 개정판" 의 온라인 버전이 공개되었습니다. 이 자료는 국내 접근성 지침 관련해 개발자들이 참고할 수 있도록 한 사례 중심의 해설서입니다. 상당히 좋은 내용으로 보이니 많이 참고하셨으면 합니다.

3
1
6
0
0

McK shared the below article:

LogTape 1.1.0: Smarter buffering, seamless integration

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

LogTape 1.1.0 introduces smarter and more flexible logging with two major features. The first is "fingers crossed" logging, which buffers debug and low-level logs in memory and only outputs them when an error occurs, providing a complete sequence of events leading up to the problem. Category isolation prevents one component's errors from flushing unrelated logs, keeping logs focused and relevant. The second feature is direct log emission via the `Logger.emit()` method, which allows feeding logs from external systems like Kafka directly into LogTape while preserving original timestamps and metadata. This release also includes bug fixes and improvements across the ecosystem, such as fixes for potential data loss during high-volume logging and improved cross-runtime compatibility. Upgrading to 1.1.0 is backward-compatible and enhances debugging in production by providing complete context for every error without constant verbose logging.

Read more →
4

대충 명령어랑 설정 몇 줄 써서 올렸을 뿐인데 "이 글은 ls 명령어를 대체하는 현대적인 도구인 eza의 설정 방법을 소개합니다 …"라며 친절하게 소개해주는 해커펍

1

eza 아이콘 지정

McK @mck@hackers.pub

이 글은 `ls` 명령어를 대체하는 현대적인 도구인 `eza`의 설정 방법을 소개합니다. `eza`는 기본적으로 아이콘, Git 정보, 디렉토리 그룹화 등의 기능을 제공하며, 사용자는 `EZA_CONFIG_DIR` 환경 변수를 통해 설정 디렉토리를 지정할 수 있습니다. 특히, `.config/eza/theme.yml` 파일을 수정하여 파일 확장자에 따라 표시되는 아이콘을 커스터마이징하는 방법을 설명합니다. 아이콘은 Nerd Fonts Cheat Sheet에서 쉽게 복사하여 사용할 수 있습니다. 이 설정을 통해 사용자는 파일 목록을 시각적으로 더욱 풍부하게 만들고, 생산성을 향상시킬 수 있습니다.

Read more →
1

McK shared the below article:

Stop writing CLI validation. Parse it right the first time.

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

This post introduces Optique, a new library created to address the pervasive problem of repetitive and often messy validation code in CLI tools. The author was motivated by the observation that nearly every CLI tool reinvents the wheel with similar validation patterns for dependent options, mutually exclusive options, and environment-specific requirements. Optique leverages parser combinators and TypeScript's type inference to ensure that CLI arguments are parsed directly into valid configurations, eliminating the need for manual validation. By describing the desired CLI configuration with Optique, TypeScript automatically infers the types and constraints, catching potential bugs at compile time. The author shares their experience of deleting large chunks of validation code and simplifying refactoring tasks. Optique aims to provide a more robust and maintainable approach to CLI argument parsing, potentially saving developers from writing the same validation logic repeatedly.

Read more →
20
3
1

지난 몇 달간 htmx로 웹 앱을 만들면서 느낀 점은, 골디락스 존의 하위 50% 애플리케이션에만 htmx가 적합하다는 것이다. 클라이언트 상태를 조금이라도 다뤄야 하는 순간이 오면 불행이 시작된다. 하이퍼미디어 시스템의 철학에 동의하는데, 그 구현은 아일랜드 아키텍처의 접근법이 더 나을 수도 있겠다는 생각이 든다. deno.com/blog/intro-to-islands

웹사이트 유형별로 자바스크립트 사용 필요성을 스펙트럼으로 표현한 차트. 수평 막대 다이어그램으로 웹사이트에서 자바스크립트(JS)의 필요 정도를 나타냄. 왼쪽 빨간색 구역은 ‘i don’t need no stinkin’ JS’로, 블로그와 코드 스니펫이 포함된 문서를 예시로 듦. 가운데 넓은 녹색 구역은 ‘Goldilocks JS’로, 마케팅 사이트, 전자상거래 사이트, 인터랙티브 SaaS를 포함. 오른쪽 파란색 구역은 ’JS me up!’으로, 소셜 미디어 사이트를 예시로 듦.
4
7
3
4
16
8
0
0
0
0
0
0
1