전체보기
-
Programming Ruby (14) 표현식 - 1Ruby 2016. 10. 31. 23:37
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 표현식 루비가 다른 언어들과 다른 특징 중 하나는 값을 반환할 수 있어 보이는 모든 곳에서 값을 반환한다는 것이다. 따라서 거의 모든 것이 표현식이 된다. 이것이 실제로 의미하는 바는 무엇일까? 이러한 특징을 통해 구문을 연속해서 쓸 수 있다는(chain statements) 점은 쉽게 유추할 수 있다. a = b = c = 0 # => 0 [3, 1, 7, 0].sort.revers # => [7, 3, 1, 0] C나 자바에서의 일반적인 구문이 루비에서는 표현식이다. 예를들어 if 와 case 구문ㅇ느 둘 다 마지막에 평가된 표현식의 값을 반환한다. 연산자 표현식 루비는 기본적인 연..
-
What is Ruby Proc??Ruby 2016. 10. 29. 00:39
[참고] http://blog.nacyot.com/articles/2015-12-07-ruby-proc-and-lambda/ Proc(절차, Procedure) 객체 이해하기 루비에서는 Proc 클래스를 통해서 익명 함수를 생성할 수 있다. Proc는 Procedure의 줄임말로 어떤 처리 과정(절차)를 담고있다는 의미이다. Proc 또한 일반 루비 클래스와 다르지 않아 new 메서드를 통해 생성이 가능하다 Proc.new Proc.new 메서드는 블록을 통해서 절차(루비 표현식들)를 넘겨받는다. Proc.new do puts 'Hello, world!' end Proc.new는 Proc 객체를 반환한다. 이 생성자 메서드는 넘겨받은 익명 함수에 대해서 어떠한 일도 하지 않고, 익명 함수를 그대로 저장한..
-
[65번째 책] 조선시대 사람들은 어떻게 살았을까 (★★★★☆)1000권 독서 2016. 10. 28. 22:49
역사책는 딱딱하고, 외울것이 많으며, 수많은 왕들과 연도, 사건들만으로 가득한 지루한 책이다 라는 고정관념을 한번에 깨뜨려 주는 책이다. 조선시대 인구의 대다수를 차지하는 평민, 천민들에 삶에 직접적으로 영향을 끼쳤던 문화와 제도들 그리고 그 문화와 제도 사이에서 끊임없이 욕심을 추구하며 이익을 추구하는 이익집단들 사이의 갈등과 조정들이 끊임없이 반복된다. 책의 내용에서 놀라운점은 단순한 사실과 정보의 전달이 아닌 국가라는 총체적 관점에서 각각의 주제가 일상에 미치는 영향을 사실감 있게 표현하고 그려내었다. 다소 아쉬운점은 ~대학교 조교, ~학교 박사 이런식으로 여러 저자의 출처가 불분명하여 씁쓸함을 남기긴 하지만 한명의 관점이아닌 각 주제에 따른 다양한 관점에서 바라본 조선의 삶을 제대로 들여다 볼 수..
-
델파이, 깨진한글 복구하기카테고리 없음 2016. 10. 28. 21:33
델파이에서 스트링의 처리를 위해 아래와 같이 Copy 내장함수를 많이들 사용한다. Copy(문자열, 시작인덱스, 자르고픈길이) 문제는 자르고픈 길이가 글자수가 아닌 byte라는점이다. 델파이에선 한글이 DBSC 즉, 2바이트 문자로 인식 되기 때문.. 이를 해결할 방법을 알아보자. DBCS (Double Byte Character Set) DBCS란 하나의 문자를 나타내는데 16비트 즉 2바이트를 사용하는 문자셋을 의미한다. 델파이에서 숫자, 영문, 특수기호는 1byte로 처리되며 한글의 경우 DBCS 문자로 2바이트로 처리된다. 델파이에서 한글 스트링 길이를 조정하기 위해 Copy 함수를 사용하는 경우... 2바이트 문자가 절반으로 토막(?)내는 무시무시한 기능으로 인해 한글이 깨지는 현상이 발생한다...
-
Programming Ruby (13) 메서드 파헤치기Ruby 2016. 10. 28. 20:41
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 메서드 정의 메서드는 def 키워드로 정의한다. 그리고 메서드 이름은 반드시 소문자나 밑줄로 시작해야 하며, 문자, 숫자, 밑줄(_)로 구성된다. 메서드 이름 마지막에는 ?, !, =이 올 수 있다. True나 False를 반환하는 메서드(predicate method, 술어 메서드)에는 이름 끝에 ?를 붙이곤 한다. 1.even? # => false 2.even? # => true 1.instance_of?(Fixnum) # => true '위험' 하거나 수신자의 값을 바궈버리는 메서드는 이름이 느낌표(!)로 끝나기도 한다. 이는 뱅(bang) 메서드라고 불린다. 예를들어 String..
-
What is FastCGI?카테고리 없음 2016. 10. 27. 20:14
[참고] http://www.terms.co.kr/FastCGI.htm http://www.joinc.co.kr/w/man/12/fastcgi FastCGI (1) FastCGI 는 대부분의 웹서버에서 응용프로그램을 호출할 때 방법인 CGI의 속도를 증진시키기 위한 프로그래밍 인터페이스이다. FastCGI 개발자들에 의하면, 웹사이트로 들어와서 특정 응용프로그램을 사용하는 사용자 요청이 3~30배 정도 더 빠르게 처리될수 있다고 한다. FastCGI는 웹서버의 플러그인이다. 이러한 성능 향상을 얻기 위해서는 기존의 서버 응용프로그램들에 아주 작은 변경만 하면 된다. 기본적으로 FastCGI는 단일 프로세스 내에서 다중 CGI 요청들을 관리하는 프로그램이므로 각 요청에 따른 많은 프로그램 명령어들을 절약한..
-
Programming Ruby (11) 숫자Ruby 2016. 10. 27. 11:55
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 숫자 루비는 정수(integer), 부동소수점(floating-point), 유리수(rational), 복소수(complex number)를 지원한다. 특정 범위의 정수( -2^30~2^30-1, -2^62~2^62-1)는 Fixnum 클래스의 객체로 내부적으로는 이진 형태로 저장된다. 이 범위를 넘어서는 정수는 Bignum 객체로 저장된다(현재는 작은 정수의 가변 길이 집합으로 구현되어 있다.) 이러한 과정은 투명하게 진행되는데, 루비가 양방향으로 변환을 자동으로 해 주기 때문이다. num = 10001 4.times do puts "#{num.class}: #{num}" num *=..
-
Programming Ruby(12) 문자열Ruby 2016. 10. 26. 22:56
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 문자열 루비 문자열은 간단히 말하면 문자열 시퀀스다. 보통 출력가능한 문자를 저장하지만 반드시 그래야만 하는 것은 아니다. 문자열에는 이진(binary) 데이터를 저장할 수도 있다. 문자열은 String 클래스의 객체다. 큰따옴표로 묶인 문자열은 많은 이스케이프 시퀀스를 지원한다. 그 중 가장 일반적인 것이 줄바꿈을 나타내는 \n 이다. 또한 #{ expr } 과 같은 식으로 쓰면 루비 코드의 결과를 문자열로 변환해준다. 만약 # { } 안의 표현식이 전역 변수나 클래스 변수, 인스턴스 변수라면 중괄호를 생략해도 된다. "Seconds/day : #{24*60*60}" # => Seco..