본문 바로가기

반응형

전체 글

(25)
Dart 기초 마스터하기 #1 변수와 데이터 타입 완전 정복 Flutter 개발을 위한 Dart 언어 기초 시리즈 첫 번째 시간입니다. 변수 선언부터 null safety까지, 실무에서 바로 써먹을 수 있는 내용들을 정리했습니다. 이 글에서 배우는 것Dart의 기본 데이터 타입들 (String, int, double, bool)var vs 명시적 타입 선언Null Safety의 개념과 사용법문자열 보간법(String Interpolation) 완전 정복final vs const의 차이점실무에서 자주 사용하는 타입 변환 방법 변수 선언의 두 가지 방법1. var 키워드로 타입 추론하기var name = '홍길동'; // String으로 자동 추론var age = 25; // int로 자동 추론Dart는 똑똑합니다! 할당된 값을 보고 자동으로 타입을 결정해..
1인 창업 일지 #21 - Flutter 메트로놈 앱 백그라운드 재생 구현 서론Flutter로 개발한 메트로놈 앱이 거의 완벽하다고 생각했습니다. 하지만 사용하다 보니 미세하게 박자가 안 맞는다던지, Android에서 갑자기 사운드 클리핑이 발생한다던지 하는 문제들이 하나둘 발견되기 시작했습니다. 무엇보다 가장 큰 문제는 백그라운드에서 재생이 안 된다는 것이었죠. 메트로놈 앱인데 다른 앱을 사용하면서 연습할 수 없다니, 이건 반드시 해결해야 할 문제였습니다. "이번이 진짜 마지막 수정이다"라는 마음으로 시작한 작업이었지만, Android와 iOS 각 플랫폼의 특성 때문에 예상보다 훨씬 복잡한 여정이 되었습니다. 이 글은 그 과정에서 마주한 기술적 도전과 해결책을 정리한 기록입니다.Android 편발생한 문제들1. 갑작스럽게 발생한 사운드 클리핑/박자 오류 (최근 이슈)메트로놈 ..
구글 플레이스토어 vs 앱스토어: 실제 출시 경험을 통해 본 플랫폼 비교 모바일 앱을 출시할 때 많은 개발자들이 안드로이드 플랫폼에만 집중하는 경향이 있습니다. 하지만 실제 두 플랫폼에 앱을 출시해본 경험을 바탕으로 말씀드리면, iOS 앱스토어의 잠재력을 간과해서는 안 됩니다. 실제 출시 경험: 예상을 뛰어넘은 iOS의 성과저는 안드로이드 버전을 먼저 출시하고, 한 달 후에 iOS 버전을 출시했습니다. 한 달의 선발 우위가 있었음에도 불구하고, iOS의 성장 속도는 놀라웠습니다. AdMob 데이터를 통해 확인한 결과, iOS 출시 후 단 일주일 만에 광고 노출수가 안드로이드를 따라잡았습니다. 이는 단순한 노출수만의 이야기가 아닙니다. 실제 다운로드 수 역시 일주일 내에 안드로이드와 비슷한 수준에 도달했습니다. 한 달이나 먼저 시작한 안드로이드의 누적 성과를 iOS가 일주일 만..
iOS 앱스토어 출시 완벽 가이드: 인앱결제부터 심사까지 (2) Xcode 프로젝트 설정1. 기본 설정출시하고자 하는 앱을 Xcode로 Open합니다.Xcode에서 Runner > TARGETS > Runner로 이동하여 설정합니다.App Category: 앱 카테고리 선택Display Name: 앱 이름Bundle Identifier: 패키지명 (예: com.company.appname) 2. Signing & CapabilitiesAutomatically manage signing 활성화 (안되어 있다면)Team에서 Developer Program 가입 계정 선택 3. + Capability 클릭 → In-App Purchase 추가⚠️ 중요: In-App Purchase Capability를 추가하면 Xcode가 자동으로 Bundle ID를 생성합니다. (app..
iOS 앱스토어 출시 완벽 가이드: 인앱결제부터 심사까지 (1) 2025년 09월 기준 iOS 앱 출시 과정을 A부터 Z까지 상세하게 다룹니다. Flutter 개발자를 위한 실전 가이드입니다. 목차시작하기 전 준비사항인앱결제 환경 설정Xcode 프로젝트 설정앱 빌드 및 검증앱스토어 커넥트 설정심사 제출 및 출시시작하기전 특이사항애플의 경우 개인 사업자의 경우 무조건 상호명이 본인 영문 이름이됩니다.앱 출시 후, 앱 출시 정보란에 개발자 본명이 기입됩니다. (상호 기입 불가)상호명으로 출시하고 싶으시면 법인으로 진행해야합니다. 준비사항iOS 앱을 출시하기 위해서는 다음 사항들이 필요합니다.Apple Developer Program 가입 (연 $99)사업자등록증 (개인사업자 또는 법인)통신판매업 신고증 (인앱결제 구현 시)개인정보처리방침 URL은행 계좌 정보 (영문) 인..
백엔드 서버가 예고 없이 종료되는 현상, PostgreSQL 자동 업그레이드와의 연관성 문제 상황: 로그 없는 서버 종료프로덕션 환경에서 이상한 현상이 2번이나 발생했습니다. NestJS 기반 백엔드 서버가 갑자기 종료되는데, 가장 당황스러운 점은 로깅 파일인 app.log에 아무런 기록이 남지 않았다는 것이었습니다.서버 상태 확인$ ps aux | grep node# 프로세스가 사라져 있음$tail -100 app.log# 마지막 로그 이후 아무런 기록 없음 일반적인 애플리케이션 오류라면 스택 트레이스나 에러 메시지가 남아야 하는데, 완전히 깨끗한 상태였습니다. 마치 누군가 kill -9로 프로세스를 강제 종료한 것처럼 말이죠. 디버깅 과정, 메모리 누수부터 시스템 로그까지1단계: 메모리 누수 의심처음에는 Node.js의 고질적 문제인 메모리 누수를 의심했습니다. 서버가 1-2일 주기로 ..
1인 창업 일지 #20 - 서브도메인에서 서브디렉터리 방식으로, 애드센스 거절이 가르쳐준 웹 아키텍처의 교훈 애드센스 거절, 그리고 시작된 대수술구글 애드센스의 "콘텐츠 부족" 거절. 20개가 넘는 웹 도구를 운영하던 제게는 충격이었습니다. 각 도구를 서브도메인으로 깔끔하게 분리해서 nginx로 서빙하고 있었는데, 구글은 이를 하나의 통합 서비스가 아닌 흩어진 작은 사이트들로 봤던 것입니다. 결국 저는 전면적인 아키텍처 변경을 결심했습니다. 오라클 클라우드와 nginx 기반의 서브도메인 구조를 버리고, 홈 서버에서 Next.js와 Nest.js로 완전히 새롭게 시작하기로 한 것이죠. 기존 구조: 깔끔해 보였지만...변경 전 시스템[인프라]- 오라클 클라우드 무료 티어- Ubuntu 서버- nginx 웹서버[도메인 구조]- json-parser.toolservice.kr- base64.toolservice.kr ..
1인 창업 일지 #19 - 애플 앱스토어 리젝 2번, 그리고 해결 과정 (feat. ATT 권한 요청 이슈) 들어가며제 블로그 글들을 보면, 최근 웹서비스 전체를 마이그레이션 해야하는 개발이나, 구글 개발자 계정을 조직계정에서 개인개발자로 새로 생성 후, 안드로이드 메트로놈 앱을 재출시하는 등 정신이 없었습니다. 그래서 안드로이드는 메트로놈을 진작에 출시했지만, 애플은 이제서야 손을 대게 되었네요. 심사 신청과 리젝의 연속9월 2일 - 첫 심사 신청드디어 애플 앱스토어에 메트로놈 앱 심사를 신청했습니다.9월 3일 - 첫 번째 리젝심사 신청 다음 날 바로 리젝을 받았습니다.리젝 사유: Guideline 2.1 - Information NeededThe app uses the AppTrackingTransparency framework, but we are unable to locate the App Trackin..

반응형