HelloJkw 개발
-
홈페이지 FileSystem 구조 개선 (DI)HelloJkw 개발 2024. 10. 2. 02:03
내 홈페이지는 총 4가지 파일 시스템을 사용할 수 있다.테스트를 위한 Local file system, InMemory file system서비스를 위한 Azure file system, Dropbox file system.설정 파일 appsettings를 읽어서 어떤 파일 시스템을 쓸지 할지 결정한다.각 서비스마다 각자 다른 파일시스템을 설정할 수 있다. 설정은 이렇게 생겼다.이번 개선에서 설정 파일을 변경하는 것은 아니다.{ // FileSystem은 한 번만 설정하는 값이다. // 연결 정보만 저장한다. FileSystem: { Dropbox: { ClientId: "", ClientSecret: "" }, Azure: { ConnectionStrin..
-
[양팔저울] 게임 설명서 (기본)HelloJkw 개발 2023. 11. 13. 23:22
홈페이지 양팔저울 게임 설명서 https://hellojkw.com/game/libra/home 게임 목표 양팔 저울을 이용해 각 큐브의 무게를 알아내는 것. 게임 규칙 총 플레이어는 7명이다. 순서를 정하면 변경할 수 없고, 계속 돌아간다. 5개의 큐브가 있다. 각 큐브의 무게는 자연수 1~20 이고, 중복되지 않는다. 같은 색 큐브는 모두 무게가 같다. 양팔 저울만을 사용해서 큐브의 무게를 맞춰야 한다. 양팔 저울은 두 개가 있는데, 하나는 메인 저울, 다른 하나는 보조 저울이다. 자신의 차례가 되면 양팔저울에 2개 이상의 큐브를 올려야 한다. (가지고 있는 큐브가 2개 미만이면 내 차례는 지나간다) 양팔 저울에 한 번 올린 큐브는 내릴 수 없다. 계속 누적해서 올려야 한다. 메인 저울의 균형을 맞추..
-
일기장 검색 관련 변화HelloJkw 개발 2023. 6. 25. 12:35
검색 기간 설정 숏컷 전체, 최근 1년, 5년, 10년 버튼을 만들었다. 복수 단어 검색 기능 띄어쓰기로 구분해서 여러 단어를 넣으면 단어가 모두 포함되어 있는 일기를 검색한다. "축구 월드컵" 이라고 검색하면 일기에 "축구", "월드컵" 두 단어가 모두 들어가 있어야 검색된다. 성능 개선을 위해서 약간의 구현을 했다. 각 단어를 각각 검색해서 겹치는 일기를 추출하면 가장 간단하고 구현도 쉽지만, 어차피 겹치는 일기만 추출할 것이라면 검색 범위를 줄이는 것이 효율적이라고 생각했다. 첫 단어를 먼저 검색해서 유효한 날짜 범위를 줄일 수 있길 기대했다. 아래에서 설명할 TRIE 연도별 분리기능과 결합해 성능 개선이 있을 듯. (물론 체감 효과는 없음..ㅋ) 검색 TRIE를 연도별로 분리 일기가 20년 치가 ..
-
Blazor에서 typescript 디버깅HelloJkw 개발 2022. 3. 6. 17:03
typescript로 js파일을 만들었다. wwwroot/js에 kakaomap.js와 kakaomap.js.map 파일이 생겼다. 크롬 개발자 도구의 js파일에서 breakpoint를 찍었다. 그랬더니 ts파일을 찾을 수 없다는 메세지를 받았다. Could not load content for https://localhost:44333/_content/_scripts/kakaomap.ts (HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE) 방법 1. 그냥 js로 디버깅 이럴 경우 그냥 js로 디버깅 하는 것도 방법이 될 수 있다. .map 파일을 생성하지 않으면 된다. tsconfig.json 파일에서 sourceMap 값을 false..
-
Blazor에서 카카오 지도 API 적용하기HelloJkw 개발 2022. 3. 5. 14:16
카카오 지도 API 개발하는 과정에서 겪은 일. blazor를 선택하면서 js를 쓸 일은 없겠거니 했지만, js로만 되어있는 라이브러리를 사용하게 되면 어쩔 수 없어 JS Interop을 사용해서 개발해야 한다. 처음에는 단순 함수로 개발했다. ts로 바꾸는 등 변화 과정을 기록한다. blazor project에 typescript를 적용하는 과정은 여기서 확인. 2022.03.04 - [분류 전체보기] - Blazor에서 typescript 사용하기 변경 전: javascript 기반, 단순 함수를 호출 javascript에 함수로 만들고, 전역변수를 두어 map 객체를 관리한다. 모든 변수는 전역변수로 만든다. (당연히) map이외에 marker 등 다른 함수와 섞이면서 코드 관리가 어렵다. 변수의 ..
-
Blazor에서 typescript 사용하기HelloJkw 개발 2022. 3. 4. 18:02
당연하겠지만 blazor에서 javascript를 사용할 수 있다. 하지만 typescript가 아니면 뭔가 불안하다. 버그가 속출할 것 같고.. 마치 그냥 C로 코딩하는 기분이랄까.. typescript를 적용하자. 참고문서 https://www.c-sharpcorner.com/blogs/type-script-with-blazor https://docs.microsoft.com/en-us/visualstudio/javascript/compile-typescript-code-nuget?view=vs-2022 가장 먼저 Microsoft.Typescript.MSBuild 를 설치한다. 설치가 잘 안됐다. 뭔가 뒤에서 하는데 csproj 파일엔 반영이 안되는 느낌.. MS 문서를 보고 그냥 csproj 파일..
-
Blazor에 카카오맵 연동하기HelloJkw 개발 2022. 2. 28. 22:35
당연하겠지만 blazor에서 javascript함수를 호출할 수 있고, javascript에서 blazor함수를 호출할 수 있다. Wasm뿐만 아니라 server side blazor도 가능하다. 참고: ASP.NET Core Blazor JavaScript interoperability (JS interop) 이 기능을 사용하면 카카오맵을 연동할 수 있다. 카카오맵 설명서: https://apis.map.kakao.com/web/ 연동하면서 생기는 이슈를 정리해본다. 기본적인 내용은 카카오맵 설명서를 참조하면 될 듯!
-
일기장 검색 기능 만들기HelloJkw 개발 2022. 2. 25. 17:52
사전 지식 내 홈페이지는 중간에 크게 바뀌었다. RDB를 사용하지 않는다. NoSql도 사용하지 않는다. Dropbox와 Azure storage를 사용한다. Cafe24 Linux self hosting 시절 dropbox 동기화를 사용했기 때문에 그냥 local에 있는 파일 전부 읽어서 (메모리에 올려서) 검색했다. 파일이 약 3000 개 쯤 있었는데 병렬로 읽고 SSD였기 때문에 아주 빠르게 검색결과를 반환했다. 검색기능이 전혀 어렵지 않았다. 오히려 검색식을 아주 강력하게 만들었었다. 자세한 내용은 너무 나가기 때문에 생략. Azure app service에서 검색 동기화 하는 방식이 아니고 파일 하나 읽으려면 rest api하나를 사용해서 읽어와야 한다. 내 일기는 4000 개가 조금 넘는다. ..