Crystal 1.2 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ถ์๋์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ Ruby ์ธ์ด์ ๊ฐ๋ฐ ํธ์์ฑ๊ณผ C ์ธ์ด์ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ํน์ฑ์ ๊ฒฐํฉํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. Crystal์ ๊ตฌ๋ฌธ์ Ruby์ ๋น์ทํ์ง๋ง ์์ ํ ํธํ๋์ง๋ ์์ง๋ง ์ผ๋ถ Ruby ํ๋ก๊ทธ๋จ์ ์์ ์์ด ์คํ๋ฉ๋๋ค. ์ปดํ์ผ๋ฌ ์ฝ๋๋ Crystal๋ก ์์ฑ๋์์ผ๋ฉฐ Apache 2.0 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ธ์ด๋ ์ฝ๋์์ ๋ณ์ ๋ฐ ๋ฉ์๋ ์ธ์์ ์ ํ์ ๋ช ์์ ์ผ๋ก ์ง์ ํ ํ์ ์์ด ๊ตฌํ๋๋ ์ ์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Crystal ํ๋ก๊ทธ๋จ์ ์ปดํ์ผ ํ์์ ๋งคํฌ๋ก๊ฐ ํ๊ฐ๋๊ณ ์ฝ๋๊ฐ ์์ฑ๋์ด ์คํ ํ์ผ๋ก ์ปดํ์ผ๋ฉ๋๋ค. Crystal ํ๋ก๊ทธ๋จ์์๋ C๋ก ์์ฑ๋ ๋ฐ์ธ๋ฉ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ฝ๋ ์คํ์ ๋ณ๋ ฌํ๋ "spawn" ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ํ์ด๋ฒ๋ผ๋ ๊ฒฝ๋ ์ค๋ ๋ ํํ๋ก ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๊ณ ๋น๋๊ธฐ ๋ชจ๋์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์คํํ ์ ์์ต๋๋ค.
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ CSV, YAML ๋ฐ JSON ์ฒ๋ฆฌ์ฉ ๋๊ตฌ, HTTP ์๋ฒ ์์ฑ์ฉ ๊ตฌ์ฑ ์์, WebSocket ์ง์์ ํฌํจํ ๊ด๋ฒ์ํ ๊ณตํต ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ ๊ณผ์ ์์ Crystal ์ธ์ด๋ก ์ฝ๋๋ฅผ ๋ํํ์ผ๋ก ์คํํ๊ธฐ ์ํ ์น ์ธํฐํ์ด์ค(๊ธฐ๋ณธ์ ์ผ๋ก localhost:8080)๋ฅผ ์์ฑํ๋ "crystal play" ๋ช ๋ น์ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ :
- ์ผ๋ฐ ํด๋์ค์ ํ์ ํด๋์ค๋ฅผ ์์ ํด๋์ค์ ์์์ ํ ๋นํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ํด๋์ค Foo(T); end class Bar(T) < Foo(T); ๋ x = ํธ x = ๋ฐ
- ์ด์ ๋งคํฌ๋ก๋ ๋ฐ์ค์ ์ฌ์ฉํ์ฌ for ๋ฃจํ์ ๊ฐ์ ๋ฌด์ํ ์ ์์ต๋๋ค. {% for _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
- ๋งคํฌ๋ก์ "file_exists?" ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ํ์ผ์ ์กด์ฌ๋ฅผ ํ์ธํฉ๋๋ค.
- ์ด์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ 128๋นํธ ์ ์๋ฅผ ์ง์ํฉ๋๋ค.
- BitArray ๋ฐ Deque์ ๊ฐ์ ์ปฌ๋ ์ ์ ๋ํ ๊ณ ๊ธ ์์ ์ ๊ตฌํํ๋ Indexable::Mutable(T) ๋ชจ๋์ด ์ถ๊ฐ๋์์ต๋๋ค. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
- XML์์ ํน์ ๋ค์์คํ์ด์ค๋ฅผ ์ถ์ถํ๋ XML::Node#namespace_definition ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- IO#write_utf8 ๋ฐ URI.encode ๋ฉ์๋๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ IO#write_string ๋ฐ URI.encode_path๋ก ๋์ฒด๋์ด์ผ ํฉ๋๋ค.
- 32๋นํธ x86 ์ํคํ ์ฒ์ ๋ํ ์ง์์ด ๋ ๋ฒ์งธ ์์ค์ผ๋ก ์ด๋๋์์ต๋๋ค(๊ธฐ์ฑ ํจํค์ง๋ ๋ ์ด์ ์์ฑ๋์ง ์์). ARM64 ์ํคํ ์ฒ์ ๋ํ ์ฒซ ๋ฒ์งธ ์ง์ ์์ค์ผ๋ก์ ์ ํ์ด ์ค๋น ์ค์ ๋๋ค.
- Windows ํ๋ซํผ์ ๋ํ ์์ ํ ์ง์์ ๋ณด์ฅํ๊ธฐ ์ํ ์์ ์ด ๊ณ์๋๊ณ ์์ต๋๋ค. Windows ์์ผ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- x86 ํ๋ก์ธ์๊ฐ ํ์ฌ๋ ์ฅ์น์ Apple M1 ์นฉ์ด ํ์ฌ๋ ์ฅ๋น ๋ชจ๋์์ ์๋ํ๋ macOS์ฉ ๋ฒ์ฉ ํจํค์ง๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru