전체 글 (232) 썸네일형 리스트형 [암호학] 단일치환 암호_시저암호 - 치환 암호(Substitution Cipher) : 평문의 문자를 다른 문자로 치환하는 암호 - 단일 치환 암호 : 하나의 문자가 항상 다른 하나의 문자로 매핑 랜덤한 매핑 테이블을 사용하여 치환하는 방식, 일정한 수(Key)를 더해서 암호를 생성하는 덧셈 암호, 일정한 수를 곱해 서 암호를 생성하는 곱셈 암호, 덧셈과 곱셈을 모두 사용하는 암호 등이 있다. - 시저 암호 : 문자를 일정한 간격만큼 이동하여 암호를 생성하는 방식. ex ) A는 3만큼 이동하여 D로 만들고, B를 3만큼 이동하여 E로 만드는 것과 같은 방식 송수신자는 문자를 N만큼 Shift 한다는 것(Shift Key)을 알고 있는 상태에서 메시지를 암,복호화 public class CaesarCipher { private cons.. [C#] 동시성 프로그래밍_Task.WhenAny - 일련의 작업을 입력받고, 입력받은 작업 중 하나를 완료하면, 완료된 작업을 반환 public static string Run1() { StringBuilder sb = new StringBuilder(); for (var i = 0; i [C#] 동시성 프로그래밍_Task.WhenAll - 모든 작업의 완료를 대기하고 싶을 때 사용 - 다수의 작업을 전달받고 제공된 모든 작업이 완료될 때 까지 스레드를 블로킹 시킨다. public class AsyncTest { public static string Run() { StringBuilder sb = new StringBuilder(); for (var i = 0; i [알고리즘] 시간복잡도(time complexity) 정리 - 코드의 실행 시간이 어떤 요인으로 결정되는지 나타나는 시간과 입력 데이터의 함수 관계. - 빅오(Big-O) 표기법 알고리즘이 겪을 수 있는 최악의 경우에 걸리는 시간과 입력 간의 상관관계 표기 입력 크기가 N이고, 이에 비례하는 시간이 걸린다면 O(N)으로 표기 * 알고리즘과 시간복잡도 알고리즘 시간 복잡도 이진 탐색 O(logN) 선형 탐색 O(N) 정렬 O(N logN) 조합 O(2^N) 순열 O(N!) 고찰 길이가 N이고 정수로 이루어진 배열에서 M개의 숫자 유무를 확인해야 한다고 가정해보자. N은 최대 10,000, M은 최대 100,000일 때, 배열을 전부 순회한다면 시간복잡도는 O(NM) 이므로 10억 이라는 결과가 나온다. 이진 탐색을 이용한다면 O((N+M)logN)의 시간복잡.. [C#] 동시성 프로그래밍_ CancellationTokenSource를 이용한 타임아웃 구현 - CancellationToken : 비동기 작업을 취소 [C#] 동시성 프로그래밍_ 지수 백오프(exponential backoff) - 재시도 사이의 대기 시간을 점진적으로 늘리는 전략 - 웹 서비스 관련 작업에 사용하면 서버가 재시도로 넘치지 않게 막을 수 있다. public static async Task GetRequestHttpWithRetries() { //1초 후, 다음에는 2초 후, 다음에는 4초 후 재시도 TimeSpan nextDelay = TimeSpan.FromSeconds(1); HttpClient client = new HttpClient(); string url = "http://www.naver.com"; for (int i = 0; i != 3; i++) { try { var result = await client.GetStringAsync(url); Console.WriteLine(string.Forma.. [C#] 동시성 개요 - 동시성 한 번에 두 가지 이상의 작업을 수행 - 멀티스레딩 다수의 실행 스레드를 사용하는 동시성의 한 형태 - 병렬처리 많은 작업을 여러 스레드에 나눠서 동시에 수행 병렬 처리 또는 병렬 프로그래밍은 멀티스레딩을 사용해서 멀티 코어 프로세서를 최대한 활용하는 방법. 작업을 나눠서 각각 다른 코어에서 독립적으로 실행할 수 있는 여러 스레드에 맡긴다. - 비동기 프로그래밍 불필요한 스레드의 사용을 피하려고 프로미스(promise)나 콜백(callback)을 사용하는 동시성의 한 형태 - 리액티브 프로그래밍 애플리케이션이 이벤트에 대응하게 하는 선언형 프로그래밍 방식 정리 [Spring] 의존성 주입(DI) 이전 1 ··· 26 27 28 29 다음