개발자의 스레드 관리는 비효율적 in 플러터
·
Flutter/Flutter
조금은 당돌한 제목으로 시작하는 플러터의 동시성에 대한 글이 글은 수업 중 강사님의 말로 시작됐다.. flutter는 단일스레드를 원칙으로해요  일반개발자가 스레드 건드리는 것보단 컴퓨터한테 맡기는 걸 더 효율적으로 보는거야   ... 네에~?~?~?!!! 메모리 관리는 개발자의 꽃. 아니었나요?  iOS는 기본적으로 UI작업을 메인스레드에서만 진행한다. 오래걸리는 네트워킹 및 등등등 많은 작업들이 메인스레드에 추가되게되면,메인스레드가 스파이크를 찍어 cpu사용량을 110%를 찍을때가 있다. 이러면 느려져서 디버깅을 통해 앱이 왜 느려졌는지, 어디서 느려졌는지 파악하고, 만약 메인스레드에 너무 몰려있는게 원인이 될시에 개발자들은 작업들을 큐로 분산시켜 메인스레드가 하는 일을 줄여줘야한다 .Swift는 G..
Stream, Future 둘의 차이점은 뭐지?
·
Flutter/Dart
🤓❔❓나의 의문점 :Stream이 뭘까?기존 반응형 프로그램에서 얘기하는 Stream과 같은 스트림인가 ( 아니다.. 그냥 비동기 처리를 위해 만들어진 스트림일뿐이었다)둘 다 비동기 프로그래밍 관련한거라면 Future와 Stream은 언제쓰는거지.. 잘 이해가 안가서 작성하는 글  1. Stream 알아보기- Stream이란?Stream은 마치 파도처럼 데이터를 한 줄로 보내는 거라고 생각하면 된다. 데이터를 한 번에 다 보내는 게 아니라, 순서대로 하나씩 흘려 보내는거다. 마치 물이 흐르는 강이나, 한 줄로 나란히 서 있는 사람들이 차례로 앞으로 걸어가는 것과 비슷하다. 예를 들어보자. 유튜브 에서 동영상을 본 적이 있을 거다. 동영상이 한 번에 모두 로딩되는 게 아니라, 조금씩 조금씩 로딩되면서 재..
Enum이 뭐고, Enhanced Enum은 왜 쓸까?
·
Flutter/Dart
Enum- 열거형, Enum에 있는것들은 상수다.- 유한한 상수 집합이라는 특징을 가지고 있다.- UpperCamelCase로 작성해야됨 enum Color { red, green, blue } Color.red : 이 자체가 Color type값 Color.red.name : red 라는 String (String 값이 필요하면 name으로 읽으면 됨) Color.red.index : red 가 위치한 index, 0부터 시작 Color.vlaues : iterable하게 enum을 쓸 수  있다. list화 시켜주는거임  map,list 와 달리 enum을 쓰는 이유 list. map은 리스트 맵이 나열된 값을 쓰는 경우가 꽤 많은데, 이런 일반적인 Map,list를 쓰면 개발자가 '해석'해야됨 (비..
Call by Reference, Call by Value, 깊은 복사, 얕은 복사 in Dart
·
Flutter/Dart
이 글에서는1. 얕은 복사(Shalldow Copy)2. 깊은 복사(Deep Copy)3. Call by Reference4. Call by Value5. 깊은 참조?의 개념이 나옵니다. 단어가 매우 많이 나오니 헷갈리지 마시길 ! 기존에 나는 ! 위에 나오는 개념들에 엄청난 혼동이 왔었다. Call by Value는 원본 값을 바꾸지 않기 때문에 얕게 복사하는 것이다 ! 라고 생각했고, Call by Reference는 메모리 주소로 접근하기 때문에 원본을 건드린다 즉 깊게 참조하는 것이다. 라고 생각했다  검색하니 모든게 틀렸다 ㅋㅋ   나의 문제점* 얕은 복사, call by reference 등의 개념을 다 !제대로 몰랐다1. 얕은 복사와 깊은 복사의 의미부재2. 얕은 복사(shallow Copy..
[새싹/TIL] static
·
Flutter/새싹
보호되어 있는 글입니다.
자꾸 헷갈리는 Const & Final / Var & Dynamic 정리
·
Flutter/Dart
Final과 Const의 차이한줄요약 : 똑같이 상수 선언 할 때 씀. 근데 final은 런타임에 결정, const는 컴파일 시점 final 예제void main() { final DateTime now = DateTime.now(); print(now); // 현재 시간 출력}  위 예제에서 `now`는 `final`로 선언되어, 프로그램 실행 중 한 번만 값을 할당받고 이후 변경할 수 없다. 오 final 얘는 인스턴스 마다 다른 값을 가질 수도 있겠군요 const 예제 void main() { const double pi = 3.14159; print(pi); // 3.14159 출력}var과 dynamic의 차이한줄요약 : 똑같이 타입 모를 때 씀. 근데 var은 초기화 할 때 타입 추론되..
<Final> iOS에서는 Static Dispatch를 위해 쓰던 친구였는뎁숑
·
Flutter/iOS 에서 Flutter 로 전환하며
Final이란 키워드를 다루는 방식이 다르다. 다트에선?런타임 시점에 값이 할당되는 친구. 상수 값을 선언할때 사용된다  스위프트에선?final 키워드를 사용하면 클래스나 메서드가 상속되거나 오버라이드되지 않도록 할 수 있다. 이는 컴파일러가 정적 디스패치를 사용할 수 있도록 하여 성능을 최적화할 수 있다. 결국 둘다 메모리를 절약할 수 있다는 점에선 비슷하다 더보기Swift정적 디스패치 (Static Dispatch)정의: 컴파일 시점에 호출될 메서드가 결정된다.특징: 메서드 호출이 빠르며, 오버헤드가 적다.예시: final 키워드를 사용하여 메서드를 오버라이드할 수 없도록 하면, 컴파일러가 정적 디스패치를 사용하여 메서드 호출을 최적화할 수 있다.
<getter, setter> Swift 에선 프로퍼티였어요
·
Flutter/iOS 에서 Flutter 로 전환하며
Dart는 메서드 형식으로 쓰이지만 프로퍼티라고 불린다고 한다.Swift에서는 그냥 계산 프로퍼티였어요  +)
[새싹/TIL] Const, for문
·
Flutter/새싹
보호되어 있는 글입니다.