Ruby / / 2022. 12. 22. 18:28

Ruby on Rails 6 : Ruby 문법 톺아보기 1 - irb, Data Type

저번 글에서 말했다 싶이, Ruby on Rails는 Ruby를 기반으로 한 풀 프레임워크입니다. 그렇기에 어느정도 Ruby 언어에 대한 숙지가 필요합니다. 그래서 이번 글부터 대략 5~6개 정도의 글을 Ruby 언어에 대한 간략한 톺아보기로 채워보려고 합니다. 이번 시간에는 irb와 이를 통한 데이터 입출력 등을 함께 보기로 하겠습니다.

irb (interactive interperter)

irb는 간단하게 말해 python을 터미널에 쳐서 나오는 인터프리터 상호작용 환경입니다. 단순합니다. Ruby가 깔린 상태에서 irb를 그대로 치면 됩니다. 그러면 다음과 같은 화면이 나옵니다.

 

이제 본격적으로 이곳에서 코드를 쳐보며 놀아보면 됩니다! 그러면 현재 시간을 출력해보겠습니다. irb에다가 "Time.now"를 치면 됩니다.

그러면 아주 완벽하게 현재 시간이 출력됩니다! 그러면 본격적으로 irb를 가지고 놀기위한 ruby의 데이터 타입을 알아보겠습니다.

 

Ruby Data Types

Strings

Ruby의 경우 위와 같이 따움표를 통해 문자열을 표시할 수 있습니다. 여기서 쌍따움표와 따움표 사이에 차이가 있는데요. ""의 경우 파이썬의 f-string처럼 중간에 값을 넣어줄 수 있지만, ''의 경우는 불가능하다는 것입니다. 이때 f-string처럼 넣어줄 수 있는 문법은 Ruby에서는 다음과 같습니다.

"Now is #{Time.now}"

그렇다면 위의 코드를 쌍따움표와 따움표로 하면 어떤 결과가 나올까요?

 

쌍따움표의 경우 중간에 값을 넣어줄 수 있지만, 따움표의 경우 그렇지 못하고 그대로 값이 string으로 처리되어 출력되는 것을 알 수 있습니다.

 

String은 이처럼 다양한 input을 넣어줄 수 있습니다. 이번에는 한번 Down case, Upper case를 해보겠습니다.

 

단순합니다. String뒤에 downcase와 upcase를 붙여주면 됩니다. 그 외에도 파이썬의 String 합처럼, String끼리 합치는 것도 당연히 가능합니다.

Numbers

대표적으로 Ruby에는 숫자를 표현하기 위한 데이터 타입이 두가지 있습니다. 바로 Integer와 Float입니다. 위의 경우를 보면 Integer연산이 잘되는 것을 볼 수 있는데, 조금은 특이한 부분이 있습니다. 343/3200의 연산이 float로 표시되지 않고 integer로 표시되는 것입니다.

 

이 경우 Ruby에서 연산에서의 모든 숫자가 integer일 경우 결과도 integer로 나옵니다. 그래서 저 부분을 해결하기 위해서는 두 값 중 하나를 Float타입으로 바꿔줘야 합니다. 그렇게 해야 결과가 Float로 나옵니다.

 

Symbols

다른 언어에서는 생소한 개념입니다. 심볼의 경우 colon으로 시작하는 - :controller - 데이터 타입입니다. 이러한 심볼의 경우 보통 이름을 정해주고 변하지 않는 특성을 이용하기 위해 많이 사용합니다.

:my_symbol

 

Arrays and Hashes

-

Array는 파이썬의 List와 비슷하다고 보시면 될 것 같습니다. 인덱싱 부터 Array간의 연산 등도 전부 지원합니다. 하지만 조금 특이한 연산이 하나 있습니다.

 

위의 예시를 보시면 city_array << "Seoul"이라는 기존 파이썬이나 다른 곳에서는 잘 못본 문법이 있습니다. 간단히 설명해 파이썬의 append()함수라고 생각하면 편합니다.


Hashes의 경우 파이썬의 Dictionary와 비슷합니다. {}를 통해 정의할 수 있으며, {key: "value"}를 통해 안에 데이터를 넣을 수 있습니다. 또한 key값을 넣을 때도 my_hash[:key]를 통해 value에 접근할 수 있습니다.

 

위의 예시처럼 값을 만들 수 있습니다. 하지만 뭔가 출력값이 기존 다른 언어들하고는 다른 것을 느낄 수 있습니다. 바로 여기서 위에서 보았던 Symbols가 사용됩니다. 즉 심볼을 Key값으로 넣고 Value를 매핑한다고 생각하면 편합니다. 값을 꺼내올 때도 심볼로 넣어야 합니다.

위의 예시처럼 심볼을 넣어서 값을 불러옵니다. 그 외에도 Hashes는 다양한 함수를 지원합니다.

이처럼 키값들만 뽑아온다던지, 첫번째 키:값 을 불러온다든지가 가능합니다.

Summary

이번 글에서는 간단한 루비의 데이터 타입과 irb사용법을 알아봤습니다. 다음 글에서는 변수등을 알아보겠습니다! 읽어주셔서 감사합니다!

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유