플러터7 (플러터) 리팩토링의 기본 리팩토링은 앱의 유지보수성, 확장성, 가독성을 향상시키기 위해 필요하다라고 하면 굉장히 식상하지만 프로젝트를 진행하다 보면 이런 부분을 굉장히 자연스럽게 느끼게 된다. 특히 몇 년 유지(또는 방치)된 프로젝트 코드를 보다 보면 왜 리팩토링이 필요한지 누가 아무 말 안 해도 절감하게 된다. 그럼 리팩토링을 잘 하는 방법이 따로 있는가? 1. 모듈화와 컴포넌트 분리 지금 내가 만지고 있는 프로젝트는 모듈화와 컴포넌트 분리가 '하나도' 안 되어 있다. 파일 하나(클래스 하나)에 코드가 1,500줄이 넘는 건 기본이고 어떤 건 2,000줄 가깝다. 로직이 어떻게 돌고 있는지 이해하기 쉽지 않는 건 물론이고 스크롤한다고 손가락 아파 죽겠다. UI는 작은 위젯으로 분리해야 한다. 가능한 한 작게 만들고 다른 곳에서.. 2024. 2. 6. i18n, l10n, 최소한만 알아보자. 그게 뭔지만 대충 알아도 된다. 어차피 개발 시 적용할 때 다시 깊게 생각해야 된다. i18n이란? 국제화를 뜻한다. l10n이란? 지역화를 뜻한다. 국제화 (Internationalization, i18n) 정의: 'i'로 시작해서 'n'으로 끝나는 사이에 18개의 문자가 있어서 i18n이라고 한다. 국제화는 소프트웨어를 설계하고 구현하는 과정에서 다양한 언어와 지역 설정에 맞춰 쉽게 적용될 수 있도록 준비하는 것을 말한다. 목적: 국제화는 코드의 재사용을 극대화하고, 지역별 특화 작업을 최소화하여 다양한 언어와 문화권에서 소프트웨어를 효율적으로 사용할 수 있도록 한다. 개발 시 주의사항: 문자열을 코드에서 분리하여 외부 파일이나 데이터베이스에 저장해야 한다. 날짜, 시간, 통화 등 지역에 따라 다르게.. 2024. 2. 3. 프로바이더 뽀개기 프로젝트 프로바이더가 discontinued되지 않는 이상 ongoing 프로젝트입니다. https://github.com/JaeeunSkywalker/provider_examples GitHub - JaeeunSkywalker/provider_examples: Literally, provider examples.Literally, provider examples. Contribute to JaeeunSkywalker/provider_examples development by creating an account on GitHub.github.com 내용은 굉장히 심플합니다.간단 소개, 깃헙 샘플 코드 연결 버튼, 기능 확인 페이지가 끝입니다.개인적으로 Provider, Riverpod, GetX 다 써보고 싶어서.. 2024. 2. 3. 플러터-프로바이더-라이브러리-정리 클래스 ChangeNotifierProvider: ChangeNotifier를 청취하고, 이를 후손에게 제공하며, ChangeNotifier.notifyListeners가 호출될 때마다 의존하는 위젯들을 재구성합니다. => changenotifier, notifylisteners로 묶어서 상태 관리할 때 쓰는 가장 기본적인 형태. ChangeNotifierProxyProvider: 다른 값을 기반으로 ChangeNotifier를 생성하고 동기화하는 ChangeNotifierProvider입니다. ChangeNotifierProxyProvider0부터 ChangeNotifierProxyProvider6까지 여러 값을 동기화할 수 있는 버전들이 있습니다. ChangeNotifierProxyProvider0:.. 2024. 2. 2. 플러터-프로바이더-궁금했던-내용들 1. provider는 changenotifier랑 notifylistener랑만 묶어서 사용할 수 있나? provider 패키지는 ChangeNotifier와 함께 사용하기에 최적화되어 있으나, 이것만이 유일한 사용 방법은 아닙니다. ChangeNotifier는 상태 변경을 알리기 위해 notifyListeners() 메서드와 함께 자주 사용되지만, provider는 다양한 타입의 데이터와 객체를 관리할 수 있습니다. 예를 들어, 단순한 값(value)이나 다른 타입의 객체를 공유하고자 할 때 Provider를 사용할 수 있고, 이 경우 ChangeNotifier와 notifyListeners()는 필요하지 않습니다. 또한, provider 패키지는 ListenableProvider, StreamPro.. 2024. 2. 2. 고, 플러터, 라즈베리파이5로 채팅 서비스 만들기 - 2(서버 설계 편) 병아리 개발자이기 때문에 내용이 굉장히 전문적이고 막 그러지 않을 수 있다. 그래도 이건 내 생각을 현실화하는 일이기 때문에 어떠한 눈치도 보지 않고 '내 생각'대로 기술할 것이다. 채팅 서버를 빠르게 구축하려면 유튜브에 있는 거 아무거나 내 구상에 가장 가까운 거 집어서 그걸 베끼든 참고하든 하면 될 것이다. 그런데 이번에는 나름의 정도를 밟아 본다. 인터넷에 있는 자료를 참고하는 건 중간 중간에 하면 된다. 개발 전에는 우선 설계를 해야 한다. 그런데 나는 지금 절대 틀리지 않을 청사진을 그려 놓고 그걸 바로 구현하기만 하면 되는 수준(상황)이 아니다. 채팅 서버에는 정말 다양한 기능이 들어가는데 지금 당장은 필요한 것 같아도 별 쓸모가 없는 기능이 발견될 수도 있고 단 한 번도 도입을 생각하지 않았.. 2024. 2. 1. 고, 플러터, 라즈베리파이5로 채팅 서비스 만들기 - 1 본 서비스를 만드는 이유: 그냥. 만들고 싶으니까. 환경: 라즈베리파이5는 headless 홈 서버로 간다. 아르곤 케이스 안에 본체만 넣었고 정품 아닌 국산 어댑터로 전원을 공급한다. 마이크로 SD카드의 용량은 256GB다. 이게 하드웨어 세팅 끝이다. putty로만 연결하고 vnc는 쓰지 않는다(사실 쓸 수가 없다). 라즈베리파이 os 위에 도커 올리고, 그 위에 컨테이너 여러 개 올리고, 그 안에 앞으로 내가 만들 백엔드 서비스를 하나씩 넣을 거다. 프론트는 보통은 플러터를 하겠지만 다른 걸 쓸 수도 있다. 데드라인: 엄청 바쁘다. 하루 중 시간이 별로 나지 않는다. 그래서 빨리 못 끝낼 거 같다. 그래도 3월 말 안에는 끝내고 싶다. 계획: 1. 서버 설계: 채팅 서버의 기본 아키텍처를 설계하자... 2024. 2. 1. 이전 1 다음