📖 오늘의 공부
📖 오늘 배운 것
for (i in categoryList.indices)
- 리스트 categoryList의 유효한 인덱스 범위를 순회하며, i는 각 요소의 인덱스를 나타남
categoryList[i] 인덱스를 사용하여 요소에 접근 가능
.isNotEmpty() && toIntOrNull() in -1 until list.size + 1
- 비어 있지 않고, 정수로 변환 가능하며, 그 정수가 리스트의 유효한 인덱스 범위 내에 있으면 리턴
- 보조 생성자를 사용하여 프로포티를 초기화하는 것보다, 주 생성자 활용하면 코드가 더 간결하다
- 운영체제 & 플랫폼
- 안드로이드 운영체제는 리눅스(Linux) 커널과 이에 기반한 안드로이드 소프트웨어 스택으로 구성되어 있습니다.
- 플랫폼 버전이랑 API 레젤이 존재한다.
- API레벨에 따라 새로운 기능 추가, 혹은 코드 전체를 변경해야 할 수 있음
- 코틀린은 함수형 프로그래밍과 객체지향 프로그래밍 언어다.
👀 함수형 프로그래밍
일급 시민인 함수
- 함수를 일반 값처럼 다룰 수 있다.
- 변수에 저장
- 인자로 다른 함수에 전달할 수 있음
- 함수에서 새로운 함수를 만들어서 반환할 수 있다.
불변성
함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불>변 객체를 사용해 프로그램을 작성한다.
부수 효과(side effect) 없음
함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 >변경하지 않으며,
함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용한다.
- Jetpack (안드로이드 채용 공고에서 가끔 보여서 궁금해서 정리해봄. )
- 2018년 5월 8일에 구글이 발표한 라이브러리와 도구 모음집
- 개발자들이 쉽고! 빠르고! 퀄리티 좋은! 앱을 만들 수 있도록 도와주는 라이브러리와 도구를 모아두었다.
- 모바일 기기는 기기마다 해상도, 성능, 버전 다 다르다.
- 같은 코드지만 Jetpack API를 사용하여 일관성을 유지하는데 도움이 된다.
- 생명 주기와 메모리 누수를 해결한다.
- 안드로이드 제트팩 구성 요소
- Jetpack 라이브러리는 크게 4가지 카테고리로 분류할 수 있고, 하위 카테고리로 또 나뉜다고 한다.

- Data Binding : XML 레이아웃 파일에서 데이터를 직접 바인딩하여 사용
- Lifecycles : 안드로이드 컴포넌트의 생명주기를 관리
- LiveData : 데이터의 변경을 관찰
- Room : SQLite DB를 관리
- ViewModel : UI 관련 데이터의 생명주기를 관리
- CameraX : 다양한 카메라 호환성을 제공
- Navigation : 앱 내 화면 간의 이동 관리
- WorkManager : 백그라운드 작업 관리
- Compose : 안드로이드 UI를 선언형으로 심플하게 구성
- Paging : 대량의 데이터를 효율적으로 로드
- AppCompat : 최신 안드로이드 기능을 이전 버전에서도 사용할 수 있게 처리
- Hilt : 의존성 관련 라이브러리
- 입문 단계에서 꼭 필요한 라이브러리
- Collection
- ConstraintLayout
- Fragment
- RecyclerView
- ViewPager2
- Preference
- Room
📖 회고
오늘 처음으로 코드 해석을 진행했다.
- 더러운 코드를 보면서 나는 그렇게 하지 말아야지라고 다짐했다.
- 내가 푼 것과 다르게 작성한 코드를 보면서 새로운 방식을 배워갔다.
- 자주 보다 보면 익숙해져서 자연스럽게 코드를 잘 짜지게 된다.
계속 안 보다가 오늘 우연히 보게 됐는데 새롭게 알게 된 것들이 있다.
앞으로 자료를 받게 되면 꼭 읽어 보기.. 머쓱
registerForActivityResult
개념 이해만 하고 실습하면서 조금 더 익숙해 질려고 했는데, 시간이 없어서 밤에 추가로 해서 내일에 올릴 예정!