Xheldon Blog

The Answer to Life, the Universe and Everything is...

새 블로그 주소 안내

이전에는 기술 관련 글은 www 도메인 아래에, 생활 관련 글은 42 도메인 아래에 분리해서 올렸는데 관리가 번거로웠습니다. 이 블로그 템플릿의 Service Worker 기능과 깔끔한 디자인(기존 www 블로그에 비해)이 마음에 들어, www 도메인을 이 템플릿으로 통합해 기술 문서와 생활 기록을 한데 모으기로 결정했습니다. 국경일 전까지 미세 조정...

Nginx의 포워드 프록시와 리버스 프록시

모든 것은 무지에서 비롯되었다

이 글의 배경 폴더/파일 이름에는 콜론을 포함할 수 없기 때문에, Chrome이 포트 번호가 포함된 URL에 대해 Override 기능을 사용할 수 없다고 오해했습니다. 그래서 내부망 원격 테스트 환경의 포트가 포함된 URL을 로컬의 기본 80 포트로 변경하여 Chrome이 override할 수 있도록 하려고 했습니다. 나중에 Chrome이 실제로 포...

2020 베이징 집 구매 기록

2018년 청두 하이테크/톈푸 신구에 정착할 계획을 세우고 집을 구매하기 시작한 후, 결국 2021년 베이징에서 집을 사야 했던 힘든 과정과 마음의 여정을 기록했습니다.

서문 2018년, 여자친구(현재는 아내)의 영감을 받아 베이징을 떠날 생각을 하게 되었고, 적합한 2선 도시를 물색하기 시작했습니다. 저희는 정저우(郑州), 우한(武汉) 그리고 고향으로 돌아가는 것을 제외한 후, 미래의 자녀 출산과 직장 생활(집과의 거리는 고려하지 않았습니다. 베이징에서 이 먼 거리에서도 잘 지냈으니까요)을 고려하여 두 도시를 선택했...

증기 조림 농어

맛도 좋고 만들기도 간단한

재료 농어 1마리, 2인분 기준 약 1.2~1.5근 정도 파 2줄기 레몬 1개 피시소스 2스푼 설탕 1작은 술 소금 2그램 마늘 3쪽 다진 고추 또는 청양고추 준비 작업 생선 처리 구매한 농어는 생선 가게에서 비늘과 머리를 깨끗이 제거해 달라고 하세요. 물론 머리를 좋아하시면 그대로 두셔도 됩니다. 집에 가져와 씻은 후, 생선 양쪽에 칼로 몇 군데...

간단하게 밥 한 그릇 만드는 법

간단하지만, 모두 디테일이 중요합니다

재료 쌀 물 도구 전기밥솥 준비 작업 1인분은 대략 180ml 정도로 준비합니다. 여성분들은 100~150ml 사이로 적게 하시고, 저는 180ml로 합니다. 2인분은 두 배로 준비하면 되며, 이렇게 비례해서 조절하시면 됩니다: 어떤 레시피에는 "일합"이라고 표기된 것도 있는데, 같은 의미입니다: 준비한 쌀을 전기밥솥에 넣...

갈비 배추 당면 조림

동북 요리, 푹 고으면 끝이야~

재료 갈비 (등갈비/소갈비) 1근 반, 소갈비가 가장 좋습니다. 제가 산 것은 아니어서 (저렴한 걸로) 뼈가 너무 많아 먹기 불편했습니다. 대파 산초, 팔각, 건고추, 월계수 잎, 계피 설탕 맛술 간장 진간장 굴소스 소금, 식용유 준비 작업 갈비 전처리 갈비를 씻어 핏물을 제거합니다: 말할 것도 없이 바로 냄비에 넣고 센 불로 데쳐 핏기를 제거합...

두번 구운 고기

내가 가장 좋아하는 쓰촨 요리 한 가지

재료 삼겹살 1근 부추 5줄기 대파, 생강, 마늘 산초 5~6알, 청양고추 3개, 된장 2작은 술 맛술 10g (적당량 넣으세요) 간장 3작은 술 진간장 1작은 술 소금, 식용유 준비 작업 첫 번째 단계 삼겹살은 껍질을 제거하고 핏물을 씻어낸 후 키친타월로 물기를 닦아주세요: 돼지껍질은 미리 제거해 달라고 할 수 있으며, 돼지껍질로 돼지기름을 만...

블로그 최적화 팁

서문 이전에 이 블로그의 도메인 최적화 설정에 관한 몇 가지 설명]이라는 글을 쓴 적이 있습니다. 그때 사용한 몇 가지 방법은 더 이상 사용하지 않게 되었고, 동시에 다른 몇 가지 방법을 추가하여 이 Jekyll 블로그에 적용했습니다. 이 과정에서 주의해야 할 몇 가지 세부 사항이 있어 이 글을 작성하게 되었습니다. CDN 서비스 이전에 사용하던 CD...

GitHub Pages를 무료로 사용하여 프라이빗 저장소 배포하기

서문 최근 Github Pages와 Github Actions를 함께 사용하는 방법을 연구해보았는데, 개인 블로그 운영에 매우 적합하다고 생각되어 이 글을 작성하게 되었습니다. 기존에는 블로그 소스 코드를 리포지토리에 직접 올리고 Github Pages에서 제공하는 기본 Jekyll을 사용하면서 커스텀 도메인을 설정했습니다. 하지만 이 방식에는 다음과...

「번역」ProseMirror의 협업 편집 구현

이해하지 못한 번역은 그대로 원문을 올리고, 나중에 이해하면 번역하여 오해를 피하고 웃음거리가 되지 않도록 하겠습니다.

이 블로그 글은 ProseMirror에서 사용되는 협업 편집 기술을 설명합니다. ProseMirror에 대한 소개는 여기에서 확인할 수 있습니다. 협업 편집의 문제점 실시간 협업 편집 시스템은 여러 사람이 동시에 같은 문서를 편집할 수 있음을 의미합니다. 이 시스템은 문서가 동기화 상태를 유지하도록 보장합니다. 즉, 한 사용자가 문서에 가한 변경 사항...

나의 디지털 생활

"21세기에서 가장 중요한 것은 의미 없는 일에 시간을 낭비하지 않는 것이다"

서문 디지털 시대에 살면서, 너무나 많은 비효율적이고 사용하기 어려운 소프트웨어/서비스를 경험했습니다. 시간을 낭비할 뿐만 아니라, 에너지도 소모하게 만듭니다(예: 화남/조급함/환불 등과 같은 에너지 소모적인 일들). 그래서 필연적으로 많은 함정을 밟기도 했습니다. 그래서 제가 일상에서 소프트웨어 사용과 관련해 얻은 경험과 소견을 공유하고 싶었습니다....

2020년 새해 일본 여행

"일본은 정말 신기한 나라야" 아내가 말했다.

서문 아내와 함께한 이후로, 우리는 해외 여행을 한 번도 가보지 못했습니다. 아내는 종종 해외로 놀러 다녔지만, 저는 한 번도 해외에 나가본 적이 없어서, 새해 연휴를 이용해 해외로 나가보기로 했습니다. 가장 가까운 일본을 선택해 첫 해외 여행 경험을 쌓고, 나중에 유럽으로 허니문을 갈 때를 대비하기로 했죠. 비행기 표는 몇 달 전에 미리 예약했기 때...

Sinon으로 ES6 모듈 테스트하기

최근 일주일 동안 선임자가 작성한 테스트 코드를 수정하면서 Sinon을 사용하게 되었고, 몇 가지 문제점을 마주했습니다. 이를 기록해 둡니다.

서문 아래에서 설명하는 내용은 Sinon의 spy 인터페이스에 한정되지만, stub 등의 인터페이스에도 동일하게 적용됩니다. 테스트에는 Mocha Sinon Chai 라이브러리/프레임워크가 사용되었으며, 여기서는 소개하지 않습니다. 单独로 내보낸 모듈을 spy하기 다음과 같은 foo.js 모듈이 있고, foo 함수를 내보냅니다. 123expor...

에버노트에서 애플 기본 메모 앱으로 이동하기

서문 저는 노트 앱에 대해 까다로운 기준이 있어서, 동일한 유형의 앱은 오직 하나만 허용하며 다음과 같은 요구사항을 충족해야 합니다. 만약 여러분의 요구사항과 다르다면 더 이상 읽을 필요가 없을 겁니다: 대기업에서 제작 애플 플랫폼에서 안정적이고 동기화 속도가 빠름(PC 사용하지 않음, 고려하지 않음) 노트 이전이 가능하고 호환성이 좋음 디자인이 깔...

JavaScript의 자료구조와 알고리즘

서문 비록 스스로 노력하고 대기업에 들어간 경험이 있지만, 컴퓨터 과학 기초 분야는 항상 부족함을 느꼈습니다. 전공자가 아니기 때문에, 후천적인 노력으로 전공자들과의 격차를 좁히고 싶었습니다. 프로그래머의 세 가지 꿈(언어/알고리즘/그래픽) 중 하나인 자료구조와 알고리즘은 항상 마음의 부담이었습니다. 여유 시간에 기술 커뮤니티를 돌아다니다가 자극적인 ...

Linux 파일 권한 메모

이 글은 Linux 기초를 배우던 당시 작성한 블로그 포스트로, 오래된 WordPress 블로그에서 옮겨온 것입니다.

서문 커맨드 라인을 자주 사용하는 분들은 파일 앞에 -rw-r--r--과 같은 10자리의 문자열을 본 적이 있을 겁니다. 이는 현재 파일/폴더에 대한 다양한 사용자 그룹의 권한을 나타냅니다. 예를 들어: 1234drwxr-xr-x 9 x staff 288 9 25 23:37 .drwxr-xr-x 15 x staff 480 9 24 ...

C 언어에서 포인터를 올바르게 이해하기

이 글은 C 언어를 배울 당시 작성한 블로그 포스트로, 오래된 WordPress 블로그에서 복원한 것입니다.

서문 C 언어를 배우는 초보자들은 종종 포인터에 대해 혼란스러워합니다. 아래에서는 제가 이해한 포인터에 대해 설명하겠습니다. 먼저 몇 가지 문제를 명확히 하기 변수의 본질 변수의 본질은 특정 메모리 주소를 가리키는 이름 표현입니다. 컴파일된 목적 코드에는 변수 이름이 없으며, 컴파일러는 컴파일 단계에서 변수 이름과 해당 메모리 주소 간의 매핑 테이블을...

2018년 겨울 취업 면접 경험

서문 저의 면접 경험은 많지 않습니다. 지금까지 근무한 세 회사 중 최근 2018년의 면접 경험을 제외하면, 앞의 두 회사는 한 번의 면접으로 오퍼를 받고 바로 입사했기 때문에 다른 회사를 더 시도해보지 않았습니다. 이로 인해 저의 면접 경험은 극도로 부족했고, 지금 생각해보면 메이퇀(美团)을 퇴사한 후 면접 준비가 충분치 않아 피할 수 있었던 많은 ...

「번역」 ProseMirror 한국어 가이드

본문에서 언급된 문서나 매뉴얼 API 설명은 https://prosemirror.xheldon.com/docs/ref/에서 확인할 수 있습니다.

https://prosemirror.xheldon.com 도메인을 가리키는 내용은 https://prosemirror.net으로 바꾸면 영어 원문을 확인할 수 있습니다. 번역 설명: 작업에 ProseMirror를 사용해야 하는데, 시중에 완성도 높은 번역 문서를 찾지 못했습니다(일부 번역은 기계 번역처럼 읽힙니다). 그래서 이 기회에 해당 라이브...

네, 3년 만에 다시 이 작은 블로그를 업데이트하기 시작했습니다.

![头图](<%= config.static_url %>/img/in-post/2019/kruger.png) 서문 이 블로그를 처음 시작한 것은 2015년이었습니다. 당시에는 Wordpress로 사이트를 구축했지만, 테마의 질이 들쭉날쭉했고 PHP 언어를 할 줄 몰라 커스터마이징이 어려워 결국 포기하게 되었습니다. 그러다 2017년쯤 Liqu...