즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

전체 글 257

[음악] Dream Story 1집

우서비 = 우섭이 = 제 이름 중 족보에만 들어가 있는 이름을 차용했습니다. 앨범에 수록된 노래들은 가사만 제가 ChatGPT4를 이용해 구성해서 AI로 생성했습니다. 전체 재생 1Th Dream Story (By Useobi) 주제를 정하고 앨범 형태로 올려봅니다. 이 앨범 주제는 꿈 이야기 입니다. 그동안 꾸었던 꿈 중에서 가장 강렬하고 기억에 많이 남는 꿈들을 가사로 만들어 노래로 만든 곡 들을 모았습니다. www.youtube.com 같은 주제로 여러 곡을 담은 터라 주제별로 분류해서 글을 나눴습니다. (너무 스압이라) 2024.03.08 - [주인장/음악 프로젝트] - [음악] Dream Story 1Th - 다물칸 Track 2024.03.08 - [주인장/음악 프로젝트] - [음악] Drea..

VirtualBox 가상화 내에서 다시 가상화를 하는 방법

제목이 이상야릇 하지만 예를 들어 Virtual Box에서 Virtual Machine내에 Windows 10을 설치했다고 가정해봅시다. 여기에 Docker를 설치하고 싶을 때 어떻게 해야할까? 에 대한 답을 소개해봅니다. 호스트에서 가상화(Hyper-V 또는 Docker 등)를 하려면 BIOS에서 VT-x 등의 옵션을 활성화해야 합니다. Virtual Box에서도 똑같이 설정하면 되겠죠? 시스템에 프로세스 탭에 가면 있긴 합니다만, 어라.. 비활성화 되어 있습니다. 왜 이렇게 해놨는지는 모르겠지만 답은 있으니 여기 이 글을 쓰고 있겠죠. 커맨드 쉘을 관리자로 실행합니다. 저는 시작 버튼을 누르고 나온 메뉴에서 "cmd"를 입력합니다. 그럼 이런식으로 나오는데 우측에 표시된 메뉴를 클릭하면 됩니다. cd..

Data URL Scheme를 이용한 이미지 처리

어제 유튜브를 보다가 제목과 같은 URL타입을 어떻게 얻는지 알게되어 소개해본다. 보통 웹이미지 URL은 http://{URL}/test.png 이런식으로 파일위치가 붙게 되서 서버에 한번 갔다가 반환하는 데이터를 브라우저에 표시를 하는 방식인데 반해 Data URL Scheme는 Base64 인코딩 방식으로 변환된 바이너리 데이터를 URL 자체에 포함시키는 방법을 사용하게 해서 서버에 요청하지 않고 바로 브라우저에 표시하는 방법이다. 그래서 보면 data:image/webp;base64,UklGRuhyAABXRUJQVlA4INxyAADwRAGdASqQAZABPm0ukkakIqGkrLjKUJANiWRuwY1Zm/xflicrOZL0/2vWjyH8A/jfl7+I3zDcp91vxX8L+xPh2/u9onvH/i..

[PZ] 좀보이드 생존기 S6 (모드소개)

모드를 너무 많이 깔아서 하는 것 같아서 싹 지우고 다시 시작!! 이렇게 했더니 에러는 줄어들고 RV인테리어 재시작했을 때 충돌나서 다시 못들어가거나 나오지 못했던 오류도 사라지네요. 생존기에 앞서 아래 주요모드는 기존 게임에 없었던 새로운 모드만 소개해봅니다. 주요모드 Random Zombies 좀비 타입을 랜덤으로 조정하는 모드 Steam Workshop::Random Zombies steamcommunity.com CDDA Zombies 좀비 타입을 여러가지로 특성을 정해주고 이름을 특정해줌. 더 다채로운 좀비들을 만남. 야생좀비=뛰좀, 레슬러좀비=미는 힘 때문에 스턴걸림. 비명지르는 좀비.. Steam Workshop::CDDA Zombies steamcommunity.com Erase Weigh..

Enum 사용 시 인덱스가 순차적이지 않을 때 처리방법

인덱스대로 하지 않아도 되는데, 궂이 이렇게 Enum을 선언했을 때 해당 값을 Combobox에서 가져오는 방법을 제시해본다. private enum DB_USER_ROLE { UNKNOWN = 0, WORKER = 2, INFRA_ADMIN = 8, SUPER_ADMIN = 9, } // 콤보박스에는 이런식으로 넣을 수 있다. String만 들어가기에 뭔가 변환함수를 만들어야 한다. CboUserRole.Items.AddRange(Enum.GetNames(typeof(DB_USER_ROLE))); 상수는 위와 같다. private DB_USER_ROLE GetUserRole() { Dictionary dicUserRole = new Dictionary(); string[] lstUserRole = En..

개발/C# 2024.02.15

C#과 Node.js(TS)에서 각각 Sha256 Hash 같은 값 나오게 하기

라이브러리를 사용해서 해시값을 구하면 각각 다른 값이 나오거나 해서 쌩짜로 만들었다. (보고 베꼈다.) 원래 출처에서는 Timestamp를 넣어서 해시값을 구하는데 이렇게 되면 로직이 복잡해져서 그냥 빼버렸다. 상황에 따라서 넣어서 사용하자. 대신 Keystring을 랜덤화해서 사용해도 될 것 같다. C# 소스 public static string GenerateHMAC(string payload, string key = "keystring") { // 키 생성 var hmac_key = Encoding.UTF8.GetBytes(key); // Timestamp 생성 //var timespan = (timestamp - new DateTime(1970, 1, 1, 0, 0, 0)); //var hmac_..

개발/C# 2024.02.15

Datatable을 Listview에 바인딩해서 사용하기

Listview 10년 넘게 쓰다가 DevExpress사용한 이래 거의 사용하지 않다가 다시 사용하려니 엄청나게 불편하군요. 구글링을 해보니 10년 전에는 바인딩 지원을 했던 것 같은데 그것마저 사라져있었습니다. (.NET 6 기준) 데이터테이블을 사용하는 이유는 object를 listview에서는 지원하지 않기 때문입니다. 그리드에는 몇가지만 넣어두고 Row클릭 시에만 상세보기로 보여주려면 어떻게 해야 할까요? 방안1) 그리드에 모든 컬럼을 넣어두고 보여질 컬럼의 Width만 0보다 크게 한다. 방안2) 키값을 포함한 컬럼을 넣어두고 클릭할 때마다 DB로부터 다시 가져와 표시한다. Datatable을 사용하면 디비에서 긁어온 Row객체(Object)를 datarow에 넣어둘 수 있기 때문에 헛짓하지 않..

개발/C# 2024.02.13

Listbox에서 아이템을 위/아래로 이동하는 함수

위/아래 이동은 버튼을 추가했다고 가정한다. DevExpress의 ListBoxControl도 동일하게 동작가능하다. 아래 코에서 ListBox를 ListBoxControl로 수정해서 사용하면 된다. public static class ListBoxExtension { public static void MoveSelectedItemUp(this ListBox listBox) { _MoveSelectedItem(listBox, -1); } public static void MoveSelectedItemDown(this ListBox listBox) { _MoveSelectedItem(listBox, 1); } static void _MoveSelectedItem(ListBox listBox, int dir..

개발/C# 2024.02.06

Palworld Docker로 Dedicated Server 구축하기(02.02)

2024.01.19일 발매된 Palworld는 공식서버가 제공되지만 불안정하여 서로 알고지내는 사람들과 함께 하기 위한 비공식 서버를 구축해보기로 하자. 이미 Docker허브에 많은 도커 이미지들이 올라와있고 우리는 이것들 중 하나를 선택해서 진행할 예정이다. 개인서버에 VM하나 할당해서 해보기로 하자. ㅋㅋ 시놀로지 NAS도 매일 켜있으니 여기에 설치해도 좋을 것 같다. 우선 서버사용량을 모르는 관계로 서버에 설치해서 운용해보고 NAS에서도 커버가 가능한지 봐야 할 것 같다. 1. 우분투 설치.. VirtualBox에 Ubuntu Linux설치 CentOS 지원이 종료됨에 따라 설치 안되는게 많아져 어쩔 수 없이 우분투로 넘어간다. 익숙치 않아서 우분투 설치방법을 작성해본다. 우분투는 아래 링크에서 데..

게임 2024.01.26