C#
[Algorithm] 선형 탐색 알고리즘 에 대해 알아보자
선형 탐색 오늘 알아볼 것은 알고리즘의 기본 중의 기본 탐색 알고리즘에 대해 알아보고자 한다 많은 탐색 알고리즘 중 처음 배워 볼 것은 바로 선형 탐색 알고리즘이라고 하는 것이다. 선형 탐색 알고리즘 또는 순차 탐색 알고리즘이라고 하는 이것은 단어에서도 알 수 있듯이 특정한 무언가를 찾는 알고리즘이다 대상은 리스트, 배열과 같이 수가 나열되어 있는 곳이다 Big O 표기 선형 탐색 알고리즘의 시간 복잡도는 "O(N)"이며 이는 데이터의 량이 늘어날수록 아래 사진처럼 계산 시간도 같이 늘어나는 것을 의미한다. 이 처럼 검색 방법 중 가장 단순히 구현 가능하지만 검색할 대상의 리스트 길이가 길면 길수록 비효율적이게 된다. 스크립트 함수 로직 static int LinearSearch(int[] arr, in..
[C#] 비동기 프로그래밍(Asynchronous Programming) 에 대해 알아보자
동기, 비동기 프로그래밍 동기 프로그래밍(Synchronous Programming)은 프로그램이 실행되는 도중 어떤 작업 요청이 들어오면 해당 작업이 종료될 때까지 기다렸다가 다음 작업을 하는 것을 의미 하고 반면 비동기 프로그래밍(Asynchronous Programming)은 프로그램이 실행 되는 도중 작업 요청을 한 뒤 결과를 기다리지 않고 바로 다음 동작을 하는 것을 의미한다. 이처럼 동기(Synchronous)는 작업의 응답이 끝남과 동시에 다음 작업이 요청되고 함수가 결과를 반환 할 때까지 기다리며 작업 완료 여부를 계속 해서 확인한다 비동기(Asynchronous)는 작업 완료 여부를 확인하지 않고 작업의 응답이 끝나지 않는 상태에서 다음 작업이 요청된다. Task 클래스 하나의 프로그램(..
[C#] 가비지 컬렉션(Garbage Collection) 에 대해 알아보자
가비지 컬렉션 이란? 가비지 컬렉션, GC라고 줄여서도 부른다 이번엔 가비지 컬렉션(Garbage Collection)에 대한 기본적인 원리를 알아보고 C#에서의 메모리 할당과 해제과정에 대해 알아보고자 한다. 우선 시작하기 전에 기본적인 메모리 구조에 대해 알고 온다면 좋을 것 같다 가비지 컬렉션을 한국어로 직역하자면 "쓰레기 수거"라는 뜻으로, 여기서 정의한 쓰레기는 더 이상 사용되지 않는 객체를 말한다. C, C++ 와 같은 언어들은 C# 과는 달리 자동 메모리 관리 기능 (Automatic Memory Management) 을 제공하지 않고 프로그래머가 직접 메모리를 할당해주고 해제해주는 작업을 거치게 된다 대표적으로 C와 C++ 에는 malloc, new free, delete 등이 있다. 그리..