본문 바로가기

Flutter/Skills

(7)
Throttle 과 Debounce 앱 개발과 프론트엔드 실제 서비스 개발을 하다보면, 정말 많이 필요하고 사용하게될 개념이다. Throttle 과 Debounce 모두, 무의미하게 무수하게 발생하는 이벤트를 막기 위한 기법이다.Throttle : 함수 실행 후 특정 기간 동안 추가 실행을 모두 취소 (특정기간동안, 맨 처음 실행된것만 실행)Debounce : 특정 기간안의 함수 실행을 모두 취소하고, 마지막에만 실행 (특정기간동안, 마지막 에 실행된것만 실행)  Throttlethrottle은 영어로 조르다, 목을 조르다라는 의미를 가지고 있다.이벤트의 목을 조른다(?)라는 느낌으로 일단 이해를 하는 것이 좋다.throttle 의 목적은 이벤트가 무수하게 발생하더라도, 일정 시간 동안 이벤트가 1번만 발생하도록 처리하는 것을 의미한다.보..
제네릭 <T> 를 사용할때, 착각하기 쉬운 경우 요즘은 컴포넌트화, 모듈화, 캐싱에 대한 관심이 지대하게 높다.이런과정들을 공부하는 과정에서 '제네릭' 에 대한 이해도가 높아야 좋은 퀄리티의 코드를 작성할 수 있다. 이번에는 그중 착각하기 쉬운 상황 1개를 설명하고자 한다.class Pagination { final List data; ... 보통 다양하게 대응하기 위해 제네릭을 사용하는데,위의 코드를 통해, 보통 T 에 itemModel 이 들어간다고 생각하면,class Pagination { final List data; ...이렇게 작성되어 있는 것처럼 동작하겠지 라고 생각하는 친구들이 많다. 맞다! 그렇게 동작한다.그런데, 여기서 더 나아가서class ItemModel { final String id; final String ..
Pagination 많은 데이터를 부분적으로 가져오는 기술 Pagination 특징쿼리에 해당되는 모든 데이터를 한번에 다 불러오지 않고 부분적으로 쪼개서 불러온다. 예) 한번에 20개씩쿠팡같은 앱의경우 수억개의 상품이 데이터베이스에 저장되어있는데 사용자가 상품 검색 화면을 들어갈때마다, 모든 상품정보를 서버에서 클라이언트로 전송할 필요가 없다.현대 클라우드 시스템은 데이터 전송에 돈이 든다!돈이 안들더라도 수억개의 데이터를 한번에 보내면 분명 메모리가 터질것이다!메모리가 터지지 않더라도 데이터 전송에 상당히 오랜 시간이 걸릴것이다!예시상품데이터를 20개씩 가져온다고 해보자맨아래 까지 스크롤 하고 더 가져올 데이터가 있다면 추가 요청 3. 21 ~ 40 번까지 의 데이터를 가져오게 된다 4. 가져와서 데이터가 붙으면 위의 ..
Unit Test 테스트 3종류Unit 테스트UI Widget 테스트Intergation 테스트 (통합 테스트)Unit Test메소드나 클래스처럼 작은 단위를 테스트할 때 쓰입니다.(내부테스트)Http 통신 IO , DB 접근하여 데이터 가져오는 행위를 테스트(외부테스트) : Mockito 테스트 프레임워크 사용 Mockito 테스트 프레임워크https://flutter-ko.dev/docs/cookbook/testing/unit/mocking Mockito를 사용하여 의존성들에 대해 mock 객체 생성하기어떠한 경우에는 단위 테스트가 웹 서비스나 데이터베이스로부터 데이터를 가져오는 역할을수행하는 특정 클래스에 의존하는 경우가 있습니다. 이럴 때는 다음과 같은 이유로 인해 테스트가flutter-ko.dev  기본적인 설정..
gskinner gskinner 는 회사명이며, 글로벌 협업 및 디자인 and 개발 회사 이다. Flutter 2021 conference 를 통해 알게 되었고, Flutter x gskinner 콜라보레이션 소개 내용을 보고 감명깊게 보고 포스팅으로 소개하고자 한다. https://gskinner.com/ gskinner gskinner.com https://flutter.gskinner.com/ gskinner: leaders in Flutter design and developmentFlutter empowers us to build robust, beautiful apps that run on mobile, desktop & the web for clients including Google, Adobe & sma..
Dio + Retrofit + JsonSerializable 통한 서버 통신 Http 통신 테스트를 위한 무료 api 제공 사이트https://reqres.in Reqres - A hosted REST-API ready to respond to your AJAX requestsNative JavaScript If you've already got your own application entities, ie. "products", you can send them in the endpoint URL, like so: var xhr = new XMLHttpRequest(); xhr.open("GET", "https://reqres.in/api/products/3", true); xhr.onload = function(){ consoreqres.in 요청 API : https://req..
Flutter Favorite program pub.dev 의 플러터 공식 인증 프로그램 패키지https://docs.flutter.dev/development/packages-and-plugins/favorites Flutter Favorite programGuidelines for identifying a plugin or package as a Flutter Favorite.docs.flutter.dev  ## 플러터 공식 인증 패키지를 주로 추천하지만, 꼭 개발할 앱의 사양과 적합성으로 고려하고 사용하시길 바랍니다. 아래의 조건을 통과함으로써 인증받는다.전체 패키지 점수Apache, Artistic, BSD, CC BY, MIT, MS-PL 및 W3C를 포함하되 이에 국한되지 않는 허용 라이선스GitHub 버전 태그는 pub.dev의 현재 ..