피트니스 산업과 IT, 그리고 스타트업

Flutter 14

플러터, 구글에 배포할 때 주의할 점

Flutter로 개발한 앱을 구글 플레이 콘솔에 배포하려면, 사소해 보이지만 놓치면 크게 막히는 여러 가지 요소들을 사전에 체크해야 합니다. Android App Bundle(AAB) 업로드나 패키지 이름, 서명 관련 설정이 잘못되면 빌드가 거부되거나 이전 버전으로 업데이트가 불가할 수 있어요. 특히 협업 중이거나 CI/CD를 사용하는 프로젝트라면, 모든 설정의 일관성이 핵심입니다. 이 글에서는 세 가지 중요한 배포 포인트—버전 관리, 서명 & SHA‑1, 패키지 이름—을 중심으로 설명드릴게요. 버전 코드 & 이름 관리구글 플레이는 AAB 또는 APK의 버전 코드(versionCode)가 중복되거나 낮아지면 업로드를 막습니다. 앱 업그레이드가 원활히 이루어지려면 versionCode는 반드시 이전 버전..

IT 2025.06.24

flutter run과 flutter build의 차이는 무엇일까?

Flutter 앱을 개발하면서 가장 자주 사용하는 명령어 중 하나가 flutter run과 flutter build입니다. 하지만 이 두 명령어가 정확히 어떤 차이가 있는지, 그리고 각각 어떤 상황에서 사용하는 것이 적절한지 헷갈리는 경우가 많습니다. 특히 처음 Flutter를 접하는 개발자라면 둘 다 앱을 실행하거나 빌드하는 명령처럼 보여 구분하기 어려울 수 있어요. 이 글에서는 flutter run과 flutter build 명령어의 차이를 명확하게 짚어보고, 각 명령어가 어떤 목적에 최적화되어 있는지 실무적인 관점에서 설명드릴게요. flutter run은 개발용, 실시간 확인에 유리flutter run은 앱을 실행하고 디바이스나 에뮬레이터에 바로 올려주는 명령어입니다. 가장 대표적인 특징은 디버깅..

IT 2025.06.20

Supabase Realtime으로 실시간 협업 구현

Flutter로 앱을 개발하면서, 실시간으로 여러 사용자 간의 정보를 동기화하는 기능이 필요할 때가 많습니다. 예를 들어 채팅 앱에서 메시지를 주고받거나, 공동 문서 편집 앱에서 누가 어떤 부분을 수정하고 있는지를 실시간으로 반영하는 등의 기능이 대표적이죠. 이러한 실시간 협업 기능은 전통적으로 구현이 까다롭고 복잡한 백엔드 설정이 필요한 영역이었습니다. 하지만 Supabase에서는 Realtime이라는 기능을 통해, WebSocket 기반의 실시간 데이터 스트리밍을 매우 손쉽게 구현할 수 있게 도와줍니다. 특히 Supabase는 PostgreSQL을 기반으로 하면서도 Firebase처럼 간단하게 다룰 수 있도록 설계되어 있어, Flutter 개발자에게도 매우 매력적인 선택지예요. 이 글에서는 Supab..

IT 2025.06.18

바이브 코딩으로 앱 개발 하다가 겪은 병목들

앱을 개발할 때 가장 많이 듣는 말 중 하나는 “직접 만들어보면 안다”는 말입니다. 이번 프로젝트는 Flutter와 Supabase 조합으로, 백엔드 서버 없이도 앱을 구축할 수 있는 serverless 구조였고, 저는 이걸 오로지 바이브 코딩으로 만들어봤습니다. 즉, 큰 설계 없이 즉흥적으로 구조를 짜고 기능을 붙여가며, 문제가 생기면 즉시 해결하는 방식이었죠. 이러한 개발 방식은 빠르게 MVP를 만들어야 할 때는 매우 강력합니다. 하지만 역시나, 처음 겪는 문제에 대한 경험 부족은 병목이 되기 쉽습니다. 이번 회고에서는 전체 개발 기간 중 가장 많은 시간을 소비하게 만든 세 가지 병목 지점을 소개하려 합니다. 단순한 기능 구현보다도, 개발 환경이나 설정에서 시간을 허비한 부분들이 더 크다는 것도 깨달..

IT 2025.06.13

플러터, 텍스트 에디터가 필요하다면?

앱을 만들다 보면, 사용자가 텍스트를 입력하고 서식을 적용할 수 있는 텍스트 에디터가 필요한 경우가 많아요. 예를 들어 메모앱, 블로그 편집기, 콘텐츠 관리 시스템(CMS) 등에서는 단순한 텍스트 필드로는 부족하고, 글꼴 크기 조정, 굵게/기울임 등 서식 기능이 있는 리치 텍스트 에디터가 필요하죠. Flutter에서는 이를 위해 여러 가지 옵션이 있지만, 그중에서도 flutter_quill 패키지는 가장 강력하고 직관적인 WYSIWYG 편집기 중 하나입니다. 웹 기반의 Quill.js를 Flutter에 이식한 이 라이브러리는 모바일뿐 아니라 데스크톱, 웹에서도 동일한 사용자 경험을 제공하며, Delta라는 내부 포맷을 통해 서식을 효과적으로 관리할 수 있게 해줍니다. 이번 글에서는 flutter_quil..

IT 2025.06.10

플러터, 테스트 앱 배포하기

앱을 개발한 후 가장 중요한 과정 중 하나는 실제 사용자 환경에서 테스트하는 일이에요. 아무리 로컬에서 잘 돌아가더라도, 기기별 환경이나 운영체제 버전, 외부 네트워크 환경 등에 따라 전혀 다른 결과가 나올 수 있기 때문이죠. 그래서 테스트 버전의 배포는 필수 과정이에요. 특히 플러터로 개발한 앱은 하나의 코드베이스로 iOS와 Android 두 플랫폼 모두를 타겟팅하기 때문에, 각각에 맞는 배포 방식도 이해하고 준비해야 합니다. 이번 글에서는 iOS와 안드로이드에 각각 테스트 버전을 배포하는 방법을 단계적으로 정리해 드릴게요. TestFlight, Google Play 내부 테스트 채널을 중심으로 다뤄보겠습니다. Android 테스트 버전 배포플러터로 만든 앱의 안드로이드 테스트 배포는 비교적 간단한 ..

IT 2025.05.30

플러터, intl 패키지로 다국어 설정하기

앱을 만들다 보면 언젠가는 꼭 부딪히게 되는 요구사항이 있습니다. 바로 다국어 지원입니다. 한국어만 지원하는 앱이 아니라, 영어, 일본어, 스페인어 등 다양한 언어를 동시에 제공하는 앱을 만들고 싶어지는 순간이 오죠. 특히 글로벌 유저를 타깃으로 하는 서비스라면 앱의 첫 인상이 바로 언어에서 결정되기도 합니다. 그런데 언어가 바뀐다고 해서 앱 전체를 새로 만들어야 할까요? 다행히도 그럴 필요는 없습니다. 플러터에서는 intl이라는 공식 패키지를 활용해 비교적 간단하게 다국어 지원을 구현할 수 있습니다. 이번 글에서는 플러터에서 intl 패키지를 이용해 다국어 앱을 만드는 방법을 단계적으로 정리해보려 합니다. 개념뿐만 아니라 실제 예제 코드도 함께 제공하니, 여러분의 프로젝트에 바로 적용해 보셔도 좋을 거..

IT 2025.05.26

플러터, 서버리스 앱을 만들 때 주의할 점

빠르게 프로덕트를 만들어야 하는 스타트업이나 사이드 프로젝트에서, 서버리스(Serverless) 아키텍처는 굉장히 매력적인 선택입니다. 서버를 직접 운영하지 않아도 되고, 확장성도 뛰어나며, 비용도 사용한 만큼만 내면 되니까요. 플러터와의 궁합도 꽤 잘 맞습니다. 하나의 코드베이스로 iOS와 Android 앱을 동시에 개발하면서, 백엔드는 Firebase, Supabase, AWS Amplify 같은 서버리스 플랫폼을 붙이면 손쉽게 앱 전체를 구성할 수 있어요. 하지만 막상 실제 서비스를 만들기 시작하면, “생각보다 어렵네?”, “이건 왜 이렇게 불편하지?” 같은 벽에 자주 부딪히게 됩니다. 서버리스 구조는 초기 진입은 쉬워 보이지만, 제대로 이해하지 않고 사용하면 데이터 설계부터 보안, 비용, 유지보수..

IT 2025.05.21

iOS 앱 개발에 꼭 필요한 Xcode

iOS 앱 개발을 처음 시작하려는 사람에게 가장 먼저 마주치는 단어가 있습니다. 바로 Xcode예요. 애플의 개발 도구인 Xcode는 맥에서 iPhone, iPad, Apple Watch, Mac용 앱을 만들기 위해 반드시 필요한 소프트웨어입니다. Swift나 Objective-C 같은 언어로 앱을 만들려 해도, 시뮬레이터에서 앱을 실행하려 해도, 앱을 앱스토어에 배포하려 해도 Xcode가 있어야만 가능합니다. 하지만 많은 입문자들이 Xcode를 처음 접할 때 느끼는 감정은 대개 비슷합니다.“이건 도대체 무슨 프로그램이지?”“어디부터 눌러야 할지 모르겠어.” 걱정하지 않으셔도 됩니다. Xcode는 분명 처음엔 다소 복잡해 보일 수 있지만, 하나하나 익숙해지면 iOS 개발의 거의 모든 것을 처리할 수 있는..

IT 2025.05.19

백엔드 할 줄 모르면 Supabase Edge Function

서비스를 만들다 보면 ‘이 로직을 프론트엔드에서 처리하기엔 무리다’ 싶은 순간이 찾아옵니다. 예를 들어 외부 API를 호출하고 그 결과를 가공해 사용자에게 보여주거나, 데이터베이스에 조건부로 데이터를 조작해야 하는 경우처럼요. 이럴 때 백엔드 지식이 없다면 벽에 부딪히기 마련이죠. 특히 프론트엔드 개발자나 노코드 툴 사용자들이 실제 배포 단계에서 가장 자주 겪는 고민은 “백엔드는 어떻게 처리하지?”입니다. 하지만 반가운 소식이 하나 있어요. 이제는 Supabase의 Edge Functions를 이용하면, 복잡한 백엔드 서버 없이도 필요한 서버사이드 로직을 작성하고 배포할 수 있습니다. Supabase Edge Functions는 간단한 API 라우팅부터 외부 서비스 연동, 인증 기반 요청 처리까지 가볍고..

IT 2025.05.16

Flutter에서 Supabase로 Google 로그인 구현하기

앱에서 로그인 기능은 단순한 기능 그 이상의 의미를 가집니다. 유저의 데이터를 보호하고, 개인화된 경험을 제공하며, 다양한 기능을 연동할 수 있게 하는 핵심 역할을 하죠. 특히 구글 로그인은 접근성과 신뢰성이 뛰어나기 때문에, 사용자 인증 방식으로 가장 널리 활용됩니다. Flutter로 앱을 개발하면서 Firebase를 사용할 수도 있지만, 최근에는 Supabase를 활용해 인증과 백엔드를 관리하려는 움직임도 늘고 있어요. Supabase는 오픈소스 기반의 Firebase 대체 서비스로, 인증, 실시간 데이터베이스, 스토리지 등 다양한 기능을 제공합니다. 이번 글에서는 Flutter 앱에 Supabase를 연동해 Google 네이티브 로그인을 구현하는 방법을 단계별로 정리해보겠습니다. 특히 Android..

IT 2025.05.14

플러터, 크래시리틱스로 유지보수하기

앱을 만들고 배포하는 것만큼이나 중요한 것이 바로 유지보수입니다. 아무리 완성도 높은 앱을 만들었다고 해도, 실제 사용자가 다양한 기기와 환경에서 앱을 사용할 때 발생하는 오류까지 미리 예측하고 모두 해결하기는 쉽지 않아요. 문제는 이런 오류들이 사용자 입장에서는 ‘앱이 갑자기 꺼진다’, ‘버튼이 안 먹는다’ 같은 불만으로 이어진다는 점입니다. 이때 필요한 것이 바로 실시간 오류 추적 시스템입니다. 그중 가장 널리 사용되는 도구가 Firebase에서 제공하는 크래시리틱스(Crashlytics)입니다. Crashlytics는 앱에서 발생하는 비정상 종료나 치명적인 오류를 자동으로 기록해주고, 개발자는 이를 Firebase 콘솔을 통해 실시간으로 확인할 수 있어요. 특히 Flutter와도 잘 연동되기 때문에..

IT 2025.05.12

플러터, 유저에게 알림 보내기

앱을 개발하다 보면 사용자에게 적절한 타이밍에 메시지를 전달해야 할 순간이 꼭 생깁니다. 예를 들어, 일정이 다가왔을 때 알림을 보내거나, 특정 이벤트가 발생했을 때 유저에게 공지사항을 전송하는 기능은 사용자 경험을 크게 향상시켜주죠. Flutter에서는 이런 알림 기능을 직접 구현할 수 있지만, 플랫폼별로 네이티브 API를 호출해야 하기 때문에 다소 복잡하게 느껴질 수 있어요. 다행히도 flutter_local_notifications라는 패키지를 사용하면 이 과정을 훨씬 쉽게 처리할 수 있어요. 이번 글에서는 Flutter에서 Local Notification을 구현하는 전반적인 과정을 정리해볼게요. 알림 기능의 개념부터 Android 및 iOS 플랫폼별 설정, 그리고 실제 알림 호출까지 실습 중심으..

IT 2025.05.08

플러터, Gemini API 연동하기

최근 구글에서 발표한 생성형 인공지능 모델인 Gemini는 다양한 형태의 콘텐츠를 생성할 수 있는 능력을 갖춘 LLM(Large Language Model)로, ChatGPT의 대항마로도 불릴 만큼 큰 관심을 받고 있어요. 특히 Flutter 개발자 입장에서는 이 Gemini AI를 활용한 챗봇이나 AI 기반 앱을 만들 수 있다는 점에서 매우 매력적인 도구죠. 이번 글에서는 Flutter 앱에서 Gemini API를 연동하는 방법을 실제 예제와 함께 차근차근 소개할게요. Gemini API 키 발급부터 Flutter 프로젝트에 SDK를 연동하고, .env 파일을 활용한 안전한 키 관리 방법, 그리고 간단한 챗봇 구현까지 전반적인 흐름을 정리해보겠습니다. Gemini란 무엇이고, API 키는 어떻게 발급..

IT 2025.05.07
반응형