Stimulus를 활용한 Lexxy 에디터 파일 첨부 유효성 검사 추가

Adding File Validation to Lexxy Editor with Stimulus

작성자
발행일
2025년 09월 17일

핵심 요약

  • 1 Lexxy 에디터의 파일 첨부 유효성 검사를 위해 Stimulus 컨트롤러를 활용하는 방법을 제시합니다.
  • 2 첨부 파일의 크기와 유형을 검사하여 허용되지 않는 파일을 업로드 단계에서 효과적으로 차단합니다.
  • 3 `lexxy:file-accept` 이벤트를 리스닝하여 파일 업로드 전 사용자 정의 규칙을 적용함으로써 에디터의 유연성을 유지합니다.

도입

텍스트 에디터 Lexxy를 사용할 때, 사용자 첨부 파일에 대한 더 강력한 제어가 필요하다는 문제의식에서 이 글이 시작됩니다. 작성자는 용량이 큰 비디오나 지원되지 않는 형식의 파일 업로드를 방지하고 싶었으며, 이를 통해 에디터의 경량성을 유지하면서도 유효성 검사 로직을 직접 관리하고자 했습니다. 본문은 Lexxy 에디터에 파일 첨부 유효성 검사 기능을 추가하는 Stimulus 기반의 해결책을 제시합니다.

Lexxy 에디터의 파일 첨부 유효성 검사를 구현하기 위해 Stimulus 컨트롤러가 사용되었습니다. 이 컨트롤러는 Lexxy의 lexxy:file-accept 이벤트를 수신하여 파일이 첨부되기 전에 사용자 정의 규칙을 적용합니다.

Stimulus 컨트롤러 구현 세부사항

  • 정적 값(Static Values):
    • maxBytes: 허용되는 최대 파일 크기(바이트 단위)를 정의합니다. 기본값은 5MB입니다.
    • types: 허용되는 MIME 타입 배열을 정의합니다. 기본값은 image/jpeg, image/png, application/pdf입니다.
  • 연결(connect) 및 해제(disconnect) 메서드:
    • connect(): 컨트롤러가 DOM에 연결될 때 lexxy:file-accept 이벤트 리스너를 등록합니다.
    • disconnect(): 컨트롤러가 DOM에서 제거될 때 이벤트 리스너를 해제하여 메모리 누수를 방지합니다.
  • _onAttachmentsAccept 이벤트 핸들러:
    • event.detail?.file을 통해 첨부될 파일 객체에 접근합니다.
    • 파일 유형 검사: this.typesValue에 파일의 MIME 타입이 포함되어 있지 않으면 event.preventDefault()를 호출하여 첨부를 중단하고 경고 메시지를 표시합니다.
    • 파일 크기 검사: file.sizethis.maxBytesValue를 초과하면 첨부를 중단하고 최대 허용 크기를 포함한 경고 메시지를 표시합니다.

이러한 방식으로, Lexxy 에디터 자체는 가볍게 유지하면서도 파일 첨부에 대한 강력한 제어 로직을 애플리케이션 단에서 관리할 수 있게 됩니다.

결론

제시된 Stimulus 컨트롤러는 Lexxy 에디터의 파일 첨부에 대한 유효성 검사 규칙을 적용하는 간단하고 Stimulus 친화적인 방법을 제공합니다. 비록 예시에서는 `alert()` 함수를 사용하여 사용자에게 오류를 알리지만, 실제 프로덕션 환경에서는 더욱 사용자 친화적인 오류 메시지 표시 방식을 고려해야 할 것입니다. 이 접근 방식은 에디터의 유연성을 유지하면서도 개발자가 첨부 파일에 대한 완전한 제어권을 가질 수 있도록 돕습니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!