[Ruby] 9장(완) 루비 고급 주제

1. 메타프로그래밍

루비는 메타프로그래밍을 지원하여 프로그램이 실행 중 코드 구조를 변경할 수 있고, 이를 통해 동적 메서드 생성, 속성 정의 등을 할 수 있습니다. 예를 들어 method_missing을 사용해 호출되지 않은 메서드에 대한 처리를 정의합니다.

class DynamicMethod
   def method_missing(method_name, *args) 
    "You called #{method_name} with #(args.inspect)"
   end
  end

dm = DynamicMethod.new 
puts dm.undefined_method

2.블록과 프로시저

루비에서 블록은 메서드에 전달할 수 있는 코드 조각으로, 블록을 사용해 코드의 재사용성을 높이고, 더 유연한 메서드를 만들 수 있습니다. 프로시저와 람다의 차이점을 이해하는 것이 중요합니다.

def execute(&block)
  block.call 
end 

execute { puts "Hello from inside the block"}

3. 모듈과 믹스인

모듈을 사용하면 여러 클래스에서 공통된 기능을 재사용할 수 있고, 믹스인을 통해 다중 상속의 문제를 피하면서 유사한 기능을 구현할 수 있습니다.

module Dream 
  def dream 
    "i am dreaming"
  end
end 

class Sleep 
  include Dream 
end 

sleep = Sleep.new 
puts sleep.dream
# Output: i am dreaming

4. 정규 표현식

정규 표현식은 문자열 검색과 조작에 매우 유용하며, 정규 표현식을 사용하여 문자열 패턴을 찾고, 교체하고, 검증할 수 있습니다. 

text = "Ruby is a cool language"
if text =~ /Ruby/
  puts "Yay! Ruby is there"
end 
# Output: Yay! Ruby is there

5. 병행성과 비동기 프로그래밍

루비에서 스레드를 사용하여 비동기적으로 작업을 수행할 수 있습니다. 이를 통해 I/O 작업을 효율적으로 처리할 수 있습니다.

threds = [] 

5.times do |i| 
   threads << Thread.new do 
     sleep(rand(1..3))
      puts "Thread #{i} is done"
   end 
end

threads.each(&:join)

6. Ruby on Rails란

Ruby on Rails(일반적으로 Rails라 불림)는 Ruby 프로그래밍 언어로 작성된 오픈 소스 웹 애플리케이션 프레임워크로, Rails는 MVC(모델-뷰-컨트롤러) 아키텍처를 기반으로, 웹 애플리케이션 개발의 효율성을 극대화하기 위해 설계되었습니다. Ruby on Rails의 특징으로는 다음과 같습니다.

 

  • 빠른 개발: Rails는 "Convention over Configuration(약속보다 설정)"의 원칙을 따르며, 개발자가 기본 규칙을 따르는 한, 많은 설정을 생략할 수 있어 개발 속도 빨라짐
  • MVC 아키텍쳐: Rails는 MVC 패턴을 사용하어 애플리케이션 구조를 명확하게 분리하며, 유지보수와 확장성을 용이하게 만듬
  • 강력한 ORM: Active Record는 Rails의 ORM(Object-Relational Mapping)으로, 데이터베이스와의 상호작용을 쉽게 처리할 수 있음
  • 풍부한 생태계: 다양한 Gems(라이브러리)를 통해 기능을 쉽게 확장하고, 커뮤니티 지원 활발
  • RESTful 설계: Rails는 RESTful 아키텍처를 지원하여, 리소스 중심의 웹 애플리케이션을 쉽게 구축

7. Ruby on Rails 장단점

  • 장점
    • 생산성: Rails의 높은 수준의 추상화와 기본 제공 기능 덕분에 빠른 프로토타입 개발 가능
    • 유지보수성 용이: 코드가 잘 구현되어 있으며, 유지보수와 수정 용이
    • 강력한 커뮤니티: 활발한 커뮤니티 덕분에 다양한 자료와 도움을 받을 수 있음
    • 테스트 주도 개발(TDD): Rspec과 같은 도구를 사용해 테스트 주도 개발을 쉽게 적용
    • 보안 기능: Rails는 CSRF, SQL인젝션, XSS 등 여러 보안 기능을 기본 제공
  • 단점
    • 성능: 다른 프레임워크에 비해 성능이 떨어질 수 있으며, 특히 대규모 애플리케이션에서 문제가 될 수 있음
    • 메모리 사용량: Rails는 다른 프레임워크에 비해 메모리 사용량이 많음
    • 복잡성: Rails의 규칙과 설정을 배우는데 시간이 소요되며, 복잡한 애플리케이션에 이해가 어려울 수 있음
    • 업데이트: Rails는 새로운 버전이 자주 출시되며, 업데이트 시 호환성 문제를 겪을 수 있음

8. 설치법

Rails를 설치하는 방법은 다음과 같습니다. 먼저 윈도우에서 설치하기 위해 아래 RubyInstaller에서 다운로드하고 설치합니다. macOS와 Linux는 다음 명령어로 설치합니다.

  • macOS: Homebrew를 통해 설치
brew install ruby

 

  • Linux: 패키지 관리자를 통해 설치
sudo apt-get install ruby-full

 

설치가 완료되면 터미널에서 다음 명령어를 실행해 Rails를 설치합니다. 

gem install rails

 

그 다음 프로젝트 생성 폴더에가서 터미널을 열고 새로운 Rails 프로젝트를 생성해줍니다.

rails new myapp

 

다음 데이터베이스를 설정하고 마이그레이션을 실행합니다.

cd myapp
rails db:create 
rails db:migrate

 

이제 다음 명령어로 rails 서버를 실행하고 웹 브라우저에 http://localhost:3000에 접속하여 애플리케이션이 실행되는지 확인해줍니다. 

rails-server

 

 

 

GitHub - set-up-init/ruby-tutorial-tistory: https://thinky.tistory.com/category/Back-End/Ruby

https://thinky.tistory.com/category/Back-End/Ruby. Contribute to set-up-init/ruby-tutorial-tistory development by creating an account on GitHub.

github.com

 

LIST

'Back-End > Ruby' 카테고리의 다른 글

[Ruby on Rails] 1장. 라우팅과 컨트롤러  (0) 2025.03.31
[Ruby on Rails] Ruby on Rails란?  (0) 2025.03.25
[Ruby] 8장 예외처리  (0) 2025.03.12
[Ruby] 7장 파일 입출력  (0) 2025.03.08
[Ruby] 6장 모듈과 믹스인  (0) 2025.03.07