IPC IPC(Inter Process Communication)는 프로세스 간의 통신을 일컫는 말입니다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고받을 수 있다는 것입니다. 즉, 이는 동시에 접근 가능한 메모리, 다른 말로는 서로 공유하는 메모리가 있다는 것을 뜻합니다. IPC의 종류 1. 익명 파이프 (Anonymous PIPE) 익명 파이프는 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 데이터를 읽기만 할 수 있기 때문에 한쪽 방향으로만 통신이 가능한 반이중 통신이라고도 부릅니다. 따라서, 양쪽으로 모두 송/수신을 하고 싶으면 2개의 파이프를 만들어야 합니다. 간단하게 사용할 수 있는 장점이 있고 단순한 데이터 흐름을 가질 땐 파이프를..
인터럽트 (Interrupt) 인터럽트는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행 중인 작업을 즉시 중단하고 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것입니다. 하드웨어 장치가 CPU에게 어떤 사실을 알려주거나 CPU의 서비스를 요청해야할 경우, CPU 내에 있는 인터럽트 라인을 세팅하여 인터럽트를 발생시킨다 CPU는 매번 프로그램 카운터(PC)가 가리키는 명령어를 수행한 뒤, 다음 명령을 수행하기 전에 인터럽트 라인이 세팅되었는지 체크합니다. 이를 통해 인터럽트가 발생했으면 CPU는 현재 수행 중이던 프로세스를 멈추고 운영체제의 인터럽트 처리 루틴으로 이동하여 처리힙니다. 인터럽트의 종류 1. 하드웨어 인터럽트 (외부 인터럽트) 하드웨어 컨트롤러가 CPU..
Lottie Lottie 라이브러리는 Airbnb에서 만든 애니메이션 오픈소스 라이브러리입니다. Lottie를 사용하면 JSON 파일 형식으로 데이터를 불러와 간편하게 애니메이션을 표현할 수 있습니다. Lottie Easily add high-quality animation to any native app. Lottie is an iOS, Android, and React Native library that renders After Effects animations in real time, allowing apps to use animations as easily as they use static images. airbnb.design GitHub - airbnb/lottie-android: Render..
Glide Glide는 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리입니다. Glide는 사용법이 간단하고 확장성도 넓어서 널리 사용되고 있습니다. 로컬 이미지 뿐만 아니라 네트워크 상의 이미지도 간단하게 불러올 수 있고, gif와 같은 애니메이션 이미지도 불러올 수 있도록 해줍니다. 또한, 비디오 스틸의 로딩, 디코딩, 캐싱 등의 다양한 API를 사용할 수 있습니다. GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling An image loading and caching library for Android focused on smooth scro..
CardView CardView는 아래와 같이 각 모서리를 둥글게 표현할 수 있는 형태의 레이아웃을 말합니다. 라운드 처리 뿐만 아니라 그림자 효과도 쉽게 줄 수 있어 손쉽게 사용자의 눈에 띄도록 표현할 수 있습니다. 따라서, 보통 리스트뷰 계열의 데이터 목록에서 각 아이템을 표현하고자 할 때 자주 사용됩니다. CardView 사용하기 CardView를 사용하기 위해서는 build.gradle에 Material Library가 추가되어 있어야 합니다. implementation 'com.google.android.material:material:1.9.0' 다음과 같이 레이아웃에 CardView를 추가합니다. cardCornerRadius : CardView의 각 모서리의 둥근 정도 지정 cardBack..
Jsoup Jsoup은 Java HTML Parser로서 HTML을 파싱할 때 주로 사용합니다. 크롤링과 관련한 프로젝트를 수행할 경우 유용하게 사용할 수 있습니다. Jsoup 사용하기 1. Manifest에 권한 선언 Jsoup을 사용하기 위해서 인터넷에 대한 권한을 추가합니다. 2. build.gradle에 의존성 추가 Jsoup을 사용하기 위해서 build.gradle에 Jsoup 라이브러리를 추가합니다. implementation 'org.jsoup:jsoup:1.15.3' 3. 데이터 클래스 작성 가져올 HTML에서 필요한 데이터를 파악해서 data class를 작성합니다. 뉴스 제목, 링크, 이미지 정보가 필요하다고 하면 다음과 같이 작성합니다. data class NewsModel( val ..
Tikxml Retrofit을 사용할 시 보통 대부분 응답 결과가 JSON으로 오기 때문에 GsonConverter를 사용합니다. 하지만 국내 일부 공공데이터나 오래된 데이터는 XML 결과만 제공합니다. 과거에는 SimpleXML 라이브러리를 활용하여 XML 파싱이 가능했지만 현재는 deprecated된 상태입니다. 따라서, 같은 기능을 하는 XML Parser인 Tikxml을 주로 사용합니다. GitHub - Tickaroo/tikxml: Modern XML Parser for Android Modern XML Parser for Android. Contribute to Tickaroo/tikxml development by creating an account on GitHub. github.com R..
Retrofit Retrofit A type-safe HTTP client for Android and Java square.github.io Retrofit은 OkHttp와 동일하게 Square에서 만들어졌으며 OkHttp를 기반으로 더 Type-safe하고, 더 직관적으로 사용할 수 있는 라이브러리입니다. OkHttp는 AsyncTask로 서버와 통신을 하였는데 이는 시간이 많이 소요되고 구현이 어렵습니다. 하지만 Retrofit은 AsyncTask 없이 Background Thread 실행 -> Callback을 통해 서버와 통신을 하기 때문에 성능이 좋고 간편하게 사용할 수 있는 장점이 있습니다. Retrofit에서는 Annotation을 사용하기 때문에 코드 가독성이 뛰어납니다. 또한, 반복된 ..