본문 바로가기

IT/Android

11/13 read post

728x90
반응형

1.

출처 : https://medium.com/@kyledeguzmanx/what-are-proxy-servers-4df13d91b676

제목 : What are Proxy Servers?

요약 : proxy server 에 대해서 설명합니다. proxy server 를 이용하여 서버를 해커와 기타 조작에 대해서 보호할 수 있습니다. 프록시 서버를 사용하면 서버는 클라이언트의 존재를 숨길수 있고, 역방향 프록시를 사용하면 서버를 숨길수 있습니다.

 

2.

출처 : https://medium.com/@amitshekhar/rxjava-subject-publish-replay-behavior-and-async-b9ef723539ce

제목 : RxJava Subject — Publish, Replay, Behavior, and Async

요약 : RxJava의 subject 에 대해서 설명합니다. subject는 옵저버와 옵저버블 모두로 작동할 수 있습니다. publish, replay, behavior, async 에 대해서 설명합니다. publish 는 구독하는 이후 부터 데이터를 수신할 수 있고, replay 는 구독후 처음부터 발행된 데이터를 수신할 수 있습니다. behavior 는 구독하는 순간 마지막 데이터부터 수신할 수 있고, async 는 구독후에도 최종적으로 마지막에 complete 되기 전에 발행된 데이터 만을 수신할 수 있습니다.

 

3.

출처 : https://sungbin.land/a-fully-diving-into-jetpack-compose-compiler-4f0fd7bead0c

제목 :  Jetpack Compose 컴파일러가 부리는 마법 완전히 파해치기

요약 : @composable 어노테이션이 붙었을 때 컴파일러가 어떻게 동작하는지에 대해서 설명합니다. 코틀린 컴파일러 버전을 체크하고 코드 정적 분석 및 기존 경고를 억제하고 컴포즈 런타임 버전을 체크하고 IR 생성, lowering 단계 시작, 클래스 안정성 추록, Live Literals 활성화, 람다 최적화, Composer 주입, 비교 전파 활성화, Default Arguments 재구현, 컴포저블 그룹 생성, Klib, decoy 생성 의 12단계를 걸쳐 동작하게 되는 과정을 설명합니다.

 

4.

출처 : https://jisungbin.medium.com/gap-buffer-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-e1ed40649af9

제목 : Gap Buffer 자료구조 간단히 알아보기

요약 : 갭 버퍼 자료구조에 대해서 설명합니다. 사용할 공간들을 확보하는 인덱스 확장의 O(N) 시간이 걸리고 , 이렇게 확보된 공간을 gap 이라고 부릅니다. 그 후 커서를 옮긴 후 이 gap 을 삽입, 교체, 제거를 하는데 이 때 O(1) 에 완료됩니다.

 

5.

출처 : https://sungbin.land/jetpack-composes-data-storage-system-slot-table-change-list-82e92d274c32

제목 : Jetpack Compose 데이터 저장 시스템

요약 : slot table 과 change list 에 대해서 설명합니다. slot table 은 발생한 컴포지션에 대한 정보들(컴포지션동안 발생한 일, 사용된 인자, CompositionLocal, 호출된 다른 함수 등등) 이 저장되는 공간입니다.

slot table 은 gap buffer 자료구조를 기반으로 한 빠른 선형 접근에 최적화된 메모리 구조입니다. 2가지 선형 배열로 이루어져 있는데, group 은 intArray 로 컴포저블 그룹에 대한 key 이고 slot 은 Array<Any?> 로 컴포저블 그룹에 대한 value 입니다. 테이블에서 읽고 쓰기를 위한 slotReader 와 slotWriter 가 존재하고 slotReader 는 여러개가 활성화 될 수 있고 , slotWriter는 한개만 활성화가 가능합니다. SlotWriter가 비활성상태일때만 SlotReader 가 활성화 가능합니다. slot table 은 Anchor라는 개념을 도입하여 랜덤 액세스를 활성화 시킵니다. 

ChangeList 는 슬롯 테이블에 기록된 정보를 가지고 컴포저블 트리를 업데이트 하는 작업을 의미합니다. 컴포저블이 방출(컴포지션)될때마다 슬롯 테이블을 보고, 현재 사용 가능한 데이터들을 토대로 컴포저블에 반영할 변경 사항들을 Change 로 모델링해 Change List 에 추가합니다. 컴포지션이 끝나면 구체화(실제 UI 로 그리는 과정) 될 시간이 되며 Change List 에 쌓인 Change 들을 실행합니다.

728x90
반응형