분식집에서 김밥 라면 떡볶이를 주문한다고 가정해보자 코드를 보면 몇기지 불편한 점들이 있다. 우선 가격들을 일일이 입력해 줘야 한다는 것이다. 직접 금액들을 입력하다보면 오타가 나올 확률이 있다. 그리고 가격을 수정해야할 때 일일이 찾아서 수정해야 한다. 김밥 가격을 5000원에서 4500원으로 수정한다면 모든 주문서에서 값을 찾아 입력해야하는 번거로움이...
설치하기 GoRouter를 사용하기 위해서 pubspec.yaml에 GoRouter를 추가해야한다. Go Router 설치가 끝나면 main.dart 파일에서 MaterialApp에 .router()라는 메소드를 사용할 수 있다. router 안에는 3가지 값들이 들어간다. GoRouter _router에는 여러 값들이 들어가는 데 몇가지만 우선 알아보...
Modifier에는 family와 autoDispose 두 종류가 있고 어떤 Provider에도 적용시킬 수 있다. family 생성하기 Modifier는 어떤 Provider에 사용해도 상관없다. 예제에서는 FutureProvider를 사용해 보겠다. Modifier는 사용하는 Provider에 .을 사용해서 추가 할 수 있다. family를 사용하...
Stream 타입만 반환가능하다. API 요청 결과를 Stream으로 반환 할 때 자주 사용한다. Socket등... 생성하기 길이가 3인 리스트에 각각의 값을 i를 곱해가는 Provider를 생성한다. 사용하기 futureProvider와 마친가지로 when을 사용해서 코드를 작성한다. watch를 통해서 provider 값이 변경될 때마다 bu...
Future 타입만 반환가능하다 API 요청의 결과를 반환 할 때 자주 사용한다. 복잡한 로직 또는 사용자의 특정 행동 뒤에 Future를 재실행하는 기능은 없고 1회성이라고 생각하면 된다. 생성하기 async 요청을 가정해서 예제를 작성해 보겠다. 2초 뒤에 리스트를 반환하는 Provider를 작성했다. multipleFutureProvider를 w...
StateProvider와 마친가지로 UI에서 직접적으로 데이터를 변경할 수 있도록 하고 싶을 때 사용한다. 복잡한 형태의 데이터 관리가 가능하다.(클래스의 메소드를 이용한 상태관리) StateNotifier를 상속한 클래스를 반환한다. stateNotifierProvider를 사용하기 전에 몇가지 값들이 들어있는 모델을 생성했다. 생성하기 우선 코...
가장 기본이 되는 stateProvider를 살펴보겠다. Provider 생성 state_provider.dart 파일을 생성하고 코드를 작성한다. StateProvider를 작성하면 자동완성으로 riverpod이 import된다. StateProvider 파라미터에는 함수를 받는데 여기서 null은 관리하고 싶은 값이 들어가게 된다. 이번 예제에서는 ...
상태관리 라이브러리를 사용하는 이유 플러터에서 상태를 관리하는 기초적 방법은 setState를 사용하는 것이다. 하지만 위젯 트리의 뎁스가 커지고 스크린에서 스크린으로 데이터를 넘겨줄 때 많은 어려움이 발생한다. 이러한 점을 완화시켜주기 위해 상태관리 툴을 사용하는 것이다. 상태관리에 몇 가지 라이브러리가 있는데 여기서는 riverpod를 사용해 볼 것이...
Parent 클래스와 Parent를 상속하고 있는 child클래스를 생성해서 인스턴스화하고 각각 id에 값을 넣어줬다. 각각 print하면 1, 3을 반환하게 된다. Factory constructor 사용 factory에 일반 생성자를 생성하듯이 사용하면 된다. 일반 생성자와 다른점이라면 (){} 함수 body가 있다. 현재 class의 인스턴스를...
Pagination 많은 데이터를 부분적으로 나눠서 불러오는 기술 특징 쿼리에 해당하는 모든 데이터를 한번에 다 불러오지 않고 쪼개서 불러온다. 예를들면 쿠팡에는 수억개의 상품들이 데이터베이스에 저장되어 있는데 만약 사용자가 상품검색 화면에 들어간다고 해서 수억개의 데이터들이 한번에 다 불러오지는 않는다. 필요한 일부만 불러오게 된다. 모든 데이터를 서...
Access Token API 요청을 할 때 검증용 토큰으로 사용된다. 인증이 필요한 API를 사용할때는 반드시 Access Token을 Header에 넣어서 보내야한다. 예를들어 유저 정보 수정이나 회사 채용공고 지원인원 확인등이다. 유효기간이 짧다. 자주 노출되는 Access Token은 유효기간을 짧게해서 Token이 탈취돼도 해커가 오래 사용하지 못...
JWT 토큰의 특수한 형태이다. 현대에는 대부분 JWT 형태의 토큰을 사용한다. Json Web Token의 약자이다. Header, Payload, Signature로 이루어져있다. > Header : 토큰의 종류와 암호화 알고리즘등 토큰에 대한 정보가 들어있다 Payload : 발생일, 만료일, 사용자 ID등 사용자 검증에 필요한 정보가 들어있다. 추가...
Cookie 서버와 클라이언트가 대화하기 위한 수단이라고 생각하면 된다. 브라우저와 서버가 연결되었을 때 브라우저에서 자동으로 쿠키를 생성하고 응답이 오면 Cookie를 담아서 보낸다. Cookie는 클라이언트 로컬에 저장되고 key와 value가 들어있는 작은 데이터 파일이다. Cookie 안에는 이름 값 만료날짜, 경로정보가 들어있고 일정시간...
DateTime 날짜와 관련될 때 DateTime을 사용한다. > 현재시간과 날짜를 출력할 때는 now()를 사용한다. 결과는 현재 날짜와 시간이 출력된다. 2023-01-01 17:24:02.665 getter를 사용해서 각 날짜와 시간만 출력할 수 있다. 특정한 날짜 특정할 날짜를 불러올 때는 DateTime 생성자를 그냥 실행하면 된다. 생...
CPU는 컴퓨터에서 가장 핵심적인 열할을 수행한다. 크게 연산장치, 제어장치, 레지스터 3가지로 구성되어있다. 구성장치 연산장치 연산장치는 산술연산과 논리연산을 수행하는 역할을 한다. 연산에 필요한 데이터를 레지스터로부터 가져오고, 그 결과를 다시 레지스터로 보내기도 한다. 제어장치 명령어를 순서대로 실행할 수 있도록 제어하는 장치이다. 주기억장치(...
플러터에는 3가지 버튼 종류가 있다. ElevatedButton, OutlinedButton, TextButton 3가지 버튼 스타일에서 대해서 알아보겠다. Buttons ElevatedButton 버튼에 그라데이션 효과가 있어 3D 입체감이 있는 버튼이다 styleFrom을 사용해서 버튼에 스타일을 준다. primary : 배경색을 말한다. onP...
- Data - 관찰이나 측정을 통해 얻은 결과값 information - 의사결정에 도움을 주는 형태, 자료를 처리한 것 컴퓨터 구성 > - 컴퓨터 = 소프트웨어 + 하드웨어 소프트웨어 하드웨어를 사용하기 위한 명령의 집합, 일반적으로 프로그램이라고 부름 > 소프트웨어 = 시스템 소프트웨어 + 응용 소프트웨어 하드웨어 전체를 제어, 운영하는 시...
이진검색과 선형검색을 통해 알고리즘의 효율성을 결정하는 주된 요인이 알고리즘 수행에 필요한 단계 수인 것을 알 수 있다. 하지만 단순히 어떤 알고리즘을 10단계 알고리즘, 200단계 알고리즘이라고 표시할 수는 없다. 선형검색을 예로들면 배열의 수만큼 단계가 필요하므로 배열에 따라 단계 수가 다르다. 원소가 10개인 배열은 10단계가 필요하고 200개인 원소...