Monthly Archives: May 2014

MongoDB Error Note.

참조 : http://stackoverflow.com

Cent OS 6.4 서버에 설치되어 있는 PHP의 MongoDB 드라이버를 업데이트 한 후 다음과 같은 에러가 발생하며 Extension 파일을 읽어오지 않는 증상이 발생하였습니다.

mongo.so: > undefined symbol: php_json_encode in Unknown on line 0. After installation mongo driver for php

참고로 저는 Cent OS 6.4에 PHP 5.5를 사용중입니다. 사용하시는 환경에 따라 디렉토리 구조가 상이할 수 있으니 유의하시기 바랍니다. 기본적인 해결 방법은 상단에 스택오버플로우 링크에서 안내되어 있습니다.

먼저 php.ini에 extension=mongo.so라고 기술한 부분은 삭제합니다. 다음 /etc/php.d/ 디렉토리로 이동하여 mongo.ini 파일을 만듭니다. 작성하실 내용은 다음과 같습니다.

; configuration for php mongo module
; priority=30
extension=mongo.so

1행과 2행은 주석문이니 안쓰셔도 무관합니다. 다음 자신의 서버 환경설정이 담긴 디렉토리로 이동합니다. 저는 Nginx를 사용하고 있고 디렉토리는 /etc/ngnix/conf.d/ 였습니다. 여기에 아까 작성한 mongo.ini의 심볼릭 링크를 생성합니다.

sudo ln -s /etc/php.d/mongo.ini 30-mongo.ini

이제 서버와 MongoDB를 재시작 합니다.

[Scala Note. 1] 변수와 형

Scala에서 변수의 선언은 var과 val의 두 가지 방법을 사용한다.  var는 통상의 변수와 동일하나, val은 초기화 이후 값을 변경할 수 없으며 이는 Java에 final 변수·필드와 동일한 개념이다.

var num:Int = 10
val message:String = "Hello"

변수에 명시적으로 형을 선언하지 않으면 scala는 형을 추론하여 지정한다. 또한 초기화하지 않는 변수는 _ (underscore)로 지정해 둘 수 있다.

val message = "World!"
// message:java.lang.String = World!
val num:Long = _
// num: Long = 0

Scala에서 선언할 수 있는 형과 기본값은 다음과 같다.

설명 기본값
Byte 부호 있는 8비트 정수 0
Short 부호 있는 16비트 정수 0
Int 부호 있는 32비트 정수 0
Long 부호 있는 64비트 정수 0
Char 16비트의 부호없는 Unicode 문자 ‘\0′
String 문자열(Char 시퀀스) null(nil)
Float 32비트 IEEE754단정도 부동소수점 0.0
Double 64비트 IEEE754단정도 부동소수점 0.0
Boolean 참/거짓 false

 
문자열에서 메타문자 사용법은 기본적으로 다른 언어들과 유사하다. 단 더블쿼트(“)를 3개씩 사용해서 감쌀 경우 내부의 모든 문자를 그대로(Raw String) 표시한다.

val es = """\"\'\\"""
// es: java.lang.String = \"\'\\

 
싱글쿼트(‘) 하나로 Symbol 형을 선언할 수 있다.

val s = 'symbol
//s: Symbol = 'symbol
s.name
//res: String = symbol

Scala 설치하기

1. 윈도우 환경

Scala는 JVM 환경에서 돌아가기 때문에 JDK부터 설치합니다(JDK 설치과정은 생략)

Scala는 Scala 다운로드 페이지에서 다운로드 받으시고 설치하시면 끝입니다. 제대로 설치되었는지 확인해 보기 위해서는 윈도우의 커먼트 창을 열고 scala를 입력합니다.

c:\Users\username> scala
Welcome to Scala version 2.11.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_21).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

이렇게 REPL 콘솔이 뜨게되면 정상적으로 설치된 것입니다. scala 콘솔에서 나가고 싶을 때는 :q 를 입력합니다.

2. OS X

역시 JDK를 설치해야 합니다.

Scala 홈페이지에서 다운로드 받은것 보다 homebrew를 이용하는 것이 훨씬 편합니다. Homebrew가 설치되어 있지 않으신 분들은 우선 Homebrew부터 설치하시면 되겠습니다. Homebrew 페이지에서 가장 아랫쪽에 설치 방법이 나와있습니다. Homebrew 페이지는 한글로 지원하기 때문에 편리합니다. Homebrew 설치가 끝나면 터미널창에서 다음을 입력합니다.

brew install scala

설치가 완료된 후 역시 scala를 입력하면 REPL 콘솔이 뜹니다. 사용법은 동일합니다.

3. 이클립스 플러그인

http://scala-ide.org/download/current.html에서 자신의 scala 버전과 이클립스 버전에 맞는 플러그인 경로을 복사해 옵니다. 현재 글 작성 시간을 기준으로 scala는 2.11.0이 최신입니다.

Help > Install New Software에 들어가서 위 페이지에서 복사해온 경로로 플러그인 목록을 불러온 다음 전부 설치합니다.

Let’s Scala!