일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- doc2vec
- exoplayer cache
- FastAPI
- AWS EC2
- 스피너
- ListAdapter DiffUtil
- kotlin list
- ktor api call
- ListAdapter
- ChatGPT
- 안드로이드
- kotlin collection
- ktor client
- DiffUtil.ItemCallback
- ExoPlayer
- android custom view
- android exoplayer
- map
- 유튜브 요약
- list map
- 유튜브
- llm
- video caching
- 시행착오
- Python
- android ktor
- android
- getChangePayload
- build with ai
- Zsh
- Today
- Total
목록전체 글 (106)
버튼 수집상
요즘IT에서 찾아본 좋은 글. 스크랩하고 싶은 구절을 원문과 함께 인용하겠다. 프론트엔드 개발의 종말 | 요즘IT 저는 지난 몇 달 동안 AI의 등장에 불안해하는 많은 주니어 개발자와 이야기를 나눴습니다. 그들은 GPT-4와 같은 AI 툴이 단기간에 비약적으로 발전하는 것을 보았고, 본인이 HTML/CSS/JS에 능숙해질 yozm.wishket.com In a way, web developers have been made obsolete! These days, if a local bakery or a dentist or an artist needs a website, they're probably not hiring a developer and paying them tens of thousands of ..
2019년, 도쿄 소재의 모 사립대학에 교환유학을 가게 되면서 JASSO 장학금을 신청했었다. 신청서는 학업계획서 (a.k.a. 에세이) 한 장이 전부였는데, 뭐라도 어필하기 위해 삐뚤한 자필로 적어냈다. 처음엔 불합격 통지가 날아왔는데, 출국 전에 결과가 번복되어 최종 합격되었다. 덕분에 도쿄의 기숙사에 살면서 4개월동안 한 달에 8만엔 생활비 지원을 받게 되었다. 나는 미대에 진학했지만, 점차 미술에 큰 뜻이 없어지면서 여러 공부를 전전하고 있었다. 교환학생도, 일본 취업을 생각하면서 미술과는 관계없는 인문학과에 지원했다. JASSO 에세이에서 이러한 전향의 이유를 설득력있게 풀어내는 것에 집중했다. 私は美術学徒として、より良い作品を創るために人文学の素養を持って自分の見識を広めたいと思っています。 これまでも..
https://developer.android.com/studio/preview/studio-bot Meet Studio Bot | Android Studio | Android Developers Learn how to improve your coding productivity with Studio Bot. developer.android.com 스튜디오 봇 Studio Bot은 안드로이드 개발을 위한 코딩 파트너입니다. 안드로이드 개발 질문을 답해줌으로써 생산성을 높여주는 안드로이드 스튜디오 내 대화형 기능입니다. 자연어를 해석할 수 있는 AI가 탑재돼있어서 개발 질문을 영어로 물어볼 수 있습니다. 스튜디오 봇은 개발자들이 코드를 작성하고, 관련 리소스를 찾고, 최적의 방법론을 배우고, 시간을 아낄 수..

1. 이벤트를 한 곳에서 일괄 처리하는 구조가 관리하기 좋다. 이벤트(주로 클릭)을 한 번에 처리하는 EventBus 같은 객체를 활용한다. 현직 회사 제품의 경우, 이벤트를 MutableLiveData 로 선언해서 사용처에서 observe한다. 이벤트를 일괄 관리하면 뷰/뷰홀더마다 인터페이스나 리스너를 각개로 선언할 필요가 없다. 하지만 원래부터 이런 구조가 아니었다면 당장 바꾸기엔 무리가 있을 것이다.. 참고 MVVM의 ViewModel에서 이벤트를 처리하는 방법 6가지 지금 개발하시는 코드에서 ViewModel의 이벤트 처리를 어떻게 하고 계신가요? 헤이딜러에서 LiveData -> SingleLiveData -> SharedFlow -> EventFlow로 이벤트 처리 방법을 변화 하기까지 과정을..
평소에 코드를 짜면서 ChatGPT를 애용한다.몇 번씩 피드백을 주고받은 끝에 만족스러운 (제대로 동작하는) 답을 얻게 되면 나는 한번씩 it works! thanks a lot 같은 감사인사를 덧붙인다.수고를 덜어줬다는 감사의 마음 반, 그리고 만족스러운 답을 받았다는 피드백이 향후 답변에 반영되지는 않을까 하는 의심이 반이었다.이에 관해서 ChatGPT에게 물어봤다. 모든 대화는 영어로 오갔습니다.질문 원문은 약간 각색했습니다.답변 원문은 그대로 싣되, 맥락을 해치지 않는 선에서 요약했으며 임의로 번역했습니다. Qwhen finding your answer helpful, does showing gratitude towards you make any difference to your answers i..
배경 Compose를 아직 도입하지 않은 xml 베이스의 프로젝트에서도 코드로 뷰를 생성해서 쓸 때가 있다. 그럴 때 커스텀뷰를 만들면 반복되는 코드를 은닉하면서 코드 가독성이 좋아진다는 장점이 있다. 커스텀뷰를 만들면서 겪었던 시행착오들과 기억해야할 사항들을 정리해보겠다. 뷰 생성자를 오버라이딩 해준다. class CustomDropDown @JvmOverloads constructor( mContext: Context, attrs: AttributeSet? = null, defStyle: Int = 0 ) : LinearLayout(mContext, attrs, defStyle) { //... } @JvmOverloads 어노테이션을 붙이면 mContext, attrs, defStyle로 만들 수 있..

배경 무한재생되는 30초 내외 분량의 비디오에서 트래픽이 너무 쌓인다고 캐싱이 제대로 되고 있는지 확인 요청이 들어왔다. ExoPlayer는 캐싱 처리를 따로 해줘야 하는데, 기존 코드에서 설정하고 있지 않았다. 확인하기 디버거를 연결한 다음 안드로이드 스튜디오 하단의 App Inspection > Network Inspector 를 켰다. 최초의 요청 이후로도 비디오가 반복되며 재생될 때마다 통신이 오고감을 알 수 있다. 빨간 박스가 그려진 데이터 사이즈는 영상에 따라 달랐다. 기존 코드는 아래와 같다. // player 초기화 private fun initPlayer() { // 싱글턴 오브젝트 ExoPlayerInfo.instance.apply { player = SimpleExoPlayer.Bui..

배경 카드뷰 그림자에 색이 들어가게 해달라는 요청이 있었다. 기존에 outlineSpotShadowColor 라는 옵션이 있으나 API 28부터만 지원했다. 그래서 카드뷰를 직접 구현해보기로 했다. 요구사항 1. 카드뷰처럼 elevation, radius 값 지정이 돼야 한다. 2. 그림자 색 지정이 돼야 한다. 요구사항을 충족시키려면 onDraw()로 구현할 수 밖에 없어보였다. attrs.xml (~/res/values) attrs를 선언하면 xml 코드의 app namespace에서 값을 설정할 수 있다. format을 모르겠을 땐, xml에서 다른 어트리뷰트를 cmd + 클릭해서 확인해보면 된다. 시도1 CustomCardView.kt (커스텀 카드뷰의 루트) class CustomCardView..

지난 글에서 ListAdapter DiffUtil 의 getChangePayload 활용법에 대해 적었다. [안드로이드] ListAdapter DiffUtil 제대로 쓰기 - 2 1편에서 ListAdapter에 submitList를 하면서 기존 리스트를 업데이트할 때 리스트 깊은 복사deep copy를 해야 하는 이유에 대해 적었다. 이번엔 ListAdapter DiffUtil의 각 함수를 자세히 알아보겠다. 샘플 코드 collectingbuttons.tistory.com 이제 DiffUtil을 활용해서 expand - collapse 되는 리스트 UI를 만들어보겠다. 임의로 만든 모의데이터 기반이라 도움이 될지는 모르겠다. 샘플 UI 구조 상위 카테고리 ▲ |_ 하위 카테고리 |_ 하위 카테고리 상위 ..
얼마 전에 ListAdapter의 DiffUtil을 쓰는 법에 대한 글을 썼었다. [안드로이드] ListAdapter DiffUtil 제대로 쓰기 - 1 배경 리사이클러뷰에서 부분적으로 UI를 업데이트할 때 (ex: 찜하기) 업데이트한 리스트를 submitList()로 세팅해도 DiffUtil이 제대로 돌아가지 않는 경우가 있었다. 리스트 변경사항을 제대로 감지하 collectingbuttons.tistory.com 글 1편은 ListAdapter 보다 List.map()에 대해 적었다. 그런데 위 글을 적은 후에도 여전히 헷갈리는 부분이 있어서 다시 정리해봤다. 코틀린 Collections 파일에서 map 함수의 시그니처를 보자. /** * Returns a list containing the resu..