일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- kotlin list
- 스피너
- ansi2html
- ktor api call
- 독서
- getChangePayload
- ListAdapter DiffUtil
- DiffUtil.ItemCallback
- ExoPlayer
- ChatGPT
- android ktor
- ktor client
- ListAdapter
- map
- 안드로이드
- doc2vec
- 유튜브
- android exoplayer
- FastAPI
- llm
- kotlin collection
- list map
- build with ai
- exoplayer cache
- AWS EC2
- video caching
- android
- android custom view
- Python
- 시행착오
- Today
- Total
목록전체 글 (100)
버튼 수집상
배경 텍스트가 길어졌을 때 말줄임표와 함께 & more가 노출되게 해달라는 요구사항이 있었다. brand1, brand2, brand3, brand4 ❌ brand1, brand2, b… ✅ brand1, br… & more TextView의 텍스트 길이가 화면 너비를 넘어갈 때 처리를 위해 ellipsize 옵션이 제공된다. ellipsize 예시 "aaabbbcccddd" none aaabbbccc start …bcccddd middle aaa…cddd end aaabbbc… marquee 오른쪽에서 왼쪽으로 흐르는 효과 단, 아래 조건 필요 textView.isSelected = true textView.isSingleLine=true (singleLine대신 maxLines=1로 잡는 건 안 됨..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/m5ctr/btsA7qpJGEL/WCbQk9MTvl1ZPr1SS3Qb4K/img.gif)
지난 글 링크 [안드로이드] ListAdapter DiffUtil 제대로 쓰기 - 3 지난 글에서 ListAdapter DiffUtil 의 getChangePayload 활용법에 대해 적었다. [안드로이드] ListAdapter DiffUtil 제대로 쓰기 - 2 1편에서 ListAdapter에 submitList를 하면서 기존 리스트를 업데이트할 때 리스트 깊은 collectingbuttons.tistory.com 지난 글에 이어서 DiffUtil.ItemCallback의 getChangePayload 함수를 이용해서 expand - collapse 되는 리스트 UI를 만들어보겠다. UI 구조 상위 카테고리 ▲ |_ 하위 카테고리 |_ 하위 카테고리 상위 카테고리 ▼ 상위 카테고리 ▼ 상위 카테고리 ▼..
Elastic Search Search API 결과 { 'took': 5, 'timed_out': False, '_shards': { 'total': 1, 'successful': 1, 'skipped': 0, 'failed': 0 }, 'hits': { 'total': { 'value': 1, 'relation': 'eq' }, 'max_score': 1.0, 'hits': [ { '_index': 'INDEX_NAME', '_id': 'ID', '_score': 1.0, '_source': { 'item_idx': 4561, 'subject': '글 제목 예시', 'contents': "글 내용 예시입니다. 보통 이것보다도 줄줄이 길게 들어갑니다.", 'author_nick': '작성자명', 'cre..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJM9Z9/btsAxVwapLE/9fSNWb5E6uT81vadWMBKUk/img.png)
빠르게 보는 결론 쿼리를 일반 문자열로 적었더니 재사용도 어렵고 가독성도 떨어져서 ORM을 도입해봤다. 그랬더니 리스폰스 속도가 너무 느려졌다. 일단 잠정 중단하고 무엇을 어떻게 도입해봤는지 행적을 남긴다.ㅠㅠ 배경 리스트를 뿌리는 기능이 대부분인 BackOffice 사이트에 FastAPI로 API 백엔드를 만들었다. 그런데 내가 쿼리를 못 짜서인지, get 함수 바디가 엄청나게 길고 안 읽혔다. 그냥 통짜 문자열이라서 신택스 하이라이팅이 안 되는 게 너무 불편했다. 문득 ORM이라는 것을 기억해내고 장단점을 찾아봤다. 복잡한 데이터 조작없이 select 쿼리가 대부분이라면 ORM을 써도 괜찮지 않을까 싶어서 chatGPT에 물어봤다. Yes, considering your emphasis on sele..
https://www.youtube.com/watch?v=JM-Tz6dGH1U 이력서도 코드처럼 - "코드처럼" 이란? : 개발자는 클래스를 만들고 변수, 함수를 작성하면서, 코드만 봐도 기능을 대략 파악할 수 있도록 구조적으로 짠다. - 줄줄이 나열하는 글 말고, 구조를 잡고 세부사항을 정리하자. - 예시 1. 보유기술 언어: Java 프레임워크: Spring Framework 데이터베이스: Oracle, MySQL, MariaDB 프론트엔드: Javascript, jQuery, HTML, CSS 상세설명 - 3년동안 SI 프로젝트를 수행하면서 Spring Framework MVC 패턴으로 CRUD 화면 개발을 시작으로 경력이 늘면서 다중접속자 제한, DB 데이터 처리속도 향상과 같이 고객의 다양한 요..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/I49AW/btszZHk628f/Xn8mUH28vKxtMX2KmZv1k0/img.jpg)
느낀 점 - 발화자의 진실된 태도가 발화의 진정성을 보장하지는 않는다. - 서비스/기능이 궁극적으로 유저에게 편리를 제공하기 위한 것임을, 기술자는 생각보다 자주 잊게 되는 것 같다. - 기술자는 유저가 불편함을 마주했을 때의 물리적 고통에 공감할 줄 알아야 한다. - 주력제품을 개발할 때 시장에 나와있던 기존 제품을 역엔지니어링하기도 했다는 일화를 듣고 놀랐다. - 실리콘밸리 업계는 특허 출원에 대한 노하우와 감각이 남달랐다. - 실리콘밸리고, 할리우드고, 망상증에 불과한 것을 "세상에 맞서는 의지력 있는 사람" 인 양 관대하게 받아주는 경우가 왕왕 있는 것 같다. - 매스컴에서 테라노스 CEO 엘리자베스를 한참 띄워주는 동안, 강압적이고 비윤리적인 회사 밑에서 고통받았을 직원들의 불행에 몰입됐다.. ..
안드로이드는 리눅스 프로세스에서 돌아간다. 프로세스는 시스템이 메모리를 회수하기 reclaim 전까지 코드가 계속 돌아가야할 때 생성된다. 프로세스의 생명주기는 어플리케이션이 직접 관리하지 않는다. 중요한 작업중인 프로세스를, 메모리 관리 차원에서 시스템이 kill해버리지 않도록 안드로이드 컴포넌트를 제대로 사용해야 한다. 1. Processes and app Lifecycle (링크) Process 종류 역할 Android Component foreground process 유저가 현재 하는 일 담당 우선순위 가장 높음, 가장 마지막에 kill 된다 Activity (onResume 이후) Broadcast Receiver (onReceive 이후) Service (생명주기 동안) visible pro..
binding.webView.setOnScrollChangeListener { _, _, scrollY, _, oldScrollY -> if (abs(scrollY-oldScrollY)
Neil Dygrasse Tyson on StarTalk Podcast Matt : Well, while we are doing calculations, Tom Foreman on Facebook asks "is Math a discovery or an invetion"? Charles : Beautiful, beautiful. Neil : Don't get me started. I wanna hear Charles first. Charles : Okay. Well, remember that my wife is a mathematician. Neil : Yes, yes. And my wife has a Ph.D. in Mathematical Physics. Charles : That's right. Tw..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bl7oUK/btsyFlQ538c/0KVZao1k55YtigjSeFDBkk/img.png)
순서 1. 데이터셋 준비 2. 형태소 분석 (Tokenization) - 한글 형태소 분석기 nori, konlpy - Elasticsearch 의 REST api 사용하거나 파이썬 모듈 사용 - Elasticsearch 콘솔 홈 > Dev Tools 에서 REST api 테스트 가능 3. 단어장 (Vocabulary) - 빈 단어장 생성 - 형태소 분석이 완료된 텍스트 데이터를 단어장에 업데이트 - 중복 제거하고 각 토큰마다 식별ID 부여 4. 단어 임베딩 (Embedding) - 모델: Word2Vec, FastText, gensim 등 - 토큰화된 텍스트를 위 모델들에게 학습시켜서 벡터 얻기 Elasticsearch 용어집 SQL Elasticsearch Database Index Table x R..