전체 글
-
Programming Ruby (29) 루비 세팅하기 - gemRuby 2016. 11. 21. 23:51
루비가 라이브러리를 찾는 곳 특정 라이브러리를 루비 프로그램에서 사용하기 위해 require와 load를 사용할 수 있다. 루비를 특정 머신에 맞추어 빌드하면, 라이브러리 코드가 저장되는 표준 디렉터리 목록을 미리 만들어둔다. $ ruby -e 'puts $:' 위의 명령을 통해 루비 라이브러리 디렉터리 경로를 알 수 있다. 팀원 모두가 공유하는 라이브러리를 접근해야 하는 경우 선택방법이 두가지가 있다. 프로그램을 안전 수준 0에서 돌린다면 RUBYLIB 환경 변수 검색에 사용할 디렉터리를 하나 이상 추가할 수도 있다. 그리고 프로그램이 setuid를 사용하지 않는다면, 명령행 옵션 -I를 써도 같은 효과를 얻을 수 있다. $: 변수는 불러올 파일을 검색하는 경로를 담은 배열이다. 이 변수는 초기값으로 ..
-
[69번째 책] 한 권으로 읽는 조선왕조실록 (★★★★☆)1000권 독서 2016. 11. 21. 20:11
조선왕조실록을 색다른 관점으로 바라본다면 '왕족'이었던 가족사로 볼 수 있다. 가족의 구성원들을 보면 집안을 일으키는 사람도 있는가 하면 집안을 말아먹는(?) 소위 골칫덩어리가 있기 마련이다. 조선 왕조 또한 인간적인 모습을 그대로 보여주고있다. 하지만 일반 가족사 와는 달리 '왕권'이라는 아이템이 하나정도 추가됐다고 볼수 있다. '권력'을 지키기위해 가족을 죽이고, 반역을 계획하고, 온갖 정치적인 수를 동원하는 인간적인 면모를 여실히 보여주는 드라마같은 왕가의 치부가 드러나기도 한다. 저자는 조선왕조실록에 실려있는 내용을 전달하면서 당시의 국제정세에 대한 부분도 빠뜨리지 않고 이야기해준다. 사실 기록된 내용으로만 보면 의아스러운 선택이나 결정들이 있는경우 국제정세를 보면 그럴만 하구나 이해되는 부분들이..
-
Programming Ruby (28) 루비 세팅하기Ruby 2016. 11. 17. 23:01
명령행 인자 루비 명령행은 세 부분으로 나뉜다. 루비 인터프리터 옵션, 그리고 실행해야 할 프로그램 이름, 프로그램의 매개 변수 집합이다. ruby * 루비 옵션은 명령행 중에서 하으픈으로 시작하지 않은 부분이 나오기 전까지 또는 특별한 플래그인 --(하이픈 두 개)가 나오기 전까지다. 명령행 옵션 -0 [octal] 숫자 0 플래그는 레코드 구분 문자를 명시한다 -00으로 문단 모드가 되며 두 개의 연속되는 기본 레코드 구분자로 구분된다 -a -n이나 -p와 함께 사용하면 자동 분할을 가리킨다. 각 루프 반복 첫 부분에 $F=$_.split를 실행하는 것과 동일하다. -C 디렉터리 실행하기 전에 작업 디렉터리를 이동한다. -c 문법 검사만 실행한다. 프로그램은 실행하지 않는다. --copytight 저..
-
Authorization vs Authentication카테고리 없음 2016. 11. 16. 21:28
Authorization vs Authentication Authorization과 Authentication은 동사, 명사의 차이가 아닌가? 라는 생각으로 이 나이먹도록 알고 있었지만 전혀 다른 개념이라는걸 알게 되었다. Authentication : 인가된 사용자인가 확인 (로그인) Authorization : 인가된 사용자의 권한 확인 (기능을 사용할 권한 여부) 예를들어 네이버 카페를 이용하기 위해 로그인하는 과정은 Authentication 이라 할 수 있다. 하지만 특정 카페의 게시판들은 카페회원의 등급에 따라 접근권한을 제한하는 경우가 있는데 이런 경우가 Authorization에 해당한다고 할 수 있다.
-
루비 모듈과 클래스의 차이점Ruby 2016. 11. 16. 21:00
루비 모듈 vs 클래스? 객체지향 언어인 Java에 익숙한 개발자들은 루비 언어를 이해하는데 큰 어려움이 없을 것이다. 하지만 Module 이라는 개념이 등장하면서 물음표가 하나씩 그려지는 상황들이 연출된다. Ruby의 모듈과 클래스의 개념에 대해 명쾌한 답변들이 없어 StackOverflow에 질문과 답변을 번역해보고자 한다. 모듈은 다양한 클래스에서 사용가능한 메소드를 제공하는 라이브러리라고 생각하면 된다. 클래스는 객체, 모듈은 기능이라고 생각하면 된다. 예를들어 Authentication 과 Authorization 시스템은 모듈의 좋은 예라고 할 수 있다. Authentication 시스템은 다양한 어플리케이션 레벨의 클래스에서 동작한다. 보다 명확한 비교는 아래의 그림을 참조하기 바란다. [참..
-
What is Dynamic Programming? - 동적 계획법?카테고리 없음 2016. 11. 16. 17:51
동적 계획법(Dynamic Programming)의 정의 어떤 문제가 반복적이고 최적 하위구조로 이루어질 때, 하위구조에 있는 부분 문제의 답을 기반으로 전체 문제의 답을 구하는 방법 최하위 구조(Optimal Substructur)란 전체 문제의 답이 부분 문제의 답으로부터 만들어지는 구조를 말한다. 예를 들어 어떤 문제를 7개의 하위문제로 나눌 수 있을 때, 7개의 하위문제의 답을 모두 얻어야 이 문제의 답을 구할 수 있다면 이 문제는 최적 하위구조를 갖추었다고 할 수 있다. 분할정복과 비슷해 보이지만, 분할정복은 문제를 큰부분에서 작은부분으로 나누는데 반해(Top-Down), 동적 계획법은 제일 작은 부분부터 큰 문제로 풀어 올라간다(Bottom-Up). 또한 분할 정복은 나눈 문제들을 완전히 새로..
-
Programming Ruby (27) 문제해결하기Ruby 2016. 11. 15. 21:00
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 루비 디버거 루비는 디버거와 함께 제공되고, 편리하게 기본 시스템에 내장되어 있다. 인터프리터를 실행할 때 스크립트의 이름, 다른 루비 옵션과 함께 -r debug 옵션을 주면 디버거를 실행할 수 있다. ruby -r debug 루비 디버거를 이용하면 보통의 디버거가 갖추고 있는 통상적인 범주의 기능을 대부분 제공한다. 중단점을 설정하거나 메서드 호출에 들어가거나(step into) 나오거나(step over), 스택 프레임과 변수를 출력할 수 있다. 또한 특정 객체 또는 클래스에 대해 정의된 인스턴스 메서드를 나열하거나 이를 제어할 수 있다. 루비 디버거 예제 세션을 살펴보자. $ r..
-
Programming Ruby (26) 단위테스트 - 2Ruby 2016. 11. 14. 22:14
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 테스트 구조화 다음 코드를 통해 단위 테스트를 위한 테스트 프레임워크를 읽어 들일 수 있다. require 'test/unit' 순수하게 MiniTest만을 사용하는 경우 아래와 같이 사용한다. require 'minitest/unit' 단위 테스트는 테스트케이스(test case)라 불리는 고수준 그룹과 테스트 메서드 자체인 저수준 그룹으로 나뉜다. 테스트 케이스는 일반적으로 특정코드 또는 기능에 관련된 모든 테스트를 포함한다. 테스트 케이스 안에서도, 단언문을 몇 개의 테스트 메서드로 분류하고 구성해서 넣을 수 있다. 테스트 케이스를 표현하는 클래스는 Test::Unit::TestC..