본문 바로가기

전체 글239

[안드로이드] - coroutine (코루틴) - 1 코루틴 코루틴은 루틴의 일종이다. co + routine 으로 협동하는 루틴이라고 한다. 코루틴은 이전에 자신의 실행이 마지막으로 중단되었던 지점에 그 다음 장소에서 실행을 재개한다. 진입점과 출구점이 여러 개 특징을 가지고 있고, 입구점과 출구점이 하나는 서브루틴이라고 한다. 코루틴은 비동기 실행을 간단한 코드로 처리할 수 있고, 메인 스레드가 블로킹되는 그러한 상태를 관리할 수 있게 도움을 준다. 또한, 코루틴은 비동기 프로그래밍을 하기 위해 콜백로 처리하는 걸, 순차적으로 짤 수 있게 해주는 장점이 있다. 비동기 처리를 순차적으로 처리할 수 있게라는 말이 간단하는 말이다. 구글 I/O 발표 내용 서버를 한 번 호출하고, 서버에서 온 데이터(user)를 텍스트에 넣어주는 코드를 드림코드라고 불린다. .. 2023. 1. 18.
[안드로이드] - 비동기 프로그래밍 기술 (etc. coroutine) 코루틴에 대해서 블로그 작성을 하려고 다양하게 검색하면서 다른 블로거가 작성한 글들을 읽는 와중에 코루틴은 코틀린만에 전유물이 아니라는 걸 알게 됐다. 그래서 비동기 프로그래밍 기술 중 하나인 코루틴이라 생각을 달리하고, 비동기 프로그래밍 기술에 대해서 찾아보았다. 오랫동안 개발자로서 해결해야 할 문제가 있다. 사용자가 기다리거나 애플리케이션 확장을 방해하는 병목 현상을 일으키는 상황을 피하고 싶어 한다는 것이다. 이 문제를 해결하기 위해서 다음과 같은 접근 방식이 존재한다. - Threading - Callback - Futures, promies, 그리고 그 밖에 다른 것들 - Rx (Reactive Extensions) - Coroutines 아래에는 내가 써보았던 기술을 세 가지만 정리할 예정이다.. 2023. 1. 18.
[안드로이드] - 이미지 로더 Coil 라이브러리 (etc. Glide, Picasso) 우리는 안드로이드 개발을 하다보면 이미지 로딩을 하기 위한 라이브러리를 종종 사용한 적이 있을 것이다. 만약 라이브러리 없이 이미지를 로드하려고 했다면, 고려해야하는 요소가 많아진다. 따라서 이 부분을 thrid party 라이브러리를 사용했던 것이다. 쓴이는 Glide 를 가장 많이 사용한 라이브러리라 사용했었고, 이번 프로젝트에서 코루틴을 적용하면서 Coil 라이브러리를 사용하게 됐다. Coil 이 쉽게 적용할 수 있어서 차이가 궁금해졌다. 그래서 이번에 여러 Image loader 라이브러리 종류가 무엇이 있고? 각 라이브러리 차이를 조금이라도 알고자 여러 블로그에서 찾아본 내용을 정리를 해보겠다. Image loader 라이브러리 종류 Glide Picasso Coil AUIL (Android-U.. 2023. 1. 13.
[git] - fatal: Unable to create 'C:/file_path/.git/index.lock': File exists. git add 도중에 기억이 잘 나지 않지만, 평소와 다른 상황을 겪었고, git add 를 하려는데 위와 같은 에러가 발생했다. 위 에러 해결방법 $ rm -rf ./.git/index.lock 터미널에 위와 같이 코드를 작성하면, lock 걸린 게 풀려서 다시 git add 를 할 수 있을 것이다. 위 에러는 특정 Git 프로세스가 동작중일 때 다른 Git 프로세스가 실행되는 것을 막기 위해서 index.lock 이라는 파일이 생기는데 의도된 프로세스가 아니라면 지워주면 된다. 2023. 1. 12.
[안드로이드] Json parser Converter 라이브러리 [Gson VS Moshi] 안드로이드 Retrofit 을 사용하여 remote API 통신할 때 Retrofit Builder 패턴에서 사용하는 addConverterFactory 메서드를 본 적이 있었을 것이다. 아래 메서드 매개변수로 우리는 JSON parser Converter 라이브러리를 적용한다. 적용하는 이유는 JSON 직렬화 / 역직렬화 하는 과정이 필요해서다. 직렬화와 역직렬화에 대해서는 다시 블로그를 작성해서 링크를 걸 예정이다. 여기서 간단하게 설명을 하자면, 문자열 객체 변화하는 과정이라 생각하면 된다. public Builder addConverterFactory(Converter.Factory factory) { converterFactories.add(Objects.requireNonNull(factory.. 2023. 1. 12.
[안드로이드 에러] The Android Virtual Device is currently running in an emulator and cannot be deleted (/*.lock) 문제 발생 안드로이드 에뮬레이터 실행하다가, 강제로 종료 또는 부적절하게 종료하려고 시도할 경우, 안드로이드 실행도 안되고, 해당 에뮬레이터 delete 또는 stop 이 되지 않는다. 안드로이드 스튜디오 Error 난 부분을 읽어보면, 우리 에뮬레이터가 보관되어 있는 디렉터리 쪽에 있는 파일 중에서 .lock 으로 끝나는 모든 파일을 싹 지우면 된다고 나와서 지웠지만, 역시나 되지 않았다. 해결 방법 Mac OS 인 경우, command + space (Spotlight) 또는 우측 상단의 돋보기 클릭 Activity Monitor 또는 활성 상태 보기 입력 메모리 카테고리 클릭 adb Process 삭제 Window 인 경우, 작업 관리자를 열기 (Ctrl + Alt + Del) 메모리 카테고리 클릭.. 2022. 12. 8.