profile
어려울수록 기본에 미치고 열광하라
태그 목록
전체보기 (114)android(26)kotlin(22)swift(21)스위프트(21)iOS(21)RxJava(17)반응형 프로그래밍(16)rxkotlin(16)비동기 데이터 스트림(15)RX(15)CS(13)observable(12)Reactive X(11)코틀린(10)Java(6)reactivex(6)안드로이드(6)coroutine(6)코루틴(5)동시성(5)비동기(5)디자인 패턴(4)Thread(4)JVM(3)Design Pattern(3)RecyclerView(3)Apollo client(3)graphql(3)Android Component(3)TCP/IP(3)View(3)MVVM(2)상속(2)Broadcast Receiver(2)자바(2)정렬 알고리즘(2)Generics(2)멀티 쓰레딩(2)Map(2)RxAndroid(2)추상화(2)취준(2)SOLID(2)OOP(2)context(2)네트워크(2)dependency injection(2)di(2)jetpack(2)제너릭 함수(2)알고리즘(2)lifecycle(2)Observer(2)List(2)garbage collection(2)GC(2)자료구조(2)객체지향 프로그래밍(2)제너릭 클래스(2)카카오페이(2)다형성(2)제너릭(2)service(2)scope function(2)클린 아키텍처(2)회고(2)Adapter(2)의존성 주입(2)Flowable(2)스코프 함수(2)동기화(1)날먹(1)stack(1)소마 면접(1)garbage collector(1)CustomType(1)레포지(1)process(1)data class(1)heap(1)Activity(1)inline function(1)카카오(1)Inflating(1)junit(1)Cache(1)Local Data(1)Handler(1)velog(1)구조화된 동시성(1)Mutext(1)onDraw(1)quicksort(1)delegate pattern(1)callback(1)Hash Collision(1)캡슐화(1)Thread Pool(1)Frameworks(1)연말(1)RecyclerView.Adapter(1)with(1)임계 영역(1)andoird(1)clean architecture(1)input(1)requestLayout()(1)캐시 메모리(1)debounce(1)LRU(1)high order function(1)by(1)BST(1)tistory(1)hasFixedSize(1)Use Cases(1)RxBinding(1)티스토리 단점(1)브로드캐스트 리시버(1)Content Provider(1)composition(1)신입 개발자(1)콘텐트 프로바이더(1)Datastore(1)network(1)scheduler(1)XML(1)고차함수(1)entity(1)ip(1)tcp(1)퀵 소트(1)Looper(1)layout(1)데드락(1)LRU Cache(1)Hashing(1)Open Addressing(1)객체지향 패러다임(1)double linked list(1)test code(1)PendingIntent(1)명령형 프로그래밍(1)CustomTypeAdapter(1)2021년(1)hash function(1)notifyDataSetChanged()(1)Apollo-graphql(1)Application Context(1)꿀팁(1)ANR(1)싱글톤 패턴(1)커스텀 타입(1)DiffUtil(1)Deadlock(1)application(1)onLayout(1)interface(1)Runtime Data Areas(1)when(1)Collection(1)슬라이딩 윈도우(1)Day(1)jetbrains(1)뮤텍스(1)취업준비(1)dagger(1)GitHub 소스코드(1)flow(1)Adapter Pattern(1)HashTable(1)인라인 함수(1)Broadcast(1)가비지 컬렉션(1)Enum(1)VS Code(1)세마포어(1)Process Control Block(1)Chaining(1)inflate(1)소마 지원 팁(1)AAC(1)절차적 프로그래밍(1)Spring boot(1)HashMap(1)inline(1)main thread(1)LayoutInflater(1)이진 트리(1)이진 탐색 트리(1)SharedPreferences(1)수습기간(1)listview(1)환승(1)notification(1)array(1)안드로이드 개발(1)TCP 통신(1)어댑터 패턴(1)Application Not Responding(1)Intent(1)Method Area(1)교착상태(1)github(1)toString(1)Executor(1)ViewHolder(1)병합 정렬(1)EditText(1)다크모드(1)ExecutorService(1)Class Loader(1)mutation(1)view lifecycle(1)SW 마에스트로(1)Android view(1)Kotlin 유용한 함수(1)객체지향 프로그래밍 설계원칙(1)합병 정렬(1)sealed(1)UI Test(1)Field Injection(1)Drivers(1)AlarmManager(1)delegate(1)Critical Section(1)깃허브(1)시간 복잡도(1)Activity Context(1)Android Studio(1)흐름제어(1)운영체제(1)LRU 알고리즘(1)Singleton(1)RxKoltin(1)소프트웨어 마에스트로(1)set(1)run(1)Listener(1)CustomView(1)OS(1)배압현상(1)브로드캐스트(1)스프링 부트(1)ScalarType(1)Native Method Stack(1)비동기 처리(1)function(1)UI thread(1)페이지 교체(1)프로세스(1)유닛 테스트(1)key-value(1)Interface Adapters(1)infix(1)3 Way-Handshake(1)unit test(1)file upload(1)MergeSort(1)VSC(1)서비스(1)Pair(1)Kotlin Function(1)Night(1)다크모드 비활성화(1)Semaphore(1)소마(1)쓰레드(1)패킷 교환(1)소마 코테(1)PublishSubject(1)Wrapper Pattern(1)Subject(1)4-way Handshake(1)apollo(1)옵저버 패턴(1)안드로이드 스타일(1)Backpressure(1)네트워킹(1)PCB(1)Context Switching(1)
post-thumbnail

[Kotlin] with vs run 명확한 차이점 톺아보기

옛날 옛적, 필자는 코틀린의 Scope Function 의 종류와 각각의 특징에 대해 포스팅을 한 적 있다. 그런데, 그 때 정말 글을 무책임하게 썼다는 생각이 문득 들었다. 왜냐하면 최근 본 면접에서 관련한 내용에 대해 물어보셨는데, 나름대로 잘 대답했다고 생각했으나 다시 제대로 공부할 필요가 있다는 피드백을 받았기 때문이다. 문제의 파트는 다음과 같다. with 에 대해 설명할 때, **run 과 특징상 별

2021년 11월 23일
·
3개의 댓글
·
post-thumbnail

언제 뭘 써야돼? 헷갈리는 스코프 함수들

Scope Function 코틀린은 기본적으로 '표준 스코프 함수 (Scope Function)' 라는 것을 제공한다. 스코프 함수는 특정 객체의 컨텍스트 내에서 특정 동작 (프로퍼티 초기화, 활용 등) 을 실행하기 위한 목적만을 가진 함수다. 스코프 함수를 람다 함수로 사용하게 되면 임시로 스코프를 형성하는데, (그래서 이름이 스코프 함수다.) 이 스코프 내에서는 객체의 이름을 통해 일일히 참조할 필요 없이 객체를 접근하고 핸들링할 수 있다는 편리하다는 장점이 있다. 코틀린이 제공하는 스코프 함수는 총 5가지로, apply, run, with, also, let 로 이루어져있다. 그런데, 얼핏 보기에는 역할이나 수행하는 기능들이 너무 비슷해서 무슨 상황에 무엇을 써야할 지 헷갈리게 된다. 필자도 엄청 헷갈려서 매번 닿는대로 아무거나 썼기에, 이게 잘 쓰고 있는게 맞는건지 의구심이

2021년 6월 25일
·
1개의 댓글
·