전체 글 416

SCC Wallet 개인정보처리방침

총칙 SCC (이하 '회사')는 온라인상에서 ‘통신비밀보호법’, ‘전기통신사업법’, ‘정보통신망 이용촉진 및 정보보호 등에 관한 법률’ 등 정보통신서비스제공자가 준수하여야 할 관련 법령상의 개인정보보호 규정을 준수하며, 관련 법령에 의거한 개인정보취급방침을 정하여 회원의 개인정보 보호에 최선을 다하고 있습니다. 회사의 개인정보보호는 다음과 같이 이루어지고 있습니다. 회사는 개인정보보호방침을 통하여 회원이 제공하는 개인정보를 관련법률 및 정부지침의 변경과 더불어 내부 신규서비스의 추가와 서비스 확대시 이에 따른 정책이 추가/변동될 수 있으므로 어떠한 용도와 방식으로 이용되고 있으며 개인정보보호를 위해 어떠한 조치가 취해지는지 홈페이지 첫 화면에 공개함으로써 회원이 언제나 용이하게 보실 수 있도록 조치하고 ..

[Rust] Option<T>가 Null보다 나은 이유(번역)

Null의 문제점 Rust에는 다른 많은 프로그래밍 언어에서 있는 Null이 없다. Null은 값이 없음을 의미하는 값이다. Null이 있는 언어에서, 변수는 항상 Null, 또는 Not-null 두가지 상태 중 하나에 있다. Null의 발명자인 Tony Hoare는 2009년 발표 "Null References: The Billion Dollar Mistake"에서 이렇게 얘기했다: "나는 그것을 10억 달러짜리 실수라고 부릅니다. 그 당시 저는 객체 지향 언어에서 참조에 대한 최초의 포괄적인 타입 시스템을 설계하고 있었습니다. 모든 참조의 사용이 컴파일러에 의해 자동으로 검사되도록 보장하는 것이 목표였습니다. 하지만 null 참조를 넣는 유혹을 이기지 못했습니다. 구현하기가 너무 쉽기 때문입니다. 이..

[Rust] Stack과 Heap (번역)

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

프로그래밍/Rust 2023.05.14 (1)

[안드로이드] 회전목마(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마트 순대국의 정석은 배민이지: 비리지 않고 맛있음, 본인 농부백암순대도 다녀온사람 - 사옹원 한입 아삭 김치전: 크기가 적당하고, 김치도 많음 - 청정원 로제 파스타: 저평가되어있지만, 이만큼 무난한 아이템이 없음 유용한 - 프레머스 해물모둠: 해물이 크고, 씻지않고 바로 넣어도 비린게없음

나/루슐랭 맛집 2023.04.08 (1)

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 삽입 미리보기할 수 없는 소스