ruby module
-
Ruby Module 어떤 경우에 사용해야 할까요?Ruby 2016. 11. 23. 20:51
Ruby를 공부하면서 다른언어와 다르게 이해하기가 아리송한 개념이 바로 Module과 Mixin 입니다. Module은 클래스 인것 같으면서도 아닌것 같은. 대체 이놈은 뭘하는 놈인지 공부하면 할수록 더 어려운 개념입니다. RORLAB의 rinae님께서 module 개념에 대해 간략히 다시 정리를 해주신 내용을 공유하고자 합니다. Ruby Module 모듈은 기본적으로 여러 클래스에서 같은 메서드를 사용하고자 할 때 + 하지만 상속관계로 설정하고 싶지 않을 때 쓰시면 됩니다 이를테면 Bird 라는 클래스에 `fly` 가 구현되어 있다고 하면 하위클래스로 Swallow, Eagle 을 만들어서 Bird를 상속받을 수 있겠지요 다만 이 `fly` 라는 녀석이 꼭 Bird 안에 구현되어있을 필요는 없는겁니다 ..
-
루비 모듈과 클래스의 차이점Ruby 2016. 11. 16. 21:00
루비 모듈 vs 클래스? 객체지향 언어인 Java에 익숙한 개발자들은 루비 언어를 이해하는데 큰 어려움이 없을 것이다. 하지만 Module 이라는 개념이 등장하면서 물음표가 하나씩 그려지는 상황들이 연출된다. Ruby의 모듈과 클래스의 개념에 대해 명쾌한 답변들이 없어 StackOverflow에 질문과 답변을 번역해보고자 한다. 모듈은 다양한 클래스에서 사용가능한 메소드를 제공하는 라이브러리라고 생각하면 된다. 클래스는 객체, 모듈은 기능이라고 생각하면 된다. 예를들어 Authentication 과 Authorization 시스템은 모듈의 좋은 예라고 할 수 있다. Authentication 시스템은 다양한 어플리케이션 레벨의 클래스에서 동작한다. 보다 명확한 비교는 아래의 그림을 참조하기 바란다. [참..
-
Programming Ruby (10) 모듈Ruby 2016. 10. 25. 23:13
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 모듈 모듈은 메서드와 클래스, 상수를 함께 하나로 묶는 수단이다. 모듈은 다음과 같은 두 가지 장점이 있다. 1) 모듈은 이름 공간을 제공해서 이름이 충돌하는 것을 막아준다. 2) 모듈은 믹스인 기능을 구현하는데 이용한다. 이름공간 서로 다른 파일에 정의된 변수의 중복을 막기 위해 모듈 구조를 사용한다. 모듈은 이름 공간을 정의하는데 이것은 다른 메서드나 상수에 의해 방해 받을 염려 없이 메서드와 상수를 정의할 수 있는 일종의 샌드박스이다. trig.rb module trig PI = 3.141592654 def Trig.sin(x) # ... end def Trig.cose(x) # ..
-
Programming Ruby (9) 상속Ruby 2016. 10. 25. 23:12
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) (이전 포스팅 내용 이어서) 컨테이너는 어디에나 있다 컨테이너, 블록, 반복자는 루비의 핵심 개념이다. 루비 코드를 작성하면 할수록 전통적인 반복문을 벗어나는 자신을 발견하게 될 것이다. 대신 자신의 내용을 반복하는 것을 돕는 클래스를 작성하게 된다. 이런 코드가 간결하고 읽기 쉽고, 또 관리도 편하다는 사실도 금방 깨닫게 될 것이다. 루비 라이브러리들과 프레임워크를 사용하는 과정에서 자연스럽게 많은 연습을 하게 될 것이다. 상속과 메시지 to_s 를 구현하지 않은 클래스의 객체들도 to_s 메서드 호출에 대해 무언가를 반환해준다. 이것이 어떻게 가능한지 이해하려면 상속과 자식 클래스 ..