인공지능, 정말 책으로 혼자 배울 수 있을까?1 여기에 대한 대답으로 인공지능(머신러닝, 딥러닝) 자습서를 소개해 본다. 동영상 강좌까지 준비되어 있어서 학습에 많은 도움을 준다. 다만 학습에 필요한 Python이라는 프로그램 언어를 이해할 필요가 있다.
아마존 사이언스 블로그 소식에 의하면 기존 Javascript 코드 레이어로 구성한 Prime Video 서비스를 Rust, WebAssembly로 전환하여 안정성과 속도를 향상했다고 한다.1
또한, theregister.com의 기사에 의하면 마이크로소프트는 Windows커널을 Rust로 작성하고 있다고 한다. Microsoft is rewriting core Windows libraries in the Rust programming language, and the more memory-safe code is already reaching developers.2
이처럼 Rust는 차세대 시스템 프로그래밍 언어로 위치를 굳건히 다져가고 있다. 위의 이미지는 Rust를 학습하는 데 필요한 추천 서적을 소개한 것이다.
C#은 동시성(Concurrency) 구현을 쉽게 할 수 있는데 이번 글에서 여러 개의 비동기 함수를 병렬처리 형태로 구현해 보는 예제를 살펴볼 것이다. Concurrency 방식과 Parallel 방식의 비교1는 이전 글인 Concurrency in C# Example 에서 살펴보았다.
아래의 예제처럼 각 1초, 2초, 3초를 소요하는 비동기 방식의 함수가 3개 있다고 가정하고 IProgress 또는 리턴값을 처리한다고 하면 총 6초가량이 걸리게 된다.
async Task Main()
{
string returnValue1 = await ProgressA(); //1초
string returnValue2 = await ProgressB(); //2초
string returnValue3 = await ProgressC(); //3초 : 총 6초
}
위의 예제를 아래처럼 Concurrency를 사용하면 총 3초가 소요되는 병렬처리가 가능하다2.