동시성 : 한번에 두 가지 이상의 작업을 수행 > 멀티스레딩 : 다수의 실행 스레드를 사용하는 동시성의 한 형태 (동시성의 한 형태) > 병렬 처리 : 많은 작업을 여러 스레드에 나눠서 동시에 수행 (멀티스레딩의 한 형태) > 비동기 프로그래밍 : 불필요한 스레드의 사용을 피하려고 Future나 Callback을 사용 (동시성의 한 형태) > 리액티브 프로그래밍 : 애플리케이션의 이벤트에 대응하게 하는 선언형 프로그래밍 형식
책을 읽을 방향성과 내가 지금 이 책을 읽을 단계인가를 확인하는게 완독의 지름길이기 때문이다.
이 책은 최신 동시성 기법만을 다루고 있다. 따라서 기존의 동시성 기법에 대한 지식이 필요하다면 다른 서적이나 정보로 습득하자, 병렬, 비동기, 리액티브 프로그래밍 등 다양한 종류의 동시성을 다루지만, 다른 책과 온라인 자료에서 충분히 다루고 있는 전통적인 기법은 다루지 않는다.
이 책을 읽는 독자는 제네릭컬렉션, 열거자, LINQ 정도를 이해할 정도의 닷넷 경험자가 대상이다. 멀티스레딩 또는 비동기 프로그래밍에 대한 지식은 전혀 필요하지 않다.
동시성은 모든 애플리케이션에서 유용하다. 데스크탑, 모바일, 서버 애플리케이션에 상관없이 이제 동시성은 전반적인 요구 사항이다. 이 책의 내용을 활용한다면 더 빨리 반응하는 사용자 인터페이스, 규모 변경이 더 쉬운 서버를 만들 수 있다. 이미 동시성은 어디에나 존재하는 상황에 이르렀고, 이제 동시성 기법의 이해와 활용은 전문 개발자의 필수 지식이라고 할수 있다.
- 책의 서문 중에서
1장 : 병렬, 비동기, 리액티브, 데이터 흐름 의 동시성 소개
2-6장 : 1장에서 소개된 동시성을 하나하나 철저히 설명
7-14장 : 각각 동시성의 특정 측면을 다룸, 일반적인 동시성 문제의 해결책에 관한 참고 자료
언어라는게 각각의 컨셉에 따른 특징과 장점 단점들을 가지고 있기는 하지만 언어라는 자체의 큰 틀을 완전히 벗어날 수 없다. 그 큰 틀을 이해하면 언어 습득은 크게 문제가 되지 않는다. 남은건 얼마만큼 시간을 투자해 익숙해지느냐와 제공되어 있는 API의 이해도, Github에 수많은 사람들이 등록해놓은 기술/코딩 스킬들을 얼마만큼 빠르게 흡수할 수 있느냐에 달려있다고 봐도 무방하다.
그 부분중 Golang에 대해 시작해보겠다. 이미 Rust는 학습을 하고 있었는데 Rust보다 좀더 생산효율적이면서 퍼포먼스도 어느정도 보장되는 언어를 물색해보다 보니 Golang이 자연스레 눈에 들어오게 되었다. 그리고 지금 만들고 있는 거래소 정보 수집 분석 프로그램을 위해서 이기도하다.
Golang 의 장점은 이미 인터넷에 검색하면 손쉽게 확인이 가능하다.
간략히 링크 몇가지 올려보면 그 링크에서 정보들을 습득하길 바란다.
만들어진 바퀴를 다시 만들기는 시간이 없고. 나보다 훨씬 정성들여서 잘 작성된 자료들이므로 내가 다시 정성들여서 만들필요가 있을까 싶다.