전체 글 16

일주일의 시작이 월요일인 근거

일주일의 시작 요일은 국가마다 다르다.그래서 그런 것들을 정리해주는 프로젝트로 @unicode-org/cldr이 있다.한국의 일주일이 일요일로 잘못 지정되어있어서 이를 티켓으로 등록하면서 적었던 근거들을 블로그에도 올리고자 한다.한국 표준 인증 KS X ISO8601-1 (in standard.go.kr, '*.go.kr' 은 정부에서 쓰는 도메인)4.3.6 주의 역일주 달력에서 주의 역일은 월요일을 식별하는 '1'부터 일요일을 식별하는 '7'까지 주의 역일을 식별하는 한자리 서수로 표기된다.표준국어대사전 월요일 (in stdict.korean.go.kr)월요일(Monday, /woryoil/)[명사]: 한 주(週)가 시작하는 기준이 되는 날.ko.wikipedia 월요일대한민국의 많은 학교가 이 날에 ..

문제 해결 2026.02.28

LocaleCompare: ECMA부터 @unicode-org/cldr까지

이전 포스팅 당신의 스팀 게임을 친구 목록의 최상단으로 올리는 흑마법에서 이어진다. 다만 이거만 봐도 된다. locale compare은 유저의 로케일에 맞춰서 '적당히' 정렬해준다.이제야 말이 된다. 그 기괴한 정렬은 크로미움에서 하는거였다. localeCompare은 ECMA-262 스팩에 있고예상했다시피 implementation-defined다! 이 신기한 kr의 locale compare을 찾아가보자! 도대체 v8(*크로미움에서 쓰는 js엔진)에서 어떤 기준을 설정했길래 저런 정렬기준이 나온걸까.. clone하면 찾기 쉽겠지만..$ git clone -b main --single-branch https://github.com/v8/v8Cloning into 'v8'...remote: Enume..

백마법 2026.02.28

당신의 스팀 게임을 친구 목록의 최상단으로 올리는 흑마법

Steam Friends List 의 sort order & rich presence '__beacon'steam의 친구 목록은 단순 알파벳순이라기엔 반례가 너무 많다.아스키 기준으로 거의 제일 끝에 있는 ~(126)가 제일 앞에 있고, 한글(utf-8, '민': 48124, byte first: 235) 은 알파벳(65-90, 97-122)보다 앞이라고요?하지만 찾아봐도 정렬 기준은 공개되어있지 않다. 다만 실시간으로 업데이트되고, 정렬된다는 점을 생각했을 때 매우 높은 확률로 클라이언트에서 정렬할 것이므로, 클라이언트를 분석해봤다. (steam 버전 10.38.46.31, 2026-01-22 -) 우선 스팀에 친구창을 띄우자스팀은 크로미움 기반이므로 ctrl + shift + i 를 통해 개발자 도구..

흑마법 2026.02.28

슥슥이 PoC

!! 현상금이 얼마인지는 아무도 모른다 메인 목표: 평가치 제공추가 목표: 엔진수 보이기다만 몇가지 문제가 있다1. 편의성이 높아질수록 치팅 프로그램에 가까워진다(도의적인 문제)2. chess.com 정지 가능성 구현 방법으로는..1. chess.com 비공식 데스크탑 클라이언트를 포크하여 제공한다. - 유지보수되고 있는지도 불분명하고, 잘 작동할지도 모르겠다. + 따로 프로그램을 만들었으므로, 실수로 로그인하여 밴당할 가능성은 낮다.2. 크롬 확장 프로그램으로 배포한다 2-1. chess.com UI를 수정하여 wasm 스톡피시를 로드해 엔진수를 반영한다. - chess.com UI의 변경에 너무 크게 의존하는 이슈.. 2-2. chess.com 의 활성화된 ..

문제 해결 2025.11.20

jekyll 테마 만들기

윤님이 톡방에 이런 채팅을 남겼다 윤님이 만드셨던 블로그중에 https://blog.yuni.dev/ 별 다른 이미지 없이도 매우 깔끔하고 이뻤는데 막상 블로그를 만들려고 하니 갖고 있던 온프레미스 서버들이 전부 하드웨어 이슈로 죽어버리기도 했고(..) 굳이 동적인 사이트를 만들고 싶진 않아서 예전에 jekyll 로 github pages에 올렸던 블로그가 생각나 jekyll로 테마를 만들어보기로 했다. 경고: 이 포스팅은 jekyll 테마를 적용하는 포스팅이 아니다. 만드는 포스팅이므로 단순히 적용하고 싶다면 다른 포스팅을 참고하자. 우선 github에서 repo를 만들자 .github.io 라는 이름으로 만들면 그대로 url이 될것이고, 다른 이름으로 만들면 .github.io/ 이 url이 된다. ..

헛소리 2023.08.19

'.한국' 같은 국가별 퓨니코드 최상위 도메인 구경하기

구경만 하고 싶으면, '분류 결과'를 검색하거나 스크롤을 내리자 몇개월 전, 카카오톡에 '서양.한국' 등을 입력하면 성인 사이트가 나와 이슈가 됐었다. 사실 이는 한글로 만든 도메인으로, a.com 과 같이 그저 url이라서 그런 것 이었는데, 이런 비-알파벳 도메인은 어떤걸 만들 수 있을까? 우리가 보통 도메인을 만들게 되면 .com으로 끝날지, .net으로 끝날지 등 도메인의 마지막 .을 기준으로 오른쪽에 있는 최상위 도메인(TLD, Top Level Domain)또한 골라야한다. 사실 앞부분은 유니코드 문자면 어떤 것이든 상관 없으므로, TLD 중 비 알파벳 도메인을 찾아보자 TLD의 목록은 https://data.iana.org/TLD/tlds-alpha-by-domain.txt 에서 확인할 수 ..

헛소리 2023.08.14

java의 field 초기화와 동시성

다음 코드의 출력을 예상해보자. class A{ A() { f(); } public void f(){ System.out.println("3"); } } class B extends A{ int x = 4; public void f() { System.out.println(x); } } public class Main { public static void main(String[] args) { A a = new B(); } } 답은 뭘까? 3 혹은 4중에 고민하고 있다면, 그렇지 않다. 답은 0이다. java는 C++와 다르게 생성자에서도 virtual하고 순서상 A가 초기화된 후에 B가 초기화되기 때문에, x가 초기화되지 않은 상태로 출력되어 0이 출력된다. 그렇다면 생성자에서 필드를 초기화하는 클래스..

공부 2023.06.15

docker로 Apple Silicon에서 xv6 빌드하기

m1 맥북에서 gcc-multilib이 설치가 안되는 것으로 기억하고 있어 docker에서 로제타를 이용해 amd64 ubuntu로 빌드했다. *vscode 사용자를 기준으로 작성되었다. docker desktop을 설치하자. 만약 이미 설치되어 있다면 Settings > Software updates에서 업데이트하자. Settings > General > Use Virtualization frameworks 활성화 Settings > Features in dev > Use Rosetta .. 활성화 Apply & restart 원하는 프로젝트 위치에서 터미널을 켜서 git clone https://github.com/mit-pdos/xv6-public.git 을 실행하고 ./docker-compose...

기타 2023.05.07