북곽툴즈 개발기 ① 왜 만들었나
북곽툴즈 개발기.
시작은 귀찮음
학교에서 과제나 수행평가를 하다 보면 자잘한 파일 작업이 끝없이 생긴다. hwp를 PDF로 바꾸고, 사진 여러 장을 PDF 한 장으로 묶고, 발표 자료를 이미지로 내보내고, 조 짤 때 이름을 무작위로 뽑는다.
그때마다 검색해서 나오는 외부 사이트를 쓰는 게 영 별로였다. 광고가 덕지덕지 붙어 있고, 가입을 요구하기도 하고, 무엇보다 내 파일을 모르는 서버에 업로드해야 한다. 한두 번이면 몰라도 매번 그러기는 싫었다.
그래서 직접 만들기로 했다. 경기북과학고 학생이라면 가입 없이 바로 쓰고, 가능하면 파일이 기기 밖으로 나가지 않고, 자주 쓰는 도구를 한곳에 모아둔 사이트. 이름은 학교 축약명을 따서 북곽툴즈로 정했다. 주소는 tools.binaryhub.club이다.
두 종류의 도구
만들다 보니 도구가 자연스럽게 두 부류로 나뉘었다.
하나는 브라우저 안에서 끝나는 것이다. PDF 합치기·분할, 이미지를 PDF로 묶기, PDF를 이미지로 내보내기, 이미지 형식 변환, 조 짜기 같은 도구는 서버가 필요 없다. 파일이 내 컴퓨터를 떠나지 않으니 빠르고 안전하다.
다른 하나는 서버가 필요한 것이다. 한글·한셀·한쇼 문서를 PDF나 오피스 포맷으로 바꾸는 변환기가 여기 해당한다. 이건 한컴오피스의 힘을 빌려야 해서 사정이 복잡한데, 덕분에 이 시리즈에서 할 이야기가 가장 많은 부분이기도 하다.
스택
- Next.js 16 (App Router, Turbopack)
- TypeScript
- Tailwind CSS 4
- 다크 테마
특별할 것 없는 구성이지만, 서버가 필요한 변환 기능 때문에 배포는 흔한 방법을 못 썼다.
거창한 기술은 없지만, "학생이 실제로 쓰는 걸 직접 만들어 굴린다"는 점에서 배운 게 많았다.