이미지 파일 및 설정 파일 삭제, 새로운 CLI 및 문서 추가

This commit is contained in:
2025-03-04 12:19:53 +09:00
parent fb66b69644
commit 2c0a2d738c
33 changed files with 3149 additions and 54 deletions

View File

@@ -0,0 +1,211 @@
# **Ruby 기본 문법과 데이터 타입**
Ruby는 간결한 문법과 강력한 객체지향 기능을 갖춘 프로그래밍 언어다. 이 글에서는 Ruby의 기본적인 문법과 주요 데이터 타입을 설명한다.
---
## **1. Ruby의 기본 문법**
### **1.1. 변수와 상수**
Ruby에서 변수는 `snake_case`(소문자 + 밑줄)로 작성하는 것이 일반적이다. 변수 앞에 특정 기호를 붙이면 의미가 달라진다.
```ruby
name = "Alice" # 일반 변수
$global_var = 10 # 전역 변수
@instance_var = 20 # 인스턴스 변수
@@class_var = 30 # 클래스 변수
```
상수는 대문자로 정의하며, 한 번 설정한 후 변경을 경고하지만 강제할 수는 없다.
```ruby
PI = 3.14159
PI = 3.14 # 경고: 이미 정의된 상수를 변경
```
### **1.2. 출력 및 입력**
Ruby에서는 `puts`, `print`, `p` 등을 사용하여 출력을 수행한다.
```ruby
puts "Hello, Ruby!" # 줄 바꿈 포함 출력
print "Hello, " # 줄 바꿈 없이 출력
print "World!\n"
p [1, 2, 3] # 배열 출력 시 따옴표 포함
```
사용자로부터 입력을 받을 때는 `gets`를 사용한다.
```ruby
print "이름을 입력하세요: "
name = gets.chomp # 개행 문자 제거
puts "반갑습니다, #{name}님!"
```
---
## **2. Ruby의 주요 데이터 타입**
Ruby의 모든 것은 객체이며, 기본 데이터 타입도 객체로 다룬다.
### **2.1. 숫자(Number)**
Ruby는 정수(`Integer`)와 실수(`Float`)를 지원한다.
```ruby
int_num = 10 # 정수
float_num = 3.14 # 실수
puts int_num.class # Integer
puts float_num.class # Float
```
#### **기본 연산**
```ruby
puts 10 + 5 # 덧셈 (15)
puts 10 - 5 # 뺄셈 (5)
puts 10 * 5 # 곱셈 (50)
puts 10 / 3 # 정수 나눗셈 (3)
puts 10.0 / 3 # 실수 나눗셈 (3.333...)
puts 10 % 3 # 나머지 (1)
puts 2 ** 3 # 제곱 (8)
```
### **2.2. 문자열(String)**
문자열은 작은따옴표(`'`) 또는 큰따옴표(`"`)로 감싼다.
```ruby
str1 = 'Hello'
str2 = "World"
puts str1 + " " + str2 # "Hello World"
puts "#{str1}, #{str2}!" # "Hello, World!"
puts str1.upcase # "HELLO"
puts str2.downcase # "world"
puts "Ruby".reverse # "ybuR"
```
큰따옴표(`" "`)에서는 **문자열 보간(interpolation)**이 가능하지만, 작은따옴표(`' '`)에서는 지원되지 않는다.
```ruby
name = "Alice"
puts "안녕하세요, #{name}님!" # 가능
puts '안녕하세요, #{name}님!' # 그대로 출력됨
```
### **2.3. 심볼(Symbol)**
심볼은 `:name`처럼 콜론(`:`)으로 시작하며, 변경되지 않는 고유한 문자열을 표현할 때 사용한다.
```ruby
sym1 = :ruby
sym2 = :ruby
puts sym1 == sym2 # true (동일한 객체)
puts sym1.object_id == sym2.object_id # true
```
### **2.4. 배열(Array)**
Ruby의 배열은 여러 개의 값을 순서대로 저장하는 자료구조다.
```ruby
arr = [1, 2, 3, "Ruby", :symbol]
puts arr[0] # 1
puts arr[-1] # :symbol (마지막 요소)
puts arr.length # 5
```
#### **배열 조작**
```ruby
arr << 6 # 요소 추가
arr.push(7) # 요소 추가
arr.pop # 마지막 요소 제거
arr.unshift(0) # 맨 앞에 요소 추가
arr.shift # 첫 번째 요소 제거
puts arr.inspect # [1, 2, 3, "Ruby", :symbol, 6]
```
### **2.5. 해시(Hash)**
해시는 키-값 쌍으로 데이터를 저장하는 자료구조다.
```ruby
person = { "name" => "Alice", "age" => 25 }
puts person["name"] # Alice
puts person["age"] # 25
```
심볼을 키로 사용할 수도 있다.
```ruby
person = { name: "Alice", age: 25 }
puts person[:name] # Alice
```
#### **해시 조작**
```ruby
person[:city] = "Seoul" # 새 키-값 추가
puts person.keys # [:name, :age, :city]
puts person.values # ["Alice", 25, "Seoul"]
```
---
## **3. 제어문**
### **3.1. 조건문(if, unless, case)**
```ruby
age = 20
if age >= 18
puts "성인입니다."
elsif age >= 13
puts "청소년입니다."
else
puts "어린이입니다."
end
```
`unless``if not`과 같은 역할을 한다.
```ruby
unless age < 18
puts "성인입니다."
end
```
`case` 문을 사용하면 여러 조건을 간결하게 표현할 수 있다.
```ruby
grade = "A"
case grade
when "A"
puts "우수합니다."
when "B"
puts "좋습니다."
else
puts "더 노력하세요."
end
```
### **3.2. 반복문(while, until, for, each)**
```ruby
i = 1
while i <= 5
puts i
i += 1
end
```
`each`를 사용하면 더 간결하게 반복할 수 있다.
```ruby
[1, 2, 3, 4, 5].each do |num|
puts num
end
```
---
## **4. 마무리**
Ruby는 간결하면서도 강력한 문법을 제공하는 언어다. 변수, 문자열, 배열, 해시 등 다양한 데이터 타입을 활용하면 유연한 코드를 작성할 수 있다. 기본 문법을 익혔다면, 이제 실습을 통해 Ruby의 객체지향 기능과 다양한 메서드를 활용해보자!