전체 글 496

미곤 개인정보처리방침

개인정보처리방침 미곤(이하 '회사')는 「개인정보보호법」에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다. “개인정보처리방침”이란 이용자의 소중한 개인정보를 보호함으로써 이용자가 안심하고 서비스를 이용할 수 있도록 회사가 준수해야 할 지침을 의미합니다. 1. 개인정보의 처리 목적 회사는 개인정보를 다음의 목적을 위해 처리합니다. 이용자가 서비스를 이용하기 위해 회원가입을 할 경우, 회사의 서비스 이용을 위해 필요한 최소한의 개인정보를 수집합니다. 이용 목적이 변경될 시에는 사전동의를 구할 예정입니다. 가. 홈페이지 회원가입 및 관리 회원 가입의사 확인, 회원제 서비스 제공에 따른 본인 식별·인증, 회원자격..

코인투표소 개인정보처리방침

개인정보처리방침 코인투표소(이하 '회사')는 「개인정보보호법」에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다. “개인정보처리방침”이란 이용자의 소중한 개인정보를 보호함으로써 이용자가 안심하고 서비스를 이용할 수 있도록 회사가 준수해야 할 지침을 의미합니다. 1. 개인정보의 처리 목적 회사는 개인정보를 다음의 목적을 위해 처리합니다. 이용자가 서비스를 이용하기 위해 회원가입을 할 경우, 회사의 서비스 이용을 위해 필요한 최소한의 개인정보를 수집합니다. 이용 목적이 변경될 시에는 사전동의를 구할 예정입니다. 가. 홈페이지 회원가입 및 관리 회원 가입의사 확인, 회원제 서비스 제공에 따른 본인 식별·인증, 회..

[안드로이드] Push할 때마다 Auto-Formatting적용하기 : GitHook으로 코딩 스타일 맞추기

작업환경을 타지 않는 방법의 필요성 코딩 스타일의 일관성은 가독성, 협업에서 중요한 포인트이지만 개인적인 코딩 습관들, 빡빡한 일정들 등으로 인해 지키기 쉽지 않다. IDE에서 저장시에 코드 포맷팅을 해주는 기능들이 있기는 하지만, 작업환경마다 세팅해줘야한다는 단점이 있다. 따라서 어떤 환경에서 작업하더라도 코딩 스타일을 지켜줄 수 있는 방법이 필요했다. (이 원문을 응용하여 작성된 글입니다.) GitHook + ktlint 그것은 바로 GitHook을 이용하는 방법이다. git init을 하면 .git/hook 폴더에는 여러 GitHook 샘플들이 생긴다. 이 경로 안에 내가 Hook을 발생시키기 원하는 시점에 대한 파일을 “확장자 없이” 넣어주면 간단히 Hook 세팅을 할 수 있다. 샘플 파일들은 ...

[CloudFlare] Workers Log 편하게 보는 법

wrangler tail Worker에 찍은 console.log들을 편하게 보고싶은데, CF에서 제공하는 Real-time Logs는 내가 원하는 정보보다 방대하다. 아래는 그 로그의 예시인데, "logs" 부분에 당시 내가 찍은 console.log가 있다면 담기는 식이다. 실패한 요청만 필터링을 거는 등 스마트하게 로그를 보고싶다면 wrangler tail 명령어를 이용하면된다. { "outcome": "ok", "scriptName": "entrypoint", "exceptions": [], "logs": [], // ****** 바로 여기 !! ********* "eventTimestamp": 1675348988505, "event": { "request": { "url": "https://....

[안드로이드] ExoPlayer 깜빡거리거나 검은 화면(Black screen)이 뜰 때

문제발생 Epoxy로 무한 반복되는 배너 캐러셀에 동영상을 적용시키는 중에, 간혹 동영상이 재생될때 검은 화면만뜨고 재생이 안되거나 깜빡이는 문제가 있었다. *하나의 ExoPlayer를 RecyclerView.Adapter에서 재활용해가면서 쓰는 사례다. 정신차리고 setPlayer() Document를 자세히 읽어보니... Player를 다른 View에 붙일때 switchTargetView()를 쓰는걸 추천한다고 되어있다. 하지만 setPlayer()를 직접 쓰고자 할 경우 이전 View에서 Player를 분리하기 위해 setPlayer(null)을 호출하기 이전에 새로운 View에 Player를 연결시켜야 한다. *switchTargetView를 직접 써보려고 했으나, 지원하지 않는 메소드였다. 해결..

LOOKUS 개인정보처리방침

LOOKUS 서비스 이용 안내 제1조 (총칙) LOOKUS 서비스(이하”서비스”라 합니다) 이용에 대한 본 동의를 거부하실 수 있으며, 거부 시에는 회원가입에 제한을 받을 수 있습니다. 비트코인 등 암호화폐의 경우, 발행 주체를 알 수 없으므로 회원의 소재국 내·외의 어떠한 제3자(회사 포함)도 가치를 보증하거나 지급을 보증하지 아니합니다. 그러므로 비트코인 등 암호화폐에는, 회원 소재국의 법률 기타 행정청의 유권해석, 경제환경 등에 따라 매우 큰 변동성이 있을 수 있고 비트코인 등 암호화폐의 교환에 대한 법률행위의 해석이 국가별로 상이하여 법정화폐와 다른 특유의 위험성이 내재되어 있으므로, 회원은 반드시 이 점에 주의하여야 합니다. LOOKUS 서비스의 경우, 회원이 LOOKUS 앱을 통해 스테이킹을 ..

[안드로이드] java.lang.IllegalStateException: An instance of OnFlingListener already set 해결

문제 발생 @ModelView(autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT) internal class PagerSnapHelperCarousel @JvmOverloads constructor( context: Context ) : Carousel(context) { init { if (onFlingListener == null) { PagerSnapHelper().attachToRecyclerView(this) } } } Epoxy의 Custom Carousel로 SnapHelper를 붙이는 도중 OnFlingListener가 이미 등록되어있다는 오류가 발생했다. 당연하게도 이유는 RecyclerVIew에 OnFlingListener가 이미 등록되어 있어..

[TypeScript] satisfies 연산자 알아보기

satisfies operator satisfies는 TypeScript 4.9 버전 부터 새롭게 추가된 연산자로, 업캐스팅(up-casting)으로 Type-safety를 보장한다. 💡 업캐스팅? 부모 - 자식 상속관계의 클래스가 있을때 부모 → 자식 방향의 형변환을 다운캐스팅, 자식 → 부모 방향의 형변환을 업캐스팅이라 한다. Parent p = new Parent(); Child c = new Child(); Parent p2 = (Parent) c; // 업캐스팅 Child c2 = (Child) p2; // 다운캐스팅 Typescript의 경우 한 타입이 다른 타입의 값을 모두 포함하고 있으면 상속관계가 된다. 사용 예시를 바로 보자. Versions는 VersionRecord를 satifsfi..

덤벙대는 개발자를 위한 글 : 내가 버그 발생률을 획기적으로 낮춘 방법

나는 어떤 사람인가? 학창시절 필통도, 샤프도, 지우개도 반년 이상 들고다녀 본적이없다. 모두 잃어버렸다. 우산은 말할 것도 없지, 이젠 아예 유치원생이 들고다닐 것 같은 샛노란 우산을 사서 까먹지 않게 한다. 본가에 내려가서 다시 올라올때도 노트북 충전기나 뭐 하여튼 중요한 것을 꼭 하나씩 빠뜨리고 올라와서 부모님이 택배로 다시 보내주신다. 장기 기억력은 남들보다 뛰어나지만 초 단기 기억력은 아주 나쁘다. 34 + 23과 같은 간단한 암산을 하다가도 중간에 까먹어버린다. ADHD일까? 검사는 받아보지 않아서 모르겠다. 슬프지만 이런 나를 받아들이는 중이다. 영화 를 보면 주인공은 단기 기억상실증을 앓고있어 온 몸에 문신을 하고 다닌다. 내가 다음에 할일, 이미 했던 일들을 기억해야하기 때문이다. 어렸을..

CloudFlare KV로 앱 점검시간 관리하기

왜 Cloudflare Worker? 개발중인 앱 실행시 스플래시 화면에서 진입점(Entrypoint)을 결정하고 간단한 정보들을 내려주는 API가 있다. 포함되는 데이터는 API 서버 URL, 앱 버전 업데이트 정보, 점검시간 정보 등 앱 실행을 위한 필수정보들이다. 이는 CloudFlare Worker 로 구현되어있는데, 아래와 같은 이유로 채택하게 되었다. 앱 API 서버와 별개로 동작할 것: 서비스 점검 등으로 서버가 다운되었을때도 정보를 전달할 수 있다. 빠르고 안정적인 응답을 내려줄 것: Cloudflare 전역 네트워크 위에서 돌아가서 50ms 이내 응답이 가능하다. 수정 및 배포가 용이할 것: JS를 써서 언어적 장벽도 낮고 Wrangler라는 CLI를 제공해서 배포가 편리하다. 요구사항:..