Crystal 1.0 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ μ‚¬μš© κ°€λŠ₯

Crystal 1.0 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 λ¦΄λ¦¬μŠ€λŠ” 8λ…„κ°„μ˜ μž‘μ—…μ„ λ§ˆλ¬΄λ¦¬ν•˜λŠ” 졜초의 μ£Όμš” 릴리슀이며, μ–Έμ–΄μ˜ μ•ˆμ •ν™”μ™€ ν”„λ‘œλ•μ…˜ ν”„λ‘œμ νŠΈμ—μ„œμ˜ μ‚¬μš© μ€€λΉ„ μ™„λ£Œλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. 1.x 버전은 이전 λ²„μ „κ³Όμ˜ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜κ³  μ–Έμ–΄λ‚˜ ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ λ³€κ²½ 사항이 κΈ°μ‘΄ μ½”λ“œμ˜ λΉŒλ“œ 및 μž‘λ™μ— 뢀정적인 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ 보μž₯ν•©λ‹ˆλ‹€.

1.0.y λ²„μ „μ—λŠ” μ‚¬μ†Œν•œ 버그 μˆ˜μ •λ§Œ ν¬ν•¨λ˜λ©°, 1.x.0 λ²„μ „μ—μ„œλŠ” μ½”λ“œ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜λ©΄μ„œ μƒˆλ‘œμš΄ κΈ°λŠ₯κ³Ό μ€‘μš”ν•œ λ³€κ²½ 사항이 λ„μž…λ©λ‹ˆλ‹€. μƒˆλ‘œμš΄ 아이디어와 잠재적으둜 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” λ³€κ²½ 사항은 λ³„λ„μ˜ λΈŒλžœμΉ˜μ—μ„œ 개발되며, μ΄λŠ” λ‚˜μ€‘μ— Crystal 2.0 릴리슀의 기반이 λ©λ‹ˆλ‹€. Crystal 1.0의 일뢀 κΈ°λŠ₯은 μ˜ˆλΉ„ κΈ°λŠ₯으둜 κ°„μ£Όλ˜λ©°, 1.0 λΈŒλžœμΉ˜μ— ν¬ν•¨λ˜μ–΄ μžˆλ”λΌλ„ 곡식적인 지원은 μ œκ³΅λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°λŠ₯μ—λŠ” λ©€ν‹°μŠ€λ ˆλ”©, ν”Œλž«νΌ 지원 등이 ν¬ν•¨λ©λ‹ˆλ‹€. WindowsARM ν”„λ‘œμ„Έμ„œκ°€ νƒ‘μž¬λœ μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

Crystal κ°œλ°œμžλ“€μ€ Ruby μ–Έμ–΄μ˜ 개발 νŽΈμ˜μ„±κ³Ό C μ–Έμ–΄ 특유의 높은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯을 κ²°ν•©ν•˜λ €κ³  λ…Έλ ₯ν•˜κ³  μžˆλ‹€λŠ” 점을 κΈ°μ–΅ν•˜μ„Έμš”. Crystal의 ꡬ문은 Ruby와 λΉ„μŠ·ν•˜μ§€λ§Œ μ™„λ²½ν•˜κ²Œ ν˜Έν™˜λ˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€λ§Œ 일뢀 Ruby ν”„λ‘œκ·Έλž¨μ€ λ¦¬νŒ©ν† λ§ 없이도 μ‹€ν–‰λ©λ‹ˆλ‹€. 컴파일러 μ½”λ“œλŠ” Crystal μ–Έμ–΄λ‘œ μž‘μ„±λ˜μ—ˆμœΌλ©° Apache 2.0 λΌμ΄μ„ μŠ€μ— 따라 λ°°ν¬λ©λ‹ˆλ‹€.

이 μ–Έμ–΄λŠ” 정적 μœ ν˜• 검사λ₯Ό μ‚¬μš©ν•˜λŠ”λ°, μ΄λŠ” μ½”λ“œμ—μ„œ λ³€μˆ˜μ™€ λ©”μ„œλ“œ 인수의 μœ ν˜•μ„ λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•  ν•„μš” 없이 κ΅¬ν˜„λ©λ‹ˆλ‹€. Crystal ν”„λ‘œκ·Έλž¨μ€ μ‹€ν–‰ 파일둜 컴파일되고, λ§€ν¬λ‘œλŠ” 컴파일 μ‹œμ μ— ν‰κ°€λ˜κ³  μ½”λ“œλŠ” μƒμ„±λ©λ‹ˆλ‹€. Crystal ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” C둜 μž‘μ„±λœ 바인딩을 μ—°κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. "spawn" ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ½”λ“œ 싀행을 병렬화할 수 있으며, 이λ₯Ό 톡해 νŒŒμ΄λ²„λΌκ³  ν•˜λŠ” κ²½λŸ‰ μŠ€λ ˆλ“œ ν˜•νƒœλ‘œ 메인 μŠ€λ ˆλ“œλ₯Ό μ°¨λ‹¨ν•˜μ§€ μ•Šκ³  λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ λΉ„λ™κΈ°μ μœΌλ‘œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” CSV, YAML 및 JSON 처리용 도ꡬ, HTTP μ„œλ²„ μƒμ„±μš© ꡬ성 μš”μ†Œ, WebSocket 지원을 ν¬ν•¨ν•œ κ΄‘λ²”μœ„ν•œ 곡톡 κΈ°λŠ₯ μ„ΈνŠΈλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 개발 κ³Όμ •μ—μ„œ Crystal μ–Έμ–΄λ‘œ μ½”λ“œλ₯Ό λŒ€ν™”ν˜•μœΌλ‘œ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ μ›Ή μΈν„°νŽ˜μ΄μŠ€(기본적으둜 localhost:8080)λ₯Ό μƒμ„±ν•˜λŠ” "crystal play" λͺ…령을 μ‚¬μš©ν•˜λŠ” 것이 νŽΈλ¦¬ν•©λ‹ˆλ‹€.

μ£Όμš” λ³€κ²½ 사항 :

  • νŠœν”Œμ—μ„œλŠ” μ»΄νŒŒμΌλŸ¬κ°€ 각 μš”μ†Œμ˜ μœ ν˜•μ— λŒ€ν•œ 정보λ₯Ό κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ, μ„œλ‘œ λ‹€λ₯Έ μœ ν˜•μ˜ μš”μ†Œμ— λŒ€ν•œ 인덱슀 μ•‘μ„ΈμŠ€κ°€ ν—ˆμš©λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄: tuple = {1, "hello", 'x'} v = tuple[0..1] # {1, "hello"}λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€ typeof(v) # => Tuple(Int32, String)
  • "\uD834"와 같은 μœ λ‹ˆμ½”λ“œ μ΄μŠ€μΌ€μ΄ν”„ μ‹œν€€μŠ€μ˜ μ„œλ‘œκ²Œμ΄νŠΈ μ•½μ–΄λŠ” λ¬Έμžμ—΄ 및 문자 λ¦¬ν„°λŸ΄μ—μ„œ ν—ˆμš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μž„μ˜μ˜ 값을 μΈμ½”λ”©ν•˜λ €λ©΄ "\x" ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • 이전에 더 이상 μ‚¬μš©λ˜μ§€ μ•Šλ˜ μ •μ˜, 맀크둜, λ©”μ„œλ“œ 쀑 μƒλ‹Ήμˆ˜κ°€ ν‘œμ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Set, StaticArray#[], YAML.new, HTTP::Request, HTTP::WebSocket, Hash#delete_if, Process#kill λ“±μ˜ λ©”μ„œλ“œκ°€ ν¬ν•¨λ©λ‹ˆλ‹€.
  • 이제 Getter 및 속성 λ§€ν¬λ‘œμ— λ°˜ν™˜ μœ ν˜•μ΄ ν•„μš”ν•©λ‹ˆλ‹€.
  • κΈ°λ³Έ 반올림 방법이 TIES_EVEN('은행 반올림', κ°€μž₯ κ°€κΉŒμš΄ μ •μˆ˜λ‘œ, 경계 μƒν™©μ—μ„œλŠ” κ°€μž₯ κ°€κΉŒμš΄ 짝수둜)으둜 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€. Number#round에 RoundingMode λ§€κ°œλ³€μˆ˜λ₯Ό μΆ”κ°€ν•˜μ—¬ 반올림 방법을 μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€. μ‚¬μš© κ°€λŠ₯ν•œ λ©”μ„œλ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€: TIES_EVEN, TIES_AWAY, TO_ZERO, TO_POSITIVE, TO_NEGATIVE.
  • μ»¬λ ‰μ…˜μ€ ν˜Όν•© μœ ν˜•μ˜ μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” Enumerable#flat_map 및 Iterator#flat_map을 μ§€μ›ν•©λ‹ˆλ‹€.
  • Enum μ‹œν€€μŠ€μ˜ μ§λ ¬ν™”λŠ” 이제 λ°‘μ€„λ‘œ κ΅¬λΆ„λœ λ¬Έμžμ—΄ ν‘œν˜„μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • XML λͺ¨λ“ˆμ— μ •μ˜λœ μœ ν˜•μ€ structμ—μ„œ class둜 μ΄λ™λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • λ³΄μ•ˆμƒμ˜ 이유둜 μΏ ν‚€ 이름 λ””μ½”λ”©κ³Ό μΏ ν‚€ κ°’ 인코딩 및 디코딩은 μ€‘λ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€(이제 인코딩은 ν”„λ ˆμž„μ›Œν¬μ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ±…μž„μž…λ‹ˆλ‹€). HTTP::Cookies.from_headers λ©”μ„œλ“œλŠ” 두 κ°€μ§€ λ²„μ „μœΌλ‘œ λΆ„λ¦¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ„œλ²„ 그리고 ν΄λΌμ΄μ–ΈνŠΈ.

좜처 : opennet.ru

DDoS 보호, VPS VDS μ„œλ²„κ°€ μžˆλŠ” μ‚¬μ΄νŠΈλ₯Ό μœ„ν•œ μ•ˆμ •μ μΈ ν˜ΈμŠ€νŒ… κ΅¬μž… πŸ”₯ DDoS 곡격 λ°©μ§€ κΈ°λŠ₯이 νƒ‘μž¬λœ μ•ˆμ •μ μΈ μ›Ήμ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ…, VPS 및 VDS μ„œλ²„λ₯Ό κ΅¬λ§€ν•˜μ„Έμš” | ProHoster