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
'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 |