NPM 패키지 만들기

NPM 패키지 만들기

1. 필요성 Notion2WordPress와 Tistory2WordPress는 서로 비슷한 코드가 많다. 따라서 별도의 패키지로 만들어서 사용하면 기능을 추가, 수정, 삭제하기 쉽다. 중복되는 기능을 재사용하기 위해서 패키지로 만드는 방법을 배워본다. 오랜만에 생활코딩을 참고했다. 영상이 오래되어 Gemini의 도움도 받았다. 2. 패키지 초기화 가. Package.json 구성 항목 의미 설명 name 패키지 이름 프로젝트의 고유 명칭. GitHub Registry 사용 시 @사용자명/패키지-이름 필수. … 더 읽기

좋은 예외처리란?

좋은 예외처리란?

1. 예외처리 어떻게 해야할까? 최근 Notion2WordPress와 Tistory2WordPress를 만들었다. 둘은 상당히 비슷하지만 예외처리 방식은 완전히 다르다. 처음 Notion2WordPress를 만들 당시만 해도 최대한 열심히 예외처리를 했다. 예외에 대한 최대한 많은 정보를 얻겠다는 각오로 하위, 상위 레이어 구분하지 않고 할 수 있는 모든 곳에서 예외처리를 구현했다. 하지만 try-catch문이 지나치게 많이 사용되고, 하위에서 처리한 예외를 다시 상위에서 반복해서 처리하고, … 더 읽기

[Git] Worktree

git worktree

1. Git Worktree란? Manage multiple working trees attached to the same repository. A git repository can support multiple working trees, allowing you to check out more than one branch at a time. 공식문서에 따르면 Git worktree는 하나의 Git 저장소(.git)를 공유하면서, 서로 다른 branch를 동시에 checkout할 수 있도록 해주는 기능이다. 여기서 Worktree는 작업 디렉터리를 지칭하는 단어인 … 더 읽기

[개발 블로그 이사] 후기

티스토리 블로그의 마지막 모습

1. 실행 절차 실수를 방지하기 위해서 실행하기 전에 절차를 정의한다. 2. 준비 가. 서버 용량 확인 실제로 파일시스템에서 인식하는 크기는 15GB다. VM에 할당된 원래 용량인 50GB로 확장한다. growpart → pvresize → lvextend → resize2fs 순서를 따라서 확장한다. 나. PHP 설정 수정 다. 플러그인 비활성화 이미지나 포스트 업로드에 방해가 되는 플러그인은 비활성화 한다. Converter for Media처럼 … 더 읽기

[개발 블로그 이사] 테스트

cpu 사용량

1. 최종 테스트 실제 서비스를 운영 중인 환경과 동일하게 Proxmox VE의 VM에서 테스트를 진행한다. 가. Performance 문제 생각보다 WordPress가 업로드 트래픽에 약하다. 기본 설정을 최대한 낮게 잡아야겠다. 진짜 내 생각보다도 WordPress의 처리량이 작다. 극단적으로 낮은 처리량을 예상하고 설정해야겠다. 요청을 중간에 끊었을 때 Converter for Media가 부하를 가중하는 문제가 있다. 나. 408 socket hang up 문제 … 더 읽기

[개발 블로그 이사] 시작

요구사항이 까다로운 남자, 그것이 나다.

1. 이사 목적 2. 이사 방법 처음에는 워드프레스 플러그인을 찾아봤다. Github에도 찾아봤고, 그런데 마음에 들지 않음. 조금씩 다 부족함. 몇가지는 빼고 몇가지는 보존하고 싶었다. 티스토리만의 CSS, HTML은 제거하고 순수한 데이터만 남기고 싶었음. 포스팅 개시일, 수정일은 보존하고 싶었고. 티스토리는 장차 폐쇄할거라 이미지를 WordPress로 옮겨야함. 카테고리, 태그도 최대한 유지하고 싶다. 이사하면 내부 참조 링크도 깨진다. 따라서 자동으로 … 더 읽기

[Linux] 디스크 확장

파티션 상태

리눅스의 저장용량을 늘리는 방법을 알아보자. 1. 디스크 확장 가. 병목 확인 VM에 417MB 밖에 남지 않은 상황이었다. 실제 올려야할 데이터의 크기가 700MB를 넘기니 문제가 생길 수 밖에 없다. 넉넉하게 5GB 정도 확장한다. 디스크 / 파티션 / FS 중 어디가 병목인지 확인한다. 리눅스가 용량을 못 읽는 것이 아니라, 확장 단계를 하나도 안 밟은 전형적인 LVM 케이스다. … 더 읽기

25년 회고

25년 여름 나뭇가지 위 고양이

25년은 오늘은 남매지를 걸으며 25년도를 되돌아 보았다. 걷다 서다를 반복하며 떠오른 생각들을 정리해보았다. 1) 한마디로 최악이다. 2025년을 한마디로 정리하자면 ‘최악’, ‘밑바닥’이다. 너무 힘든 한 해였다. 다사다난 했고 나는 정말 정신적, 신체적으로 한계에 도달했다. 내가 생각하는 가장 최악의 시나리오대로 흘러갔다. 어쨋든 절정에 달했던 8월을 지나서부턴 조금씩 좋아졌다. 2) 가끔은 나쁜 사람이 될 필요있다. 애매하게 행동했던 것이 … 더 읽기

[프로젝트] Notion2WordPress 개발 회고 2

원피스 삼대장

1. 버그 크고 작은 버그들이 있었지만 특히 기억에 남는 3가지 버그가 있었다. 가. 리터럴 남발 AI agent가 빠르게 완성한 코드에는 치명적인 버그들이 있었다. 그중 하나가 바로 리터럴 값을 남발을 남발하는 문제다. 이곳저곳 빼곡하게 리터럴 값으로 채웠다. 거기에 더해서 리터럴 값에 대한 일관성을 잘 유지하지 못하는 모습을 보였다. 아마 LLM의 Context Window 크기에는 한계가 존재하기 때문에 … 더 읽기

[프로젝트] Notion2WordPress 개발 회고 1

N2W logo

1. 배경 가. Tistory의 한계 Tistory에 개발 블로그를 운영하고 있다. 4년 정도 블로그를 운영하면서 기록하는 습관이 생겼다. 이제 개발 블로그뿐만 아니라 다양한 주제로 블로그를 확장하고 싶었다. 기존에 사용하던 Tistory를 사용할 수도 있지만 그렇게 하지 않았다. 평소 Tistory를 사용하면서 아쉬운 점이 몇 개 있다. 우선 Tistory는 포스팅을 자동화하기 어렵다. Tistory에서 제공하는 API로는 자동화하는 것에 한계가 있었다. … 더 읽기