병렬 연산을 사용해 텍스트에서 문자의 빈도를 세어요.
병렬성이란 순차적으로도 할 수 있는 일을 병렬로 처리하는 것을 말해요. 흔한 예시가 바로 문자의 빈도를 세는 거예요. 병렬성을 활용해 여러 텍스트로 이루어진 목록에서 각 문자의 전체 빈도를 계산해요.
Crystal로 동시성/병렬 프로그램을 만들 때 이 자료가 도움이 될까요? Crystal 1.19에는 고성능 동시성/병렬 프로그램을 더 쉽게 만들 수 있도록 여러 기본 요소를 추가한 새로운 Sync 라이브러리가 들어왔어요.
이 연습 문제의 온라인 환경은 대부분의 다른 연습 문제와 조금 달라요. Crystal을 단일 스레드 바이너리로 컴파일하는 대신, 이 연습 문제는 Crystal의 실험적인 멀티스레딩 기능을 사용해요. 그래서 일부 환경에서는 실행이 예상과 다르게 동작할 수 있어요.
로컬에서 개발할 때는 Crystal 1.19.0 이상을 설치하고, 코드를 컴파일하거나 실행할 때 -Dpreview_mt 플래그를 추가해서 멀티스레딩 지원을 켜는 걸 권장해요.
Exercism에 가입하고 Crystal 트랙을 개념 26개연습 문제 142개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.
동시성과 병렬성의 차이를 살펴보고, JavaScript, Go, Elixir, Rust 같은 언어들이 택한 여러 접근법을 함께 봐요.