전체 글12 [Android] 선언형과 리액티브 프로그래밍을 왜 사용하는가 코드를 수정하면서 느낀점들왜 Repository에서 단일 조회만 하더라도 Flow를 노출하는가? 에 대한 대답왜 리액티브 프로그래밍인가XML 기반의 메인액티비에 로직이 많은 코드를 수정하면서코틀린에서도 단순 suspend함수가 아닌 flow를 사용하는지를 체감하게 되었다. 1. 기존 명령형 시스템의 한계UI 상태변경시 모든 변경점에서 상태값을 업데이트해야한다.즉, 현재 액티비티가 아닌, 다른 프래그먼트에서 값을 수정시, 메인액티비티의 콜백을 사용해야한다.이로인한 보일러 플레이트코드 과다, 동일한 코드의 복붙으로 관리포인트가 증가한다. 2. 선언형 접근의 이점무엇을 보여줘야하는가(What)를 정의만 하면, 어떻게(How)는 프레임워크가 처리한다.불변성의 개념과 함께 사용되므로, SideEffect에 대해서.. 2025. 5. 18. [Android] Ktor Client에서 Jwt 인증 로직 구현하기 1. 서론OkHttp+Retrofit2 조합이 안드로이드에서 보편적으로 쓰이는데,Ktor Client를 사용해보면서, 코드작성시 좀더 코루틴 친화적으로 구현이 가능해서 편했다. 인터셉터부분을 ktor에서 처리하면서 배운 내용들이 있어 작성한다. 2. 프로젝트 설정Ktor CIO 및 k-serialization을 추가한다. [versions]ktor = "3.1.2"kotlin = "2.0.10" [libraries]kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }ktor-client-core = { group = "io.ktor", name = "ktor-client-core".. 2025. 5. 5. [Kotlin] 코틀린 코루틴 정리 코루틴이 안드로이드 비동기프로그래밍에서 표준으로 쓰이고 있다. 코루틴에 대한 정리태초에 콜백이 있었다.콜백코드는 어떻게 구현되어있고 왜 콜백지옥이라고 표현하는가?코틀린에서의 단순한 예시를 보자 fun requestApi(cb: Callback) { val th = Thread { val res = api.request() // 블로킹 호출 cb.success(res) } th.start()}해당 함수를 호출하는곳에서 다른쓰레드를 만들어서 해당 쓰레드에서 블로킹을 진행하기 때문에이 함수를 호출하는 외부에서는 비동기로 진행되고 블로킹이 되지 않는다. 함수를 호출한 흐름과 다른 흐름에서 콜백이 실행된다. 콜백 기반 비동기 프로그래밍의 근본적인 문제는 제어 흐름의 역전(.. 2025. 4. 12. [Java] JVM 밑바닥까지 파헤치기 후기 2.5회독을 통해 읽었다.책을 읽을때마다 어려워서 넘겼던 내용들이 보이기 시작하고, 이해가 되기 시작했다.CS적인 측면에서 설명이 좋다 새로운 시야를 알게해주는것 같다. 1장은 PASS 2장런타임 데이터 영역 :- PC 레지스터 : 스레드 복원에 사용, 자바메서드의 줄번호 표시기- 가상 머신 스택 : 스레드와 라이프사이클이 같다. 데이터타입,객체참조,반환주소타입. 지역변수테이블은 컴파일 시점에 고정된다. 슬롯은 32비트 단위- 네이티브 메서드 스택- 힙 : 모든 스레드가 공유. 인스턴스, 배열 저장. 할당 효율을 위해 스레드 로컬 할당버퍼 여러개 존재. 논리적으로 연속- 메서드 영역(런타임 상수 풀) : 모든 스레드가 공유. 타입정보, 상수, 정적 변수, JIT의 코드 캐시 - 런타임 상수 풀 : 클래.. 2025. 2. 25. [책] Android 개발자 도서 추천 안드로이드 신입으로 회사에 입사하며,현업 업무에 필요하여서 읽게된 책들 모음집. 안드로이드는 관련 도서가 정말 적고, 자료들이 빈약하다고 느꼈다.대부분의 자료들이 5년전~10년전 자료들이 많고 양질의 자료를 찾기 힘들었다. 공부하려면 무조건 공식문서를 참고하자..Best ⭐️⭐️⭐️⭐️⭐️핵심만 골라 배우는 안드로이드 스튜디오- 전체적으로 쉬운내용으로 60챕터이상이 구성되어있었다.- XML은 건너뛰고 시스템동작 위주로 읽었다.- 초보자의 입장에서 내부동작의 편린을 엿볼 수 있는 내용으로 구성되어있고 난이도 조절이 매끄럽게 되어있다. 안드로이드 아키텍처, AOT, 이벤트큐로 구현되어 있는 안드로이드 이벤트, 4대컴포넌트, 안드로이드 생명주기, 프래그먼트 등무엇을 공부해야 할지를 알 수 있었다.(2025/.. 2025. 2. 25. [Android] Navigation 정리 프론트엔드 입문이나 프로젝트 세팅에서 가장 중요한거는 네비게이션 세팅이라고 생각한다. 2025년 현재 안드로이드 컴포즈에서 가장 기본적인 네비게이션에 필요한 개념들은 다음과 같다.- NavController- NavBackStackEntry- SavedHandleState- ViewModel 📌 ViewModel과 SavedStateHandle의 관계 1. ViewModel은 기본적으로 프로세스 종료 시 유지되지 않음 • ViewModel은 구성 변경(Configuration Change)(예: 화면 회전) 시에도 유지되는 특징이 있다. • 하지만, 안드로이드 시스템이 앱을 강제로 종료했다가 다시 복원하는 경우 ViewModel도 사라짐. 1. 사용자가 홈 버튼을 눌러 앱을 백그라운드로 보냄2. 안드.. 2025. 1. 30. [회고] 2024년 취준과 회고 ✏️ 1. 공부백엔드1월~올해 1월부터 백엔드에 본격적으로 입문하였다.백엔드 첫 시작은 작년 11월 해커톤에서 무작정 백엔드로 참가해서 나 스스로에게 일정압박을 걸고 학기 중에 공부를 했다.기초지식들은 영한님의 인프런 강의로 배웠고, 시간이 부족하다고 생각해 3배속으로 들었다.2024년 부터, 스프링부트 공부를 본격적으로 시작해서여러 프로젝트를 하면서 코드카타들을 완성해갔던거 같다.EC2로 배포하는거도 이번에 재대로 알게되었다.6월~여름방학때, 동아리에서 RealMySQL 스터디를 모집했다.총 4명이였고, 2달간 주당 2번씩 만나서, 한 차시 당 70페이지 정도 읽고, 토론식으로 스터디를 운영했다.19시에 만나서 맨날 막차시간때까지 2,3시간 정도 정말 몰입해서 했던거 같다.스터디원들과 정말 열심히 했고.. 2025. 1. 3. [책] 인프라/데브옵스 도서 목록&후기 인프라 관련한 도서 모음집 인프라 관련 책들은 생각보다 책의 종류도 적고, 어려운 책이 많은 것 같습니다. CI/CD, AWS, 경험담인 책들이 많고전반적으로 난이도가 높다고 생각합니다. G.O.A.T. ⭐️⭐️⭐️⭐️⭐️⭐️⭐️컴퓨터 네트워킹 하향식 접근 (N회독)이 책을 한 5번은 대출했다가 반납했던것 같다.쿠버네티스 공부를 하다가, 기초가 너무 부족한거 같아서 동기부여를 빡 받은 상태로 읽을 수 있었다. DNS 실전 교과서 책을 읽고나서 읽으니 확실히 자신감이 생겼다.1,2,3장은 2회독임에도 불구하고 다시 읽는데 속도가 너무 안나왔다.하루에 이 책만 공부한다는 마음가짐으로 공부해도 10~20쪽 읽으면 너무 힘들었다.다시 읽으니 전에는 보이지 않던 지식이 보여서 좋았다. 네트워크를 공부할때는 반드시.. 2025. 1. 2. [책] 백엔드 개발자 도서 목록&후기 백엔드를 공부하며 읽은 책들 모음집.마음속에 여운을 남겼던, 끝까지 읽었던 책들입니다.여러책들을 읽을수록 더닝크루거가 생기지 않게 도와줘서 좋았습니다. 단 두가지의 책만 읽을 수 있다고 한다면, RealMySQL과 데이터 중심 애플리케이션 설계을 선택하겠습니다.소장하고 싶은 책들7⭐️ 책 모두구글엔지니어는 이렇게 일한다.개발자를 위한 레디스스프링 배치 완벽 가이드엘라스택 스택 개발부터 운영까지AWS 교과서262가지 문제로 정복하는 코딩 인터뷰 in Java G.O.A.T. ⭐️⭐️⭐️⭐️⭐️⭐️⭐️Real Mysql 8.0 (2.5회독)mysql을 알려주는 너무 좋은책. 한국저자인 것이 너무 고맙다. Mysql의 작동 원리, MVCC를 통한 잠금없는 일관된 읽기, 데이터풀, 트랜잭션의 언두로그,리두로그,.. 2025. 1. 1. 이전 1 2 다음