본문 바로가기

반응형

전체 글

(35)
Flutter 보안 MOBILE APP SECURITY / FLUTTER Flutter 앱 보안 총정리 한계 · 난독화 빌드 · 네이티브 비교 · 극복 방법 Flutter로 앱을 만들 때 실제로 문제가 되는 지점들을 위험도 순으로 정리하고, 동일한 앱을 네이티브(Kotlin / Swift)로 만들었을 때와 비교한 뒤, 그 격차를 플러그인으로 메우는 방법까지 다룹니다. 이 글의 전제 — 클라이언트 바이너리는 공격자의 손 안에 있습니다. 클라이언트에서 하는 모든 검증은 무효화될 수 있다고 가정하고, 권한 체크 · 결제 검증 · 가격 계산은 전부 서버에서 다시 해야 합니다. 아래 내용은 그 위에 쌓는 방어층입니다. CONTENTS Flutter의 보안적 한계 ..
Architecture란? 정의소프트웨어 아키텍처는 시스템을 구성하는 컴포넌트의 책임(Responsibility)과 관계(Relationship), 그리고 의존성(Dependency)을 설계하는 것.왜 필요한가?소프트웨어는 시간이 지날수록 기능이 추가되고 요구사항이 변경되는데 좋은 아키텍처는 이러한 변경이 시스템 전체로 전파되지 않도록 수정 범위를 제한함.즉, 아키텍처의 핵심 목적은 변경 비용을 줄이는 것이라고 볼 수도 있음.좋은 아키텍처의 특징각 컴포넌트의 역할이 명확하다의존성이 한 방향으로 흐른다변경이 다른 계층에 최소한으로 영향을 준다테스트가 쉽다기능 추가가 용이하다나의 경우BLE/UART 기반의 하드웨어에서 수신한 데이터를 UI에 직접 전달하지 않고, 파싱 계층과 데이터 처리 계층을 거쳐 UI와 서버가 동일한 데이터 모델을..
Riverpod 패키지 의문점 성향적으로 순정을 좋아하여 순정을 확인한 뒤 필요하다면 천천히 대세에 편입하는 스타일입니다.그래서 Flutter프로젝트의 대세 패키지인 Riverpod 을 확인하다 의문점이 발생하여 기록합니다.Q1. Notifier.build()와 Widget.build(), 이름이 겹쳐서 헷갈린다두 함수는 이름은 같기 때문에 혼란을 야기하는 것은 사실이고 커뮤니티에서도 불만이 있습니다. Widget.build()Notifier.build()묻는 질문지금 이 state로 뭘 그릴까?이 provider가 처음 필요할 때 초기값은?호출 시점구독 provider가 바뀔 때마다최초 생성 시 딱 1회 (또는 invalidate 시)비유매 프레임 다시 그리는 함수initState()/생성자에 가까움addTodo()를 100번 호출..
Json Online Parser 간단하게 json 작성하고 작성된 json을 한눈에 보기 쉽게 만든 사이트https://aqoong.pe.kr/json-parser JSON Online Parser - AQoong.dev aqoong.pe.kr 왼쪽 Input에서 json입력하면 오른쪽에 보기 쉽게 블럭형태로 나오고 png로 다운로드가 가능합니다
Flutter edge-to-edge 환경에서 BottomNavigationBar + MediaQuery.removeViewPadding 정리 문제 배경Flutter 3.27 이후(Android 15+, API 35+)부터 기본적으로 edge-to-edge 레이아웃이 적용됩니다.이로 인해 다음과 같은 문제가 발생합니다:BottomNavigationBar가 시스템 내비게이션 바와 겹침SafeArea를 적용했는데도 UI가 어색함하단 padding을 추가하면 아이템이 과하게 위로 올라감핵심 원인이 문제의 핵심은 safe area가 중복 적용되는 것입니다.Flutter에서 하단 영역은 다음과 같이 처리됩니다:MediaQuery.viewPadding → 시스템 UI 영역SafeArea → 자동 inset 적용BottomNavigationBar → 내부적으로 inset 처리⚠️ 우리가 padding을 추가하면이미 적용된 inset + 우리가 추가한 ins..
Bluetooth에서 사용하는 UUID 정리 (BLE UUID 이해) Bluetooth Low Energy(BLE)를 개발하다 보면 Service, Characteristic, Descriptor를 식별하기 위해 UUID를 사용합니다.하지만 BLE UUID는 일반적인 UUID와 약간 다른 특징을 가지고 있어 처음 보면 헷갈리기 쉽습니다.이 글에서는 BLE UUID의 구조, 종류, Version 의미, Short UUID 확장 방식까지 한 번에 정리해보겠습니다.1. UUID란 무엇인가UUID는 Universally Unique Identifier의 약자로,전 세계에서 중복되지 않도록 설계된 128-bit 식별자입니다.UUID는 보통 다음과 같은 형태로 표현됩니다.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx예시:550e8400-e29b-41d4-a716-..
[Flutter/Android] 안드로이드 프로젝트 gradle 충돌 문제 발단과거 제작해두었던 Flutter 패키지를 업데이트하고 안드로이드 기기에서 테스트 시도중 빌드실패FAILURE: Build failed with an exception.* Where:Build file '.../example/android/build.gradle' line: 13* What went wrong:A problem occurred evaluating root project 'android'.> Build completed with 1 failures. > 'org.gradle.api.artifacts.Dependency org.gradle.api.artifacts.dsl.DependencyHandler.module(java.lang.Object)'* Try:> Run with --..
hilt 의존성 추가 Android Jetpack Compose를 사용한 Empty Activity 프로젝트를 기반으로 하여 hilt 의존성을 추가하는 과정을 기록합니다.hilt Gradle Setup 이 있지만 Version Catalog 를 사용한 방법은 없음.프로젝트 환경Android Studio Narwhal 4 Feature Drop | 2025.1.4Kotlin plugin: K2 modeAGP 8.13.0의존성 관리 Version Catalog Toml 라이브러리 추가하기libs.versions.toml#추가할 라이브러리의 이름과 버전[versions]...hilt = "2.57.2"ksp = "2.1.10-1.0.30"#실제 라이브러리 의존성 정의#version.ref 는 [versions]에서 추가한 Stri..

반응형