반응형
1. 메타프로그래밍루비는 메타프로그래밍을 지원하여 프로그램이 실행 중 코드 구조를 변경할 수 있고, 이를 통해 동적 메서드 생성, 속성 정의 등을 할 수 있습니다. 예를 들어 method_missing을 사용해 호출되지 않은 메서드에 대한 처리를 정의합니다.class DynamicMethod def method_missing(method_name, *args) "You called #{method_name} with #(args.inspect)" end enddm = DynamicMethod.new puts dm.undefined_method2.블록과 프로시저루비에서 블록은 메서드에 전달할 수 있는 코드 조각으로, 블록을 사용해 코드의 재사용성을 높이고, 더 유연한 메서드를 만들 수 있습..
1. 예외 처리Ruby에서 예외 처리는 begin, rescue, ensure, else 블록을 사용해 예외처리를 할 수있습니다. 예외 처리를 통해 프로그램이 예상치 못한 오류로 중단되지 않도록 하고, 오류 발생 시 적절한 조치를 취할 수 있습니다. Ruby의 기본적인 예외 처리는 아래와 같습니다.begin # 예외가 발생할 수 있는 코드 result = 10 / 0rescue ZeroDivisionError => e # 예외 발생 시 실행될 코드 puts "Error: #{e.message}"ensure # 예외 발생 여부와 상관 없이 실행되는 코드 puts "Ensure block executed"end# Output: Error: divided by 0; # Ens..
1. 파일 쓰기(Writing to a File)루비에서 파일에 데이터를 쓰기 위해 File.open 메서드를 사용합니다. 모드에 따라 파일을 생성하고 내용을 쓸 수 있습니다. "w" 모드는 파일을 새로 만들거나 기존 파일을 덮어씁니다.# 파일 쓰기File.open('write-file-result.txt', "w") do |file| file.puts("Hello World, Ruby!") file.puts("File Write Studying!")end2. 파일 읽기 (Reading from a File)파일에서 데이터를 읽기 위해서는 역시 File.open 메서드를 사용합니다. 읽기 모드로 열면 파일의 내용을 읽을 수 있습니다. "r" 모드는 파일을 읽기 전용으로 읽습니다.# 파일에서 읽..
Ruby에서 모듈과 믹스인을 사용하는 방법에 대해 알아보도록 하겠습니다. 모듈은 Ruby에서 재사용 가능한 코드를 구성하고, 믹스인은 모듈을 클래스에 포함시켜 그 기능을 추가하는 방법입니다.1. 모듈 Ruby에서 모듈은 module 키워드를 사용하여 정의하며, 메서드, 상수, 클래스를 포함할 수 있으며, 다른 클래스에서 재사용할 수 있습니다.module Greeting def hello puts "Hello!" end def goodbye puts "Good Bye!" endend2. 믹스인으로 모듈 사용하기include 또는 extend 키워드를 사용하여 모듈을 클래스에 믹스인할 수 있습니다. include는 인스턴스 메서드로, extend는 클래스 메서드로 추가합니다. 먼..
1. 클래스와 객체 지향 프로그래밍Ruby는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)을 지원하는 프로그래밍 언어로, 클래스와 객체를 중심으로 설계된 언어입니다. 먼저 클래스의 정의부터 살펴보겠습니다.2. 클래스 정의클래스는 객체를 생성하기 위한 청사진(템플릿)으로 Ruby에서는 class 키워드를 사용해 클래스를 정의합니다.class Profile # 초기화 메서드 def initialize(name, age, job) @name = name # 인스턴스 변수 @age = age @job = job end # 메서드 정의def info puts "#{@name}은 #{@age}세이고, 직업은 #{@job}입니다."enddef into p..
1. Ruby 함수와 메서드Ruby의 함수와 메서드는 코드의 재사용성을 높이고, 특정 작업을 수행하는 데 사용됩니다. 함수와 메서드의 특징은 다음과 같습니다.함수의 특징전역 함수: 루비에서 함수는 기본적으로 전역적으로 사용될 수 있음, 클래스 밖에서 정의된 경우 모든 객체에서 접근이 가능함독립적인 정의: 함수는 클래스와 관계없이 독립적으로 정의. 필요에 따라서 여러 위치에서 호출할 수 있음타임 제한 없음: 루비는 동적 타입 언어이기 때문에 매개변수의 타입을 명시할 필요 X, 다양한 타입의 인자를 받을 수 있음반환 값: 마지막으로 선언된 표현식이 자동으로 반환 return 키워드를 사용하지 않아도 됨함수를 정의할 때는 def 키워드를 사용해 정의할 수 있습니다. 함수 본문에 반환 값이 필요할 경우 반환합니..