본문 바로가기
반응형

전체 글91

[Android] 백그라운드 작업을 위한 Service (1) - 기본 개념 🔴 개요 백그라운드에서 오래 실행되는 작업을 위한 애플리케이션 컴포넌트 서비스는 크게 3가지 특징이 있습니다. 일반적으로 서비스는 보이지 않는 화면에서 동작합니다. 다른 애플리케이션 구성 요소가 서비스를 시작할 수 있으며 이는 사용자가 다른 애플리케이션으로 전환하더라도 백그라운드에서 동작할 수 있습니다. 구성 요소를 서비스에 바인딩하여 서비스와 상호작용할 수 있다. 우리는 서비스를 통해서 다음과 같은 기능을 백그라운드에서 구현할 수 있습니다. 음악 재생 프로세스 간 통신(IPC) 파일 입출력 네트워크 트랜잭션 크게 서비스는 3가지 유형이 있습니다. (포그라운드, 백그라운드, 바인드) 각 유형의 자세한 내용은 다음 포스팅에서 하나하나 알아봅시다. 🔴 서비스 vs 스레드 (Service, IntentSer.. 2022. 7. 5.
[네트워크] REST API란? (REST, RESTful) 우리는 프로그램을 개발할 때 보통은 네트워크 통신을 필요로 합니다. 이때 서버와의 통신을 위한 방법으로 API를 많이 사용하는데 그중에서도 오늘은 REST API에 대해 알아보려고 합니다. 우선 들어가기 전에 API 정의는 다음과 같습니다. 애플리케이션 프로그래밍 인터페이스 쉽게 해석하면 응용 프로그램이 서로 소통하기 위한 일종의 매개체라고 이해하시면 편합니다. 그럼 REST API는 무엇일까요? 말 그대로 해석하시면 됩니다. REST 기반으로 구현한 API 그럼 이제 우리가 알아야 할 것은 REST라는 단어입니다. REST HTTP URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미. .. 2022. 6. 20.
[Android] 리스트 업데이트를 위한 ListAdapter 들어가기 전에, 왜 ListAdapter를 사용하는지 알아봅시다. 일단 RecyclerView에서 일반적으로 아이템을 갱신하기 위해 notfiyItem 메서드를 많이 사용합니다. 하지만 이는 불필요한 아이템들도 일일이 갱신하기 때문에 불필요한 비용이 들어간다는 단점이 있습니다. 여기서 우리는 변경해야 하는 아이템들만 변경해주기 위해서 ListAdapter를 사용합니다. ListAdapter의 기원 DiffUtil ListAdapter를 알아보기 전에 기원이 되는 Util 클래스인 DiffUtil에 대해 알아봅시다. 이름에서 알 수 있듯이 차이와 관련된 클래스인 것 같다는 생각이 드실 겁니다. 맞습니다. 이 클래스는 다음과 같은 역할을 합니다. 두 데이터 셋을 받아서 그 차이를 계산해주는 클래스 DiffU.. 2022. 6. 7.
객체지향의 사실과 오해 - 4장 역할, 책임, 협력 아래 내용은 조영호 님의 "객체지향의 사실과 오해"를 읽고 공부한 내용을 개인적으로 정리하였습니다. 📕 최후통첩 게임을 통해 본 인간 인간이 가지는 본연의 특성이라는 관점에서 인간은 이기적이고 합리적인 존재다. But, 타인과 관계를 맺는 과정 속에서 인간은 본연의 특성을 배제하고 자신의 이익을 최소화하는 불합리한 선택을 하게 된다. ⇒ 이는 개인이 처해 있는 정황 또는 문맥이 인간의 행동 방식을 결정한다는 것을 알 수 있다. ⇒ 여기서 문맥은 타인과의 협력이다. 객체의 세계에서도 협력이라는 문맥이 객체의 행동 방식을 결정한다. 중요한 것은 개별 객체가 아니라 객체들 사이에 이뤄지는 협력이다. 객체지향 설계의 전체적인 품질을 정하는 것은 여러 객체들이 모여 이뤄내는 협력의 품질이다. ⇒ 우리는 객체들 간.. 2022. 5. 25.
[Kotlin] Data Class 이해하기 Data Class는 보통 네트워크 통신이나 DB 모델을 만들 때 주로 사용합니다. 오늘은 이 Data Class가 무엇이고 일반적인 Class랑 무슨 차이가 있는지 알아보겠습니다. Data Class란? 데이터 클래스는 데이터를 보관하기 위해 만들어진 클래스입니다. 데이터 클래스는 toString(), hashCode(), equals(), copy()메소드를 자동적으로 만들어줍니다. 아래와 같이 정의할 수 있습니다. data class User(val name: String, val age: Int) Data Class 특징 ⑴ 데이터 클래스의 생성자는 1개 이상의 프로퍼티를 선언해야 한다. ⑵ 데이터 클래스 앞에 abstract, open, sealed, inner를 붙일 수 없다. ⑶ 데이터 클래.. 2022. 5. 23.
[Android] LiveData에 대해 알아보자 앞선 글에서 ViewModel에서 알아보았습니다. 이제 우리는 ViewModel이 어떤 역할을 하는지 알고 있습니다. ViewModel을 통해 UI 관련 데이터를 관리해주고 View에 데이터를 그려줄 수 있다는 것을 압니다. 하지만 여기서 문제가 생깁니다. 한 번 그려진 View는 데이터가 변화했다고 일반적으로 다시 그려주지 않습니다. 그렇다고 Activity나 Fragment를 다시 그리기에는 불필요한 비용이 듭니다. 그렇다면 데이터의 변경에 따라 즉각적으로 View의 일부분만을 갱신해줄 수 있는 방법이 무엇이 있을까? 그래서 AAC에서 LiveData를 사용해서 해당 문제를 해결해줄 수 있습니다. (물론 현재는 StateFlow를 많이 사용하는 것 같습니다.) LiveData 정의 LiveData의 .. 2022. 5. 10.
반응형

loading