전체 보기

좀 더 깔끔한 정리 ver

1. 기본 문법

출력

puts "Hello, World!" : 문자열을 출력하고 줄 바꿈
print "Hello" : 줄 바꿈 없이 출력

주석

한 줄 주석: # 여기에 주석을 작성
여러 줄 주석:
=begin 여러 줄 주석 =end
Ruby
복사

2. 변수와 데이터 타입

변수 선언

소문자로 시작: name = "Dora"

데이터 타입

정수 (Integer): x = 5
실수 (Float): pi = 3.14
문자열 (String): greeting = "Hello"
심볼 (Symbol): status = :active (메모리 효율적이며 고정된 객체)
배열 (Array): numbers = [1, 2, 3]
해시 (Hash): person = { "name" => "Dora", "age" => 25 }

3. 조건문과 논리

조건문

ruby 코드 복사 if age > 18 puts "Adult" elsif age == 18 puts "Just became an adult" else puts "Minor" end
Ruby
복사
한 줄 조건문: puts "Adult" if age > 18

논리 연산자

&&: 그리고
||: 또는
!: 부정

4. 반복문

while 루프

ruby 코드 복사 i = 0 while i < 5 do puts i i += 1 end
Ruby
복사

for 루프

for i in 0..5 do puts i end
Ruby
복사

times 메서드

5.times { puts "Hello!" }
Ruby
복사

5. 메서드

메서드 정의

def greet(name) "Hello, #{name}!" end puts greet("Dora")
Ruby
복사
기본값 설정: def greet(name = "Guest")

반환값

루비는 마지막 식의 값을 자동으로 반환합니다.
return을 명시적으로 사용할 수 있습니다.

6. 클래스와 객체 지향 프로그래밍 (OOP)

클래스 정의

class Person attr_accessor :name, :age def initialize(name, age) @name = name @age = age end def greet "Hi, I'm #{@name} and I'm #{@age} years old." end end person = Person.new("Dora", 25) puts person.greet
Ruby
복사
인스턴스 변수: @name은 객체의 속성을 의미합니다.
게터/세터 메서드: attr_accessor는 자동으로 게터와 세터를 생성합니다.

7. 모듈과 믹스인

모듈 정의

module Greetings def say_hello "Hello!" end end class Person include Greetings end person = Person.new puts person.say_hello
Ruby
복사
모듈은 클래스에 믹스인하여 재사용할 수 있습니다.

8. 예외 처리

예외 처리 구조

begin # 에러가 발생할 수 있는 코드 rescue => e puts "Error: #{e.message}" ensure puts "이 코드는 항상 실행됩니다." end
Ruby
복사
raise: 명시적으로 예외를 발생시킵니다.

9. 파일 입출력 (IO)

파일 읽기

contents = IO.read("my_file.txt") puts contents
Ruby
복사

파일 쓰기

File.open("output.txt", "w") { |file| file.write("Hello, World!") }
Ruby
복사

10. 정규 표현식

정규 표현식 사용 예시

if "user_123".match(/^user_(\d+)/) puts "Matched!" end
Ruby
복사
match: 문자열이 정규 표현식과 일치하는지 확인합니다.

11. 상속과 클래스 계층

클래스 상속

class Animal def speak "Animal sound" end end class Dog < Animal def speak "Bark!" end end dog = Dog.new puts dog.speak # "Bark!"
Ruby
복사

12. 메타 프로그래밍

method_missing 사용

class DynamicMethods def method_missing(name, *args) puts "Method #{name} was called with arguments: #{args.join(', ')}" end end obj = DynamicMethods.new obj.unknown_method("arg1", "arg2")
Ruby
복사

13. 기타 유용한 문법

스페이스십 연산자

puts 5 <=> 10 # -1 puts 10 <=> 10 # 0 puts 15 <=> 10 # 1
Ruby
복사

심볼과 문자열 변환

:symbol.to_s : 심볼을 문자열로 변환
"string".to_sym : 문자열을 심볼로 변환