Lee Dogeon

@moreal@hackers.pub · 67 following · 61 followers

어느 한 개발자입니다.

GitHub
@moreal

객체 프로퍼티 키 평가 과정

Lee Dogeon @moreal@hackers.pub

이 글은 AI도 틀리는 JavaScript 퀴즈를 풀면서 발견한 JavaScript의 흥미로운 동작 방식에 대한 탐구 과정을 담고 있습니다. 퀴즈의 예제 코드를 실행했을 때 예상과 다른 결과가 나타난 이유를 분석하며, JavaScript에서 세미콜론 자동 삽입(Automatic Semicolon Insertion) 규칙과 쉼표 연산자의 동작 방식을 설명합니다. 특히 배열이 객체의 프로퍼티 키로 사용될 수 있는 이유를 파악하기 위해 ECMAScript 명세를 깊이 파고들어 `Symbol.toPrimitive`라는 개념을 소개합니다. 이를 통해 객체가 프로퍼티 키로 사용될 때 JavaScript 엔진이 어떻게 객체를 문자열로 변환하는지, 그리고 `Symbol.toPrimitive`를 사용하여 이 동작을 어떻게 커스터마이징할 수 있는지 보여줍니다. 비록 퀴즈의 정답과는 거리가 멀어졌지만, 이 과정에서 얻게 된 새로운 지식을 공유하며 JavaScript의 숨겨진 동작 원리를 이해하는 데 도움을 줍니다.

Read more →
6

deno-vite-plugin 디버깅 1편

Lee Dogeon @moreal@hackers.pub

이 글은 Deno 런타임 환경에서 SolidStart와 `deno-vite-plugin`을 사용할 때 발생하는 라이브러리 임포트 문제를 해결하는 과정을 담고 있습니다. 특히, `jsr:@fedify/fedify` 라이브러리를 임포트할 때 `deno task build`가 실패하는 상황을 재현하고, 원인을 분석하여 임시 해결책을 제시합니다. 문제의 원인은 `deno info` 명령어가 `kind: asserted`인 모듈을 제대로 처리하지 못하는 데 있었으며, 이를 `esm`으로 취급하도록 수정하여 해결했습니다. 다만, 근본적인 해결책은 아니며, 추가적인 `npm` 관련 에러가 남아있음을 언급합니다. 이 포스팅은 Deno 생태계에서 Vite 플러그인을 사용할 때 발생할 수 있는 문제와 그 해결 과정을 보여주며, 유사한 문제를 겪는 개발자들에게 실질적인 도움을 줄 수 있습니다.

Read more →
1

VitePress localSearchPlugin 버그 디버깅하기

Lee Dogeon @moreal@hackers.pub

이 글은 Zenn 트렌드 봇 제작 중 VitePress 로컬 검색 기능의 버그를 발견하고 수정하는 과정을 담고 있습니다. Fedify 문서에서 검색 기능이 제대로 작동하지 않는 것을 확인한 후, 코드 블록 내의 특정 마크다운 문법(`markdown-it-jsr-ref` 플러그인)이 문제임을 밝혀냈습니다. VitePress의 `localSearchPlugin.ts` 파일을 분석하여, 헤딩 내의 `<a>` 태그를 처리하는 정규식의 non-greedy한 특성이 버그의 원인임을 알아내고, 정규식에서 `?` 기호를 제거하여 문제를 해결했습니다. PR을 통해 수정 사항을 제안하고 빠르게 머지된 경험을 공유하며, 디버깅 과정과 PR 준비에 대한 회고와 함께 개선점을 제시합니다. 이 글은 문제 해결 과정과 디버깅 경험을 통해 독자들에게 인사이트를 제공합니다.

Read more →
3

Fedify CLI로 Content Warnings 이해하기

Lee Dogeon @moreal@hackers.pub

이 글은 Mastodon의 Content Warnings 기능이 ActivityPub Activity 객체에서 어떻게 표현되는지 탐구합니다. Mastodon에서 글을 작성할 때 Content Warnings를 사용하는 이유와, 그것이 실제 데이터 구조에서 어떻게 나타나는지에 대한 궁금증에서 시작합니다. Fedify CLI 도구를 사용하여 실제 Activity 객체를 확인하고, Content Warnings에 입력한 텍스트가 `summary` 필드에 저장됨을 발견합니다. ActivityPub 문서에서 `summary` 필드의 정의를 찾아 HTML 스타일링과 다국어 지원이 가능하다는 점을 확인합니다. 결론적으로 Content Warnings를 요약으로 사용하는 것이 항상 적절한 용례는 아닐 수 있지만, 사용자가 선호하는 언어로 작성된 요약을 애플리케이션이 자동으로 번역하여 제공할 수 있다는 아이디어를 제시합니다.

Read more →
0

rel="me" 메모

Lee Dogeon @moreal@hackers.pub

Hackers' Pub의 프로필 링크 인증 기능이 제대로 작동하지 않아, GitHub 링크를 추가했음에도 체크 표시가 나타나지 않는 문제를 해결하기 위한 여정을 담고 있습니다. `rel="me"` 속성이 HTML 링크 요소에서 어떤 역할을 하는지 MDN 문서를 통해 알아보고, GitHub 프로필 설정에서 Hackers' Pub 링크를 추가할 때 `rel="me"` 속성이 자동으로 추가되는 것을 확인합니다. Hackers' Pub의 오픈 소스 코드를 분석하여 인증 마크가 표시되는 과정을 파악하고, GitHub에 Hackers' Pub 링크를 추가한 후 프로필 설정을 다시 저장하면 인증 체크 표시가 나타나는 것을 확인합니다. 이 글은 `rel="me"` 속성의 역할과 Hackers' Pub의 링크 인증 과정을 이해하고, 문제 해결 방법을 제시하여 독자들이 유사한 문제를 겪을 때 도움을 받을 수 있도록 합니다.

Read more →
1