본문 바로가기

분류 전체보기

(28)
Flutter Version Management(FVM) 사용법 정리(Mac) flutter sdk version 관리를 쉽게 할 수 있도록 도와주는 fvm 사용법을 계속 까먹어서 정리하려고 한다.flutter sdk version release가 빠르게 이루어지기 때문에 한번 셋팅해놓고 사용하면 편할 것 같다.설치brew tap leoafarias/fvmbrew install fvm터미널에 위 커맨드를 입력하면된다. 첫번째 커맨드는 이상하게 생겼다고 스킵하면 안되고 fvm을 제공하는 git repository를 추가해주는거라 입력해줘야 한다.삭제brew uninstall fvmbrew untap leoafarias/fvm실행dart pub global activate fvmfvm 설치를 했다면 위의 커맨드를 통해 fvm를 실행시킬 수 있다.사용법https://fvm.app/doc..
get_it, injectable 패키지를 이용한 의존성의 주입 의존성 주입(Dependency Injection)이란 class Car { Engine engine = Engine(); } class Engine {} 위와 같은 코드는 Car라는 클래스가 Engine 클래스에 의존하고 있다. 그리고 Car 내부에서 직접 Engine 클래스 생성자를 사용하고 있다 따라서 Engine 외 Gas와 같은 다른 클래스를 사용하는 차를 만들고 싶으면 새로운 클래스를 만들어야 한다. class Car { Engine engine; Car(this.engine); } class Engine {} 위 코드도 마찬가지로 Car 내부에서 Engine을 사용하지만 Engine을 외부에서 생성해서 주입하고 있다. 따라서 어떠한 Engine이 들어와도 Car 클래스를 재사용 할 수 있는..
flutter_gen 패키지를 이용하여 asset 사용하기 일반적으로 경로에서 이미지나 폰트를 불러오는 경우에는 아래와 같이 문자열로 경로나 폰트 명을 지정한다. Widget image() { return Image.asset('assets/images/profile.jpeg'); } Widget text() { return Text("hello", style: TextStyle(fontFamily: "Pretendard")); } 하지만 이러한 경우에는 오타 등과 같은 휴먼 에러의 위험성이 있고, 유지보수 측면에서도 그다지 좋은 점이 없다. flutter_gen flutter_gen | Dart Package The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-..
Dart의 동시성 정리 - Isolate 동시성(Concurrency) 동시성(Concurrency)과 병렬성(Parallelism) 동시성(Concurrency은 Task들이 빠르게 전환하면서 실행되어 동시에 실행되는 것처럼 보이는 것입니다. 싱글 코어에서도 여러 작업은 동시적(Concurrent)으로 실행되며 Task간의 Context Switch가 발생하면 velog.io Task들이 빠르게 전환하면서 동시에 실행되는 것처럼 보이는 것, 동시성은 싱글 코어에서만 실행되는 것을 의미하지 않고 실제로는 멀티코어에서 실행되는 상황이 더 많다. 즉 동시성은 독립적인 연산은 작은 단위의 연산으로 나누고, 논리적으로 동시에 실행하는 것처럼 보이게 하여 Idle Time을 최소화 하는 구조나 개념을 의미한다. Isolate란? - 앱의 모든 Dart ..
Dart 3 업데이트 문법 Records Record는 익명이고 불변인 집합 타입이다. Records는 크기가 고정되어 있고 여러 타입의 개체를 담을 수 있으며 Map, List, Set과 같은 컬렉션에 저장할 수 있다. syntax Record는 소괄호로 감싸져있고, 안의 요소들은 쉼표로 구분된다. 또한 위에서 말한 것처럼 여러 타입을 담을 수 있다. Record 값은 dollar sign을 통해서 접근할 수 있다. var records = ("first", true, 1); // (String, bool, int) records = ("first", true, 1); print(records.$1); // first print(records.$2); // true print(records.$3); // 1 named field..
CSS 선택자 개념 정리 참고: https://developer.mozilla.org/ko/docs/Learn/CSS/Building_blocks/Selectors CSS 선택자 - Web 개발 학습하기 | MDN CSS 에서, 선택자는 스타일을 지정할 웹 페이지의 HTML 요소를 대상으로 하는 데 사용됩니다. 사용 가능한 다양한 CSS 선택자가 있으며, 스타일을 지정할 요소를 선택할 때 세밀한 정밀도를 허용합 developer.mozilla.org CSS 선택자란? CSS 규칙의 첫번째 부분으로, CSS 내부 속성 값을 적용하기 위해 어떤 HTML 요소를 선택해야하는 지 브라우저에 알려주는 용어의 패턴이다. CSS 선택자 목록 동일한 CSS를 사용하는 경우 개별 선택자를 선택자 목록으로 결합할 수 있다. 개별 선택자 h1 { ..
API에 대하여 API란? API(Application Programming Interface)는 둘 이상의 컴퓨터 프로그램이 통신하는 방법이자, 컴퓨터 사이에 존재하는 중계 계층을 의미한다. 중계 계층인 이유? 프로그램이 서로 데이터를 주고 받을 때 중간에 위치하는 것이 바로 API이기 때문이다. Interface? 인터페이스는 서로 다른 시스템, 장치 사이에서 정보나 신호 등이 오갈 때의 접점이나 경계를 의미한다. 이를 통해 내부 시스템의 설계 구조 등은 알 필요없이 통신이 가능하다. API 역시 데이터 베이스 설계가 어떻게 되었는 지는 상관없이 데이터를 교환할 수 있다. API의 장점 1. 제공자는 서비스의 중요한 부분을 드러내지 않을 수 있다. 내부 시스템의 설계 구조나 데이터 베이스 테이블 등 드러내고 싶지 ..
데이터 교환 형식 - JSON과 XML JSON 이란? 자바스크립트 객체 문법으로 구조화된 데이터 교환 형식으로 여러 프로그래밍 언어에서 사용되고 있다. 1. 자바스크립트 객체 문법 key, value 형태로 구성된 프로퍼티들의 집합 -> {key : value} 2. 데이터 교환 형식 데이터를 교환할 때 JSON은 하나의 양식이다. 3. 여러 프로그래밍에서 사용 다양한 프로그래밍 언어에서 딕셔너리, 객체, 해시테이블, 맵 등으로 사용된다. -> 프로그래밍 언어가 업그레이드 된다 하더라도 JSON은 똑같이 호환되어 사용할 수 있다. -> JSON은 독립적이다. 4. 단순 배열이나 문자열로 표현 가능 JSON의 타입 Javascript Object와 비슷하지만 undefined와 메서드를 포함할 수 없고, Number, String, Boole..