Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Ruby/2011년스터디: Difference between revisions

From ZeroWiki
imported>linflus
No edit summary
(Repair batch-0003 pages from live compare)
 
(23 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[pagelist(^Ruby/2011년스터디)]]
<!-- MONIWIKI PageList(^Ruby/2011년스터디) -->
* [[Ruby/2011년스터디]]
* [[Ruby/2011년스터디/강성현]]
* [[Ruby/2011년스터디/김수경]]
* [[Ruby/2011년스터디/루비]]
* [[Ruby/2011년스터디/서지혜]]
* [[Ruby/2011년스터디/세미나]]
__TOC__
__TOC__


Line 7: Line 13:


== 참가자 ==
== 참가자 ==
* [[김수경]], [[서지혜]], [[정의정]]
* [[김수경]], [[서지혜]], [[강성현]], --[[정의정]]--


= 진행 =
= 진행 =
== 1월 ==
== 1월 ==
=== 출석 ===
=== 출석 ===
{| class="wikitable"
{| class="wikitable" style="width:100%;"
|-
|-
|  
|  
Line 27: Line 33:
| O
| O
| O
| O
|  
| O
|  
| O
|  
| O
|  
| O
|  
| O
|  
|  
|-
|-
| [[서지혜]]
| [[서지혜]]
| O
| O
| O
| O
| O
| O
| O
| O
| O
|  
|  
|-
| [[강성현]]
|  
|  
|  
|  
|  
| ''중간에 참여''
|  
| O
| O
| O
| X
|  
|  
|-
|-
| [[정의정]]
| --[[정의정]]--
| X
| X
| X
| X
Line 52: Line 68:
|  
|  
|  
|  
|  
| ''중간에 빠짐''
|}
|}
=== 20일 ===
* 과제
** 1부 1장 ~ 6장 공부해오기
** 위키에 내용 정리하기
** [[서지혜]] - 3장
** [[김수경]] - 4장
** [[강성현]] - 5장, 6장
==== 정리하기 ====
* [[김수경]]
** 알게된 점
** 객체는 freeze 메서드를 통해 수정을 막을 수 있다.
** 블록을 통해 반복자를 구현할 수 있다.
** 하나의 배열에 동일한 자료형이 아닌 객체들이 포함될 수 있다.
** 음수를 배열의 인덱스로 사용할 수 있다.
*** 이 때 음수 인덱스는 배열의 요소를 뒤에서부터 읽어온다.(
a&#91;-n&#93; = a&#91;a.length - n&#93;
)
*** 예를 들어 다음과 같은 배열 c = a, b, 1, 2, 3, "Hi" 에서 c&#91;0&#93; => a, c-2 => 3, c-7 => nil
** 궁금한 점
* [[서지혜]]
** 알게된 점
** 루비의 클래스는 열려있어 메소드를 추가할 수 있다.
** 객체를 얼리면(freeze) 수정할 수 없게 된다. 단 다시 녹일 수 없다.
** 코드블록 { ~~ } 을 객체처럼 넘길 수 있음. 혹은 yield함수가 호출한다.
** 의문점
** Proc객체와 lambda함수의 차이점(정확한 차이점과 사용법)
** 루비는 왜 이렇게 한 기능에 대한 구현법이 많은거야?
* [[강성현]]
** 알게된 점
** 숫자도 객체로 취급해서 메소드를 사용할 수 있다.
** 배열을 묶고 풀기가 편리하다.
** 해시 기능 (배열의 인자가 문자열)
** 반복자를 이용하여 간단한 코딩이 가능
** 궁금한 점
** 블록과 객체(Proc)의 관계
** 아직 블록과 반복자가 익숙하지 않다.
=== 24일 ===
* 과제
** 1부 7장 ~ 10장 공부해오기
** 위키에 내용 정리하기
** [[강성현]] - 7장
** [[서지혜]] - 8장, 10장
** [[김수경]] - 9장
==== 돌아보기 ====
* 오늘 스터디의 좋았던 점
** [[김수경]] - 셋 다 책이 있고, 다양한 책을 볼 수 있어서 좋았다.
** [[서지혜]] - 짧아서 좋았다.
** [[강성현]] - 짧고 더 이해가 잘 되어 좋았다.
* 다음 스터디에서 하고싶은 것
** [[김수경]] - 토론거리를 리스트로 작성해오겠다.
** [[서지혜]] - 책에 있는 예제를 모두 실행해보겠다.
** [[강성현]] - 모니터를 연결하여 같이 실습해보면서 진행하면 좋겠다.
==== 정리하기 ====
* [[서지혜]]
** 알게된 점
** 루비는 지역변수 기반. 모든 변수는 def ~end등의 블록 안에서 유효범위를 가진다. 전역변수는 $연산자로 선언할 수 있음
** module은 자바의 interface와 같은 것인가?
** 기존의 연산자중 선언되어 있는 연산자를 오버로딩하면, 이전의 연산자는 부를 수 없는것인가?
** 궁금한 점
** nil or false  #결과 : false 와 false or nil  # 결과 : nil인 이유
** module 키워드로 믹스인할 수 있는 모듈을 선언할 수 있다.
** 루비는 간편한 반복자를 많이 제공한다.
* [[강성현]]
** 알게된 점
** 기존 연산자를 재정의하는 것이 가능
** C기반 언어와 다른 구문: else if->elsif, try-catch-finally -> begin-rescue-ensure
** .times 는 0부터 시작하는 카운터를 내장하고 있으며 이를 변수로 부를 수 있다
** module은 [[Java]]의 interface 개념
** end로 끝나는 부분은 변수 scope랑은 별 상관없다
** 파일 다루는 건 File.open 안에 { } 괄호 안에서 입력해야 함
** 궁금한 점
** 도대체 nil과 false와의 관계는 어떻게 되는지 모르겠음
* [[김수경]]
** 알게된 점
** , 의 사용 :
a, b = b, a
로 간단하게 swap을 구현할 수 있다.
** times 메서드는 현재 반복 실행 횟수를 넘겨준다.
*** 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/
=== 27일 ===
* 과제
** 1부 11장 ~ 13장 공부해오기.
** 2부 23장, 24장, 26장 공부해오기.
** 위키에 내용 정리하기
** [[김수경]] - 11장, 26장
** [[서지혜]] - 12장, 23장
** [[강성현]] - 13장, 24장
==== 돌아보기 ====
==== 정리하기 ====
* [[서지혜]]
** 알게된 점
** 루비의 유닛테스트는 자바(mocking 라이브러리 필요)보다 간단하다!
** 루비는 진화중인 언어. 루비의 많은 부분들이 논쟁의 중심에 있다.
** 루비는 매우 동적이기 때문에(실행중에도 메서드를 정의할 수 있다) 테스트 또한 동적으로 이루어져야 한다(프로그래밍 루비 26장 참고)
** 궁금한 점
** 루비의 클래스 상속도와 klass가 나타내는 메타클래스의 정의.(루비의 메타클래스는 싱글턴객체다?)
** 오리타입은 단순히 객체의 타입을 검사하지 않는 것 뿐인가?
** 클래스는 타입이 아니다. 이것은 무엇을 이야기 하는 것일까?
* [[김수경]]
** 알게된 점
** 궁금한 점


----
----
[[2011년활동지도]], [[스터디분류]]
[[2011년활동지도]], [[스터디분류]]

Latest revision as of 00:29, 27 March 2026

스터디 소개

  • 예제 중심으로 RubyLanguage를 공부하는 모임
  • 프로그래밍 루비의 목차를 참고하여 진행

참가자

진행

1월

출석

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 X
--정의정-- X X 중간에 빠짐

20일

정리하기

  • 김수경
    • 알게된 점
    • 객체는 freeze 메서드를 통해 수정을 막을 수 있다.
    • 블록을 통해 반복자를 구현할 수 있다.
    • 하나의 배열에 동일한 자료형이 아닌 객체들이 포함될 수 있다.
    • 음수를 배열의 인덱스로 사용할 수 있다.
      • 이 때 음수 인덱스는 배열의 요소를 뒤에서부터 읽어온다.(
a[-n] = a[a.length - n]

)

      • 예를 들어 다음과 같은 배열 c = a, b, 1, 2, 3, "Hi" 에서 c[0] => a, c-2 => 3, c-7 => nil
    • 궁금한 점
  • 서지혜
    • 알게된 점
    • 루비의 클래스는 열려있어 메소드를 추가할 수 있다.
    • 객체를 얼리면(freeze) 수정할 수 없게 된다. 단 다시 녹일 수 없다.
    • 코드블록 { ~~ } 을 객체처럼 넘길 수 있음. 혹은 yield함수가 호출한다.
    • 의문점
    • Proc객체와 lambda함수의 차이점(정확한 차이점과 사용법)
    • 루비는 왜 이렇게 한 기능에 대한 구현법이 많은거야?
  • 강성현
    • 알게된 점
    • 숫자도 객체로 취급해서 메소드를 사용할 수 있다.
    • 배열을 묶고 풀기가 편리하다.
    • 해시 기능 (배열의 인자가 문자열)
    • 반복자를 이용하여 간단한 코딩이 가능
    • 궁금한 점
    • 블록과 객체(Proc)의 관계
    • 아직 블록과 반복자가 익숙하지 않다.

24일

돌아보기

  • 오늘 스터디의 좋았던 점
    • 김수경 - 셋 다 책이 있고, 다양한 책을 볼 수 있어서 좋았다.
    • 서지혜 - 짧아서 좋았다.
    • 강성현 - 짧고 더 이해가 잘 되어 좋았다.
  • 다음 스터디에서 하고싶은 것
    • 김수경 - 토론거리를 리스트로 작성해오겠다.
    • 서지혜 - 책에 있는 예제를 모두 실행해보겠다.
    • 강성현 - 모니터를 연결하여 같이 실습해보면서 진행하면 좋겠다.

정리하기

  • 서지혜
    • 알게된 점
    • 루비는 지역변수 기반. 모든 변수는 def ~end등의 블록 안에서 유효범위를 가진다. 전역변수는 $연산자로 선언할 수 있음
    • module은 자바의 interface와 같은 것인가?
    • 기존의 연산자중 선언되어 있는 연산자를 오버로딩하면, 이전의 연산자는 부를 수 없는것인가?
    • 궁금한 점
    • nil or false #결과 : false 와 false or nil # 결과 : nil인 이유
    • module 키워드로 믹스인할 수 있는 모듈을 선언할 수 있다.
    • 루비는 간편한 반복자를 많이 제공한다.
  • 강성현
    • 알게된 점
    • 기존 연산자를 재정의하는 것이 가능
    • C기반 언어와 다른 구문: else if->elsif, try-catch-finally -> begin-rescue-ensure
    • .times 는 0부터 시작하는 카운터를 내장하고 있으며 이를 변수로 부를 수 있다
    • module은 Java의 interface 개념
    • end로 끝나는 부분은 변수 scope랑은 별 상관없다
    • 파일 다루는 건 File.open 안에 { } 괄호 안에서 입력해야 함
    • 궁금한 점
    • 도대체 nil과 false와의 관계는 어떻게 되는지 모르겠음
  • 김수경
    • 알게된 점
    • , 의 사용 :
a, b = b, a

로 간단하게 swap을 구현할 수 있다.

    • times 메서드는 현재 반복 실행 횟수를 넘겨준다.
      • 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/

27일

  • 과제
    • 1부 11장 ~ 13장 공부해오기.
    • 2부 23장, 24장, 26장 공부해오기.
    • 위키에 내용 정리하기
    • 김수경 - 11장, 26장
    • 서지혜 - 12장, 23장
    • 강성현 - 13장, 24장

돌아보기

정리하기

  • 서지혜
    • 알게된 점
    • 루비의 유닛테스트는 자바(mocking 라이브러리 필요)보다 간단하다!
    • 루비는 진화중인 언어. 루비의 많은 부분들이 논쟁의 중심에 있다.
    • 루비는 매우 동적이기 때문에(실행중에도 메서드를 정의할 수 있다) 테스트 또한 동적으로 이루어져야 한다(프로그래밍 루비 26장 참고)
    • 궁금한 점
    • 루비의 클래스 상속도와 klass가 나타내는 메타클래스의 정의.(루비의 메타클래스는 싱글턴객체다?)
    • 오리타입은 단순히 객체의 타입을 검사하지 않는 것 뿐인가?
    • 클래스는 타입이 아니다. 이것은 무엇을 이야기 하는 것일까?
  • 김수경
    • 알게된 점
    • 궁금한 점

2011년활동지도, 스터디분류