전체 글 79

타입스크립트 미스터리 - 배열과 key-value 오브젝트

const test = [{a: 1}, {b: 2}] type TestType = {[key: string]: number}[] console.log(test as TestType); 이 코드는 작동하지 않는다. Conversion of type '({ a: number; b?: undefined; } | { b: number; a?: undefined; })[]' to type 'TestType' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type '{ a: number; b?: undefi..

카테고리 없음 2023.11.26

테스트

역사적 사건은 게임 중에 발생할 수 있는 기념비적인 업적을 말합니다. 역사적 사건은 계획 또는 사용자 상호 작용이 필요하므로 다른 문명에 대한 문화적 영향력을 얻는 역동적인 방법입니다. 다음 역사적 이벤트 중 하나가 완료되면 최근 문화 및 관광 산출을 기반으로 알려진 모든 문명에게 관광 부스트를 받습니다: 위인 획득 세계 불가사의 건설 전쟁 승리 (전쟁 점수 25+) 새 시대 진입 황금기 진입 (미학) / 고대 유적지 발굴 완료 (미학) 주요 문명과 교역 (대상 숙소 등) 주요 문명과 교역 (항만 등) / 도시 국가와 교역 (정책) 이 이벤트에서 받는 관광의 양은 지난 몇 턴 동안의 턴당 문화 및 관광을 기반으로 합니다. 이 값은 제국의 도시 수와 대상 문명의 관광 보정치에 따라 조정됩니다. 마지막으로,..

카테고리 없음 2023.09.24

Edge용 확장 프로그램을 대충 만들었다

나는 작년에 고급 마우스를 샀다. 이 마우스에는 엄지 손가락으로 누를 수 있는 버튼이 두 개 있는데, 브라우저에서는 기본적으로 '앞으로 가기', '뒤로 가기' 버튼이다. 그러니까 브라우징 중 뒤로 가고 싶을 때 창의 왼쪽 위 까지 가지 않고 이 버튼만 누르면 된다! 하지만 모든 문제가 사라진 것은 아니었다. 새 탭을 연다면 다시 문제가 생기게 된다. 새 탭을 열면 탭 화면까지 가서 탭을 닫아줘야 한다. 특히 위키질 할 때 취약했다. 죄다 새 탭으로 열리니까 아예 들어가기 싫어졌다. Create an extension tutorial, part 1 - Microsoft Edge Development | Microsoft Learn Create an extension tutorial, part 1 - Mic..

카테고리 없음 2023.07.24

Jetpack Glance를 간단하게 써 보고.

Jetpack DataStore! (velog.io) Jetpack DataStore! 프로젝트를 진행하다 보면 SharedPreferences의 간편함 덕분에 무지성으로 SP를 사용하곤 했습니다. 그런데 사실 공식문서를 살펴보면 다음과 같은 문구가 적혀있습니다. velog.io Jetpack DataStore에 대한 정보가 필요하면 이 글을 읽으세요. https://www.youtube.com/watch?v=bhrN7yFG0D4 Jetpack Glance에 대한 정보가 필요하면 이 영상을 보세요. 이걸로 실제로 뭘 만든 건 아니고, 정말 기능만 간단하게 써 봤다. 나는 1.0.0-alpha05 버전을 사용했고, 베타 버전으로 업그레이드 해 봤을 때 모든 코드에 빨간 줄이 쳐졌으니, 아마 미래에는 이 글..

카테고리 없음 2023.06.05

코틀린 스코프 함수 정리

모든 코드는 Kotlin Playground에서 실행했습니다. https://play.kotlinlang.org/ Kotlin Playground: Edit, Run, Share Kotlin Code Online play.kotlinlang.org data class User(var name: String) 우선 테스트를 위해 대충 만들어진 data class 하나. 스코프 함수는 객체에 바로 접근하여 scope 내에서 해당 객체의 이름 대신 키워드로 변수를 사용할 수 있게 한다. 일종의 기능이 있는 do while(false) 라고 생각하면 될 것 같다. 스코프 함수가 필수인 건 아님. 일종의 Syntex sugar. (하지만 취업하려면 필수일 것이다) 총 다섯 종류 let, apply, also, r..

카테고리 없음 2023.04.15

문자열 생성 이후 - 설명이 안떠요, 창이 이상해요

https://gall.dcinside.com/civilization/265235 https://gall.dcinside.com/board/view/?id=civilization&no=265235 gall.dcinside.com 이걸 번역하다가 생긴 일이다. 문명 5에서 새로운 기능을 추가해주는 모드이고, 그 설명문을 생성하는 스크립트 (lua로 만듬) 에 대한 이야기다. 뭔가 해서 원본 코드를 봤더니 문제를 알 수 있었다. -- Traits and Personalities local eMinorTrait = string.upper(L(GetCityStateTraitText(minorPlayerID))) local eMinorPersonality = minorPlayer:GetPersonality() l..

카테고리 없음 2022.06.12

Git에서 브랜치가 아닌 곳에 Commit을 하면 어디로 가는가

그러니까 HEAD detached인 상황에서. git reflog를 사용하면 그 커밋을 찾을 수 있다. git branch 로 브랜치를 하나 만들어서 잡으면 된다. What happens to git commits created in a detached HEAD state? - Stack Overflow What happens to git commits created in a detached HEAD state? This is what happened: I have a branch A. On branch A I committed a bunch of changes. I was not happy with the code, so I checked out the previous commit in branch A..

카테고리 없음 2022.06.11

웹 어셈블리 이미지 처리 연습 기록 (3)

quantize 라이브러리가 4초정도 렉을 발생시키는 사소한 문제가 있었지만 async 같은 걸 떡칠해도 도움이 안 돼서 그냥 놔두기로 했었다... 가 어제까지 얘기다. 오늘 webworker로 해결했다. webworker는 브라우저 안에서 다른 스레드에서 동작하는 worker를 만드는 기술인데 IE 10부터 지원 되니까 webassembly보다 지원 범위가 한참 넓다. 사용법이 참 간단하다. 우선 Worker를 만들어야 한다. var quantizeWorker = new Worker('wasmworker.js', {type: 'module'}); 'worker.js' 파일이 필요한 데, 이 파일은 비동기적으로 실행시킬 함수를 다른 파일에 넣고 onmessage = function(e)를 사용한 것이다...

카테고리 없음 2022.04.23