학습

· 학습
1편을 보지 않으셨다면 보고 오시는 것을 추천드립니다! 대용량 파일 다운로드 구현하기 - 1편안녕하세요 오랜만입니다. 바빠서 간만에 돌아왔습니다. 오늘도 뜬금없이 새로운 주제로 찾아왔습니다. “대용량 파일 다운로드를 구현하려면 어떻게 해야 할까?” 얼마 전 친구가 던진 질문입interlude.tistory.com 그럼, 이제 코드를 작성해 봅시다! 최소한의 기능으로 구현하기간단하게 다운로드 함수를 구현해 봤습니다. 한 줄씩 살펴봅시다!public boolean download(String urlStr, Path path, int byteKB) throws IOException { HttpURLConnection conn = null; try { conn = (HttpURLConn..
· 학습
안녕하세요 오랜만입니다. 바빠서 간만에 돌아왔습니다. 오늘도 뜬금없이 새로운 주제로 찾아왔습니다. “대용량 파일 다운로드를 구현하려면 어떻게 해야 할까?” 얼마 전 친구가 던진 질문입니다.특정 OS나 프레임워크에 국한된 질문이었다면 구글링을 통해 바로 해결했겠지만그렇지 않았기에 질문의 의도를 곰곰이 생각해 보았습니다. 어떤 상황에서도 적용될 수 있는 공통적인 해결책을 요구한다고 생각했고, CS 지식에 기반한 해결책을 고민해 보았습니다.고민해 보면서 질문이 꽤 재밌다고 느껴 직접 구현해 보았습니다.참고로 안드로이드에선 DownloadManager를 사용하면 쉽게 구현할 수 있습니다 추가로 notebook lm이라는 재밌는 기능이 생겼길래 만들어봤습니다. 이번 글로 만든 AI 팟캐스트입니다. 대용량 파일 ..
· 학습
얼마전 키 순서라는 문제를 풀었습니다. 이 문제를 풀며 발견한 자바의 BitSet 클래스에 대한 이야기를 해보려고 합니다.이 문제에 관심이 없으신 분들은 바로 비트마스킹 목차로 이동해주시면 되겠습니다.관심이 있는 분들은 한 번 풀어보고 보시면 좋을 것 같습니다. 키 순서문제를 간단히 설명하면 다음과 같습니다.최대 N=500까지의 노드(학생)가 있을 때, 키 비교 결과를 가지고 각 학생의 ‘키 순서’를 정확히 알 수 있는 학생의 수를 구하는 문제.이 문제는 플로이드 워셜로 분류되어 있으며 대부분의 블로그들은 이를 플로이드 워셜로 풀이하고 있습니다. 그러나 저는 플로이드 워셜에 익숙치 않아 DFS를 먼저 떠올렸습니다. DFS로 각 노드에 대해 후손(자신보다 키가 작은 노드들의 집합)과 조상(자기보다 키가 큰..
· 학습
mutableStateOf우리는 지난번 글에서 State와 MutableState를 살펴보았고, 그 과정에서 RecomposeScope와 리컴포지션 과정에 대해 알아보았다.글이 길어져서 다루지 못했지만, 나는 사실 한 가지가 더 궁금했다. State(MutableState) 인스턴스를 생성할 때 우리는 mutableStateOf 함수를 사용한다. mutableState는 무엇을 어떻게 생성해서 뱉어내는가? 이제부터 그것을 알아보려고 한다. mutableStateOf 함수는 다음과 같이 생겼다.@StateFactoryMarkerfun mutableStateOf( value: T, policy: SnapshotMutationPolicy = structuralEqualityPolicy()): Mu..
· 학습
서론(서론은 공식문서에서 발췌한 내용이 대부분이다. 이미 알고 있다면 패스해도 좋다)이번 주제는 Jetpack Compose의 State와 MutableState이다. 지난 번에 작성했던 RecyclerView 글에 대한 후속편도 적어야 하는데, 시간이 부족하다..얼른 시간 내서 작성해보도록 하겠다. 이제는 역사가 유구한 프로젝트가 아니라면 대부분 컴포즈를 사용할 것이다. 그럼 다들 좋다고 사용하는 컴포즈는 어떻게 다를까?컴포즈 이전에 우리는 명령형 UI 형태로 뷰 객체의 프로퍼티를 수정하거나, 메서드를 호출해서 화면을 업데이트 했다.binding.tv.text = "안녕하세요"binding.tv.textSize = dpToPx(context, 14)binding.tv.updatePadding(top =..
· 학습
서론저번 회고 글에서 말했듯 블로그 챌린지를 시작했다. 이번 회차엔 모두 같은 주제로 글을 쓴다.그 주제는 바로 리사이클러뷰다.컴포즈가 만연해진 시대에 (컴포즈를 사용하지 않는 역사가 긴 앱을 제외하면) 리사이클러뷰는 이제 잘 사용되지 않는다.컴포즈로 안드로이드 개발을 처음 시작하는 사람이 늘어나면서 리사이클러뷰를 모르는 경우도 더러 있다고 들었다. 사실 컴포즈만 사용한다면 굳이 알 필요는 없다.그러나 만약 당신이 들어간 회사가 여전히 xml을 사용하고 있다면, 리사이클러뷰 사용을 피할 수 없을 것이다. 그만큼 리사이클러뷰는 앱을 만들 때 많이 사용되는 컴포넌트이다. (컴포즈 사용자라면 생각해 보자, LazyRow, Column, Grid 없이 앱을 만들 수 있겠는가?)리사이클러뷰는 역사가 긴 만큼 자료..
인터루드
'학습' 카테고리의 글 목록