DBCP를 이용하여 Connection Pool 사용하기 Java


JSON 사용하기 (C++) C & C++ 관련

갑자기 한밤 중에 JSON에 꼿혀가지고...헬로월드 예제 한번 만들어봄.


1. JSON 스터디 엔트리 포인트

http://json.org/ 및 구글링



2. JSON C++ 라이브러리

json-cpp (http://sourceforge.net/projects/jsoncpp/) 로 해봤음.

딱히 특별한 이유는 없고,

그냥, 첫번째로 링크되있길래 구글링해보니 JSON C++ 라이브러리로는 제일 유명한 듯.



3. JSON C++ 라이브러리 빌드

1) 2에서 언급한 사이트에서 다운로드. (오늘자 최신버전은 0.5.0)

2) make directory 에 가면 vs71 폴더 아래 sln 파일이 있음. 열어서 라이브러리 빌드하면 됨. VS2008 용 솔루션 파일이긴 하나, 2010 에서는 워닝 몇개만 뜨고 잘 컨버젼됨.

3) 빌드가 완료되면 build>vs71>debug>lib_json 디렉토리에 가면, 빌드 환경에 따른 lib 이 생성된게 보임. 내 경우엔 json_vc71_libmtd.lib 이란 이름으로 생김. (mtd 로 빌드했다)


4. HelloWorld 만들기

1) 3에서 만든 json lib을 프로젝트에 포함시켜주자. (Project Property > Linker > Input > Additional Dependencies

2) json 헤더 파일을 다운받은 파일에서 가져와서 프로젝트에 적당히 포함 (include\json)

3) http://jsoncpp.sourceforge.net/ 를 보고 따라서 Main 함수 작성. (주의: 공식사이트 코드는 레퍼런스 코드라 그대로 작성하면 동작안함. 무려 버그도 있음, 흠




5. 실행 결과


6. 소감

JSON에 대한 언급이 부쩍 많아져서, 뭔가 알아야 할것 같은 생각이 들었는데, 알고보니 XML 과 비슷하면서, 어떻게 보면 XML 보다 훨씬 유연하고 확장된 데이터 타입이 아닌가 싶다.

무엇보다 XML 처럼 엘리먼트 이름가지고 구분을 하지 않고, std::map처럼 key:value pair 로 데이터를 처리하니까, 보기도 깔끔하고.

JSON 파서들도 어마어마하게 많은 걸 보면, 이미 꽤나 자리잡은 포맷이 아닌가 싶네. 한마디로 대세인듯.


7. Future works

다음 번에 다시 JSON 에 꼿히면,

1) JSON 포맷으로 Query Response 를 보내주는 웹서비스에 접속해서 결과를 가져와보자. (ex) 티스토리? ㅋ)

2) Java 라이브러리로도 테스트


Boost Library 설치하기 C & C++ 관련


Eclipse에 m2eclipse 설치후 "Maven Integration for Eclipse JDK Warning" 경고 Java

프로젝트 빌드툴인 Maven 을 사용하기 위해서 이클립스 Maven 플러그인인 M2Eclipse 를 설치한 후에 이클립스에서 빌드할때마다 다은과 같은 메시지가 떴습니다.

'

Maven Integration for Eclipse JDK Warning
The Maven Integration requires that Eclipse be running in a JDK, because a number of Maven core plugins are using jars from the JDK.

Please make sure the -vm option in eclipse.ini is pointing to a JDK and verify that Installed JREs are also using JDK installs.


원래 이클립스는 JRE만 있어도 동작이 가능한데 Maven 코어의 플러그인들이 JDK의 jars를 사용하고 있기 때문에 JDK가 필요하므로 eclipse.ini에서 -vm옵션으로 JDK를 설정하라고 하네요. 여기저기 찾아보니 제목처럼 이건 error이 아니고 warning이기 때문에 Maven을 사용하지 않으면 "Do not warn again"을 사용해도 문제가 없다고 합니다. 전 Maven을 쓸려고 설치한거니까 이 경고를 해결해야 했습니다.

경고에 나온대로 이클립스 폴더 루트에 있는 eclipse.ini를 수정해 주면 됩니다. 아래는 저의 eclipse.ini 입니다.

--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vm
C:\Program Files\Java\jdk1.5.0_16\bin\
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m


빨간색으로 표시한 부분이 JDK설정을 위해서 새로 추가한 부분입니다. -vm으로 설치된 JDK의 bin경로를 설정해 준 뒤에 이클립스를 재시작하면 경고가 사라집니다. 이걸 해결하자 이클립스 기동한다음에 "Initializing Java Tooling"가 Deadlock에 걸렸는지 1%위로 올라가지 않고 계속 돌아가는 문제가 있었는데 그것도 사라져버렸군요.(같은 원인이었는지는 잘 모르겠네요.)

제대로 설정되었는이 이클립스내에서도 확인 가능합니다.(3.5버전인 Galileo를 사용중입니다.) 메뉴에서 [Help] - [About Eclipse] 를 실행하면 아래와 같은 이클립스 정보가 나타납니다.

About Eclipse 창

아래의 "Installation Details"버튼을 클릭합니다.

Eclipse Installation Details창의 Configuration탭 부분

Configuration탭 부분에 가면 eclipse.ini에서 설정한 내용이 정상적으로 등록되어 있는 것을 확인 할 수 있습니다.

[출처] http://blog.outsider.ne.kr/402

- 윈도우 환경에서 OpenSSL 컴파일 - C & C++ 관련

1. OpenSSL 소스 받기 (URL: http://www.openssl.org/source)

- 컴파일을 하기 위한 가장 최신버전(현재: openssl-1.0.0d.tar.gz)의 OpenSSL 소스를 다운받는다.

- 다음 소스 코드의 압축을 풀어준다. ( C:\openssl-0.9.8r )

2. Perl Interpreter (URL: http://www.activestate.com/activeperl)

- 다운로드 한 다음 기본설정으로 설치한다. ( C:\Perl )


3. Assembler

- 암호화 라이브러리는 성능을 개선하고자 부분적으로 어셈플리어를 사용한다. 따라서 이를 컴파일하는 어셈블러를 설치해주어야한다.

- 우리는 NASM 를 사용하기로한다. 아래의 경로 중 하나를 사용하여 다운로드한다.

http://www.nasm.us

http://sourceforge.net/projects/nasm/

http://www.nasm.us/pub/nasm/releasebuilds/2.10rc4/win32/


4. PATH 환경변수 등록

- 필요한 파일들을 모두 다운 받았다면 컴파일을 해야하는데, 컴파일하기 전에 중요한 사항이 환경변수에 실행파일에 대한 PATH를 등록하는 일이다. 이를 해주지 않는다면 컴파일 도중 실행파일을 찾지 못하여 컴파일이 안된다. 다음의 경로가 환경변수 시스템변수 PATH에 등록되었는지 확인한다. 테스트 커맨드 창에 ml 혹은 perl 입력해보면 알 수 있음.

C:\Perl\bin

C:\Program Files\NASM


5. 빌드

- 커맨드 창 실행 후 OpenSSL 소스 경로로 이동.

C:\openssl-0.9.8r


- Configure

C:\openssl-0.9.8r> perl Configure VC-WIN32


- Makefile 생성 (NASM을 사용하는 경우)

C:\openssl-0.9.8r> ms\do_nasm


- 빌드 (빌드는 Visual Studio Command Prompt 를 사용한다.)

C:\openssl-0.9.8r> nmake -f ms\ntdll.mak



6. 테스트

- 위의 과정이 모두 정상적으로 이루어진 경우 C:\openssl-0.9.8r\out32dll 폴더 아래에 결과 파일들이 생성된다.

ssleay32.lib

libeay32.lib

ssleay32.dll

libeay32.dll

- 이를성공적으로 컴파일이 되었는지 테스트 해보기 위해서 다음의 커맨드를 입력한다.

C:\openssl-0.9.8r\out32dll> ..\ms\test


- 마지막에 "passed all tests" 라는 메세지가 뜨면 성공한 것.


7. 설치

- 모든 과정에 끝난 후 직접 OpenSSL을 사용하기 위해서 설치를 해야한다. 다음의 커맨드를 입력한다.

C:\openssl-0.9.8r> nmake -f ms\ntdll.mak install


- 설치가 끝나면 C:\usr\local\ssl 경로에 개발하기 위한 모든 소스파일 및 실행파일들이 설치된 것을 확인할 수 있다.


1 2 3 4 5 6 7 8 9 10 다음