3P by neo 6달전 | favorite | 댓글 1개

HTML 콘텐츠 제공 방법

  • PostgREST와 htmx 라이브러리를 사용하여 HTML 콘텐츠를 반환하고 AJAX 요청을 처리하는 방법 소개.
  • htmx는 HTML 응답을 기대하며, 이를 사용하여 DOM 내의 요소를 대체함.

준비 설정

  • 튜토리얼 0을 기반으로 한 할 일(to-do) 앱 제작.
  • 인증 없이 진행하며, web_anon 사용자에게 todos 테이블에 대한 모든 권한 부여.
  • text/html을 미디어 타입 핸들러로 추가하여 PostgREST가 웹 브라우저의 요청을 HTML 문서로 인식하도록 설정.

HTML 응답 생성

  • Tailwind CSS를 사용하여 기본 HTML 파일을 반환하는 함수 생성.
  • 웹 브라우저는 http://localhost:3000/rpc/index에서 웹 페이지를 열 수 있음.

할 일 나열 및 생성

  • 데이터베이스에 이미 입력된 할 일 목록을 표시하는 함수 생성.
  • 할 일 목록 템플릿을 구축하는 데 사용되며, PostgREST 엔드포인트로 사용되지 않음.
  • 할 일을 데이터베이스에 등록하는 엔드포인트 추가 및 /rpc/index 페이지 수정.

할 일 편집 및 삭제

  • api.html_todo 함수를 수정하여 더 기능적으로 만듦.
  • 새로운 htmx 기능 추가: 할 일 상태 변경, 할 일 편집 가능한 HTML 반환, 할 일 삭제.
  • 할 일을 편집하고 데이터베이스에서 할 일을 수정 및 삭제하는 엔드포인트 추가.

GN⁺의 의견

  • 이 글은 웹 개발자들에게 흥미로울 수 있음. PostgREST와 htmx 라이브러리를 사용하여 웹 애플리케이션에서 동적인 HTML 콘텐츠를 제공하는 방법을 설명하기 때문.
  • AJAX를 활용한 비동기 웹 페이지 업데이트는 현대 웹 개발의 중요한 부분이며, 이 글은 그러한 기능을 구현하는 구체적인 예시를 제공함.
  • 사용자 인터페이스를 개선하고 서버와 클라이언트 간의 통신을 최적화하는 방법을 배울 수 있는 좋은 자료임.
Hacker News 의견
  • PostgREST에 대한 해커뉴스 댓글 요약:
    • PostgREST의 오픈소스 프로젝트에 대한 애정: 한 사용자는 PostgREST를 자신이 가장 좋아하는 오픈소스 프로젝트 중 하나로 꼽으며, Supabase의 성공이 PostgREST와 Postgres의 훌륭한 설계 덕분이라고 언급함. 이 사용자는 Supabase가 PostgREST 프로젝트에 얼마나 많은 후원을 하는지 모르지만, 많은 기업들이 이를 사용하고 있음에도 불구하고 후원자가 12명뿐이라는 사실에 대해 아쉬움을 표현함.
    • PostgREST 앱 개발의 어려움: 다른 사용자는 PostgREST를 사용한 앱 개발 경험이 좋지 않았다고 언급하며, 간단해 보이는 프레임워크도 요구사항이 복잡해지면 문제가 생긴다고 지적함. 이 경우, 개발자들이 원하는 결과를 얻기 위해 데이터베이스에 많은 저장 프로시저를 작성해야 했고, 이로 인해 확장성 문제가 발생했다고 함.
    • 유지보수의 어려움: 또 다른 사용자는 PostgREST가 개념 증명으로서는 멋지지만, 실제로 복잡한 웹 애플리케이션을 유지보수하는 것은 악몽 같을 것이라고 의견을 제시함.
    • 단순한 웹 개발 스택의 매력: 한 사용자는 HTML과 데이터베이스만으로 구성된 웹 개발 스택이 매력적이라고 평가하며, 백엔드나 프론트엔드가 필요 없다는 점을 긍정적으로 평가함.
    • 새로운/현대적 애플리케이션에서의 코딩 패턴: Couchdb와 같은 JSON 문서 데이터베이스의 예를 들며, 클라이언트가 직접 데이터베이스에 접근하여 HTML이나 JSON을 받을 수 있는 방식에 대해 설명함. 그러나 이러한 방식이 유지보수에 어려움을 주어 개발이 중단되었다고 언급함.
    • Haskell 관점에서 본 PostgREST의 독창성: 한 사용자는 Haskell 관점에서 보면 PostgREST가 명백한 프로젝트이며, 그것이 바로 이 프로젝트의 천재성이라고 평가함.
    • SmoothDB의 소개: 한 개발자는 PostgREST와 호환을 목표로 하는 SmoothDB라는 새로운 프로젝트를 GitHub에 공개했다고 소개하며, 아직은 베타 버전이라고 언급함. SmoothDB는 Go로 작성되었으며, 독립 실행형 또는 복잡한 서버 애플리케이션의 모듈로 사용될 수 있음.
    • PostgREST를 사용한 데이터 검증 파이프라인에 대한 기사: 한 사용자는 PostgREST를 사용하여 일반적인 데이터 검증 파이프라인으로 사용하는 방법에 대한 기사를 작성했다고 언급하며, CQRS/REST API 레이어로 사용하는 방법에 대한 다음 기사를 준비 중이라고 함.
    • PostgREST와 HTMX의 결합: 한 사용자는 이전 프로젝트에서 PostgREST를 사용했으며, HTMX와 잘 어울린다고 평가함. 그러나 SQL 함수 내부에 HTMX 템플릿을 유지보수하는 것에 대한 우려를 표현함.
    • 유지보수 가능한 스택으로 발전시키기 위한 추가 도구: 한 사용자는 이 개념을 중대형 애플리케이션에 좋은 UX를 제공하는 유지보수 가능한 스택으로 발전시키기 위해 필요한 추가 도구에 대한 의견을 물음.