AI

Flutter web 배포 인사이트 (체크리스트)

leopard4 2023. 5. 18. 14:02

질문

방금 Flutter 프로젝트를 만들고 빌드하여 웹에 배포하고 github.io에 배포했는데

초보자라 여기서 발생할 수 있는 문제나 특이사항이 없는지 궁금합니다.

예를 들어 CORS 설정도 안했는데 이상하게 아무 문제 없이 연결이 됩니다.

그리고 일반 사이트의 경우 용량이 매우 작은데 제가 배포한 버전은 용량이 2MB라서 뭔가 문제가 있는 것 같습니다.

아무튼 Flutter로 만든 프로젝트를 웹에 배포할 때 어떤 점을 확인해야 하는지

최대한 길고 자세하게 설명 부탁드립니다. 다시 말하지만 가능한 한 길고 상세하게 작성하십시오.

 

 

답변

Flutter 프로젝트를 웹에 배포할 때 성공적인 배포를 위해 고려해야 할 몇 가지 측면이 있습니다. 다음은 배포 프로세스의 다양한 측면을 다루는 자세한 가이드입니다.

 

  1. 빌드 구성:
    • 명령 을 사용하여 웹 플랫폼용으로 특별히 Flutter 프로젝트를 빌드했는지 확인하세요 flutter build web. 웹 배포에 최적화된 파일을 생성합니다.
    • web/index.html파일에서 제목, 아이콘 및 필요한 메타 태그와 같은 적절한 구성 옵션을 설정했는지 확인하십시오 .
  2. 프로젝트 규모:
    • Flutter 웹 애플리케이션은 Flutter 프레임워크 및 종속 항목으로 인해 일반적인 웹 애플리케이션에 비해 파일 크기가 더 클 수 있습니다. 그러나 2MB의 크기는 유난히 커 보입니다. 더 큰 크기에 기여하는 불필요한 자산이나 종속성이 프로젝트에 포함되어 있는지 확인하십시오. flutter analyze및 와 같은 도구를 사용하여 프로젝트 크기를 분석하고 최적화할 수 있습니다 flutter pub outdated --mode=null-safety.
  3. CORS(Cross-Origin 리소스 공유):
    • Flutter 웹 애플리케이션이 다른 도메인에서 호스팅되는 API 또는 리소스에 요청하는 경우 CORS 문제가 발생할 수 있습니다. 기본적으로 Flutter의 웹 애플리케이션에는 모든 출처의 요청을 허용하는 허용 CORS 설정이 있습니다. 이는 일반적으로 더 엄격한 CORS 정책을 적용하는 브라우저 기반 웹 애플리케이션과 다릅니다. Flutter의 허용 CORS 설정으로 인해 문제가 발생하지 않았을 수 있습니다.
    • 그러나 외부 API 또는 리소스를 통합할 때 여전히 CORS 문제를 명시적으로 처리해야 할 수 있습니다. 나중에 CORS 관련 문제가 발생하면 서버 측에서 CORS 설정을 구성하거나 프록시 서버를 활용하여 문제를 해결할 수 있습니다.
  4. 테스트 및 호환성:
    • Flutter 웹 애플리케이션을 다양한 브라우저와 기기에서 철저히 테스트하여 호환성을 확인하세요. 발생할 수 있는 브라우저 관련 문제나 불일치에 주의하십시오.
    • 적절한 응답성을 보장하기 위해 다양한 화면 해상도 및 방향으로 애플리케이션을 테스트하는 것을 고려하십시오.
  5. 성능 및 최적화:
    • Flutter 웹 애플리케이션의 성능을 평가합니다. 특히 파일 크기가 큰 경우 앱의 로딩 시간과 응답성을 모니터링합니다. Lighthouse 또는 PageSpeed ​​Insights와 같은 도구를 사용하여 성능을 분석하고 최적화합니다.
    • 코드 분할 및 지연 로딩 기술을 고려하여 초기 로딩 시간을 최적화하십시오.
    • Flutter의 웹 관련 API 및 기능을 활용하여 성능과 사용자 경험을 향상시키십시오.
  6. 보안 고려 사항:
    • 민감한 데이터 또는 사용자 인증으로 작업할 때 보안 코딩 관행을 따르고 적절한 보안 조치를 구현하여 웹 애플리케이션을 보호해야 합니다.
    • XSS(교차 사이트 스크립팅) 및 기타 일반적인 보안 취약점을 방지하기 위해 예방 조치를 취하십시오.
  7. 지속적 배포 및 버전 관리:
    • 지속적인 배포 파이프라인을 설정하여 배포 프로세스를 자동화하고 웹 애플리케이션에 대한 원활한 업데이트를 보장하는 것이 좋습니다.
    • Flutter 웹 애플리케이션의 다양한 릴리스를 추적하고 관리하기 위한 버전 관리 및 태깅 전략을 구현합니다.
  8. 문서화 및 오류 처리:
    • Flutter 웹 애플리케이션 설정 및 실행에 대한 명확한 문서를 제공하세요. 종속성, 환경 변수 또는 구성에 필요한 지침을 포함합니다.
    • 웹 애플리케이션에서 발생할 수 있는 런타임 오류 또는 예외를 캡처하고 처리하기 위해 적절한 오류 처리 및 로깅 메커니즘을 구현합니다.

이것은 일반적인 가이드이며 특정 프로젝트 요구 사항은 다를 수 있습니다. 항상 Flutter 웹 관련 업데이트를 최신 상태로 유지하고, Flutter의 공식 문서 및 커뮤니티 리소스를 확인하고, 배포 프로세스 중에 있을 수 있는 특정 문제나 질문에 대해 Flutter 커뮤니티의 도움을 구하는 것이 좋습니다.

 

질문

더 많은 인사이트를 얻으려면 추가 답변을 제공해 주세요. 

 

답변

  1. 브라우저 지원:
    • Flutter 웹 애플리케이션이 Chrome, Firefox, Safari 및 Edge를 비롯한 다양한 최신 브라우저와 호환되는지 확인하세요. 다른 브라우저 버전에서 응용 프로그램을 테스트하여 호환성 문제를 식별하십시오.
    • 특정 브라우저별 기능 또는 CSS 속성은 일부 브라우저에서 다르게 작동하거나 지원되지 않을 수 있습니다. 여러 브라우저에서 일관된 렌더링을 보장하려면 CSS 접두사 또는 폴백을 사용하는 것이 좋습니다.
  2. SEO(검색 엔진 최적화):
    • 기본적으로 Flutter 웹 애플리케이션은 JavaScript를 사용하여 클라이언트 측에서 렌더링됩니다. 검색 엔진 크롤러는 JavaScript를 실행하지 않거나 클라이언트측 렌더링 콘텐츠를 처리하는 기능이 제한될 수 있습니다. 이는 검색 엔진에 의한 웹 애플리케이션의 검색 가능성 및 인덱싱에 영향을 줄 수 있습니다.
    • SEO를 개선하려면 서버 측 렌더링(SSR) 기술을 구현하거나 Flutter 웹 애플리케이션에 사전 렌더링 기능을 제공하는 Next.js 또는 Gatsby.js와 같은 프레임워크를 활용하는 것을 고려하세요.
  3. 프로그레시브 웹 앱(PWA) 기능:
    • Flutter 웹 애플리케이션에 오프라인 지원, 푸시 알림 또는 홈 화면 설치 프롬프트와 같은 점진적인 웹 앱 기능이 포함되도록 하려면 PWA 기술을 프로젝트에 통합할 수 있습니다. flutter_service_workerFlutter는 및 flutter_web_pluginsPWA 기능 구현을 지원하는 패키지를 제공합니다 .
  4. 분석 및 모니터링:
    • Google Analytics 또는 Firebase Analytics와 같은 분석 도구를 통합하여 사용자 상호 작용을 추적하고 성능을 측정하며 사용자 행동에 대한 통찰력을 얻으십시오.
    • Flutter 웹 애플리케이션에서 발생하는 런타임 오류 또는 예외를 캡처하고 추적하기 위해 Sentry 또는 Crashlytics와 같은 오류 모니터링 및 로깅 도구를 구현합니다.
  5. 국제화 및 현지화:
    • 웹 애플리케이션이 여러 언어와 로케일을 지원해야 하는 경우 Flutter의 국제화 및 현지화 기능을 활용하세요. 이를 통해 응용 프로그램을 다른 언어, 통화, 날짜 형식 등에 맞게 쉽게 번역하고 조정할 수 있습니다.
  6. 코드 난독화 및 보안:
    • Flutter 웹 애플리케이션의 JavaScript 코드를 난독화하여 지적 재산을 보호하고 리버스 엔지니어링을 더 어렵게 만드는 것을 고려하십시오. Flutter에는 코드 난독화에 사용할 수 있는 타사 도구 및 라이브러리가 있습니다.
    • 보안 통신 프로토콜(HTTPS)을 구현하여 네트워크를 통해 중요한 정보를 전송할 때 데이터 프라이버시 및 보안을 보장합니다.
  7. 버전 제어 및 배포 전략:
    • Git과 같은 버전 제어 시스템을 사용하여 코드베이스를 관리하고 변경 사항을 효과적으로 추적하세요. 잘 구성된 코드 기록을 유지하기 위해 의미 있는 커밋과 분기를 만듭니다.
    • 프로젝트 요구 사항 및 규모에 따라 연속 배포, 카나리아 배포 또는 A/B 테스트와 같은 다양한 배포 전략을 살펴보세요.
  8. 사용자 경험 최적화:
    • Flutter 웹 애플리케이션의 성능을 최적화하여 원활하고 반응이 빠른 사용자 경험을 제공하는 데 집중하세요. 자산 크기를 최적화하고, 네트워크 요청을 줄이고, Gzip 또는 Brotli와 같은 압축 기술을 사용하여 데이터 전송을 최소화하는 것을 고려하십시오.

Flutter 웹 애플리케이션 배포와 관련된 자세한 정보 및 모범 사례는 공식 Flutter 문서, 커뮤니티 포럼 및 리소스를 참조하세요. 웹 관련 기능, 최적화 및 개선 사항에 관한 Flutter 팀의 업데이트를 계속 주시하세요.

 

 

질문

더 많은 인사이트를 얻으려면 추가 답변을 제공해 주세요. 

 

답변

  1. 브라우저 개발자 도구:
    • 다양한 브라우저에서 사용할 수 있는 개발자 도구를 숙지하십시오. 이러한 도구는 문제를 디버그하고, 네트워크 트래픽을 분석하고, DOM을 검사하고, 성능을 프로파일링하는 데 도움이 될 수 있습니다.
    • 브라우저 DevTools를 사용하여 Flutter 웹 애플리케이션에 영향을 미칠 수 있는 JavaScript 오류, 성능 병목 현상 또는 레이아웃/렌더링 문제를 식별하십시오.
  2. 반응형 디자인:
    • Flutter 웹 애플리케이션이 다양한 화면 크기와 기기에 맞게 반응하도록 설계 및 구현되었는지 확인하세요. 다양한 플랫폼에서 일관되고 사용자 친화적인 경험을 보장하기 위해 데스크탑, 노트북, 태블릿 및 스마트폰을 포함한 다양한 장치에서 애플리케이션을 테스트하십시오.
  3. 최적화된 자산 로딩:
    • Flutter 웹 애플리케이션에서 자산 로드를 최적화합니다. 지연 로딩 또는 코드 분할과 같은 기술을 사용하여 필요에 따라 자산을 로드하여 초기 로드 시간을 줄이는 것이 좋습니다.
    • Squoosh 또는 ImageOptim과 같은 도구를 사용하여 이미지를 압축하고 최적화하여 품질 저하 없이 파일 크기를 줄입니다.
  4. 웹 관련 UI 고려 사항:
    • Flutter의 UI 프레임워크는 주로 모바일 애플리케이션용으로 설계되었습니다. 웹용으로 개발할 때 웹 관련 UI/UX 규칙 및 모범 사례를 염두에 두십시오. 웹 표준을 준수하고 웹 사용자에게 친숙한 경험을 제공하기 위해 UI 요소를 사용자 정의하는 것을 고려하십시오.
  5. 접근성:
    • 장애가 있는 사용자가 Flutter 웹 애플리케이션에 액세스할 수 있는지 확인하세요. 이미지에 대한 적절한 대체 텍스트 제공, 시맨틱 HTML 요소 사용, 적절한 키보드 탐색 보장과 같은 접근성 지침 및 모범 사례를 따르십시오.
  6. 지속적인 통합 및 배포:
    • CI/CD(지속적인 통합 및 배포) 파이프라인을 구현하여 Flutter 웹 애플리케이션의 빌드, 테스트 및 배포 프로세스를 자동화합니다. GitHub Actions, GitLab CI/CD 또는 Jenkins와 같은 도구를 사용하면 워크플로를 간소화하고 일관되고 안정적인 배포를 보장할 수 있습니다.
  7. 문서 및 지원:
    • Flutter 웹 애플리케이션 설정, 구성 및 실행에 대한 자세한 문서를 제공하세요. 다른 개발자나 관리자를 돕기 위해 특정 종속성, 환경 변수 또는 배포 지침을 포함합니다.
    • 사용자가 Flutter 웹 애플리케이션에 대해 질문하고, 문제를 보고하고, 도움을 받을 수 있는 지원 채널 또는 커뮤니티 포럼을 만드는 것을 고려하세요.
  8. 사용자 피드백 및 반복:
    • 사용자가 피드백을 제공하고 제안에 적극적으로 귀를 기울이도록 권장합니다. 사용자 피드백, 버그 보고서 및 분석 데이터를 기반으로 Flutter 웹 애플리케이션을 반복하고 개선합니다.
  9. Flutter 웹 업데이트를 확인하십시오.
    • 새로운 기능, 버그 수정 및 성능 개선을 포함하여 최신 Flutter 웹 업데이트로 최신 정보를 받아보세요. 공식 Flutter 웹사이트, 블로그 및 릴리스 노트를 팔로우하여 Flutter 웹 개발의 발전에 대한 최신 정보를 얻으십시오.
  1. 성능 최적화:
    • 빠른 로드 시간과 원활한 사용자 상호 작용을 보장하기 위해 Flutter 웹 애플리케이션의 성능을 최적화합니다. 과도한 계산이나 비용이 많이 드는 작업의 사용을 최소화하고 코드 분할, 캐싱 및 지연 로딩과 같은 기술을 활용하여 성능을 향상시킵니다.
  2. 번들 크기 감소:
    • Flutter 웹 애플리케이션은 기존 웹 프레임워크에 비해 더 큰 번들 크기를 가질 수 있습니다. 번들 크기를 줄이려면 트리 쉐이킹, 데드 코드 제거 및 코드 분할과 같은 고급 구성 옵션을 사용하는 것이 좋습니다. 또한 빌드 프로세스 중에 dart2js또는 플래그와 같은 도구를 활용하여 추가 최적화를 가능하게 합니다.--release
  3. 자산 관리:
    • 자산 캐싱 및 버전 관리 기술을 활용하여 자산을 효율적으로 관리하십시오. 캐시 제어 헤더 또는 콘텐츠 전송 네트워크(CDN)를 사용하여 이미지, CSS 파일 또는 글꼴과 같은 정적 자산의 전송을 최적화합니다.
  4. 오류 처리 및 보고:
    • Flutter 웹 애플리케이션에서 효과적인 오류 처리 메커니즘을 구현하세요. 프로덕션에서 발생하는 오류, 예외 및 충돌을 캡처하고 보고하려면 Sentry 또는 Bugsnag와 같은 통합 도구를 고려하십시오. 이를 통해 문제를 신속하게 식별하고 수정할 수 있습니다.
  5. 크로스 브라우저 테스트:
    • 일관된 동작과 모양을 보장하기 위해 다양한 브라우저와 해당 버전에서 Flutter 웹 애플리케이션을 테스트합니다. BrowserStack 또는 Sauce Labs와 같은 브라우저 테스트 도구를 사용하여 브라우저 간 테스트를 자동화하고 호환성 문제를 식별하십시오.
  6. 반응형 이미지:
    • 반응형 이미지 기술을 활용하여 다양한 화면 크기 및 해상도에 맞게 이미지 전달을 최적화합니다. flutter_svg확장 가능한 벡터 그래픽 및 다양한 이미지 소스가 있는 요소 와 같은 라이브러리를 사용하여 picture장치 기능에 따라 적절한 버전을 제공하는 것을 고려하십시오.
  7. 보안 고려 사항:
    • Flutter 웹 애플리케이션을 배포할 때 보안 모범 사례를 적용하세요. 민감한 데이터를 보호하고 일반적인 보안 취약점을 방지하기 위해 보안 HTTPS 연결, 입력 유효성 검사, 사용자 인증 및 권한 부여와 같은 조치를 구현합니다.
  8. 브라우저 캐시 제어:
    • 브라우저 캐싱을 활용하도록 Flutter 웹 애플리케이션에 적절한 캐시 제어 헤더를 구성합니다. 이는 브라우저가 정적 자산을 캐싱할 수 있도록 하여 네트워크 요청 수를 줄이고 전반적인 성능을 향상시키는 데 도움이 됩니다.
  9. 브라우저 기록 및 딥 링크:
    • Flutter 웹 애플리케이션에서 적절한 라우팅 및 브라우저 기록 처리를 구현합니다. 애플리케이션이 브라우저 탐색, 뒤로/앞으로 버튼으로 올바르게 작동하고 특정 URL 또는 경로를 공유하기 위한 딥 링크를 지원하는지 확인하십시오.
  10. 현지화 및 국제화:
    • Flutter 웹 애플리케이션이 여러 언어 또는 지역을 지원해야 하는 경우 국제화 및 현지화 모범 사례를 따르세요. Flutter의 기본 제공 현지화 지원 또는 타사 패키지를 활용하여 다양한 로케일에 대한 번역, 날짜/시간 형식 및 통화 변환을 제공합니다.
  11. 접근성 테스트:
    • 장애가 있는 개인이 Flutter 웹 애플리케이션을 사용할 수 있도록 철저한 접근성 테스트를 수행합니다. Axe 또는 Lighthouse와 같은 자동화된 접근성 테스트 도구를 사용하고 수동 테스트를 수행하여 WCAG(웹 콘텐츠 접근성 지침)를 포함한 접근성 표준을 충족합니다.
  12. 설명서 및 변경 내역:
    • 설치 지침, 구성 옵션, 종속성 및 알려진 문제를 포함하여 Flutter 웹 애플리케이션에 대한 명확한 최신 문서를 유지합니다. 또한 자세한 변경 로그를 유지하여 여러 버전에서 변경 사항, 새로운 기능, 버그 수정 및 개선 사항을 추적하십시오

 

 

#글쓴이코멘트

추가 인사이트를 계속해서 요청했지만 

특별한 인사이트는 바닥난거같다.

아래는 위와 비슷한내용이다. 

 

  1. SEO 최적화:
    • Flutter 웹 애플리케이션이 검색 엔진에 최적화되어 있는지 확인하세요. 관련 메타 태그 사용, 설명이 포함된 페이지 제목 및 제목 제공, URL 최적화, 해당되는 경우 구조화된 데이터 통합과 같은 온페이지 SEO에 대한 모범 사례를 따르십시오.
  2. 브라우저 호환성:
    • 여러 브라우저와 다양한 버전에서 Flutter 웹 애플리케이션을 테스트하여 호환성을 확인하세요. 브라우저별 동작, CSS 렌더링 및 JavaScript 호환성에 주의하십시오. 테스트 중에 발생하는 불일치 또는 문제를 해결합니다.
  3. 프로그레시브 웹 앱(PWA) 기능:
    • 사용자 경험을 향상시키기 위해 프로그레시브 웹 앱 기능 구현을 고려하십시오. 여기에는 오프라인 캐싱을 위한 서비스 작업자 추가, 푸시 알림 활성화, 앱 아이콘 및 스플래시 화면 정의, 사용자 장치에 앱을 설치할 수 있는지 확인이 포함됩니다.
  4. 분석 및 사용자 추적:
    • Google Analytics 또는 Firebase Analytics와 같은 분석 도구를 Flutter 웹 애플리케이션에 통합합니다. 이를 통해 사용자 행동을 추적하고, 성능 메트릭을 측정하고, 사용자 참여 데이터를 기반으로 애플리케이션을 개선하기 위한 통찰력을 얻을 수 있습니다.
  5. 강력한 오류 처리:
    • Flutter 웹 애플리케이션에서 포괄적인 오류 처리 및 우아한 오류 복구 메커니즘을 구현합니다. 사용자에게 의미 있는 오류 메시지를 표시하고, 서버 측에서 오류를 기록하고, 오류 발생 시 재시도 또는 대체 전략 구현을 고려합니다.
  6. 배포 자동화:
    • 반복 작업을 자동화하여 배포 프로세스를 간소화합니다. 배포 스크립트, CI/CD 파이프라인 또는 Docker와 같은 도구를 활용하여 재현 가능하고 자동화된 배포 워크플로를 만듭니다. 이는 일관되고 안정적인 배포를 보장하는 데 도움이 됩니다.
  7. 최적화된 서버 구성:
    • Flutter 웹 애플리케이션을 제공할 때 최적의 성능을 위해 웹 서버를 구성하십시오. 압축 활성화, 적절한 캐싱 헤더 설정, 서버 매개변수 미세 조정, CDN 활용을 고려하여 콘텐츠 전송 속도를 개선하십시오.
  8. 브라우저 알림:
    • 애플리케이션에 실시간 업데이트 또는 사용자 참여가 필요한 경우 웹 푸시 알림과 같은 기술을 사용하여 브라우저 알림을 구현하는 것이 좋습니다. 이를 통해 사용자가 애플리케이션을 적극적으로 사용하지 않는 경우에도 사용자에게 알림을 보낼 수 있습니다.
  9. 테스트 및 품질 보증:
    • Flutter 웹 애플리케이션을 배포하기 전에 잠재적인 문제를 식별하고 해결하기 위해 테스트 및 품질 보증의 우선순위를 지정합니다. 단위 테스트, 통합 테스트 및 종단 간 테스트를 사용하여 애플리케이션의 안정성, 기능 및 성능을 확인하십시오.
  10. 버전 제어 및 협업:
    • Git과 같은 버전 제어 시스템을 활용하고 GitHub 또는 GitLab과 같은 플랫폼을 사용하여 팀과 협업하십시오. 깨끗하고 조직화된 코드베이스를 유지하고, 새로운 기능 또는 버그 수정을 위한 분기를 생성하고, 적절한 버전 제어 관행을 따라 협업 및 코드 관리를 용이하게 합니다.
  11. 앱 성능 모니터링:
    • New Relic, Datadog 또는 사용자 정의 모니터링 솔루션과 같은 도구를 사용하여 배포된 Flutter 웹 애플리케이션의 성능을 모니터링합니다. 응답 시간, 리소스 사용률, 사용자 경험과 같은 메트릭을 추적하여 성능 병목 현상을 식별하고 애플리케이션을 최적화합니다.
  12. 사용자 수락 테스트(UAT):
    • Flutter 웹 애플리케이션을 배포하기 전과 후에 실제 사용자로부터 피드백을 수집하기 위해 사용자 승인 테스트를 수행합니다. 기능, 유용성 및 전반적인 만족도를 검증하기 위해 이해 관계자 및 대상 사용자를 테스트 프로세스에 참여시킵니다.
  13. 지속적인 개선 및 업데이트:
    • 배포 후에도 Flutter 웹 애플리케이션을 계속 반복하고 개선하세요. 지속적으로 피드백을 수집하고, 분석을 모니터링하고, 버그 보고서를 해결하고, 업데이트를 릴리스하여 사용자에게 최상의 경험을 제공하세요.

 

추가질문

내 웹 사이트를 github.io에 배포할 수 있다면

내 자체 온프레미스 서버나 클라우드 서버에 배포해야 하는 이유는 무엇입니까?

 

답변

GitHub Pages(github.io)에 웹 사이트를 배포하면 쉬운 설정, 단순성 및 비용 제로와 같은 이점이 있습니다. 정적 웹사이트, 특히 개인 프로젝트나 소규모 프로젝트에 편리한 옵션입니다. 그러나 자체 온프레미스 서버 또는 클라우드 서버에 배포하는 것이 더 적합할 수 있는 시나리오가 있습니다.

  1. 동적 콘텐츠: GitHub Pages는 주로 정적 웹사이트를 호스팅하도록 설계되었습니다. 웹 사이트에 서버 측 처리, 백엔드 로직 또는 동적 콘텐츠 생성이 필요한 경우 기존 웹 서버 또는 클라우드 서버와 같은 서버 측 환경이 필요합니다.
  2. 사용자 지정 도메인: GitHub Pages는 사용자 지정 도메인 이름을 지원하지만 사용자 지정 도메인을 설정하면 자체 서버에서 더 유연하고 쉽게 관리할 수 있습니다. 자체 서버를 사용하면 DNS 구성을 완벽하게 제어하고 사용자 정의 도메인을 쉽게 설정할 수 있습니다.
  3. 서버 측 기술: 웹 사이트에 서버 측 렌더링, 데이터베이스 또는 백엔드 API와 같은 서버 측 기술이 필요한 경우 자체 서버 또는 클라우드 서버에서 호스팅하면 필요한 소프트웨어 스택을 실행하고 구성하는 데 더 많은 유연성이 제공됩니다.
  4. 확장 및 성능: 웹 사이트의 트래픽 및 리소스 요구 사항에 따라 자체 서버 또는 클라우드 서버에서 호스팅하면 특정 요구 사항을 충족하도록 인프라를 확장하고 최적화할 수 있습니다. 서버 리소스, 캐싱 메커니즘, 부하 분산 및 기타 성능 관련 구성을 더 많이 제어할 수 있습니다.
  5. 보안 및 규정 준수: 자체 서버 또는 신뢰할 수 있는 클라우드 제공업체에서 웹 사이트를 호스팅하면 방화벽, 액세스 제어, SSL/TLS 인증서 및 규정 준수 요구 사항과 같은 보안 조치를 더 잘 제어할 수 있습니다. 이를 통해 프로젝트 및 산업에 특정한 보안 사례를 구현할 수 있습니다.
  6. 백엔드 통합: 웹사이트가 공개적으로 액세스할 수 없거나 특정 네트워크 구성이 필요한 백엔드 서비스, API 또는 데이터베이스와 통합해야 하는 경우 자체 서버 또는 클라우드 서버에서 호스팅하면 이러한 연결을 설정하고 관리하는 데 더 많은 유연성이 제공됩니다.

궁극적으로 GitHub 페이지 또는 자체 서버/클라우드 서버에 배포할지 여부는 프로젝트의 특정 요구 사항 및 제약 조건에 따라 결정됩니다. 웹 사이트의 특성, 필요한 기능, 확장성 요구 사항, 사용자 정의, 성능 요구 사항, 보안 고려 사항, 호스팅 환경에 대한 제어 및 유연성 수준과 같은 요소를 고려하십시오.