분류 전체보기 (6) 썸네일형 리스트형 C#: List Shuffle과 Swap (by index)구현 방법 1. List Shuffle Java에서는 기본적으로 지원하는 함수지만, C#에서는 확장메서드로 구현 해줘야 한다. public static class ExtensionList { private static Random _ran = new Random(); public static void Shuffle(this List list) { int to = list.Count; while (to > 1) { int from = _ran.Next(--to + 1); T tmp = list[from]; list[from] = list[to]; list[to] = tmp; } } } 2. List Swap List에 index로 서로의 위치를 변경하고자 할때 쓰인다. ex) Drag&Move로 아이템의 위치를 변경.. C#: WCF ServiceClient의 IDiaposable 구현 WCF의 Client 구현시 Service참조를 하면 Proxy코드가 자동 생성된다. 이때 ServiceClient코드도 자동 생성된다. ServiceClient는 ClientBase를 상속받으며, ClientBase는 IDisposable 인터페이스를 구현하였다. 그렇기 때문에 실제 ServiceClient는 아래와 같은 코드로 사용이 가능하다. (※ ServiceClient는 사용후 필히 Close() 처리를 해줘야 함) using (var client = new ServiceClient()) { client.Hello(); } using 블럭으로 감싼 ServiceClient는 ClientBase에서 구현된 Dispose 함수 내부에서 client.Close()를 호출해준다. 여기서 문제는.. cl.. UI 프리징을 피하기 위한 Task 사용 방법 일반적인 GUI Application과 동일하게 Winform 또한 UI Thread가 MainThread 역할을 하며, 해당 Thread는 SingleThread 방식으로 돌아간다. UI Thread는 기본적으로 Loop를 돌면서 MessageQueue에 담긴 Message를 가져오고, Handler에 전달하는 역할을 한다. 이때 Handler에서 딜레이가 오래 발생할 경우 MessageQueue에 담긴 다음 Message를 실행하지 못하므로, UI 프리징 현상이 발생 한다. 이러한 UI 프리징 현상을 방지하기 위해 시간이 오래 걸리는 작업은 별도의 Thread를 생성하여 처리한 후 결과만 UI에 반영하도록 개발 해야한다. BackgroundWorker, Thread, Task, AsyncCallBac.. mysql 명령어 모음 Login $> mysql -h [호스트주소] -P [포트번호] -u [계정] -p $> mysql -u [계정] -p 백업 $> mysqldump -u [계정] -p [패스워드] [데이터베이스명] > [생성할 백업 DB명].sql $> mysqldump --max_allowed_packet=1G -u [계정] -p [패스워드] [데이터베이스명] > [생성할 백업 DB명].sql 복원 $> mysql -u [계정] -p [패스워드] [복원할 DB] < [백업된 DB].sql Wireshark로 HTTP & HTTPS 차이 확인 각 HTTPS와 HTTP의 전송의 경우 내부 데이터를 평문으로 확인이 가능한지를 Wireshark로 패킷 확인 해보자 보라색 부분이 HTTPS 통신 패킷, 연두색 부분이 HTTP 통신 패킷 각 통신에서 Application Data가 들어 있는 패킷을 열어보았다. (빨간 밑줄 친 패킷) 위가 HTTPS 패킷(198163), 아래가 HTTP 패킷(198787) 아래 비교 사진에서 볼 수 있듯이 HTTPS 패킷에서는 전송 내용을 평문으로 확인할 수 없도록 암호화되어 있는 반면에, HTTP 통신 패킷에서는 값이 평문으로 그대로 노출되는 것을 확인할 수 있다. 이에서 확인할 수 있듯이, HTTP 전송의 경우 데이터 자체를 암호화 하지 않으면 패킷 도청으로 데이터 유출이 가능하다. 알아야할 점 - 브라우저 개발자.. Linux 명령어 정리 파일관련 명령어 touch 파일의 타임스탬프를 현재 시간으로 변경하거나 파일이 없는 경우 빈 파일을 생성한다. # 파일이 있는 경우 타임스탬프를 현재 시간으로 변경 # file.txt가 없는 경우 file.txt 파일 생성 touch file.txt # 여러개의 파일 생성 touch file1.txt file2.txt file3.txt mv 파일이나 디렉토리를 이동하거나 파일명 변경 시 사용 mv 파일명1 파일명2 # 파일명 변경 mv test.txt test2.txt # 디렉토리 변경 mv /home/repository/ /home/repo/ rename 하나 혹은 하나 이상의 파일명을 일괄 변경, 정규식 사용이 가능하여 여러개 파일을 한꺼번에 변경 가능 rename 's/찾을문자열/바꿀문자열/.. 이전 1 다음