Backend/Ruby

· Backend/Ruby
[번역] What’s new in Ruby 3.3(Ruby 3.3의 새로운 기능) 💡 원본 글 : https://nithinbekal.com/posts/ruby-3-3/ What's new in Ruby 3.3 Every year on Christmas day, the Ruby core team releases a new version of Ruby. This year will likely be no different, and we can expect Ruby 3.3 next week. This year, the primary focus of the release is performance and developer experience. There aren’t nithinbekal.com 매년 크리스마스에..
· Backend/Ruby
ruby의 ?(Question Mark / Boolean)의 의미 서론 루비를 사용하다 보면, 메서드에 ?가 붙여 있는 경우를 많이 보게 됩니다. ? 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다. ? 를 붙이는것은 Question Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Boolean Methods라고 많이 합니다. method에 ? 가 내포하는 의미 일단 한마디로 정의한다면 boolean methods(논리 메서드) 라는 의미를 가지고 있습니다. 쉽게 생각하면 boolean이 return되는 메서드입니다. Java에서는 boolean을 의미할때 is_ prefix를 많이 사용하게 되는데요. 루비에선 ? 를 뒤에 붙임으..
· Backend/Ruby
ruby의 !(Exclamation mark / Bang)의 의미 서론 루비를 사용하다 보면, 메서드에 ! 가 붙여 있는 경우를 많이 보게 됩니다. ! 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다. ! 를 붙이는것은 Exclamation Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Bang Methods라고 많이 합니다. method에 ! 가 내포하는 의미 일단 한마디로 정의한다면 dangerous methods(위험한 메서드) 라는 의미를 가지고 있습니다. 대체 뭐가 그렇게 위험하길래 ! 라는 mark까지 만들었고, 이걸 위험하다라고 경고를 준다는것일까요? 첫번째 이유는 해당 메서드를 사용한다면 원본 객체가 수정된다는 의..
· Backend/Ruby
ruby의 배열내의 카운트를 세는 법 서론 최근 어느 로직을 작성하는데, 배열내의 두개 이상의 값의 갯수를 세어야 하는 케이스가 있었다. 각각에 대한 갯수를 세면 쉽지만, 그렇게 되었을 경우 순회를 2번이상 돌아야 하기 때문에 데이터가 많다면 성능상 좋지 않다고 판단하여, 다른 방법이 있을지 찾아보았다. 기본 count 기본적으로 아래와 같이 코드가 있다고 해봅시다. arr = [1,1,1,2,3,3,4,4,4,4,4,4,5,5,5,5,5] arr에서 1의 갯수와 5의 갯수를 구하기 위해선 아래와 같이 코드를 작성하게 됩니다. arr.count(1) # 3 arr.count(5) # 5 이렇게 하면 두번의 계산이 있어야 하며, 더 추가되었을때 코드가 계속해서 추가되어 불편함이 있을수 있습니다. 기본 fo..
· Backend/Ruby
Numeric의 zero? & positive? & negative? Numeric 루비의 숫자 타입으로 숫자인 경우에 Numeric Class가 됩니다. to_i로 integer로 변경하면 Numeric 메서드를 사용할수 있습니다. cf) nil을 to_i로 하면 어떻게 되는가? nil.to_i // 0 혹시라도 zero? & positive? & negative? 메서드를 사용할때, null safe를 해야할 경우 nil.to_i를 하는것도 방법임. 그러나 zero?인 경우에 true가 나오기 때문에 nil이 0이라는 조건 하에 사용해야함. zero? APIdock 메서드명에서 보이다 싶이, 해당 숫자가 0인지를 체크하는 메서드 입니다. 구현 코드 static VALUE num_zero_p(VALUE..
· Backend/Ruby
Mastering data structures in Ruby — Doubly linked lists(Ruby의 데이터 구조 마스터 하기 - 이중 연결 목록) Single Linked List와 Doubly Linked List의 큰 차이점은각 요소들이 선행 요소에 대한 포인터를 보여한다는 점입니다. 이것으로 꼬리에서 머리로 리스트를 통과하고 일정 시간에 요소를 제거할 수 있습니다. Singly Linked List에 대해서는 이 글을 읽어보세요. 위 글을 바탕으로 이 글을 작성했습니다. Doubly Linked List 요소는 세 가지 속동을 포함하는 노드로 표시됩니다. 요소가 보유하는 값입니다. 목록에 다음 노드에 대한 포인터입니다. 목록의 이전 노드에 대한 포인터 입니다. Sigly Linked Li..
· Backend/Ruby
Comparing Each vs Select vs Map vs Collect in Ruby(루비의 Each vs Select vs Map vs Collect 비교) 소프트웨어 엔지니어는 언어의 모든 메서드를 외울필요는 없습니다. 그러나 이것은 일반적인 개념이 아닌 고급개념에 적용되는 말입니다. 만약 loop를 하기 위해 어떻게 해야 할까요? 루비의 #each, #select, #collect , #map 를 살펴보도록 하겠습니다. Each 간단한 컬렉션을 반복하는 방법입니다. [1,2,3].each {|x| puts x + 1 } => 2 => 3 => 4 그러나 #map 과 같이 다른 변수에 할당은 할수가 없습니다. a = [1,2,3].each {|x| x + 1} puts a.inspect 즉, +..
· Backend/Ruby
Functions in Ruby(루비의 함수) Ruby에서의 함수와 함수의 사용법에 대해서 알아보겠습니다. 우선 함수는 수천 줄의 코드를 수백, 수십 또는 그 이하로 줄일 수 있는 것이라고 생각하면 좋습니다. 코드의 크기가 줄이고 최적화하고 단순화 시키는 작업입니다. 상황해 따라 내장 함수(bulit-in functions) 또는 사용자 정의 함수(user-defined functions)를 사용할 수 있지만, 이 글은 사용자 정의 함수에 초점을 맞춰서 작성되었습니다. 함수란 무엇인가? 함수란 거대한 프로그램의 빌딩 블록들(building bolcks) 이라고 부를 수 있습니다. 함수를 통해 반복적인 큰 블록들을 단순화 할 수 있습니다. 올바르게 이름을 짓는다면 프로그램의 어느 부분에서나 호출할 수 있습..
· Backend/Ruby
Ruby의 map vs each 🧐 두 개의 가장 큰 차이점 두 개의 가장 큰 차이점은 새로운 배열 반환 여부입니다. map은 새로운 배열을 반환하고, each는 새로운 배열을 반환하지 않습니다. 간단한 예제를 통해 살펴보도록 하겠습니다 1️⃣ map names = [ "Dan", "Stella", "Elly" ] upcase_names = names.map { |name| name.upcase } puts names // [ "Dan", "Stella", "Elly" ] puts upcase_names // [ "DAN", "STELLA", "ELLY" ] map은 새로운 배열을 반환하기 때문에 변환된 값이 나오는걸 확인할 수 있습니다. 즉, 원래 배열을 변환하지 않는 장점이 있습니다. 원래 배열도 같..
Seyun(Marco)
'Backend/Ruby' 카테고리의 글 목록