분류 전체보기

Android/Error

[Android] Kotlin runBlockingTest 오류

안녕하세요 점냥입니다:) Kotlin으로 Android 프로젝트를 진행하면서 발생한 문제가 있고 해결 방법에 대해 말씀드리려고 합니다. 문제 상황 당시 Coroutine + Room 작동이 올바른지 테스트를 하려고 했고, Dao에 정의된 모든 함수들은 suspend로 정의되어 있기 때문에 코루틴 스코프가 필요했습니다. @Test @Throws(Exception::class) fun writeHistoryAndReadInList() = runBlockingTest { val history = History(searchWord = "test") historyDao.insertHistory(history) val findHistory = historyDao.findHistoryByWord("test") ass..

이야기/후기

[면접 후기] 판교에 위치한 청소 매니저 관련 서비스 회사

안녕하세요. 점냥입니다:) 오늘은 처음으로 신입 Android 개발자 면접 후기를 가져왔습니다. 제가 이번에 면접 본 회사는 판교에 위치해 있고, 청소 매니저 서비스와 관련된 회사입니다. Android 면접 질문에 대해 공유해드릴 겸, 이번 면접 경험이 매우 만족스러워서 포스팅을 작성하게 되었습니다. 1차 면접 서류를 넣고 나서 3~5일이 지난 후, 합격 결과와 면접 일자를 정해 달라는 메일을 받게 되었습니다. 요즘 코로나로 인해서 화상 면접으로 진행될 줄 알았지만 판교에 위치한 회사에서 대면 면접으로 진행했습니다. 저는 오히려 좋았습니다. 최근에 집에만 있다 보니 ㅎ.. 그런데 면접 당일 날까지 회사 위치를 직접 공지해주지 않아서 당황했어요. 면접 날 메일로 자세히 찾아오는 법을 링크로 건네주는 회사가..

Language/Java

[Java] Thread 강제 종료 시키는 방법

안녕하세요. 점냥입니다:) 이번 포스팅에서는 Java Thread를 외부에서 종료시키는 방법에 대해서 작성해보려고 합니다. 이 주제는 최근 기업 기술 질문에서 대답을 못한 질문 중에 하나로 정답을 찾고 정리하고자 이번 포스팅을 준비하게 되었습니다. while문에서 무한 루프를 돌고 있어 종료되지 않는 스레드, 외부에서 어떻게 강제 종료시킬 수 있는가? class SampleThread implements Runnable { @Override public void run() { while(true) { System.out.println("thread is running"); } } } 모든 Thread는 Runnable의 run() 함수 내 코드를 실행하고 함수의 모든 코드가 실행이 되면 스레드는 자동으로..

Language/RxJava

[RxJava] 여러개 Completable 결합 - andThen

안녕하세요. 점냥입니다:) 이번 포스팅에서도 굉장히 오랜만에 인사드린 것에 대해서 죄송하다는 말씀 먼저 드려야 할 것 같습니다... ㅎ 변명을 하자면 취준, 동아리, 요즘 새벽 시간에 열심히 활동 중인 디스코드로 인해 블로그 활동이 소홀했습니다. 반성합니다 ㅠ 이번 포스팅에서는 현재 개발 중인 프로젝트에서 고민했던 주제인 Completable 결합하는 방법입니다. 이미지를 한 개 저장할 때 진행 중인 프로젝트에서는 Firebase Storage에 이미지를 저장하고 결과 값으로 Completable 스트림을 반환합니다. ViewModel에서 코드는 다음과 같이 같습니다. class MainViewModel( private val imageService: ImageService ) : BaseViewMode..

Android/Common

[Android] RecyclerView - ConcatAdapter

안녕하세요. 점냥입니다:) 굉장히 오랜만에 글을 쓰네요 ㅎ. 다들 잘 지내셨나요? 오늘은 RecyclerView 새로운 버전이 나오면서 새로운 Adapter인 ConcatAdapter에 대해서 알아보겠습니다. 사실 처음에는 MergeAdapter라는 이름으로 나왔지만 ConcatAdpater로 이름이 변경되었습니다. ConcatAdapter RecyclerView는 하나의 Adapter만을 가지며, 반복되는 뷰 리스트를 그리는 위젯입니다. 그 이유 때문에 사진과 같이 Header 혹은 Footer 등을 표현하기 위해 포지션으로 구분하고, 각 뷰 타입의 로직을 포지션 별로 구분하여 넣어주어야 했습니다. 이는 한 클래스에서 2가지 역할을 가지는 방법이며, 뷰가 복잡해질수록 코드가 비대해지는 안 좋은 방법이었..

Android/Common

[Android] LiveData의 Data를 한번만 관찰

안녕하세요. 점냥입니다:) 이번 포스팅 주제로는 SingleLiveData입니다. Android AAC LiveData의 사용법 중 하나로 LiveData를 아직 잘 모르신다면 링크를 먼저 읽어와 주세요! LiveData의 변경된 Data를 오직 한 번만 관찰? LiveData는 AAC ViewModel에서 주로 쓰이는 클래스로 뷰의 수명주기에 알맞게 데이터를 저장하는 역할을 가지고 있습니다. ViewModel에 존재하기 때문에 LiveData들은 디바이스의 가로/ 세로 전환 등 뷰가 재생성될 때에도 데이터가 유지됩니다. 따라서 뷰는 데이터를 다시 네트워크나 내부 저장소에서 가져올 필요가 없이 그대로 이전 데이터를 다시 사용할 수 있죠. 그런데 이러한 특성을 가진 ViewModel + LiveData 패..

Android/Common

[Android] MVVM 적용하기 - View와 ViewModel

안녕하세요. 점냥입니다:) 이번 포스팅으로 MVP 패턴에 이어 MVVM 패턴에 대해 포스팅하려고 합니다! MVVM 패턴은 저의 개인적인 생각으로는 가장 보편적으로 사용하는 안드로이드 아키텍처라고 생각됩니다. 만약 MVVM 패턴에 익숙하다면 Clean MVVM을 공부해보시는 것을 추천드립니다! MVVM Architecture MVVM은 Model, View, ViewModel로 이루어져 있습니다. Model은 MVP에서 사용되는 Model 개념과 동일하고 MVP에 비해 MVVM에서 달라진 점은 View와 ViewModel 간의 관계입니다. ViewModel은 MVP 패턴에서 Presenter와 유사하게 Model의 Data를 요청하고 받아 비즈니스 로직을 처리하는 곳입니다. MVP에서 Presenter와 ..

Android/Common

[Android] 상태바 투명으로 만드는 여러 방법에 대한 일지

안녕하세요. 점냥입니다:) 오늘 포스팅 주제는 상태바의 투명하게, 반투명하게 만드는 방법에 대해서 포스팅해 보겠습니다!~ 이 주제는 동아리에서 팀 프로젝트에서 상태바를 반 투명하게 만들려고 하는 과정에서 있었고 오랫동안 저의 머리를 골치 아프게 만들었습니다. ㅠㅠ 이번에 Android R(API 30)이 되면서 변경사항이 생기게 된 점도 다뤄보겠습니다! 상태바 상태바는 Android에 존재하는 여러 시스템 UI 중 하나이며 시간, 알람 등 디바이스의 정보를 아이콘으로 표시해 주는 역할을 수행합니다. 상태바 컬러 변경 @color/primary @color/primary_dark android의 ststus bar 컬러는 기본적으로 styles.xml의 colorPrimaryDark 속성을 따라갑니다. 따..

이야기/후기

[Mash-up] 동아리 해커톤 후기

안녕하세요. 점냥입니다:) 지난 2021년 2월 27일 토요일에 온라인으로 매쉬업 동아리 해커톤을 진행했습니다~~🎉 저희 배뽀팀은 Andorid, Web, Spring, Design 플랫폼이 팀을 이뤄 해커톤을 진행했습니다. 매번 온라인으로 회의하고 이야기하던 팀원분들을 실제로 만나는 시간이 되어 굉장히 기대가 되었던 날이었습니다. 아쉽게도 5인 이상 집합 금지로 인해 플랫폼 단위로 만나게 되어 아쉬움이 남게 되었어요 ㅠㅠ 입담, 입주자들의 이야기 저희 배뽀팀은 대학생들을 위한 솔직한 자취방 이야기 서비스를 기획했습니다. 입주자들의 솔직한 자취방 리뷰 리스트, 자취방에 대한 상세한 평가(학교와의 통학거리, 집주인 정보, 치안, 청결, 주변 상권 등) 제공해줌으로써 모든 대학생이 자신에게 맞는 방을 구해 ..

Android/Common

[Android] Android Font 직접 적용

안녕하세요. 점냥입니다:) 안드로이드에서 제공해주는 폰트 대신 디자이너가 요구하는 폰트를 적용해야 할 때가 생깁니다. 안드로이드 폰트를 적용하는 방법으로 두 가지가 존재한다고 하여 각각의 방법으로 포스팅을 진행하려고 해요! Font Resource Android 8.0(API 수준 26)부터 Font 리소스가 추가되었다고 합니다. res/font 경로에 폰트와 관련된 리소스 파일을 생성하고 R 파일에 의해 접근이 가능하다고 해요. ex) R.font.my_font Q. Android 8.0부터 지원한다고 한다면 그 이전 버전에서는 사용할 수 없는 건가요? 아니에요. 가능합니다! Support Libaray를 이용해 Android 4.1(API 수준 14) 이상부터는 Font를 사용할 수 있어요. 자세한 ..

점냥
'분류 전체보기' 카테고리의 글 목록 (6 Page)