본문 바로가기

전체 글140

View Binding과 Data Binding 예제 1. 들어가기에 앞서 2. 예제 2-1. 가장 기본적인 코드 2-2. View Binding 2-3. View Binding + ViewModel 2-4. View Binding + ViewModel + LiveData 2-5. Data Binding 2-6. Data Binding + ViewModel 2-7. Data Binding + ViewModel + LiveData 2-8. 깃허브 링크 1. 들어가기에 앞서 뷰 바인딩(View Binding) 데이터 바인딩(Data Binding) 뷰 모델(View Model) 라이브 데이터(LiveData) 이 게시글은 위 4개의 개념이 모두 잡혀있다는 가정하에 따로 자세한 설명을 하지 않을 예정이다. 조합별로 어떻게 사용하는지 어떤 게 좋은지 비교 및 연습.. 2021. 5. 18.
셸 정렬이란? 1. 셸 정렬 1-1. 셸 정렬이란? 1-2. 예시 1-3. 소스코드 1-4. 셸 정렬의 시간 복잡도 1-5. 셸 정렬은 삽입 정렬보다 얼마나 빠를까? 1. 셸 정렬 1-1. 셸 정렬이란? 셸 정렬은 삽입 정렬의 개선판 정도로 생각할 수 있다. 삽입 정렬은 거의 정렬되어 있는 수열이 주어졌을 때 좋은 효율을 보여준다는 장점이 있었지만 그 반대로 역순에 가까운 수열이 주어지면 그만큼 좋지 못한 효율을 보여주었다. 그래서 옛날에 도널스 셸이라는 사람이 "흠.. 수열을 어느 정도 정렬되게 바꾼 다음 삽입 정렬을 쓰면 좋지 않을까?" 해서 나온 게 셸 정렬이다. 실제로도 셸 정렬을 할 때 삽입 정렬을 사용한다. 그러니 삽입 정렬을 아직 모른다면 먼저 배우고 오자. 1-2. 예시 위와 같이 내림차순에 가까운 수열.. 2021. 5. 15.
LiveData(라이브 데이터)란? 1. LiveData란? 1-1. Observer 1-2. LiveData 1-3. LiveData의 장점 2. 사용법 2-1. gradle 2-2. LiveData 객체 생성 2-3. Observer 객체 생성 3. 예제 4. 더 알아보기 3-1. LifeCycleOwner 3-2. observeForever 1. LiveData란? 1-1. Observer class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // activity 설정 관련 소스 생략 DB에서 초기 아이템 목록 호출 UI 업데이트 추가 버튼 클릭 리스너 { 아이템 추가 UI 업데이트 } 삭제 버튼 클릭 리스너 { 아이.. 2021. 5. 14.
삽입 정렬이란? 1. 삽입 정렬 1-1. 삽입 정렬이란? 1-2. 예시 1-3. 소스코드 1-4. 삽입 정렬의 시간 복잡도 1. 삽입 정렬 1-1. 삽입 정렬이란? 정렬 방법 중 가장 느린 버블 정렬 버블 정렬보다 조금 빠른 선택 정렬 그리고 선택 정렬보다 조금 빠른 것이 오늘 배울 삽입 정렬이다. 이미 정렬되어있는 수열 중 자신이 들어가야 할 위치를 찾아 삽입한다 하여 삽입 정렬이라는 이름이 붙었다. 말로만 들어서는 이해가 잘 안 가니 다음 예시를 통해 알아보자. 1-2. 예시 위와 같은 숫자를 정렬한다고 치자. 첫 번째 바퀴 [5]와 [7]을 비교해보자. 자리 바꿈이 필요할까? NO! 그렇다면 다음으로 넘어가자. 두 번째 바퀴 [7]와 [8]을 비교해보자. 자리 바꿈이 필요할까? NO! 그렇다면 다음으로 넘어가자. .. 2021. 5. 13.
선택 정렬이란? 1. 선택 정렬 1-1. 선택 정렬이란? 1-2. 움짤로 보는 예시 1-3. 글로 보는 예시 1-4. 소스코드 1-5. 선택 정렬의 시간 복잡도 1. 선택 정렬 1-1. 선택 정렬이란? 정렬 방법 중 가장 느린 것은 버블 정렬. 그리고 그다음으로 느린 방법이 바로 선택 정렬이다. 버블 정렬과 마찬가지로 구현이 단순하며 메모리 공간을 추가로 필요로 하지 않는다. 버블 정렬은 자리 바꿈(swap)이 자주 일어나지만 선택 정렬은 평균적으로 그 횟수가 더 적기 때문에 버블 정렬보다 선택 정렬이 항상 더 나은 효율을 보여준다. 움짤을 통해 어떻게 하는 정렬 방법인지 알아보도록 하자. 1-2. 움짤로 보는 예시 숫자들 중 가장 작은 값을 선택해서 맨 왼쪽에 있는 값과 교환하는 것이 기본적인 개념이다. 가장 작은 값.. 2021. 5. 12.