만들어진 Markdown Editor가 그리 만족스럽게 보이지는 않지만 그런대로 동작은 합니다. highlight.js에 대해 알아본 것은 Markdown Editor에서 ‘</>’를 적용하였을 때 코드 구문이 하이라이트(강조)해서 보여주기를 원했기 때문입니다. 그러나 우리가 만든 Markdown Editor는 '</>'에서 코드 구분 highlight 기능이 정상 동작하지 않습니다. 그리고 Markdown Editor에서 Image 기능을 실행하면 이미지의 URL을 입력하라고 합니다. 실제 사용에서는 보통 이미지를 로컬 컴퓨터에서 선택하여 사용하는 경우가 많습니다. 그래서 Image 기능을 실행할 때 컴퓨터에서 이미지를 선택하면 이것을 클라우드에 업로드하고, 업로드한 이미지의 URL을 추가하도록 기능을 개선하고자 합니다. 이를 위하여 클라우드에 이미지 저장 공간과 업로드한 이미지를 정보를 저장할 수 있는 데이터베이스 그리고 이미지 업로드 기능이 필요합니다.
이미지 업로드 기능을 만들기 위하여 웹서버를 개발한다는 것도 크게 부담이 됩니다. 서버리스로 개발을 진행합니다.
4. ChatGPT에게 물었습니다.
서버리스란?
What is serverless?
Serverless is a cloud computing model that abstracts the complexity of server management and infrastructure provisioning from developers, allowing them to focus solely on writing and deploying code. Despite the name "serverless," there are still servers involved, but they are managed by the cloud provider rather than the developer.
Key characteristics of serverless computing include:
1. No Server Management: Developers do not need to provision, scale, or manage any servers. The cloud provider handles all these tasks.
2. Automatic Scaling: Serverless applications automatically scale up or down based on demand. If the number of requests increases, the cloud provider automatically allocates more resources. When demand decreases, resources are scaled back down.
3. Event-Driven Execution: Serverless functions are often triggered by events such as HTTP requests, database changes, file uploads, or other types of events. This makes it well-suited for applications with sporadic workloads.
4. Pay-as-You-Go Pricing: With serverless, you only pay for the compute resources you use. Billing is typically based on the number of executions and the duration of each execution, rather than on pre-allocated resources.
5. Microservices Architecture: Serverless encourages a microservices approach, where applications are decomposed into smaller, loosely coupled functions that perform individual tasks.
Popular serverless platforms include:
- AWS Lambda: Amazon's serverless computing service, which allows users to run code without provisioning or managing servers.
- Azure Functions: Microsoft's serverless platform that enables developers to build event-driven applications.
- Google Cloud Functions: Google's solution for running code in response to events without the need for server management.
- IBM Cloud Functions: Based on Apache OpenWhisk, this platform supports serverless computing on IBM Cloud.
Serverless computing can significantly reduce the operational overhead and cost for developers, enabling faster development cycles and more agile application deployment. However, it also introduces some challenges, such as cold start latency, vendor lock-in, and the need to adapt to stateless function execution.
서버리스는 개발자의 서버 관리 및 인프라 프로비저닝의 복잡성을 추상화하여 개발자가 코드 작성 및 배포에만 집중할 수 있도록 하는 클라우드 컴퓨팅 모델입니다. "서버리스"라는 이름에도 불구하고 여전히 서버가 관련되어 있지만 개발자가 아닌 클라우드 공급자가 관리합니다.
서버리스 컴퓨팅의 주요 특징은 다음과 같습니다.
1. 서버 관리 없음: 개발자는 서버를 프로비저닝, 확장 또는 관리할 필요가 없습니다. 클라우드 공급자는 이러한 모든 작업을 처리합니다.
2. 자동 확장: 서버리스 애플리케이션은 수요에 따라 자동으로 확장 또는 축소됩니다. 요청 수가 증가하면 클라우드 공급자는 자동으로 더 많은 리소스를 할당합니다. 수요가 감소하면 리소스가 다시 축소됩니다.
3. 이벤트 기반 실행: 서버리스 기능은 HTTP 요청, 데이터베이스 변경, 파일 업로드 또는 기타 유형의 이벤트와 같은 이벤트에 의해 트리거되는 경우가 많습니다. 따라서 산발적인 작업 부하가 있는 애플리케이션에 적합합니다.
4. 종량제 가격: 서버리스를 사용하면 사용한 컴퓨팅 리소스에 대해서만 비용을 지불하면 됩니다. 요금은 일반적으로 사전 할당된 리소스가 아닌 실행 횟수와 각 실행 기간을 기준으로 이루어집니다.
5. 마이크로서비스 아키텍처: 서버리스는 애플리케이션이 개별 작업을 수행하는 더 작고 느슨하게 결합된 기능으로 분해되는 마이크로서비스 접근 방식을 권장합니다.
널리 사용되는 서버리스 플랫폼은 다음과 같습니다.
- AWS Lambda: Amazon의 서버리스 컴퓨팅 서비스로, 사용자가 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있습니다.
- Azure Functions: 개발자가 이벤트 기반 애플리케이션을 구축할 수 있게 해주는 Microsoft의 서버리스 플랫폼입니다.
- Google Cloud Functions: 서버 관리 없이 이벤트에 대한 응답으로 코드를 실행하기 위한 Google의 솔루션입니다.
- IBM Cloud Functions: Apache OpenWhisk를 기반으로 하는 이 플랫폼은 IBM Cloud에서 서버리스 컴퓨팅을 지원합니다.
서버리스 컴퓨팅은 개발자의 운영 오버헤드와 비용을 크게 줄여 개발 주기를 단축하고 보다 민첩한 애플리케이션 배포를 가능하게 합니다. 그러나 콜드 스타트 대기 시간, 공급업체 종속, 상태 비저장 함수 실행에 적응해야 하는 필요성 등 몇 가지 문제도 발생합니다.
우리는 ‘Google Cloud Functions’ 서비스를 지원하는 Firebase를 사용하고자 합니다.
2. ChatGPT에게 물었습니다.
Firebase를 설명해줘.
Please explain firebase.
Firebase is a platform developed by Google for building mobile and web applications. It provides a suite of cloud-based services that help developers build high-quality apps quickly without managing the underlying infrastructure. Firebase offers a wide range of tools and services that cover various aspects of app development, including backend services, analytics, app quality, and user engagement.
Key components and features of Firebase include:
1. Firebase Authentication: A comprehensive authentication system that supports various authentication methods, including email and password, phone authentication, and third-party providers like Google, Facebook, and Twitter.
2. Cloud Firestore: A flexible, scalable database for mobile, web, and server development. It provides real-time data synchronization and supports offline access to data.
3. Realtime Database: A cloud-hosted NoSQL database that enables real-time data syncing between users and devices. It's ideal for applications that require live updates, such as chat apps.
4. Cloud Storage: A service for storing user-generated content such as photos, videos, and other files. It is designed to help you quickly and easily upload and download files with robust security features.
5. Firebase Hosting: A fast and secure web hosting service for static and dynamic content. It provides a global content delivery network (CDN) and is integrated with the Firebase suite for seamless deployment.
6. Cloud Functions: A serverless framework that allows you to run backend code in response to events triggered by Firebase features and HTTPS requests. This enables you to extend Firebase features without managing servers.
7. Firebase Analytics: A free app measurement solution that provides insights on app usage and user engagement. It integrates with other Firebase services to enhance app performance and user experience.
8. Firebase Crashlytics: A powerful, real-time crash reporting tool that helps you track, prioritize, and fix stability issues, ensuring a smooth user experience.
9. Firebase Performance Monitoring: A service that helps you gain insight into your app’s performance from your users' point of view, identifying and resolving performance issues.
10. Firebase Remote Config: Allows you to dynamically change the behavior and appearance of your app without requiring users to download an update. This can be useful for A/B testing and feature toggling.
11. Firebase Cloud Messaging (FCM): A cross-platform messaging solution that allows you to send notifications and messages to users on Android, iOS, and the web.
12. Firebase Dynamic Links: Smart URLs that can dynamically change their behavior to provide the best experience across different platforms. They can be used for deep linking and to drive growth and user engagement.
Firebase's integrated platform helps streamline development workflows by providing essential services in one place, which can significantly speed up development time and reduce operational overhead. It is particularly popular among mobile developers and startups for its ease of use and the wide range of features it offers.
Firebase는 Google이 모바일 및 웹 애플리케이션 구축을 위해 개발한 플랫폼입니다. 개발자가 기본 인프라를 관리하지 않고도 고품질 앱을 빠르게 구축할 수 있도록 돕는 클라우드 기반 서비스 제품군을 제공합니다. Firebase는 백엔드 서비스, 분석, 앱 품질, 사용자 참여 등 앱 개발의 다양한 측면을 다루는 광범위한 도구와 서비스를 제공합니다.
Firebase의 주요 구성요소 및 기능은 다음과 같습니다.
1. Firebase Authentication: 이메일 및 비밀번호, 전화 인증, Google, Facebook, Twitter와 같은 타사 제공업체 등 다양한 인증 방법을 지원하는 종합 인증 시스템입니다.
2. Cloud Firestore: 모바일, 웹, 서버 개발을 위한 유연하고 확장 가능한 데이터베이스입니다. 실시간 데이터 동기화를 제공하고 데이터에 대한 오프라인 액세스를 지원합니다.
3. Realtime Database: 사용자와 장치 간의 실시간 데이터 동기화를 가능하게 하는 클라우드 호스팅 NoSQL 데이터베이스입니다. 채팅 앱과 같이 실시간 업데이트가 필요한 애플리케이션에 이상적입니다.
4. Cloud Storage: 사진, 동영상, 기타 파일 등 사용자가 생성한 콘텐츠를 저장하는 서비스입니다. 강력한 보안 기능을 통해 파일을 빠르고 쉽게 업로드하고 다운로드할 수 있도록 설계되었습니다.
5. Firebase Hosting: 정적 및 동적 콘텐츠를 위한 빠르고 안전한 웹 호스팅 서비스입니다. 글로벌 콘텐츠 전송 네트워크(CDN)를 제공하며 원활한 배포를 위해 Firebase 제품군과 통합됩니다.
6. Cloud Functions: Firebase 기능 및 HTTPS 요청에 의해 트리거된 이벤트에 대한 응답으로 백엔드 코드를 실행할 수 있는 서버리스 프레임워크입니다. 이를 통해 서버를 관리하지 않고도 Firebase 기능을 확장할 수 있습니다.
7. Firebase Analytics: 앱 사용 및 사용자 참여에 대한 통찰력을 제공하는 무료 앱 측정 솔루션입니다. 다른 Firebase 서비스와 통합되어 앱 성능과 사용자 경험을 향상합니다.
8. Firebase Crashlytics: 안정성 문제를 추적하고 우선순위를 지정하고 수정하여 원활한 사용자 경험을 보장하는 강력한 실시간 충돌 보고 도구입니다.
9. Firebase Performance Monitoring: 사용자의 관점에서 앱 성능에 대한 통찰력을 얻고 성능 문제를 식별 및 해결하는 데 도움이 되는 서비스입니다.
10. Firebase Remote Config: 사용자가 업데이트를 다운로드하지 않고도 앱의 동작과 모양을 동적으로 변경할 수 있습니다. 이는 A/B 테스트 및 기능 전환에 유용할 수 있습니다.
11. Firebase Cloud Messaging (FCM): Android, iOS 및 웹 사용자에게 알림과 메시지를 보낼 수 있는 크로스 플랫폼 메시징 솔루션입니다.
12. Firebase Dynamic Links: 동작을 동적으로 변경하여 다양한 플랫폼에서 최상의 경험을 제공할 수 있는 스마트 URL입니다. 이는 딥 링크에 사용되어 성장과 사용자 참여를 촉진할 수 있습니다.
Firebase의 통합 플랫폼은 필수 서비스를 한곳에서 제공하여 개발 워크플로를 간소화하는 데 도움을 주며, 이를 통해 개발 시간을 크게 단축하고 운영 오버헤드를 줄일 수 있습니다. 특히 사용 편의성과 다양한 기능으로 인해 모바일 개발자와 스타트업 사이에서 인기가 높습니다.
'PWA' 카테고리의 다른 글
ChatGPT에게 물었습니다. Storage에 Image Upload (0) | 2024.07.11 |
---|---|
ChatGPT에게 물었습니다. Firebase (0) | 2024.07.10 |
ChatGPT에게 물었습니다. Code Highlight (0) | 2024.07.09 |
ChatGPT에게 물었습니다. Markdown Editor 개발 (0) | 2024.07.09 |
ChatGPT에게 물었습니다. Markdown Editor (0) | 2024.07.02 |