본문 바로가기

뉴스

루비(Ruby)의 흔한 오류, 배열 결합 방식 등

1. 루비의 흔한 오류

최근 업데이트한 프로그래밍 언어 루비에 대해서는 명확한 구문으로 사용 편의성에 중점을 두었다는 것이 유명합니다. 그렇지만 가끔 오류메시지가 error 나오기 때문에 이런 원인을 파악하는 것이 중요합니다.

Name Error: 1

Name Error: 2

초기화되지 않은 빈 오류는 일반적으로 네임에러를 출력합니다. 코드를 찾을 수 없거나 클래스 모듈을 참조할 때 이런 오류가 표시되며 종종 클래스에 로드하도록 지시하는 다른 인자가 없기때문에 발생합니다. NameError는 여러 원인에 코드가 간단한 오타를 만들었으므로 오타를 내지않도록하는 것에 주의해야합니다. 프로그래밍에서는 대문자, 소문자 띄어쓰기 등 사소한 것에도 오류를 지목할 수 있습니다. 특히 이런 간단한 오타는 정말 "간단하기에" 찾아내기 더 어려울지도 모릅니다.

 

오류를 고치는 방법은 당연히 오류의 원인을 찾아서 수정하는 것이겠죠. 하지만 어떤 것이 오류의 원인인지 모를때는 하나씩 검사하고 제거하는 방식을 통해야합니다. 예를들어서 상수 클래스와 대문자 소문자, 오타, 맞춤법 등 단순한것부터 참조하는 클래스가 다른 모듈에 까지 영향을 미치는지 하는 복잡함까지 루비의 오류는 찾아내기 어려울지도 모릅니다. 예외로 발생된 후에 프로그램은 동작하겠지만 어쩔때는 큰 오류로 다가올지 모릅니다.

 

2. Ruby 배열 결합 방식

배열에서 연결은 한가지를 다른것에 추가해서 그 둘이 서로 상호적으로 이동할 수 있는 것입니다. 몇 가지 방법으로 루비의 연결성을 확인할 수 있으며 첫 번째는 더하기 연산자를 통해 1, 2, 3, 4..... 계속해서 X번째 배열을 추가해나가는 것입니다. 다른 방법으로는 concat 명령어를 사용하는 것인데 이것은 객체 생성을 시도하여 예기치않은 결과를 얻을 수가 있습니다. 한객체를 다른객체에 연결하는데 이것이 자연스럽지 못하면 배열이 틀어질 수 있으며 시도한 것을 알지 못하거나 신경쓰지 않으면 계속해서 반복 오류가 생길 수 있기 때문이죠.

 

교집함 및 합집합 등 기본 집합 연산을 루비에서 사용하여 작업할 수 있습니다. 간혹 집합과 목록, 결합을 비슷한 것이라 착각하는 수강생들이 있는데 이것은 근본적으로 다르다고 할 수 있습니다. array가 집합연산을 수행하는 것이라면 목록은 다른 개체로 인식해야한다는 것입니다. 여러가지 배열을 압축해서 결합하는 방식은 또한 긴밀한 결합을 만들어낼 수 있다고 평가됩니다. 두개의 배열을 압축해서 독특한 방식으로 결합하는 것은 이상한 작업이라고 할 수 있지만 두 개 이상의 배열을 긴밀히 연결시키는데 큰 역할을 할 수 있죠.

 

마지막으로 빈 배열을 만들어서 변수 컬렉션을 관리하는 것은 꼭 날짜를 지정해야합니다. 그래야 해당 관리에 엑세스하는 것이 좋을 수 있으며 이것은 간단한 작업으로 이루어질 수 있습니다.

#!/usr/bin/env ruby

array = Array.new

3.times do

str = gets.chomp

array.push str

end

 

빈 배열을 다른 변수로 채우기위해서는 새로운 변수를 만들어서 삽입하는 방법이 일반적입니다. 다른 곳에서 변수를 가져오게되면 그 빈자리는 또한 변수가 필요하기 때문에 새 변수를 만드는 것이 중요합니다. 특히 인덱스 연산자를 사용하여 개별 변수를 새롭게 만드는 것은 변수의 값을 변경하고 새롭게 인쇄하는데 매우 중요한 역할을 합니다. 이렇게 생성된 변수는 결합하는데 배열을 망가뜨리지않기 때문에 인덱스 New.Ruby는 매우 필요한 학습으로 알려져있습니다. 그러므로 수강생들은 매일 빠짐없이 새로운 변수를 추가하는 방식을 공부해야할 것입니다.