웹 개발자라면 HTML을 작성하면서 발생하는 다양한 문제들에 대한 해결책을 항상 찾아야 합니다. 특히, HTML 코드의 유효성을 검사하고 일관된 포맷으로 관리하는 것은 프로젝트의 품질을 높이는 데 필수적입니다. 이러한 문제를 해결해 줄 수 있는 유용한 오픈소스 도구가 바로 SuperHTML입니다. SuperHTML은 HTML Validator, Formatter, Language Server Protocol (LSP), 그리고 템플릿 언어 라이브러리 기능을 제공하여 개발자들이 보다 더 쉽게 HTML 작업을 수행할 수 있게 도와줍니다.

SuperHTML의 주요 기능

SuperHTML의 가장 큰 장점은 다음과 같은 기능들을 제공한다는 것입니다:

  1. HTML 유효성 검사: HTML 문서의 문법뿐만 아니라 요소의 중첩 및 속성 값까지 검증합니다.
  2. 자동 포맷팅: HTML 코드의 들여쓰기 및 정렬을 자동으로 수행하여 가독성을 높입니다.
  3. LSP 지원: 다양한 IDE 및 편집기에서 통합적으로 사용할 수 있는 LSP 클라이언트를 제공합니다.
  4. 템플릿 언어 지원: Jinja2, Angular, Mustache 등의 템플릿 언어와의 호환성 확보를 위해 작업 중입니다.
  5. 이러한 기능들은 프로젝트의 코드 품질을 높이는 데 큰 도움이 됩니다.

    SuperHTML 설치 및 사용법

    1. 설치하기

    SuperHTML는 Zig로 작성된 CLI 도구이므로, Zig를 설치한 후 SuperHTML를 설치할 수 있습니다. Zig가 설치되어 있다면, 아래의 명령어로 SuperHTML를 설치하세요.

    zig install superhtml

    또는 GitHub의 Releases 섹션에서 미리 빌드된 바이너리를 다운로드하여 사용할 수도 있습니다.

    2. 기본 사용법

    SuperHTML를 통해 HTML 문서를 검사하고 포맷하는 방법은 매우 간단합니다. 커맨드라인에서 SuperHTML를 실행하여 다양한 명령어를 사용할 수 있습니다.

    • HTML 문서 검사:
    • superhtml check <your-html-file>.html
    • HTML 문서 포맷팅:
    • superhtml fmt <your-html-file>.html
    • LSP 서버 시작:
superhtml lsp

각 명령어에 대한 자세한 사용법은 --help 옵션을 통해 확인할 수 있습니다.

superhtml --help

3. 자동 포맷팅 예제

SuperHTML의 자동 포맷팅 기능을 활용하여 HTML 코드를 깔끔하게 정리해 보겠습니다. 다음과 같은 HTML 코드가 있다고 가정해 보겠습니다.

<div><p>Foo</p></div>

이 코드를 SuperHTML로 포맷하면 다음과 같이 됩니다:

<div>
  <p>Foo</p>
</div>

이러한 포맷팅은 개발자가 코드를 쉽게 읽고 이해할 수 있도록 도와줍니다.

실무에서의 활용 시나리오

SuperHTML는 CI/CD 파이프라인에서도 유용하게 활용될 수 있습니다. 코드가 커밋될 때마다 HTML 파일을 자동으로 검사하고 포맷팅하도록 설정함으로써, 항상 일관된 코드 스타일을 유지할 수 있습니다. 예를 들어, GitHub Actions를 이용하여 아래와 같은 워크플로우를 설정할 수 있습니다.

name: HTML Validation
on: [push]
jobs:
  html_check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install SuperHTML
        run: zig install superhtml
      - name: Validate HTML
        run: superhtml check ./path/to/html/*/.html

이런 방식으로 SuperHTML를 CI/CD에 통합하면, 팀원들이 서로 다른 코드 스타일로 작업하는 것을 방지할 수 있습니다.

비슷한 도구와의 비교

SuperHTML와 유사한 도구로는 HTMLHint, Prettier 등이 있습니다. 그러나 SuperHTML는 HTML5의 전체 스펙을 구현한 유일한 LSP 서버를 제공하여, 보다 깊이 있는 유효성 검사를 지원합니다. 또한, Zig로 작성되었기 때문에 성능 면에서도 우수합니다.

마무리 및 추천 대상

SuperHTML는 웹 개발자, 프론트엔드 엔지니어, 그리고 HTML을 자주 다루는 모든 개발자에게 추천할 만한 도구입니다. HTML 코드의 품질을 유지하고, 일관된 코드 스타일을 적용하도록 도와줍니다. 현재 GitHub에서 1,285개의 스타를 기록하며 활발히 사용되고 있는 만큼, 앞으로의 발전도 기대됩니다.

자세한 정보와 설치 방법은 GitHub 레포지토리에서 확인하실 수 있습니다: SuperHTML GitHub