루비 프로그래밍 16

Ruby에서 Module 사용하기

Ruby 언어에 경우에는 Python 보다 Module 이용하기가 좀 더 어렵습니다. 물론 , 그렇게 어렵지는 않습니다. Module은 쉽게 말해 "같은 기능을 모아 둔 것"을 말한다고 생각하시면 편합니다. Python과는 다르게 Ruby의 경우 Module이라는 키워드를 제공합니다. 물론 해당 Module이 작성 된 파일을 왼쪽 화면처럼 사용하고자 하려면, require_relative '파일명'을 적어주셔야 합니다. require도 사용합니다. 추가적으로 Ruby언어에서 Module내에 존재하는 클래스에 접근하려면, :: 키워드를 사용해야 합니다.그리고 객체로 생성하면 됩니다. 쉽죠? 생활코딩 자료입니다.

Ruby class의 멤버에 관한 이야기 2

루비 클래스 멤버 이야기 2 시작합니다.출처:생활코딩 이번에 설명하는 것은 클래스 변수라는 것입니다. 사실 위 코드는 객체가 생성 되면, count 변수라는 녀석이 점점 증가 합니다. 제가 3개의 객체를 생성 했으므로 총 3 이라는 숫자가 count 변수에 속하게 됩니다. 그런데 어떻게 변수가 객체 생성 전에 있는 걸까요 ? 그건 @@ 기호로 정의 되어 클래스 변수이기 때문이죠. 객체 생성 이전에 count 변수는 미리 로드 됩니다. 자바, C 기타 언어들에서 지원하는 static과 같습니다. 다른 언어를 해보셨다면, 금방 아실거라 생각합니다. 그리고 지난 번에 배웠던 클래스 메소드가 있네요 ? ^^ get 메소드형태인데, 루비 언어는 자체적으로 모든 변수(멤버변수, 클래스 변수)는 private 성질을..

Ruby class의 멤버에 관한 이야기 1

오늘 알아 볼 것은 루비 언어에서 클래스 멤버에 관해서 이야기를 하려고 합니다.출처:생활코딩 클래스는 Cs로 정의 되어 있습니다. 그리고 메소드를 살펴보면 좀 특이 합니다. 4라인에 Cs. 라는 클래스 명에 . (dot)이 찍혀있는데 그 뒤로 메소드 명이 붙네요 ? 그런데 7번라인은 일반적인 메소드네요 ? 4라인과 같은 것을 ...바로 클래스 메소드라고 합니다. 이름은 중요하지 않고.. 14행부터 보시면 클래스 사용하는 것을 보시면 더 이해가 쉽습니다. 15번 행은 좀 특이 합니다. 왜냐면 객체로 메소드를 호출하는게 아니라 Cs 클래스명으로 메소드를 호출하는 거죠. 즉, 클래스가 생성된 객체가 아니여도 그 자체로도 Call이 가능합니다. 클래스에 속했기 때문에 클래스 메소드라고 합니다. ( 그에 반해 i..

Ruby 에서 Block 표현식 사용 이야기

-Ruby Doc http://ruby-doc.org/core-2.2.0/Integer.html#method-i-upto http://ruby-doc.org/core-2.2.0/Integer.html#method-i-times ruby에서 integer class의 경우 메소드를 지원합니다. 그 중 하나가 times라는 메소드입니다만, 하는 일은 반복횟수.times { 내용 }의 형식으로 작성하게 되면, 반복을 명시한 반복 횟수만큼 실행합니다. 그 밑의 upto의 경우는 좀 더 이해하기 까다롭습니다. 무슨 의미냐 하면, 기준 숫자.upto(목표) { 내용 }의 형식으로 쓰면 기준 숫자에서 목표까지 반복하게 됩니다. 몇 번 반복 하라고 시키는 것이 아니라 이 숫자가 5까지 되도록 반복하라고 하는 말과 같습..

Ruby 언어의 생략 이야기

1~3라인에 있는 함수는 전형적인 함수의 구조 입니다. 그러나 7~9라인에 있는 함수는 약간 다릅니다. 함수명 뒤에 괄호가 생략되어 있습니다. 그러나 그래도 정상적으로 실행이 됩니다. 12~14라인의 경우는 전형적인 인자를 넘겨 받는 함수 구조입니다. 그러나 18~22라인의 함수는 다릅니다. 인자를 받지만 괄호가 생략되어 있죠. 그리고 24~28라인에 걸친 함수는 return이라는 지시어 조차 없습니다. 그럼에도 불구하고 실행이 잘 되죠. 루비에서는 이러한 함수의 괄호 생략이 가능합니다. 간결성을 높이는 것이죠. 간결성을 높이 되 코드의 가독성을 조금 떨어지게 만들 수는 있죠. 그러나 명확하므로 가독성이 떨어진다고는 말하기 어렵습니다.

Ruby에서 상속 이야기

class1이 가진 것은 method1 뿐이네요 ? 하지만 우리가 파이썬에서 배웠듯이 유사합니다. 2015/07/24 - [배우고 싶은 프로그래밍 언어/Python] - python 에서 상속 이야기 결국, 10line의 출력은 m1이 출력 되겠네요 ? ^^ 바로 상속을 들어 가자면, 루비 언어에서는 class 클래스 이름 < 부모 클래스 이름 이러한 구조를 가집니다. 상속 : 무언가를 받는다. 즉, 나에게 주는 클래스는 '부모' 혹은 'super'라고 합니다. * C#의 경우는 뭐..따로 지칭하는 말이 있었던 것 같습니다. 사실 상속은 그냥 쉽게 아! 저 Class1이 가진 코드를 Class3가 상속 받는 구나. ( 돈 받는 구나 ! ) 요렇게 쉽게 이해하는 게 좋을 것 같습니다. 코드를 받는 다는 것..

루비에서 객체지향 이야기 ( 캡슐화 )

루비의 경우에는 클래스 작성시 initialize() 메소드가 무조건 추가 해야 합니다. 생성자라고 하기도 하는 녀석?입니다. 클래스를 객체로 만드는 것을 "인스턴스화"라고 하며, 인스턴스 화의 결과물은 "객체"입니다. 객체가 생성 되기 위해 루비에서는 initialize() 함수가 필요로 합니다. @표시는 클래스에 속한 변수라는 의미로 "인스턴스 변수"라고 말합니다. p는 출력 메소드입니다.p() = p는 동일 합니다. c1.value라는 것은 c1의 인스턴스 변수 값을 반환하라~는 말과 같은데, 루비에서는 클래스의 인스턴스 변수 접근에 직접적인 접근을 허용하지 않습니다.그래서 필요로 한 방법이 get/set 함수를 통한 접근이 있습니다.get/set 함수를 이용하면 캡슐화를 보장 하는 기능이 있습니다..

다시 시작 하는 Ruby 이야기 - 배열

승돌즈 프로그래밍 오늘의 주제 ruby에서는 배열을 어떻게 사용해야 하는가 ??? 도대체 모르겠다. 이녀석 Ruby에서의 배열 어찌 사용하나요??? 배열은 중요하다. 모든 언어에서 배열은 기본적으로 제공을 한다. 배열이란 무엇인가 ? 기본적으로 쉽게 설명하면 {같은 놈들이 여러개} 있는 공간 (Space)를 말한다. 프로그램의 저장소는 무조건 변수!!변수는 다시 공간!!이라고 생각하면 쉽다. 배열 어떻게 써먹나! - 배열의 생성 irb(main):023:0> arr = Array.new() => [] irb(main):024:0> arr.push(1) => [1] irb(main):025:0> ar = Array.new(3, 'seungdols company') => ["seungdols company"..

Ruby 프로그래밍 - 이클립스에 Aptana3 plugin

aptana3 http://www.aptana.com/products/studio3/download.html 위 주소로 이동하게 되면 선택 사항이 나온다. 직접 다운 할 것이냐. 이클립스 플러그인으로 할 것이냐. 이클립스 플러그인 선택 후 다운로드를 클릭하면 특정 url로 이동하는데 이 url을 복사해둔다. 그리고 이클립스를 동작 시킨 후에 메뉴바에서 help가 있을 것이다. 클릭 후에 install New software....이 보일 것이다. 클릭 후 상단 우측에 add 누른 후 팝업 창 이름에 aptana 라고 쓰고 밑에 url에 저장해둔 url을 입력하고 엔터를 누르면 2~3초 후에 aptana가 보일 것이다. 왼쪽 체크상자에 체크 한 후 Next누른 후 동의한다는 의미를 체크 해주고 Next하게..

Ruby 프로그래밍 - 7. 쉬어가기 구구단 메소드 만들기

반복문도 알고 메소드도 배웠다. 이제 구구단을 만들자. 이것도 우습게 여기는 사람 많지만 여기서부터가 시작이다. 구글, 페이스북도 초기는 초라했다. 언어를 떠나 프로그래밍의 가장 핵심은 논리구조다. 누구나 이해 할 수 있게 말하자면, Flow(흐름)이라고 할 수 있다. 지금 짜려는 것은 특정 단을 입력하면 해당 단의 9까지의 곱셈을 출력하는 것이다. 2단 이러면 2 * 1 = 2......2 * 9 = 18이런 형식을 말한다. 해보자. 무엇이 필요로 할까부터 생각한다!우선 반복문이 필요하다. 2 * 1 = 2 이런 표현의 경우 2의 경우는 사용자가 단을 입력 하는 것이다.즉, 내가 고려 할 게 아니다. 그럼 난 반복문으로 표현 할 것은 1~9까지다. 반복문으로 하면 for i in 1..9 이렇게 된다...

반응형