즐겁게 개발을...

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

전체 글 273

Typescript 현재 접속한 사용자의 아이피 가져오기

https://geolocation-db.com/json/ 사이트 정보를 이용하는 방법을 사용합니다. 이 방법은 인터넷 외부 아이피를 가져오기 때문에 내부 아이피는 가져올 수는 없습니다. 외부 아이피를 통해 접속한 사용자들은 모두 같은 아이피로 처리되요. const result = axios.get('https://geolocation-db.com/json/').then(async (res) => { console.log("Country_code = " + res.data.country_code); console.log("Country_Name = " + res.data.country_name); console.log("State = " + res.data.state) console.log("City =..

개발/Node.js 2023.08.19

바닐라 ListBox 항목 별 색깔 바꾸기

DevExpress는 다 좋은데 패키징하면 파일이 엄청 커져서 뷁입니다. 그래서 기본 콘트롤로 개발하다보니 이 기능이 필요해서 만들어봤습니다. 대충 이런 모양... ListBox에 넣는 Item은 DataTable을 데이터 소스로 해서 넣어봤습니다. 일반 클래스 형태로 하셔도 됩니다. 현재 아이템에 어떤 기준으로 색상을 넣을 건지의 분기만 가능하면 되요. 물론 스트링으로 넣고 스트링 파싱해서 하셔도 되겠죠? 자세한 내용은 코드 내 주석으로 대신합니다. DataTable dtLog; private void Frmmain_Load(object sender, EventArgs e) { dtLog = new DataTable(); // 흠.. Datatable Column생성하는 건데 궂이 DevExpressH..

개발/C# 2023.08.17

[잡설] Next.js 13.x 기반으로 다시 가자.

Next.js가 Frontend 위주로 되어 있다하여 Nest.js를 붙여서 개발하다가 이것저것에 치여 포기하고 1주전부터 Next.js로 다시 만들고 있다. 이것저것 프로젝트를 여러번 생성하는 끝에 가닥을 잡았는데 Next.js 13 중 App 라우터 기반으로 개발을 하고 있었다. 버전 12와 13이 너무 많이 바껴서 기존 Next.js + Nest.js 합쳐서 개발했던 소스를 거의 사용하지 못할 정도다. 썩을.. 다 다시 개발에 맨땅에 헤딩하기.. 남들은 다 잘된다고 블로그에 강의를 올려놓았는데 하나하나 벽에 부딪히고 있다. 우선 기술 스펙 중 디테일한 부분은 다 넘어가고 기본만 API만 호출되도록 하려고 하는데 뭐지.. ? 수많은 국내외 블로그, Github을 뒤져서 짜집기를 한터라 아무래도 시리즈..

프로젝트 좀보이드 모드 배포

배포 URL: https://steamcommunity.com/sharedfiles/filedetails/?id=3008693863 Steam Workshop::Damulkhan's Mods steamcommunity.com 소개 - 한글판 모드가 많이 있고, 중복이 되고 일부 업데이트가 되지 않아 영어로 나오는 부분이 간혹 있어 만들기 시작. - 모드에 한글판 모드를 개별로 만들까? 통합할까 하다가 통합방식으로 진행 > 이 경우 모드 업데이트 시 갱신이 어려움 발생으로 엑셀로 관리 (모드 배포일자도 추가해야 할 것 같다) - https://docs.google.com/spreadsheets/d/1sAfmtiq5YlDSBVGlGbLybaHg340Jpl2GLyP51oQ6FBg/edit#gid=0 프로젝트 ..

프로젝트 좀보이드 - Wolf Extraction Quest 모드 한글화

처음으로 한글화 해봤네요. 첫 모딩작 입니다. https://steamcommunity.com/sharedfiles/filedetails/?id=3008490703 스포지만 동영상도 같이 올려봐요. 최종버전이 아닌 테스트 버전입니다. 루이빌 중앙병원으로 걸렸네요. 이건 복붙용 파일입니다. 해당파일을 다음경로에 복사-붙여넣기 해주세요. 스팀경로\steamapps\workshop\content\108600\2987772693\mods\Wolf Extraction Quest\media\lua\shared\Translate\EN 업데이트 일지 2023.09.23 - 2023.09.09 업데이트 분 반영 - KO로 했을 때 반영이 안되서 EN으로 처리되도록 수정

시놀로지에 Mattermost를 운용 중 웹소켓 오류 해결방법

예전에는 이런 오류가 나지 않았었는데 최신 Docker 운용 방법으로 설치를 하고나서 설정 및 접속이 잘되는데 갑자기 브라우저에서 웹 소켓오류가 나는 경우가 있었다. 브라우저 개발콘솔에서는 이런 오류를 뱉는다. 시놀로지 역방향 프록시를 이용해서 외부에서도 접속이 가능하도록 도메인 작업을 진행했는데 아마 이것 때문이었을까? 시놀로지 역방향 프록시를 한번 살펴보자. 여기서 사용자 지정 머리글 탭에서 가서 생성을 눌러보자. 여기 쌩뚱맞게 웹소켓이란게 버젓이 있다. 웹소켓을 눌러보면, 자동으로 2개의 값이 설정된다. 그냥 저장을 누르고 나오면 웹소켓 오류는 그냥 사라진다. 굿!!

싱글 인스턴스로 프로그램 실행하기

지원 Framework: 프레임워크, .Net 6에서 확인함. "싱글 인스턴스가 뭐냐?"라는 질의 보다 이것을 왜 사용했는지부터 알아보겠습니다. 프로그램을 실행할 때 아규먼트를 받아서 처리하는 프로그램을 개발할 때, 이미 떠 있는 프로세스에 아규먼트를 전달 할 방법이 뭐가 있을까? 이 방법 이전에는 프로그램이 떠있는지 체크해서 Send Message Win32 API를 통해 아규먼트를 전달하는 방법을 사용했는데 이 경우 별도의 프로그램을 중간매개로 만들어야 했습니다. C# 프로젝트를 생성하면 program.cs가 자동생성되고 Application.Run(new Form1()); 위 코드를 사용해 폼을 띄웁니다. 프로그램이 시작된 상태에서 다시 실행파일을 실행하면 위 코드를 통해 똑같은 프로그램이 뜨겠죠...

개발/C# 2023.07.04

프로젝트 좀보이드 - 트렐라이 생존기(4)

이전 이야기 프로젝트 좀보이드 - 트렐라이 생존기(3) 이전 이야기 프로젝트 좀보이드 - 트렐라이 생존기(2) 3일차 자고 일어났더니 새벽. 좀비에게 물린 것이 바로 감염으로 이어진 것 같다. 빨리 탄약을 수급하고 좀비백신을 찾아야 할 것 같다. 거 endev.tistory.com 7일차 오늘은 아침 7시 30분에 일어났다. 드디어 바이오리듬이 맞춰지나 보다. 나갈 준비를 하고 영상에서 아래 지도를 띄우고 열심히 설명을 했는데 화면에서는 나오지 않는다. (ㅡㅡ;) 어쨋든 차량도 구하고 부품도 구할 겸 위 트랙이 있는 곳으로 가보자. 이쪽 라인을 밀었었는데 또다시 모여들었다. 도끼로 정리하자. 내가 좋아하는 치킨집에 바리케이드가 있길래 제거하고, 좀비정리하고 마트 물건을 싹쓰리하자. 마트 통로에 이런 총기..

Pfx인증서 파일을 PC에 설치하기

괜히 Openssl 뒤지고 다녔네요. 아래처럼 4줄이면 인증서가 설치됩니다. 다만 루트 인증서(StoreName.Root)의 경우 메시지 박스가 하나 뜨네요. X509Certificate2 cert = new X509Certificate2("d:\\my_cert.pfx", "P@ssW0rd"); X509Store store = new X509Store(StoreName.TrustedPublisher); store.Open(OpenFlags.ReadWrite); store.Add(cert); 참고) X509Certificate를 사용하여 PFX 파일 설치 - .NET Framework 표준 .NET 애플리케이션에서 X509Certificate를 사용하여 PFX 파일을 설치할 때 오류가 발생합니다. 이 문서..

개발/C# 2023.06.28

폼에 모든 라벨의 ForeColor 변경하기

기존 폼 라벨에 ForeColor(전경색=폰트색)을 변경할 필요가 있었다. 디자이너에서 한땀 한땀 선택해가며 바꿔도 되고, 디자이너 소스에서 ForeColor를 모조리 변경하는 방법도 있을 수 있지만, 코드 레벨에서 하는 방법을 알아보자. private void ChangeForeColorControls(ControlCollection CtrlCollection) { foreach (Control Ctrl in CtrlCollection) { // 이 콘트롤에 하위 콘트롤이 있으면 재귀함수로 호출 if (Ctrl.Controls.Count > 0) { ChangeForeColorControls(Ctrl.Controls); } // 콘트롤 타입이 Label이면 처리 (이 부분을 응용하면 다른 컨트롤도 적용..

개발/C# 2023.06.27