
배워본 걸 내 방식대로 정리하는 걸 말하는 듯웹 개발 살짝 찍먹해봤으니 비교하면서 들을 예정XCode 설치Git 설치 확인Android Studio 설치Flutter SDK 설치HomeBrew & Cocoapods 설치VSCode 설치Flutter 프로젝트 생성 후 실
📝 기본 문법 어제 강의에서 다 못 들었던 부분 정리 변수 final 한 번만 할당 가능 (= const) import 다른 Dart 파일이나 패키지를 불러올 때 반드시 최상단에 위치 | 자료형 | 설명 | 예제 | |
📝 컬렉션 컬렉션이란? 여러 개의 데이터를 묶어서 다루는 구조 Dart의 대표적인 컬렉션 List (리스트) Set (셋) Map (맵) List 선언 방법 특징 순서 있음 중복 허용 인덱스로 접근 가능: fruits[0] → 'apple' 주요 메서드 반복
📝 flutter 프로젝트 프로젝트 구조 ⭐️ 중요한 파일 📁 lib/ 앱 만들기 위한 Dart 코드 작성하는곳 기본적으로 main.dart가 진입점 📁 pubspec.yaml 프로젝트의 정보 기록 플러터 공식 패키지 저장소인 pub.dev 의 패키지를 사용하기

📝 텍스트, 이미지, 아이콘 위젯 Text Text란? 화면에 글자를 표시할 때 사용하는 기본 위젯 간단한 문자열부터 다양한 스타일, 정렬, 줄 수 조절까지 지원 기본 생성자 주요 속성 style: 텍스트 스타일 설정 (크기, 색상, 굵기 등) textAlign:

UI에 반영되는 변경되는 데이터버튼을 눌러 숫자가 증가 → 숫자가 상태토글스위치 on/off → on off 여부가 상태상태를 가질 수 있는 위젯변수를 업데이트 후 setState 함수를 통해 다시 그려달라고(build) 요청 가능StatefulWidget 상속받은 클

화면 하단에 고정된 탭 메뉴를 만드는 데 사용앱에서 여러 페이지(예: 홈, 설정, 프로필 등)를 전환할 수 있게 함일반적으로 StatefulWidget과 함께 사용하여 선택된 탭 인덱스를 상태로 관리함Scaffold 의 bottomNavigationBar 속성에 사용i

바텀 시트(Bottom Sheet): 화면 위로 슬라이드되며 나타나는 임시 패널.바텀 네비게이션(Bottom Navigation): 화면 하단 고정 네비게이션 바.바텀 네비게이션은 키보드가 올라오면 가려짐입력 필드 포커스 해제해 키보드 닫기 필요화면 빈 공간을 탭하면
개강 3일 전 팀 프로젝트가 시작되었다선배 기수의 앱을 직접 체험하며 기획 → 디자인 → 기능 흐름의 완성도를 이해하고, “나라면 어떻게 만들었을까?”를 고민해보는 것이 이번 과제의 목표다그런데 개발반은 인원이 적어서 나랑 팀원 단 둘밖에 없다..ㅋㅋ아무튼 어플을 직접
오늘은 발표 자료를 준비했다.어플에 대한 피드백을 이렇게 바꾸면 더 좋을 것 같다는 내용으로 정리해보고정리한 내용을 토대로 발표 자료를 만들어봤다.미니 프로젝트 준비하느라 강의는 하나도 못 들었다..내일 발표 끝나고 to do 어플 기능 만드는 것까지는 구현해봐야겠다.

오늘은 미니 프로젝트 발표날~강당에 모여서 (온라인) 발표를 진행했다다른 조들의 발표도 보면서 새로운 인사이트를 얻는 시간이었다암튼 처음 진행한 미니 프로젝트였는데 잘 마무리해서 다행~다음주에는 본 캠프 시작되는데 열심히 해야제우리 조원들의 소감문

📝 StatefulWidget CRUD CRUD란? CRUD는 데이터 처리의 기본적인 4가지 동작을 의미하는 약어 데이터를 다루는 대부분의 앱에서 CRUD는 핵심 개념입니다. |약어|의미|설명| |-|-|-| |C|Create|새로운 데이터를 생성 (예: 할 일 추
본 캠프 개강 오늘 11월 24일부터 드디어 본 캠프가 시작된다 그래도 오늘부터 강의 듣는 것보다 사전 캠프하면서 강의 들었던 게 도움은 된 것 같다 TIL 작성법 특강 til이 뭔지에 대해 실시간 특강을 들었다 작성 방법 화려하고 완벽하게 작성 필요 x 적은 내용

Git은 소스 코드 버전 관리 도구코드의 변경 이력을 저장과거 버전으로 되돌릴 수 있음여러 사람이 동시에 작업해도 충돌 없이 병합할 수 있음브랜치를 만들어 독립적으로 개발하고 나중에 합칠 수 있음협업과 코드 관리에 필수인 도구Repository 생성로컬 또는 GitHu

flutter 📝 브랜치 동기화 브랜치 동기화란? 보통 main을 기준으로 새로운 기능을 만들려고 feature 브랜치를 만든다. 그런데 시간이 지나면 A가 main에 새로운 기능을 merge함 B도 merge함

예전에 몰랐던 개념들도 조금씩 감이 잡히고다른 티원들한테 알려주는 정도까지는 왔다..!앞으로 협업하면 좀 더 잘 사용할 수 있을 것 같뚬fetch → 원격 최신 커밋 정보 가져오기reset --hard origin/main → 로컬 main을 원격 main 상태로 완전

WIL(Week I Learn) 우리 조의 KPT 회고 한 주 동안 배운 것만 정리하는 회고 형식 매일 기록하는 TIL과 다르게 일주일치 내용을 묶어서 정리 주간 학습 흐름을 한눈에 볼 수 있어서 성장 추적하기 좋음 1️⃣ 이번 주에 배운 것 Git 병합 브랜치

앱 배포하기 앱 이름 바꾸기 플러터에서 앱 이름은 만들었던 프로젝트의 이름을 기본 앱 이름으로 만들어줘서 바꿔줘야 함 안드로이드 android/app/src/main/AndroidManifest.xml AndroidManifest 를 수정해준 뒤 안드로이드 에뮬레이터

📝 알고리즘 문제 (전)팀원이 알고리즘 문제를 재밌게 풀고 있는 걸 보고 나도 자극받아서 해봤다. 목표는 ai 도움 없이 푸는 것..! 🤨 가장 많은 사탕을 가지고 있는 아이들 문제 링크 Dart 문법이 있지만 영어로 되어 있어서 번역이 필요한 게 단점.. 일

📝 알고리즘 문제 풀기 🤔 가장 높은 고도 찾기 문제 링크 누적 고도 변화를 알아야 하고 그 누적된 값 중 가장 큰 값을 찾으면 되는 문제 그래서 내가 배운 걸 단순하게 적용해서 풀어봤다. 고도의 처음 높이는 0이니깐 height에 처음에 0 값을 저장하고

📍 Map Dart 공식 문서 - Map Dart Programming Tutorial 개인 과제를 진행하다가 Map이랑 List 부분 맵핑하는 법에 대해 자세히 알고 싶어서 뜯어봤다. 키/값 쌍의 컬렉션 | 속성 | 설명

KPT 회고2번째 주는 dart 기초 문법부터 탄탄히 잡고 가는 주라 새로운 강의를 받고 수강을 했다. 확실히 앱 개발 종합 강의 보다 예제도 많고 내용도 많았지만 이번 주를 잘 보내야지 flutter 개발을 할 때 어려움 없이 진행할 것 같아서 나름 정리도 열심히 해

📍 알고리즘 문제 🕵️♂️ Digitville의 장난꾸러기 두 숫자 문제 링크 일단 2숫자만 중복이 되므로 리스트에서 중복되는 숫자 2개만 찾으면 코드가 끝나게 만들면 될 것 같다. 숫자들을 오름차순으로 정렬해서 현재 nums[i]과 바로 뒤에 있는 nums[

📍 알고리즘 문제 풀기 🙋 가장 가까운 사람 찾기 문제 링크 이 문제는 절댓값 구하는 방법을 알면 비교해서 0,1,2 중에 반환하면 된다. 절댓값 구하는 방법은 abs()를 사용해서 int a = -10일 경우 a.abs()) //10이 된다. 즉 음수는 양수,

📍 알고리즘 문제 풀기 🤑 가장 부유한 고객의 재산 문제 링크 리스트 안에 리스트를 반복해서 돌면서 모두 합산한 다음에 total 값을 만들어서 저장한 후에 큰 값을 reduce로 구한 후 반환하는 식으로 만들었다. 일단 생각나는대로 작성해보고 제출했더니 한 번에

알고리즘 문제 풀기 ☕️ Two Sum 문제 링크 반복문으로 nums 리스트를 돌면서 더해주고 더한 값이 target 값이라면 해당 인덱스를 기록하는 식으로 생각을 했다. 그래서 만든 게 요친구 그런데 nums = [-1,-2,-3,-4,-5] target = -8

WIL KPT 회고

알고리즘 문제 풀기 🪞 Palindrome Number 처음에는 문자열로 리스트에 담은 다음에 정방향 리스트와 역방향 리스트를 비교하면 되겠다! 해서 비교를 했다 그런데 같은 값이라도 false가 나와서 무슨 일인가 찾아봤더니 저 상태에서는 리스트 그 자체를 비교

InheritedWidget / InheritedModel & ThemeData & Slider & RichText & TextSpan

Navigator.push / pop으로 페이지가 전환될 때같은 tag를 가진 위젯끼리 자동으로 애니메이션 연결주로 이미지, 카드, 리스트 아이템 → 상세 화면에 사용A 화면에 Hero(tag: 'x') 존재B 화면에도 Hero(tag: 'x') 존재화면 전환 시A의

Tooltip은 길게 누르거나(모바일)마우스를 올렸을 때(웹/데스크톱) 짧은 설명을 보여주는 위젯아이콘 의미 설명, 버튼 보조 설명에 사용message : 표시할 텍스트 (필수)child : 감쌀 위젯waitDuration : 표시되기 전 대기 시간showDuratio

'모닝 아카이브'를 통해 다양한 위젯들을 탐색했는데 InheritedWidget과 InheritedModel을 배우며 위젯 트리 아래로 데이터를 전달하는 상태 관리'의 기초를 맛보았다. 왜 이런 구조가 필요한지 고민하며 플러터의 데이터 흐름을 이해하는 시간을 가졌다.

📍 튜터님과 Widget 공부 📝 AbsorbPointer AbsorbPointer란? AbsorbPointer는 터치 / 클릭 / 제스처 이벤트를 가로채서 자식 위젯에 전달하지 않는 위젯 UI는 그대로 보이지만 사용자 입력만 차단 특징 화면에 보이지만 눌리지 않

📍 상태 관리 뜯어보기 📝 Provider 공식 문서 Provider란? Flutter의 상태 관리 / 의존성 주입(Dependency Injection) 라이브러리 InheritedWidget을 래핑(wrap)해 더 쉽게 상태를 공유·관리할 수 있게 함 전역 상태

# 📍 튜터님과 Widget 공부 ## BackdropFilter ### BackdropFilter란? 자기 자신이 아니라 뒤에 그려진 위젯에 필터(블러 등)를 적용 글래스모피즘, 반투명 모달, 배경 흐림 효과 ### 포인트 - ImageFilter.blur()로

Flutter 팀 과제 - 쇼핑몰 플랫폼 오늘부터 팀 프로젝트인 '쇼핑몰 플랫폼'을 시작했다. 프로젝트의 첫 단추를 끼우는 날이라 그런지 팀원들과의 열정 가득한 회의로 하루를 꽉 채웠다. 튼튼한 집을 짓기 위해 설계도(S/A)를 짜고 주어진 과제의 UI를 시각화하는

AnimatedBuilder는 애니메이션 값이 변할 때마다특정 UI만 다시 그리도록 도와주는 위젯이다.AnimationController / Animation<T>를 감시값이 바뀔 때마다 builder만 rebuild성능 최적화용 애니메이션 위젯애니메이션 중 UI

고정된 크기를 가진 박스 위젯을 만들 때 사용주로 공간 조절, 위젯 크기 제한, 위젯 간 간격 등 다양한 목적으로 사용됨기본적으로 크기(width, height)를 지정할 수 있음width: 박스의 가로 크기height: 박스의 세로 크기child: 박스 안에 들어갈

장바구니 기능을 구현하면서상품 목록, 수량, 선택/해제 상태를 함께 관리해야 했다.처음에는 단순히 “상품을 담는다”는 개념으로 시작했지만기능이 추가될수록 기존 자료구조의 한계가 드러났다.상품 목록을 단순히 나열하면 될 것이라 판단구현이 가장 직관적이라고 생각함동일한 상

오늘은 그간 있던 과제의 발표회 날 ...이었지만 개인 사정때문에 결석을 하게 되어 줌으로 진행된 발표회만 참여했다이 자세로 차에서 들음 ㅋㅋ처음하는 팀플이라서 서툰 면도 많았고 부족한 점도 있었지만 잘 마무리해서 다행이다. 재사용 가능한 컴포넌트 설계: CommonE

AnimatedList는 리스트 아이템이 추가·삭제될 때 애니메이션을 자동으로 적용해주는 위젯이다.ListView → 아이템 변경 시 바로 갱신AnimatedList → 아이템 삽입 / 제거 시 애니메이션 가능📍 중요 포인트상태(State)를 직접 관리해야 함내부 데

📍 튜터님과 Widget 공부 ✏️ Flexible Flexible란? Row, Column, Flex 안에서 사용 남은 공간을 유연하게 분배하는 위젯 자식 위젯의 크기를 강제하지 않음 기본 사용법 주요 속성 flex 남은 공간 분배 비율 기본값: 1 fit 공

📝 블로그 앱 만들기 ✏️ WriteViewModel 구현 1️⃣ 상태 클래스 (WriteState) 글 작성/수정 중인지 여부 true → 로딩 상태 false → 입력 가능 상태 2️⃣ ViewModel (WriteViewModel) Riverpod Noti

📝 마켓 앱 만들기 - VWORLD 연동 ✏️ VWORLD 국토교통부에서 운영하는 공간정보 API 위도·경도 → 행정주소(읍·면·동) 검색어 → 행정구역 주소 목록 API 키 발급 흐름 www.vworld.kr 회원가입 & 로그인 오픈API → 인증키 발급 발급된

📍 튜터님과 Widget 공부 ✏️ Placeholder UI 레이아웃에서 임시 자리 표시용 위젯 주로 개발 중 디자인 확인이나 공간 확보용으로 사용 사각형 모양에 X 표시가 그려짐 주요 속성 | 속성 | 설명

📝 Riverpod Consumer Widgets 개념 정리 ✏️ Consumer Widgets란? Provider가 제공하는 상태를 “구독(consume)”해서 UI로 그리는 위젯 Provider ↔ UI를 연결하는 접점 역할을 하는 위젯 ✏️ 왜 Consumer

리스트 아이템을 드래그해서 순서를 변경할 수 있는 Flutter 기본 위젯Long press → 드래그 → 드롭별도의 외부 패키지 없이 사용 가능내부적으로 Drag & Drop + 애니메이션을 처리해줌ReorderableListView는 Key가 없으면 제대로 동작하지

Positioned 위젯의 애니메이션 버전top / left / right / bottom / width / height 값이 변경되면Flutter가 자동으로 부드러운 위치 이동 애니메이션을 만들어 줌반드시 Stack 안에서만 사용 가능Positioned 계열 위젯은

마켓 앱 만들기 상품 상세페이지 구현 ProductDetailViewModel 📁lib/ui/pages/productdetail/productdetailviewmodel.dart Product Model copyWith 함수 추가 Riverpod 상태는 immut

📍 튜터님과 Widget 공부 ✏️ Stack Stack의 개념 Stack은 여러 위젯을 겹쳐서 배치할 수 있는 레이아웃 위젯 디자인 툴의 레이어(Layer) 개념과 비슷 기본적으로 자식 위젯들이 겹쳐짐 나중에 선언된 위젯이 위에 표시됨 위치를 지정하지 않으면 왼쪽

부모 위젯의 크기를 기준으로 자식의 가로/세로 비율을 정하는 레이아웃 위젯픽셀(px)이 아니라 비율(0.0 ~ 1.0) 로 크기 지정부모가 주는 최대 사이즈를 기준으로 계산됨widthFactor, heightFactor는 부모 대비 비율둘 중 하나만 써도 됨ListVi

📍 튜터님과 Widget 공부 ✏️ Container Container란? Container는 박스 모델(Box Model) 개념 기반으로 만들어진 위젯 내부에 위젯을 담고 크기, 패딩, 마진, 장식 등을 지정할 수 있는 다목적 박스 역할을 함 주로 레이아웃, 스타일

표 형태로 데이터를 보여주는 위젯Table과 달리 행(Row)과 열(Column) 구조, 정렬 기능, 선택 기능 등이 내장되어 있어 데이터 표시용 UI로 자주 사용
사용자가 연속적 값을 선택할 수 있는 UI예: 볼륨 조절, 밝기 조절, 가격 범위 등divisions가 없으면 연속 값divisions가 있으면 단계별 값 선택 가능

GPS 기반 야구장 실시간 채팅 앱 'Inning' 개발 회고관심사 기반의 높은 몰입도: 평소 좋아하는 야구를 주제로 삼아 5일간의 짧은 개발 기간에도 지치지 않고 즐겁게 몰입할 수 있었다아키텍처 설계 및 상태 관리: Riverpod과 MVVM 패턴을 활용해 UI와 비

사용자에게 알림 / 확인 / 선택을 요청하는 모달 다이얼로그화면 중앙에 표시AlertDialog는 showDialog() 안에서 사용Navigator.pop()에는 builder 안에서 받은 dialogContext 사용 권장async 이후 호출 시 mounted 여부

서버 없이, 디바이스 내부에서 직접 알림을 보내는 기능푸시(Firebase 등) ❌앱 내부 로직으로 알림 ⭕️사용 예시알람 / 리마인더일정 시간 후 알림버튼 클릭 → 즉시 알림백그라운드 작업 완료 알림Flutter 프레임워크 자체는 알림 기능 미지원각 플랫폼 네이티브

📝 효율성을 위한 Const Class ✏️ const class란? Dart/Flutter에서 컴파일 타임 상수 객체를 만들기 위한 클래스 생성자 앞에 const를 붙이고, 해당 클래스로 만든 객체도 const로 생성해야 함 대표적으로 Text, Icon 같은

ChatBot App 만들기 - 크래시리틱스 ✏️ 크래시리틱스란? Crashlytics Firebase에서 제공하는 실시간 오류/크래시 리포팅 도구 앱에서 발생하는 치명적인 오류(crash) 및 비정상 종료를 자동 수집 에러 발생 시점의 스택 트레이스, 디바이스 정보
사용자가 드래그해서 크기를 조절할 수 있는 스크롤 가능한 시트를 만들 때 사용하는 위젯 주로 하단 시트(bottom sheet) 형태로 많이 쓰임ScrollController를 반드시 builder에서 사용해야 함내부 스크롤과 시트 드래그가 충돌하지 않도록 함ListV
Flutter 공식 라우팅 패키지선언형(Declarative) + URL 기반 라우팅을 지원모바일 / 웹 공통딥링크 지원인증·권한 분기 쉬움Navigator의 복잡함 해결화면 이동 코드가 분산됨뒤로 가기 / 분기 처리 복잡웹 URL 대응 어려움라우트 중앙 관리URL =

💥 TODO 앱 트러블 슈팅 과제를 진행하면서 만난 문제들과 어려웠던 부분을 정리해봤습니다. 1️⃣ 클린 아키텍처 기반의 계층 분리 및 의존성 설계 🔍 상황 인지 과제 요구사항에 '클린 아키텍처'를 적용하라는 내용이 있어서 기존의 MVVM 구조로 설계한 코드들을
오늘은 Flutter Web 기반 Todo App 프로젝트를 설계하고,Agent CLI 도구, 클린 아키텍처, GitHub Pages 배포, CI/CD 설정까지 전반적인 흐름을 학습터미널 환경에서 자연어나 명령어를 통해코드 작성, 디버깅, 문서화 등을 자동화하는 개발
Provider위젯 트리에 의존Provider는 반드시 상위 위젯에 선언되어 있어야 함BuildContext를 통해 트리를 거슬러 올라가며 상태 탐색👉 구조가 깊어질수록 관리가 어려워짐Riverpod위젯 트리와 완전히 독립Provider를 전역 변수처럼 선언 가능트리
서비스 구조 정리데이터 흐름 및 기능 역할 분담프론트/백엔드 연동 방식 정리주요 화면 구성 설계사용자 플로우 정리버튼/레이아웃 배치 초안 제작개발 전에 구조를 먼저 정리하니→ 이후 구현 방향이 훨씬 명확해짐팀원 간 역할과 책임이 정리되어→ 커뮤니케이션 비용이 줄어듦디자
오늘 조별 과제로 진행 중인 프로젝트 '무딕(Moodic)' 의 핵심적인 UI 페이지들을 구현외부 API를 연동하여 데이터를 불러오는 작업을 함사용자가 음악 정보를 검색하거나 불러올 수 있도록 iTunes Search API를 프로젝트에 연결REST API를 호출하여
디스크(하드디스크)에 저장된 실행 파일아직 실행되지 않은 상태예: chrome.exe, app.apk실행 중인 프로그램메모리에 올라간 상태각 프로세스는 독립된 메모리 공간을 가짐프로세스 안에서 실제로 작업하는 단위하나의 프로세스는 여러 스레드를 가질 수 있음코드 실행의
순서:로그인 → 인증 → 인가카카오 로그인 = 카카오가 인증해 준 것일 뿐, 우리 서비스 계정은 따로 관리해야 함카카오/구글은 신원 보증자 역할실제 서비스 계정은 우리 DB에 따로 생성기존 로그인 방식 문제서비스마다 ID / PW 생성 필요비밀번호 유출 위험보안 관리
Optimistic Update사용자가 UI에서 어떤 행동을 했을 때, 서버 응답을 기다리지 않고 즉시 화면에 반영하는 방식서버 요청이 성공할 것이라고 낙관(optimistic)적으로 가정하고 UI를 미리 업데이트예시:SNS에서 좋아요 버튼 클릭 → 서버 요청 완료 전
GoRouter는 Flutter에서 라우팅을 관리하는 객체.화면 간 이동 시, 라우터 객체 자체를 다른 위젯이나 페이지에 전달할 수 있음.일반적으로 context.go() 또는 context.push()를 사용하지만, GoRouter 인스턴스를 직접 전달하면 더 유연한

오늘은 Moodic 프로젝트 발표회를 진행한 뒤튜터님의 피드백을 바탕으로 코드 구조를 점검하고 리팩토링하는 시간을 가졌다.발표 이후 받은 주요 피드백은 다음과 같다.스플래시 패키지 사용해보기하위 라우트 설정 구조화하기디테일 페이지에서 extra 대신 path param
Moodic은 게시글/댓글이 존재하는 UGC(User Generated Content) 앱이기 때문에 Google Play 정책 대응이 중요하다.게시글 및 댓글에 신고 기능 구현Firestore에 신고 데이터 저장 구조 구성관리자가 확인 가능한 형태로 설계특정 유저 차
Flutter 프로젝트에서 release 모드로 앱 번들 빌드Keystore 생성keytool -genkey 명령으로 upload-keystore.jks 생성CN(이름), OU(조직 단위), O(조직), L(도시), ST(주/도), C(국가) 입력build.gradle

오늘은 UIUX 디자이너와 개발자의 협업 과정에 특강을 들었다.단순히 역할을 나누는 것이 아니라, 제약 안에서 사용자 가치를 극대화하는 과정이라는 점이 인상적이었다.사용 툴노션스프레드시트UX 와이어프레임 툴사용자 데이터 기반 분석사용자 문제 정의 및 개선 방향 설정기존
iOS에서 health 패키지를 사용하려면 패키지 설치만으로는 부족하며,Apple 보안 정책상 아래 3가지 필수 조건을 모두 충족해야 한다.최소 iOS 배포 버전: iOS 14.0 이상권한 요청 설명 문구(Usage Description) 제공HealthKit 접근 자
가상 메모리: 실제 메모리와 독립적으로 프로그램에 할당되는 논리적 메모리가비지 컬렉터 (GC): 더 이상 사용되지 않는 객체를 자동으로 해제올드 제너레이션(Old Generation): 오래 살아남은 객체 영역dispose(): 수동으로 리소스 해제dispose() 호
에펙에서 만든 모션을JSON으로 변환해서앱에서 그대로 렌더링하는 방식기존 방식:디자이너 → 에펙 파일 or 영상 전달개발자 → 영상을 보고 “비슷하게” 구현결과 → 느낌이 다름 (타이밍, 이징, 디테일 차이)에펙에서 제작JSON으로 export앱에서 그대로 렌더링✔ 모
핵심 위젯 트리 내 특정 위젯의 위치를 알려주는 객체역할부모 위젯 찾기 (context.findAncestorWidgetOfExactType)테마, MediaQuery, Navigator 등 상위 리소스 접근InheritedWidget 구독중요 포인트위젯 자체가 아님
입력 실수 감소사람이 직접 입력 → 오타 발생스캔 기반 → 정확한 데이터 전달처리 속도 향상로그인, 결제, 입장, 쿠폰, 인증 등에서 즉시 처리 가능UX 흐름이 끊기지 않음오프라인 ↔ 온라인 연결오프라인 포스터 → 웹페이지 이동매장 상품 → 상세페이지 연결종이 티켓 →
Apple 로그인은 코드보다 콘솔 설정이 80%다.Apple Developer →Certificates, Identifiers & Profiles → Identifiers → App IDs → +Platform: iOSBundle ID: soopkomong.comExp
AOT(Ahead-of-Time) 와 JIT(Just-in-Time) 컴파일러는 소스 코드를 기계 코드로 변환하는 방식이 다른 두 가지 주요 컴파일 전략이다. 각각의 장단점을 이해하는 것은 애플리케이션 성능을 최적화하는 데 중요하다.AOT 컴파일러는 애플리케이션 실행
Flutter에서 iOS 알림을 구현하려면 flutter_local_notifications 패키지를 사용한다.Xcode에서 ios/Runner.xcworkspace 열기Signing & Capabilities 탭에서 + Capability 클릭Push Notifica
네트워크 상의 고유한 식별 주소집의 주소처럼 각 컴퓨터를 구분서비스별 출입문 번호같은 컴퓨터에서 여러 서비스를 구분도메인을 IP 주소로 자동 변환전화번호부 같은 역할TCP는 신뢰성 있는 연결을 수립하기 위해 3단계 핸드셰이크를 한다.SYN (동기화 신호)클라이언트에서
ios 폴더를 Xcode로 열기File → New → Target → Widget Extension 선택Product Name: NewsWidgets 입력Finish 클릭두 타겟 모두 설정해야 한다.Runner 타겟:1\. Signing & Capabilities 탭
단일 이미지만 사용 → 머리, 옷 등 조합 불가색상 변경 시 → 전체 이미지를 다시 제작해야 함확장성 부족 → 새 파츠 추가 시 많은 이미지 필요Stack 위젯으로 투명한 PNG를 순서대로 쌓아 캐릭터를 만든다.BlendMode.modulate 사용 → 원본 이미지의
https://developer.apple.com에서 계정 생성연간 $99 비용 필요카드 등록 필수Xcode에서 Runner 프로젝트 선택Signing & Capabilities 탭Bundle Identifier 확인 (예: com.example.myapp)M
Firestore에 데이터를 저장할 때 cloud_firestore/not-found 에러가 발생했다. Firestore 경로 설정과 문서 생성 시점의 오류를 분석하여 데이터 저장 기능을 복구했다.앱에서 사용자 데이터를 Firestore에 저장하려 할 때 발생저장 기능
JavaScript Object Notation의 약자데이터를 저장하고 전송하기 위한 경량 텍스트 기반 포맷.특정 언어에 종속되지 않아 REST API 통신에서 사실상 표준으로 쓰임.Object { } — Key-Value 쌍. Key는 반드시 큰따옴표("")Array
처음엔 DashPurchases가 mock 데이터로 동작in_app_purchase 패키지 추가 후 실제 스토어와 연결패키지만 추가한다고 동작하는 게 아님 → Play Console, Firebase 세팅 필수결제는 버튼 클릭보다 stream 수신 흐름이 핵심생성자에서
정렬 = 데이터를 쓸모있게 만드는 첫 번째 단계쇼핑앱 — 가격순, 인기순, 최신순, 할인율순채팅앱 — 최근 메시지순, 읽지 않은 순할일앱 — 우선순위순, 마감일순지도앱 — 거리 가까운 순, 평점 높은 순음악앱 — 최신순, 인기순검색앱 — 관련도순, 최신순처음부터 하나씩
→ MAU 50명 초과 시 Functions 방식이 압도적으로 유리jwks-rsa로 카카오 공개키 가져와서 IdToken 서명 검증payload.aud가 내 앱 NativeAppKey와 일치하는지 확인uid는 kakao{payload.sub} 형태로 prefix 붙임유
앱을 업데이트하지 않고 앱의 동작과 UI를 바꿀 수 있는 Firebase 서비스.설정값을 Firebase 콘솔에서 수정하면 앱이 다음 실행 시 새 값을 받아옴.이벤트 배너 문구, 색상 원격 변경특정 기능 ON/OFF (기능 플래그)점검 공지 팝업 여부 제어앱 최소 버전
전에 정리한 개념인데 오늘 마지막 CS 강의를 들으면서 다시 정리했다여기서 "바이트 코드 → 기계어" 변환을 언제 하느냐에 따라 JIT과 AOT로 나뉜다.주문 즉시 조리하는 식당프로그램이 실행되는 도중에 바이트 코드를 기계어로 변환실행하면서 번역하기 때문에 개발 중 변
Python 기반의 빠르고 가벼운 웹 프레임워크.REST API 서버를 빠르게 만들 수 있고, 자동으로 API 문서도 생성해줌속도: Node.js, Go에 버금가는 성능자동 문서화: /docs 경로에서 Swagger UI 바로 확인 가능타입 힌트 기반: Python 타
서버, 데이터베이스, 스토리지 등 백엔드 인프라를 클라우드로 제공하는 서비스.직접 서버를 사지 않고 필요한 만큼 빌려서 쓸 수 있음.대표적으로 Amazon의 AWS와 Google의 GCP가 있음.Elastic Compute Cloud클라우드에서 돌아가는 가상 컴퓨터(서
Apple HealthKit(iOS) / Google Health Connect(Android)와 연동해서걸음 수, 심박수, 수면, 칼로리 등 건강 데이터를 읽고 쓸 수 있는 패키지.iOS: HealthKit, Android: Health Connect 기반다양한 데이
Firebase 서비스(Firestore, Storage, Realtime Database)에 접근할 때누가, 어떤 데이터에, 어떤 행동을 할 수 있는지 규칙으로 정의하는 것.클라이언트 코드에서 막는 게 아니라 서버 레벨에서 차단하기 때문에악의적인 요청도 Rules에서
URL 또는 경로에 따라 어떤 화면을 보여줄지 결정하는 규칙.앱에서 "이 경로로 가면 이 화면" 을 매핑해두는 것.특정 조건에 따라 원래 요청한 경로 대신 다른 경로로 보내는 것.라우터 안에서 조건 분기처럼 동작함.Flutter에서 라우팅은 go_router 패키지를
Database Management System데이터베이스를 관리하는 소프트웨어.데이터를 저장, 조회, 수정, 삭제할 수 있도록 도와주는 시스템.파일에 직접 데이터를 저장하면 중복, 충돌, 보안 문제가 생기는데DBMS가 이 모든 걸 체계적으로 관리해줌.저장 — 데이터를

위치 기반 게임이기 때문에 GPS 스푸핑으로 실제 이동하지 않고도 펫을 획득하는 것이 가능하다. 이는 게임의 핵심 가치(산책/이동을 통한 발견)를 훼손한다.속도 기반 검증두 위치 포인트 간의 거리와 시간을 계산해서 이동 속도를 파악한다차량 최고 속도(시속 100km)를
89일 동안의 Flutter 스파르타 클럽 내일배움 캠프가 끝났다.처음에는 "Flutter를 배우는 3개월"이라고만 생각했는데, 실제로는 훨씬 더 많은 것들을 얻었다.기초가 얼마나 중요한지 알게 됐다처음 몇 주는 Dart 문법, Widget, State Manageme

웹 개발 때는 마침표 뒤에 물음표가 붙었다면이번 Flutter 과정은 마침표 뒤에 느낌표가 남았다.'뭘 할 수 있을까?'라는 의문은 이제 '뭘 더 만들어볼까!'라는 기대로 바뀌었다.나는 유튜브의 Recap 기능을 참 좋아한다."아, 내가 올해 이런 음악을 들었구나","