Difference between r1.29 and the current
@@ -12,9 +12,9 @@
== 1월 ==
=== 출석 ===
|| || 6일 || 10일 || 13일 || 17일 || 20일 || 24일 || 27일 || 31일 ||
=== 20일 ===
* 과제
=== 출석 ===
|| || 6일 || 10일 || 13일 || 17일 || 20일 || 24일 || 27일 || 31일 ||
|| [김수경] || O || O || O || O || O || O || || ||
|| [서지혜] || O || O || O || O || O || O || || ||
|| [강성현] |||||| ''중간에 참여'' || O || O || O || || ||
|| [김수경] || O || O || O || O || O || O || O || ||
|| [서지혜] || O || O || O || O || O || O || O || ||
|| [강성현] |||||| ''중간에 참여'' || O || O || O || X || ||
|| --[정의정]-- || X || X |||||||||||| ''중간에 빠짐'' ||=== 20일 ===
* 과제
1. 스터디 소개 ¶
- 예제 중심으로 RubyLanguage를 공부하는 모임
- 프로그래밍 루비의 목차를 참고하여 진행
2.1.2.1. 정리하기 ¶
- 김수경
- 서지혜
- 알게된 점
- 루비의 클래스는 열려있어 메소드를 추가할 수 있다.
- 객체를 얼리면(freeze) 수정할 수 없게 된다. 단 다시 녹일 수 없다.
- 코드블록 { ~~ } 을 객체처럼 넘길 수 있음. 혹은 yield함수가 호출한다.
- 루비의 클래스는 열려있어 메소드를 추가할 수 있다.
- 의문점
- Proc객체와 lambda함수의 차이점(정확한 차이점과 사용법)
- 루비는 왜 이렇게 한 기능에 대한 구현법이 많은거야?
- Proc객체와 lambda함수의 차이점(정확한 차이점과 사용법)
- 알게된 점
- 강성현
- 알게된 점
- 숫자도 객체로 취급해서 메소드를 사용할 수 있다.
- 배열을 묶고 풀기가 편리하다.
- 해시 기능 (배열의 인자가 문자열)
- 반복자를 이용하여 간단한 코딩이 가능
- 숫자도 객체로 취급해서 메소드를 사용할 수 있다.
- 궁금한 점
- 블록과 객체(Proc)의 관계
- 아직 블록과 반복자가 익숙하지 않다.
- 블록과 객체(Proc)의 관계
- 알게된 점
2.1.3.2. 정리하기 ¶
- 서지혜
- 알게된 점
- 루비는 지역변수 기반. 모든 변수는 def ~end등의 블록 안에서 유효범위를 가진다. 전역변수는 $연산자로 선언할 수 있음
- module은 자바의 interface와 같은 것인가?
- 기존의 연산자중 선언되어 있는 연산자를 오버로딩하면, 이전의 연산자는 부를 수 없는것인가?
- 루비는 지역변수 기반. 모든 변수는 def ~end등의 블록 안에서 유효범위를 가진다. 전역변수는 $연산자로 선언할 수 있음
- 궁금한 점
- nil or false #결과 : false 와 false or nil # 결과 : nil인 이유
- module 키워드로 믹스인할 수 있는 모듈을 선언할 수 있다.
- 루비는 간편한 반복자를 많이 제공한다.
- nil or false #결과 : false 와 false or nil # 결과 : nil인 이유
- 알게된 점
- 강성현
- 알게된 점
- 기존 연산자를 재정의하는 것이 가능
- C기반 언어와 다른 구문: else if->elsif, try-catch-finally -> begin-rescue-ensure
- .times 는 0부터 시작하는 카운터를 내장하고 있으며 이를 변수로 부를 수 있다
- module은 Java의 interface 개념
- end로 끝나는 부분은 변수 scope랑은 별 상관없다
- 파일 다루는 건 File.open 안에 { } 괄호 안에서 입력해야 함
- 기존 연산자를 재정의하는 것이 가능
- 궁금한 점
- 도대체 nil과 false와의 관계는 어떻게 되는지 모르겠음
- 도대체 nil과 false와의 관계는 어떻게 되는지 모르겠음
- 알게된 점
- 김수경
- 알게된 점
- , 의 사용 :
a, b = b, a
로 간단하게 swap을 구현할 수 있다.
- times 메서드는 현재 반복 실행 횟수를 넘겨준다.
- 3.times{|i| puts i} 는 0 1 2를 출력
- 3.times{|i| puts i} 는 0 1 2를 출력
- 모듈을 이용하여 제한된 다중상속을 구현할 수 있다.
- 자바의 인터페이스 같은 느낌?
- 자바의 인터페이스 같은 느낌?
- , 의 사용 :
- 궁금한 점
- nil or false -> false, false or nil -> nil, nil and true -> nil, true and nil -> 인 이유
- ===? case 비교?
- if ~/first/
- nil or false -> false, false or nil -> nil, nil and true -> nil, true and nil -> 인 이유
- 알게된 점
2.1.4.2. 정리하기 ¶
- 서지혜
- 알게된 점
- 루비의 유닛테스트는 자바(mocking 라이브러리 필요)보다 간단하다!
- 루비는 진화중인 언어. 루비의 많은 부분들이 논쟁의 중심에 있다.
- 루비는 매우 동적이기 때문에(실행중에도 메서드를 정의할 수 있다) 테스트 또한 동적으로 이루어져야 한다(프로그래밍 루비 26장 참고)
- 루비의 유닛테스트는 자바(mocking 라이브러리 필요)보다 간단하다!
- 궁금한 점
- 루비의 클래스 상속도와 klass가 나타내는 메타클래스의 정의.(루비의 메타클래스는 싱글턴객체다?)
- 오리타입은 단순히 객체의 타입을 검사하지 않는 것 뿐인가?
- 클래스는 타입이 아니다. 이것은 무엇을 이야기 하는 것일까?
- 루비의 클래스 상속도와 klass가 나타내는 메타클래스의 정의.(루비의 메타클래스는 싱글턴객체다?)
- 알게된 점
- 김수경
- 알게된 점
- 궁금한 점
- 알게된 점