분류 전체보기 491

[Rust] Stack과 Heap (번역)

Stack과 Heap 많은 프로그래밍 언어에서는 스택(Stack)과 힙(Heap)에 대해 자주 생각할 필요가 없다. 그러나 시스템 프로그래밍 언어인 Rust에서는 값이 스택에 있거나 힙에 있는지 여부가 언어의 동작 방식과 특정 결정을 내리는 이유에 영향을 미친다. 스택에 대하여 스택과 힙은 모두 런타임(Runtime)에 코드가 사용할 수 있는 메모리의 일부이지만 구조가 다르다. 스택은 값을 가져온 순서대로 저장하고 반대 순서로 값을 제거한다. 이것을 "Last In, First Out" (LIFO)라고 한다. 접시 더미를 생각해보라. 접시를 더 추가하면 더미 위에 놓고 접시가 필요할 때는 가장 위에서 하나씩 가져온다. 중간이나 바닥에서 접시를 추가하거나 제거하는 것은 그다지 효과적이지 않을 것이다. 데이..

[안드로이드] 회전목마(Carousel) 애니메이션 구현하기

게임에서 아이템이나 캐릭터 선택을 할때 회전 목마처럼 돌아가는 선택 애니메이션을 자주 볼 수 있는데, 이것을 안드로이드에서 구현해 볼 수 있는 기회가 생겼다. 사실 노가다를 하면 어떻게든 구현할 수 있지만, 이번에는 문제를 분석하고 쪼개보는 연습을 겸해봤다. 💡 요구사항: 3가지 종류의 상자가 있고, 이 상자들을 돌려가면서 열 상자를 선택하게 해주세요. 1. 상자 유형 데이터화 첫번째로 해야할 일은 상자를 데이터화하는거다. enum 클래스로 상자의 이미지, 가격, 이름이 담긴 LuckyBoxType을 만들어 주었다. enum을 사용한 이유는 순차적 접근이 sealed class보다 훨씬 쉽기 때문이다. enum class LuckyBoxType( val image: Int = 0, val cost: In..

포맷 후 cli로 설치 셋업

평소에 사용하는 프로그램들을 새로운 Mac에서 쉽게 설치하는 용도로 모아보았다. brew install --cask google-chrome brew install --cask visual-studio-code brew install --cask slack brew install --cask notion brew install --cask docker brew install --cask karabiner-elements brew install --cask postman brew install --cask iterm2 brew install --cask figma brew install --cask displaylink brew install --cask dbeaver-community brew insta..

[Python] 국내 주요 음원차트 API

Melon | melon-chart.py Bugs | bugs-chart.py Genie | genie-chart.py Vibe | vibe-chart.py Flo | flo-chart.py Flutter 강의를 막 떼서 음원차트 트래킹 앱을 만들어볼까싶었다. Front는 목록이랑 알림정도라서 난이도가 높지않아 보였지만, Backend는 국내 음원사이트 긁어오는 프로그램부터 만들어야하는데...생각에 현재 배포된 국내음원차트 API들을 살펴보았는데 대부분 웹 크롤링 방식이었다. 봇이라고 거르지도 않고, 음원사이트들이 그래도 몇년에 한번씩 단장하기때문에 꽤 괜찮은 방법이긴하지만 개인적으로는 진짜 API를 따오고 싶었다. 다행히도 내가 안드로이드 개발자이기 때문에 당장 떠오르는 방법이 있었다. 바로, 앱에서 ..

자취인 추천 간편식 명단

맛있는 - 멕시카나 매콤 닭강정 (양념): 치킨 충동을 막아줌 - 배민B마트 순대국의 정석은 배민이지: 비리지 않고 맛있음, 본인 농부백암순대도 다녀온사람 - 사옹원 한입 아삭 김치전: 크기가 적당하고, 김치도 많음 - 청정원 로제 파스타: 저평가되어있지만, 이만큼 무난한 아이템이 없음 - 비비고 깻잎고기만두: 피와 속의 비율이 알잘딱 미쳤고, 깻잎이 깔끔하게 고기의 느끼함을 잡아줌 - 하코야 살얼음 동동 가라아게 냉우동: 맛있는 가라아게, 쫄깃한 면발과 상큼한 국물. 하코야 시리즈에 실망했어도 이건 추천. - 참도깨비 부산 돼지국밥: 저렴한데 돼지살이 푸짐함. 돼지국밥 특유의 냄새에 민감하다면 부추를 잔뜩 넣어먹으면 맛있음 유용한 - 프레머스 해물모둠: 해물이 크고, 씻지않고 바로 넣어도 비린게없음

Flow.map() vs Flow.transform()

fun getPagedFavoritePosts(): Flow = Pager( config = PagingConfig(25), pagingSourceFactory = { GenericPagingSource { afterKey -> redditApi.loadFavoritePosts(getUserName(), afterKey) } } ).flow.transform { pagingData -> emit(pagingData.map { (it.data as PostDto).map() }) } 우연히 오픈소스 코드를 보다가, 나라면 map을 썼을 것 같던 구문에 transform을 사용한 것을 발견했다. transform? 처음 들어봤는데 이름이 map과 왠지 비슷한 일을 할 것같아서 찾아보았다. map Flow의 ..

Stable Diffusion 망한 AI 작업물 모음집

유튜브에서 AI가 생각한 "나루토" 캐릭터 등등이 유행하길래 나도 만들어보고 싶어서 시도를 해보았다. Stable Diffusion에다가 Realistic Vision V2.0 모델을 적용시키고 아래 키워드들을 사용했다. img2img로 만든 것도있지만, 이누야샤의 경우는 text2img의 결과물이다. photo of , detailed faces, highres, RAW photo 8k uhd, dslr 모든 것이 나루토 정도 퀄리티만 되어도 바로 유튜브 비디오 찍어내려고 했는데... 그나마 이 이미지들도 파라미터를 조절해가면서 얻은거라... 아마도 랜덤한 파라미터를 주면서 한 캐릭터당 5장씩 뽑아내도록 자동화를 해보면 괜찮아질 수도 있을거같기도하고...ㅋㅋㅋ 캐릭터가 너무 얼탱이 없어서 올려본다.

나/이슈 2023.03.29

[안드로이드] 특정 시간 내 중복 Request를 막는 OkHTTP Interceptor 구현하기

특정시간 안에 보낸 동일한 Request에 대해서 서버에 요청하지 않고, 이전에 받은 응답값을 그대로 내려주는 Interceptor를 구현해보았다. Response Body를 어떻게 재사용할 것인가 고민을 많이 했는데, ByteArray 형태로 읽어두고 중복된 요청일때 ResponseBody로 만들어주는 방법을 사용해보았다. 이렇게 짧은 시간안에 연속적으로 요청을하더라도, 500ms 이후에만 새로 요청을 하게된다. 개발중인 앱의 Request Method가 전부 POST이기때문에, Request body까지 읽어서 hashing을 하고있는데, 그럴 필요까지 없으신분들은 Request URL 자체를 hash 값으로 잡아도 무방할 것이다. 혹시 유용했다면 Star를~! HTML 삽입 미리보기할 수 없는 소스

구글 설문지 (Google Forms) 완료시 데이터 외부 API로 전송하기

구글 설문지를 완료했을때 보상을 주거나, 추가 정보를 처리해야 할 일이 있을 수 있다. 그래서 구글 설문지를 완료하면 외부 API로 데이터를 보내는 방법을 정리해보려한다. OAuth Scope 추가하기 먼저 더보기 메뉴에서 [스크립트 편집기]로 진입한다. 외부 API로 요청을 보내기 위해서 아래 scope에 대한 권한이 필요한데, 이것을 정의하려면 appsscript.json을 편집해야한다. "https://www.googleapis.com/auth/script.external_request" 프로젝트 설정 > 편집기에 [appsscript.json 매니페스트 파일 표시] 체크를 하면 편집기에서 appsscript.json이 생긴 것을 볼 수 있을 것이다. { "timeZone": "Asia/Seoul"..

[PC] 레데리2 치트키 및 사용법

RDR2 치트 사용법 최고의 서부낭만 갓겜 레데리2...치트코드마저도 낭만이 뚝뚝 떨어지네요. 레드데드리뎀션2에서 치트를 쓰려면 옵션 > 설정 > 치트에서 치트를 입력하면됩니다. 치트키 *대소문자 상관없습니다! 특수문자, 띄어쓰기는 유의해주세요. 효과 설명 치트키 기본 무기 세트 기본 무기들을 얻습니다. A simple life, a beautiful death 스텔스 무기 세트 스텔스 무기들을 얻습니다. Death is silence 건슬링거 무기 세트 건슬링거 무기들을 얻습니다. History is written by fools 500달러 추가 500달러를 추가합니다. Greed is now a virtue 모든 의상 해금 모든 의상을 해금합니다. Vanity. All is vanity 모든 조리법 ..