수달의 IT 세상

[C#] Enum을 ComboBox item에 집어넣기 포스트 Teaser

[C#] Enum을 ComboBox item에 집어넣기

카테고리:

최대 1 분 소요

문제 상황 C#으로 프로그램을 만들다 보면 Enum을 ComboBox item에 집어넣어야 하는 상황이 가끔 생긴다. Linq를 사용하여 Enum을 Object[]로 만들어서 ComboBox에 넣으면 되는데, 다소 복잡하다. 소스 코드 comboBox1.Items.AddRange(Enum.GetValues(typeof(MyEnum)).OfType<object>().ToArray()); Enum.GetValues만 사용하면 반환 값이 System.Array로 나와 []로 캐스팅 하기 위해서 .OfType<object>().ToArray()를 사용한다.

[C#, OpenCL] OpenCL로 SHA1 연산하기 포스트 Teaser

[C#, OpenCL] OpenCL로 SHA1 연산하기

카테고리:

9 분 소요

Nuget C#에서 OpenCL을 사용하고자 할 때, 여러 방법이 있지만 보통 Nuget Package에서 Cloo를 추가하여 사용한다. 1. kernelSource 작성 본격적으로 OpenCL을 사용하기 이전에, 아래와 같이 kernelSource를 작성해야한다. 마땅히 참고할 소스코드가 없어, https://en.wikipedia.org/wiki/SHA-1 의 pseudocode를 참조하여 구현하였다. __kernel void sha1(__global const unsigned char* data, int length, __global uint* digest) { int num_blocks = length / 512; uint h0 = 0x67452301; uint h1 =

[C#, webhacking.kr] Challenge 4번 풀기 포스트 Teaser

[C#, webhacking.kr] Challenge 4번 풀기

카테고리:

4 분 소요

문제 상황 일반적인 webhacking.kr의 문제는 preg_match 회피 및 sql injection이 주를 이루지만 challege 4는 기존의 문제들과는 양상이 다르다. 아래는 challenge 4의 소스코드 중 일부이다. <?php sleep(1); // anti brute force if((isset($_SESSION['chall4'])) && ($_POST['key'] == $_SESSION['chall4'])) solve(4); $hash = rand(10000000,99999999)."salt_for_you"; $_SESSION['chall4'] = $hash; for($i

[HustOJ] Python3로 채점 하는데 너무 느린 문제 해결하기 포스트 Teaser

[HustOJ] Python3로 채점 하는데 너무 느린 문제 해결하기

카테고리:

1 분 소요

문제 상황 HustOJ로 구축된 사이트를 운영하다보면 사용자가 Python3로 제출하는 경우, 채점이 너무 느려 문제에서 설정한 시간이 초과되는 등의 문제가 발생한다. 보편적으로 이를 해결하기 위해 Pypy3를 도입하려고 하는 등의 생각을 하겠지만, 적용하여 테스트 해본 결과 HustOJ의 채점 동작 원리 특성상 얻는 이득이 없다. 문제 해결 따라서, judge_client.cc를 뜯어 고치는거보다 judge.conf의 설정을 변경하는 편이 훨씬 도움이 된다. 1. HustOJ가 설치된 경로에서 ./etc 경로로 이동한다. cd ../../ cd /home/judge/src/etc/ 2. judge.conf를 열어 아래와 같이 값을 수정한다. OJ_JAVA_TIME_BONUS=10 OJ_PY

[VPS, VPC] 아웃바운드 트래픽 요금 비교 포스트 Teaser

[VPS, VPC] 아웃바운드 트래픽 요금 비교

카테고리:

2 분 소요

VPS, VPC VPS(Virtual Private Server)와 VPC(Virtual Private Cloud)는 모두 컴퓨터 네트워크와 관련된 용어지만 각각 다른 개념을 가진다. VPS는 가상 개인 서버를 의미하며, 독립된 운영 체제 및 자원을 갖고 있는 가상 환경을 제공한다. 반면에 VPC는 가상 개인 클라우드를 의미하며, 클라우드 컴퓨팅 환경에서 가상 네트워크를 구축하여 사용자가 가상 리소스를 관리할 수 있는 환경을 제공한다. 본 포스팅에서는 둘을 크게 구분하지 않고 아웃바운드 트래픽 요금의 관점에서만 비교하여 서술하려고 한다. ※ 한국(서울) 리전 기준 ※ 추가 요금은 GB 당 최대 금액 제공사 기본 제공 트래픽 GB당 추가 요금

[Ubuntu, OpenVPN] 사용자 추가/삭제하기 포스트 Teaser

[Ubuntu, OpenVPN] 사용자 추가/삭제하기

카테고리:

1 분 소요

주의 사항 본 게시글은 아래의 링크를 통해 구축된 서버를 기준으로 서술하였다. https://syudal.kr/post/Ubuntu-OpenVPN-VPN-서버-구축하기/ OpenVPN 서버가 설치되어 있는 상태에서 쉘 스크립트를 실행하면 다음과 같이 출력된다. bash openvpn-install.sh OpenVPN is already installed. Select an option: 1) Add a new client 2) Revoke an existing client 3) Remove OpenVPN 4) Exit Option: 순서대로 사용자 추가하기 사용자 삭제하기 OpenVPN 제거하기 나가기 1. 사용자 추가하기 1번을 입

[C#] FloodFill 알고리즘과 땅따먹기 포스트 Teaser

[C#] FloodFill 알고리즘과 땅따먹기

카테고리:

4 분 소요

땅따먹기 기본적으로 땅따먹기는 paper.io와 같이 넓은 땅 위에 자신의 시작 지점을 정하고 말을 움직이며 선을 그려 다시 본인의 선에 닿으면 해당 부분 만큼 본인의 땅이 되는 게임이다. 땅따먹기가 사각형만 되었어도, 구현에 어려움을 느끼지 않겠지만 아래와 같이 그려지기 시작하면 내부를 어떻게 채워야 할까 머리가 아파진다. FloodFill 알고리즘 Flood fill 알고리즘은 일반적으로 2차원 배열에서 사용되는 컴퓨터 그래픽스 및 이미지 처리에서 사용되는 알고리즘이다. 이 알고리즘은 영역 채우기를 위해 사용되며, 특정 시작 지점에서부터 인접한 영역을 찾아 동일한 색으로 채우는 과정을 반복한다. 주어진 시작 좌표를 기준으로 상하좌우로 인접한 픽셀을 검사하면서 같은 색으로 채워진 영역을

[Ubuntu, OpenVPN] VPN 서버 구축하기 포스트 Teaser

[Ubuntu, OpenVPN] VPN 서버 구축하기

카테고리:

3 분 소요

OpenVPN 설치 스크립트 OpenVPN을 통해 VPN 서버를 구축하고자 할 때, Readme 문서를 읽어가며 하는 것 보다 아래의 스크립트를 사용하면 이전에 OpenVPN을 사용해 본 적이 없더라도 1분 이내에 자신만의 VPN 서버를 설정할 수 있다. 스크립트도 최대한 눈에 거슬리지 않고 직관적으로 사용할 수 있도록 설계되어 있다. https://github.com/Nyr/openvpn-install ※ 본 게시글은 Ubuntu 24.04 LTS 버전을 기준으로 작성되었습니다. 설치 방법 쉘 스크립트를 다운로드 받고 실행하는 방법은 아래와 같다. wget https://git.io/vpn -O openvpn-install.sh bash openvpn-install.sh 설치되는 과정에서