crystal

Crystal-Lang is ❤️

저는 최근에 Crystal-lang을 즐기고 있습니다. 간단한 토이 프로젝트부터 Noir란 사이즈가 점점 커지고 있는 프로젝트까지 Crystal을 통해 구현하고 있습니다. 오늘은 제가 Crystal을 좋아하게된 이유에 대해 이야기하려고 합니다. What is Crystal? 먼저 Crystal에 대해 가볍게 정리하고 시작...

Fiber concurrency

동시성 프로그래밍은 재미있지만 구조나 사이즈에 따라 어려움을 동반합니다. 개인적으로도 도구 작성 시 자주 사용하기 때문에 제가 진행하는 프로젝트에서 자주 볼 수 있고, 블로그에도 Goroutine과 Sync, Ruby Concurrency 등 매년 동시성 관련해서 글을 작성한 것 같습니다. Go, Ruby에 이어 올해는 C...

개인/사설 도메인에서 Crystal Shard 패키지 읽어오기

Crystal-lang에선 Shards를 통해서 패키지와 디펜던시를 관리할 수 있습니다. 이는 go의 go get과 유사하게 yaml 내 작성된 github repository에서 소스를 읽어와 설치하는 형태입니다. dependencies: logger: github: crystal-lang/logger.cr ...

Embed resources in crystal

Crystal에서 리소스 파일을 바이너리에 Embed 하는 방법에 대해 기록해둡니다. 깃헙 이슈등을 찾아보면 stdlib로 만들어줄 것 같진 않았고 찾아보니 Rucksack이란 좋은 shard를 발견해서 간단하게 정리해둘게요. 참고로 Rucksack은 Linux와 macOS에서만 동작하고 Windows는 지원하지 않는다고 하...

Default vs Release build in Crystal

Crystal은 컴파일 언어로 바이너리로 빌드하여 사용할 수 있습니다. 그리고 공식 가이드에선 release build 시 —release flag 사용을 권고하고 있는데요. 오늘은 이 flag가 어떤 역할을 하는지, 왜 권고되고 있는지 정리해봅니다. By default, the generated executables...

Encoding Only Your Choices, EOYC

요즘 장난감 삼아 Crystal과 Elixir로 여러가지 코드를 작성해보고 있습니다. 특히 Crystal은 Ruby와 제가 예전에 한번 소개하기도 헀고 Ruby와 거의 유사한 문법에 속도까지 갖추고 있어 개인적으로 관심이 많았던 언어입니다. 최근에 여러가지 이유로 Crystal은 주력 언어로 만들어가고 있습니다. 오늘은 Cr...

Crystal - Ruby와 비슷하며 빠른 프로그래밍 언어

올 초쯤에 Crystal이란 언어에 대해 잠깐 이야기들은적이 있습니다. Ruby 문법과 유사하다는 것만 듣고 드디어 조금 더 살펴봤네요. 아직 정식 릴리즈도 아닌 상태이니 어떤 언어인지 정도만 정리해둘까 합니다. Crystal? Crystal은 루비 문법 스타일과 유사한 형태를 가지며 Static typing &...