4. 변수 (Variable)
정보를 담는 박스
var_name = content
var_name
content라는 내용이 var_name이라는 이름으로 저장되었다.
number
string
true / false
변수 선언 : 변수의 이름만 적으면 된다.
변수 할당 : =을 사용해서 변수에 값(내용)을 부여하는 것
> var_name
> var_name = 1
1
5. 배열 (Array)
박스들의 묶음
arr = [con1, con2, con3, …]
> arr = [“하나”, “둘”, “셋”, …]
> arr[0] = “하나” arr[1] = “둘” arr[2] = “셋”
같은 자료형을 가지는 것들 끼리 묶는다. (숫자, 문자열 …)
배열안에 있는 각 요소에는 index가 부여된다.
arr[0] arr[1] arr[2] arr[3]
하나 둘 셋 넷
6. 해시 (Hash)
이름이 지정된 박스들의 묶음
hash = {
key1 => value1,
key2 => value2
}
> hash = {“ewha”=>”hack”, “like”=>”your”,
“lion”=>”life”, “hello”=>”hi”}
> hash[“ewha”] = “hack”
hash[“like”] = “your”
hash[“lion”] = “life”
hash[“hello”] = “hi”
자동으로 부여된 숫자대신!
원하는 이름으로 index를 지정한다.
ehwa like lion hello
hack your life hi
hash
8. 심볼 (Symbol)
var
var1 / var2
string stringstring
string
> 공간의 낭비X
> 속도도 빠름
> 재사용 O
Hash의 Key로 Symbol을 사용한다.
9. 조건문 (control flow)
if (조건문1)
block1
elsif (조건문2)
block2
else
block3
end
조건문1이 true이면 block1 실행
조건문1이 false이고 조건문2가 true이면
block2 실행
조건문1, 조건문2 모두 false이면 block3 실행
12. 반복문 (Loop)
for var in range
block
end
1…10 : 1~9의 값 (배제)
1..10 : 1~10의 값 (포함)
for loop
루프를 반복횟수를 아는 경우
while loop
루프를 반복횟수를 모르는 경우
(특정 조건이 참일 때까지!)
count = 1
While (조건)
block
count += 1
end
16. .each
[배열에서]
한번에 하나씩 각 요소에 식을 적용
||사이에 원하는 변수설정 (해당 loop에서만)
array = {“a”, “b”, “c”}
array.each do |x|
puts “#{x}”
end
[해시에서]
한번에 한 섹션을 반복하기 때문에,
키 – 값 쌍을 반복 할 수 있다.
x에 key, y에 value가 온다.
array = {“a”=>1, “b”=>2,
“c”=>3}
array.each do |x, y|
puts “#{x} : #{y}”
end
19. .rand
그냥 rand만 써서 무작위로 숫자를 뽑을 수 있다.
rand : 0~1사이의 실수
()안에 숫자를 써서 해당 범위내의 숫자를 뽑는다.
rand(x) : 0~x사이의 정수
범위 지정을 위해 ..과 …을 쓸 수 있다.
숫자를 실수로(소수점이 있는 수) 쓸 수 있다.
메소드로 사용해서 배열, 해시에 있는 값을
랜덤하게 뽑을 수 있다.
rand
>> 0.19844698345
rand(1000)
>> 668
rand(5.0…9.0)
>> 6.489320
array = [“ㄱ”, “ㄴ”, “ㄷ”]
array.rand
>> “ㄷ”
20. .sort_by
배열을 지정한 목적에 맞는 순서로 정렬
colors = {“blue”=> 3, “green”=>1, “red”=>2}
colors = colors.sort_by do |color, count|
count
end
|color, count|에서 count로 지정을 했기 때문에 count기준
즉, 숫자기준으로 정렬한다. (오름차순 정렬)
>>> [[“green”, 1], [“red”, 2], [“blue”, 3]]
Q. 여기서 sort_by대신 sort를 쓴다면?
21. .select
특정 기준을 충족하는 값에 대해 해시를 필터링한다.
자신이 설정한 조건과 일치하는 키-값 쌍을 선택
grades = { hack: 100, your: 95, life :97, coding: 92}
grades.select{ |name, grade| grade < 97}
>> {:your => 95, :coding => 92}
Grades.select{ |k,v| k== :hack}
>> {:alice => 100}
22. .length 문자열, 배열의 길이를 알려준다.
.times 초소형 for loop , 지정된 횟수만큼 반복한다.
.reverse 문자열, 배열의 역방향 버전으로 만든다.
.upcase / .downcase 문자열을 모두 대문자 / 소문자로 변환한다.
.chomp 여분의 줄을 제거한다 (gets랑 많이 쓰인다.)
.capitalize 문자열의 가장 첫번째를 대문자로 변환한다.
.include? “char” 문자열에 “char”가 들어갔는가? (true / false)
gsub(/char/, “replace”) 문자열 “char”을 “replace”로 값을 바꾼다.
.split(“,”) “,”를 볼때 마다 문자열을 분할하여 배열로 만든다.
Hash.new(“nothing”) 초기값이 “nothing”인 해시를 생성한다.
.to_s / to_sym 심볼을 문자열로 / 문자열을 심볼로 변환한다.
.intern .to_sym과 같은 의미이다
●색은 대체가능
#42:인터넷에서 웹을 통해 접근되는 대부분의 웹 페이지들은 HTML로 작성된다.
Html이라는 언어를 통해서 만든 파일을 html파일이라고 하며
크롬, 인터넷 EX 등에서 볼 수 있도록 만든 파일, 웹 문서라고 생각하면 됩니다.
#43:인터넷에서 웹을 통해 접근되는 대부분의 웹 페이지들은 HTML로 작성된다.
Html이라는 언어를 통해서 만든 파일을 html파일이라고 하며
크롬, 인터넷, EX 등에서 볼 수 있도록 만든 파일, 웹 문서라고 생각하면 됩니다.
웹 브라우저에서 html을 사람이 볼 수 있는 형태로 바꾸어준다.
#65:즉 이런 한계점을 해결하기위해 프로그래밍 언어를 ruby로 사용하는 웹 프레임워크인 ruby on rails를 통해서 모두 해결 할 수 있습니다.
프로그래밍 언어인 ruby로 반복, 조건, 함수 등을 이용해서 코딩으로 원하는 대로 할 수 있다면
Rails로 ruby에서 한 프로그래밍을 바탕으로 웹사이트에 용이하게 적용 시켜준다.
#66:그렇지만 우리가 원하는 건 그냥 인터넷 연결로 url을 치면 웹 브라우저로 많은사람들이 볼수 있게 하는것이다!
#67:하지만 우리가 사용하는 웹 사이트는 이 html파일을 웹 브라우저로 접속해서 볼 수 있어야한다.
#68:하지만 우리가 사용하는 웹 사이트는 이 html파일을 웹 브라우저로 접속해서 볼 수 있어야한다.
#69:즉 이런 한계점을 해결하기위해 프로그래밍 언어를 ruby로 사용하는 웹 프레임워크인 ruby on rails를 통해서 모두 해결 할 수 있습니다.
프로그래밍 언어인 ruby로 반복, 조건, 함수 등을 이용해서 코딩으로 원하는 대로 할 수 있다면
Rails로 ruby에서 한 프로그래밍을 바탕으로 웹사이트에 용이하게 적용 시켜준다.
#70:하지만 우리가 사용하는 웹 사이트는 이 html파일을 웹 브라우저로 접속해서 볼 수 있어야한다.
#71:하지만 우리가 사용하는 웹 사이트는 이 html파일을 웹 브라우저로 접속해서 볼 수 있어야한다.
#72:하지만 우리가 사용하는 웹 사이트는 이 html파일을 웹 브라우저로 접속해서 볼 수 있어야한다.
#73:프레임워크: 앞서 웹 개발을 위해 각종 개발자들이 루비로 웹 서버를 만들고, 데이터베이스를 연결하고, html과 ruby를 연결하기 위해 코드를 전부다 작성했던 앞썬 경험들이 정형화 되어서 축적되어 하나의 틀로 굳어진 것!
개발을 위한 라이브러리는 물론, 코드 생성을 위한 툴 또는 동작 확인을 위한 서버 등을 한번에 제공해주는 풀스택(모두 들어있는) 프레임워크이다.
Rails 하나를 설치하는 것만으로도 애플리 케이션 개발에 필요한 모든 환경을 구축 할 수 있어서 환경을 준비하는데 필요한 시간과 노력이 비교적 적다.
#74:하지만 우리가 사용하는 웹 사이트는 이 html파일을 웹 브라우저로 접속해서 볼 수 있어야한다.
#75:프레임워크: 앞서 웹 개발을 위해 각종 개발자들이 루비로 웹 서버를 만들고, 데이터베이스를 연결하고, html과 ruby를 연결하기 위해 코드를 전부다 작성했던 앞썬 경험들이 정형화 되어서 축적되어 하나의 틀로 굳어진 것!