목록전체 글 (1524)
오늘도 공부
커서 룰 추가방법https://docs.cursor.com/context/rules-for-aiYou are a senior Dart programmer with experience in the Flutter framework and a preference for clean programming and design patterns.Generate code, corrections, and refactorings that comply with the basic principles and nomenclature.## Dart General Guidelines### Basic Principles- Use English for all code and documentation.- Always declare the ..
원본 출처https://substack.com/home/post/p-157251513아래는 번역 해놓은 내용입니다. 인스타그램의 초기 인프라 과제인스타그램이 2010년에 처음 출시되었을 당시에는 엔지니어링 리소스가 제한적인 작은 회사였습니다.하지만 시간이 지나면서 Instagram은 세계에서 가장 널리 사용되는 소셜 미디어 플랫폼 중 하나로 성장했습니다. 사용자 참여의 급속한 증가는 인프라에 엄청난 부담을 주었고, 지속적인 최적화와 확장 노력이 필요했습니다.Instagram의 규모를 강조하는 몇 가지 주요 지표(2017~2018년)는 다음과 같습니다.매일 여러 번 인스타그램을 열고 수십억 건의 상호작용을 생성하는 일일 활성 사용자는 4억 명입니다.하루에 1억 개의 미디어 업로드. 모든 미디어 파일은 다양..
처음 NestJS 실행시 뷰파일 수정을 해도 새로고침을 해도 변경이 안되는 경우가 대부분일겁니다.그럴때 사용하는 방법입니다.NestJS에서 hbs(Handlebars) 뷰 파일을 변경할 때 자동으로 반영(핫리로딩) 되도록 설정하는 방법을 설명하겠습니다.✅ 1. nodemon을 이용한 핫리로딩 설정NestJS에서는 nodemon을 사용하여 핫리로딩을 설정할 수 있습니다. 하지만 기본적으로 hbs 파일 변경을 감지하지 않으므로, 이를 직접 설정해야 합니다.🔹 1) nodemon 설치npm install --save-dev nodemon🔹 2) nodemon.json 설정 추가프로젝트 루트에 nodemon.json 파일을 생성하고 다음과 같이 설정합니다.{ "watch": ["src", "views"],..
Android 13 이상에서는 보안 강화로 인해 BOOT_COMPLETED 등의 브로드캐스트를 받으려면 추가적인 설정이 필요합니다. 다음과 같은 방법을 시도해보세요.1. 권한 선언 (AndroidManifest.xml)먼저, AndroidManifest.xml에 RECEIVE_BOOT_COMPLETED 권한을 선언해야 합니다.2. BroadcastReceiver 등록BOOT_COMPLETED 이벤트를 수신할 BroadcastReceiver를 등록합니다. ⚠ Android 12 이상에서는 android:exported="true"를 사용하면 보안상 문제가 될 수 있으므로 false로 설정해야 합니다.3. BootReceiver 클래스 구현BroadcastReceiver를 구현하여..
Nginx에서 sites-available에 설정 파일을 추가하고 sites-enabled에 심볼릭 링크를 거는 방법을 단계별로 설명할게.1️⃣ 설정 파일 생성하기먼저, /etc/nginx/sites-available/에 새로운 설정 파일을 만든다.sudo nano /etc/nginx/sites-available/myapp아래 내용을 추가하고 저장 (CTRL + X → Y → Enter):server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-I..
Flutter에서 MVVM 아키텍처를 기반으로 Riverpod과 Freezed를 활용하는 폴더 구조를 추천해 드리겠습니다.📂 Flutter MVVM + Riverpod + Freezed 아키텍처 폴더 구조lib/│── main.dart # 앱 진입점│── app.dart # 앱 전체 구성 (MaterialApp)│├── core/ # 공통 유틸 및 설정│ ├── config/ # 앱 환경설정 (API, 라우트, 상수 등)│ │ ├── environment.dart # 개발/운영 환경 구분│ │ ├── app_routes.dart..
Node.js로 인앱 결제 구독 검증하는 방법Google Play 및 App Store의 구독 결제를 검증하려면 서버에서 영수증을 확인하는 API를 호출해야 해.이를 Node.js 기반으로 구현하는 방법을 단계별로 설명할게.---1. 검증이 필요한 이유보안 강화: 클라이언트에서 결제 정보를 조작할 가능성을 방지자동 갱신 확인: 구독이 유지되는지 검증하여 액세스 관리환불 및 취소 확인: 유저가 환불받았는지 체크 가능---2. Google Play 구독 검증Google의 Google Play Developer API를 사용하여 구독 상태를 검증해야 해.(1) Google API 활성화1. Google Cloud Console에서 프로젝트 생성2. Google Play Android Developer API ..
Flutter 인앱 결제 구독 복원(restore) 기능 구현앱을 삭제하고 다시 설치했을 때 구독 상태를 복원하는 방법을 자세히 설명할게.---1. 구독 복원 원리iOS: 사용자는 이미 구독한 상품을 다시 구매할 수 없고, restorePurchases()를 호출하면 기존 구독 정보를 가져올 수 있음.Android: 자동으로 복원되지 않으므로, queryPastPurchases()를 호출하여 과거 구매 내역을 가져와야 함.---2. 구독 복원 코드 구현(1) 과거 구매 내역 조회 (구독 복원)Flutter에서 구독 상태를 확인하려면 queryPastPurchases()를 사용해야 해.Future restorePurchases() async { final QueryPurchaseDetailsRespons..
Flutter에서 인앱 결제 구독(IAP, In-App Purchase)을 구현하는 방법을 단계별로 설명해 줄게.---1. 패키지 설치Flutter에서 인앱 결제를 구현하려면 in_app_purchase 패키지를 사용해야 해.dependencies: flutter: sdk: flutter in_app_purchase: ^3.1.10설치 후 패키지 가져오기import 'package:in_app_purchase/in_app_purchase.dart';import 'package:in_app_purchase/store_kit_wrappers.dart';---2. Google Play 및 App Store 설정구독을 구현하려면 Google Play Console 및 App Store Connect에서..
1. 리눅스 버전 확인리눅스 배포판과 버전을 확인하려면 아래 명령어 중 하나를 실행하세요.# 배포판 및 버전 확인cat /etc/os-release# 커널 버전 확인uname -r# 자세한 시스템 정보 확인lsb_release -a # 일부 배포판에서만 지원됨# 시스템 전체 정보 확인hostnamectl2. Let's Encrypt 인증서 갱신Let's Encrypt 인증서를 갱신하려면 Certbot을 사용해야 합니다. 아래 단계를 따라 진행하세요.(1) Certbot 버전 확인certbot --version버전이 너무 오래되었으면 먼저 업데이트하는 것이 좋습니다.(2) 인증서 갱신 실행sudo certbot renew위 명령어는 설정된 인증서들을 자동으로 갱신합니다.(3) 특정 도메인 인증서 갱신특정..
