수달의 IT 세상

[C#] 크로스 스레드 작업이 잘못되었습니다. 오류 해결하기 포스트 Teaser

[C#] 크로스 스레드 작업이 잘못되었습니다. 오류 해결하기

카테고리:

최대 1 분 소요

문제 상황 C#으로 멀티 스레드 프로그래밍을 하다보면, 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스하는 경우에 아래와 같은 메시지를 출력한다. 이럴 때는 Invoke함수를 사용하여 컨트롤이 자신이 만들어진 스레드 아닌 스레드에서의 함수 호출을 위임한다. 소스 코드 아래의 텍스트박스의 텍스트를 바꾸는 예제이다. private void InvokeAccess(TextBox textBox, string data) { if (textBox.InvokeRequired) { textBox.Invoke((MethodInvoker) delegate { textBox.Text = data; }); } else { textBox.Text = data;

[Ubuntu, Cloudflared] Cloudflared로 Ngrok처럼 Tunneling하기 포스트 Teaser

[Ubuntu, Cloudflared] Cloudflared로 Ngrok처럼 Tunneling하기

카테고리:

3 분 소요

Cloudflare Cloudflare는 사이트를 운영할 때 WAF(Web Application Firewall; 웹 어플리케이션 방화벽), CDN(Content Delivery Network; Content Distribution Network), DDoS(Distributed Denial of Service attack; 분산 서비스 거부 공격), 서버의 원본 IP 숨기기 등의 중요한 기능을 무료로 제공한다. Cloudflared(Cloudflare Tunnel) 이제는 Cloudflared(Cloudflare Zero Access, 구 Cloudflare Argo Tunnel)를 통해 Ngrok처럼 포트포워딩 없이 Private에서 개발하고 있는 환경을 Public으로 Tunneling할 수 있다

[PHP] 파일 업로드 하기 포스트 Teaser

[PHP] 파일 업로드 하기

카테고리:

3 분 소요

소스 코드 php로 여러가지를 개발하다 보면, 사용자가 파일을 업로드 해야 할 상황이 있다. 아래는 php8 에서 사진 파일을 업로드하는 예제이다. index.html <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>사진 업로드</title> </head> <body> <form action=&

[Minecraft] Forge와 Optifine 같이 사용하기 포스트 Teaser

[Minecraft] Forge와 Optifine 같이 사용하기

카테고리:

1 분 소요

1. Forge 설치하기 Minecraft Forge는 아래의 링크에서 다운로드 받을 수 있다. https://files.minecraftforge.net/net/minecraftforge/forge/ 다운로드 받은 후 Java로 실행하면 다음과 같은 창이 표시된다. 확인을 클릭하고 완료될 때 까지 기다리면 좌측 하단과 같이 Minecraft Launcher에 Forge가 추가된다. 2. 옵티파인 다운로드 받기 Optifine은 아래의 링크에서 다운로드 받을 수 있다. https://www.optifine.net/downloads 3. 옵티파인 적용하기 옵티파인을 다운로드 받은 후 마인크래프트를 실행한다. 모드 버튼을 눌러 모드 창을 열어준다. 모드 폴더 열기를 누르면 모드

[Minecraft, Ubuntu] Forge로 마크 모드 서버 열기 포스트 Teaser

[Minecraft, Ubuntu] Forge로 마크 모드 서버 열기

카테고리:

2 분 소요

알림 마인크래프트 서버를 여는 방법은 Realms이나 Bukkit, Spigot 등등이 있다. 하지만 모드 서버를 열려면 Forge로 서버를 열어야 한다. 서버를 열 때 보통 무료인 리눅스를 사용한다. ※ 본 게시글은 Ubuntu 24.04 LTS 버전을 기준으로 작성되었습니다. 1. Java 설치하기 apt-get update apt-get upgrade apt-get install openjdk-21-jdk 2. Forge 설치하기 Forge는 아래의 홈페이지에서 다운로드 받을 수 있다. https://files.minecraftforge.net/net/minecraftforge/forge/ # 아래는 1.21.1 예시 wget https://maven.minecraftforge.ne

[HustOJ] Online Judge System 구축하기 포스트 Teaser

[HustOJ] Online Judge System 구축하기

카테고리:

4 분 소요

HustOJ HustOJ는 전세계에서 흔히 사용하는 Online Judge System의 한 종류이다. 한국에서도 여러 대학, 중고등학교에서 수행평가나 프로그래밍 학습 교구로 많이 사용하고 있다. 다만, 현재 구글에 올라온 구축 방법들이 상당히 오래전 방법이라 최신 방법을 포스팅하고자 한다. ※ 본 게시글은 Ubuntu 22.04 LTS 버전을 기준으로 작성되었습니다. 1. HustOJ 다운로드 후 설치하기 설치 방법은 예전과 다르게 많이 간편화되어 아래의 명령어 두줄이면 자동으로 설치를 시작한다. 다만, Ubuntu 운영체제만 지원하며, WSL 및 도커로 구축한 Ubuntu는 지원되지 않고 듀얼 코어 CPU와 2G RAM 이상의 사양을 요구한다. wget http://dl.hustoj.com/

[Ubuntu] System infomation 재출력하기 포스트 Teaser

[Ubuntu] System infomation 재출력하기

카테고리:

최대 1 분 소요

System Information Ubuntu가 설치된 서버에 터미널로 처음 접속하면 다음과 같이 출력된다. System load, Processes, Usage, Temperature등을 다시 보고 싶을 때가 있는데 이럴 땐 터미널에 재접속하는 것보다 아래의 명령어를 사용하면 System information을 다시 볼 수 있다. landscape-sysinfo

[HustOJ] no test data : no *.in file found 해결하기 포스트 Teaser

[HustOJ] no test data : no *.in file found 해결하기

카테고리:

1 분 소요

문제 상황 HustOJ로 구축된 사이트를 운영하다보면 특정 문제에서 아래와 같은 메시지를 출력하며 실행중 에러 AC:0% Flag를 띄운다. no test data : no *.in file found -—time_space_table:—- 점수 : 0.000 문제 해결 해당 문제에 테스트 케이스 데이터가 없어서 생기는 문제이므로, HustOJ의 설치 경로에 테스트 케이스 데이터를 생성해주면 된다. 보통 HustOJ 설치 폴더는 /home/judge/에 위치한다. 문제가 발생한 폴더로 이동하려면 /home/judge/data/문제가 발생한 번호로 이동한다. 입력이 없는 문제의 경우에는 아래와 같은 명령어로 단순히 파일만 생성해줘도 되지만, 입력과 출력이 정해진 문제의 경우에는 테스트