로그인

검색

Tool/etc
2013.12.27 16:13

유용한 라이브러리 소개

MoA
조회 수 1655 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄

http://www.ggulwiki.com/index.php/유용한_라이브러리_소개


유용한 라이브러리 소개

목차

C/C++

Boost

  • 홈페이지
http://boost.org
  • 소개
- function, regex, lambda, bind 등 훌륭한 라이브러리들이 포함되어 있다.
- C++ 표준위 멤버들이 참여하고 있으며 차기 표준의 후보격인 라이브러리 모음이라 할 수 있다.

tinyxml

  • 홈페이지
http://www.grinninglizard.com/tinyxml
  • 소개
- C++ 에서 사용 가능한 xml 파서 중 가장 사용법이 간편한 파서 중 하나다.
- 게임 프로그래머들에게 가장 인기 있는 파서이다.
- SAX 방식의 파서이며 아쉽게도 UTF-16 을 지원하지 않는다.

FastFormat

  • 홈페이지
http://fastformat.sourceforge.net
  • 소개
- Boost.Format , IOStream 에서 타입 안정성, 유연성, 성능에 불만을 느낀사람을 위한 라이브러리.
- Boost.Format 보다 5 ~ 17 배 , Loki SafeFormat 보다는 1.5 ~ 5.5 배 빠르다고 소개하고 있다.

libcurl

  • 홈페이지
http://curl.haxx.se/libcurl
  • 소개
- URL 전송을 도와주는 라이브러리로 C/C++ 뿐 아니라 다양한 언어에서 활용된다.
- DICT, FILE, FTP, HTTP, HTTPS, IMAP, POP3, SMTP, Telnet 등 다양한 프로토콜을 지원한다.

jsoncpp

  • 홈페이지
http://jsoncpp.sourceforge.net
  • 소개
- 좋다기 보다 이거말고 쓸게 없다.
- 다른 것들은 또다른 라이브러리를 요구하기 때문에 종속성이 없다는 점이 장점이다.
  • 주의점
- { "abc":"123", } 와 같이 콤마 다음에 } 나 ] 이런 기호로 끝나버리면 오류를 내며 파싱을 못한다.
- 내부를 약간 수정해야 함.

json spirit

  • 홈페이지
http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented
  • 소개
- boost 라이브러리를 사용 중이라면 json 파서로 이것을 고려해볼만 하다.

C#

Lidgren networking library

  • 홈페이지
http://code.google.com/p/lidgren-network-gen3/
  • 소개
정교한 흐름제어를 지원하는 강력한 네트워크 엔진
다양한 네트워크 엔진이 있겠지만 닷넷 계열에선 필자가 본 것중 이게 제일 나은듯 싶다. 요새 뜨고 있는 Unity3D에서도 사용 가능.

Java

프레임워크

  • Spring : 전자정부 표준 프레임워크. 의존성 주입(Dependency Injection) 개념이 처음엔 생소하지만 익숙해지면 어떻게 스프링 없이 자바개발을 했는지 기억이 안날 정도. 핵심 기능인 컨테이너로서의 기능 말고도 JDBC, 트랜잭션, Web, AOP, 배치작업 관련 등 엔터프라이즈 어플리케이션 개발에 관련된 여러 모듈을 지원하여 Java EE를 대체하고 있다.
  • Guice : 스프링이 너무 방대해지면서 의존성 주입 기능을 간단히 담아 만든 구글의 프레임웍

네트워크

  • Netty : 네트워크 라이브러리는 netty가 진리. 오픈소스이며, 한국인 개발자 이희승씨가 재택근무하면서 해외 개발자들과 함께 만드는 것으로 유명하다.

웹, 웹 서비스

  • Spring MVC : 스프링 프레임웍과 같이 쓰기에 유용한 MVC 웹 프레임웍. 자바의 기능을 적극 활용하여 커다란 라우팅 테이블 없이
  • Struts : 스프링 MVC 이전에 대세였던 MVC 프레임웍. Struts 2에서는 이전 버전의 단점들을 많이 보완했다.
  • JAX-RS - JerseyRestletRESTeasyCXF : RESTful 웹 서비스를 위한 표준으로 레퍼런스 구현인 Jersey와 함께 다른 개발사에서도 구현을 제공한다.
  • VertX : 비동기 웹/엔터프라이즈 어플리케이션을 위한 라이브러리. netty와 hazelcast로 구성되어 큰 노력 없이 여러 머신으로 분산시킬 수 있으며, 자바뿐만 아니라 자바스크립트, 루비, 파이썬, 그루비 등을 지원하는 것도 특징
  • Jackson : 자바 오브젝트를 JSON, XML 등으로 매핑할 수 있는 라이브러리. 속도도 빠르고 어노테이션이나 XML 설정 같은거 없어도 리플렉션으로 알아서 만들어 줘서 편리하다.
  • JSoup : HTML 파서 라이브러리. jQuery처럼 CSS Selector를 이용해서 HTML 문서를 다룰 수 있다.

퍼시스턴스

  • Hibernate : DB의 각 엔티티와 대응되는 오브젝트들을 만들면 자동으로 스키마가 만들어지는 ORM(Object Relation Mapper). SQL 대신 Session, Criteria 등의 API를 이용해서 쿼리를 날리거나 SQL을 한단계 더 감싼 HQL(Hibernate Query Language)를 사용한다. 따라서 복잡성은 좀더 높지만, 같은 코드로 여러 데이터베이스에 연결할 수 있는 것이 장점. 테스트는 내장 H2DB로, 배포는 MySQL이나 Oracle에 하는 것이 가능.
  • myBatis : iBatis의 기존 개발진들이 아파치 재단에서 독립하여 myBatis로 이름을 바꾸었고 지금은 이 쪽이 주력으로 개발되고 있다. 자바 오브젝트에 대응하는 SQL을 작성하여 사용하는 방식이라 하이버네이트보다 저수준이다.
  • ActiveJDBC : 위 두가지보다 좀더 RoR 스러운 Active Record 패턴으로 퍼시스턴스를 작성할 수 있다.

로깅

  • SLF4J : JCL(Jakarta Commons Logging), Log4j, Logback, java.util.logging 등의 다양한 로깅 라이브러리를 하나의 API로 사용할 수 있는 인터페이스. 인터페이스이므로 실제 로깅을 수행하는 구현체와 함께 사용해야 한다. 사용해야 하는 라이브러리는 로깅을 JCL로 남기는데 우리 로깅은 logback으로 하고 있다면 jcl-over-slf4j, slf4j, logback을 import하면 JCL로 작성된 로그가 slf4j를 통과해 logback을 통해 작성되는 방식.
  • Logback : log4j 의 후신으로, 로그를 보내는 인터페이스인 Logger, 로그를 실제로 기록하는 Appender, 로그 내용 형식을 지정하는 Layout으로 역할 분리가 되어 있어 깔끔하게 각각의 설정이 가능하다.
  • Log4j : 좀더 전통적인 자바 로깅 라이브러리. 새로 시작하는 프로젝트라면 Logback 사용을 고려하는 것이 좋다.

테스트

  • JUnit : 유닛테스트 라이브러리. 아주 널리 사용되고 있어서 이클립스나 IDEA와 같은 IDE 지원이나 CI 지원이 빵빵하며, Spring 과 같은 프레임웍과 연계한 테스트도 지원이 잘 된다. JUnit 4에 오면서 TestCast 클래스를 상속받는 방법 말고도 어노테이션을 이용해서 테스트를 작성하는 것도 가능해졌다.

Python

Parallel Python

  • 홈페이지
http://www.parallelpython.com
  • 소개
- 파이썬으로 멀티코어 활용과 병렬 처리 프로그래밍을 할 수 있도록 도와주는 라이브러리 이다.

PIL

  • 파이썬 이미지 라이브러리.
http://www.pythonware.com/products/pil/

NumPy, SciPy

  • 수치해석 패키지, MATLAB 대용. NumPy는 배열과 행렬의 빠른 계산을 위한 기본 기능을, SciPy는 신호/이미지처리, 최적화와 같은 좀더 MATLAB스러운 기능들을 담고 있다.
http://www.numpy.org/
http://www.scipy.org/

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 Tool/etc Programming 게시판 관련 2 MoA 2014.11.01 5719
188 Algorithm 2048게임 높은 점수 얻기 위한 알고리즘 MoA 2014.03.29 1314
187 Tool/etc UI Guidelines MoA 2014.03.11 1473
186 Tool/etc 자바스크립트 물리엔진 ㄷㄷ MoA 2014.03.10 1118
185 API/MFC 다이얼로그 기반에서 메뉴 내용이 갱신 안되는 문제 해결 MoA 2014.02.13 1543
184 Python 파이썬에서 C모듈 사용하기 MoA 2014.02.10 2583
183 Library CSpreadSheet MoA 2014.02.03 882
182 Reversing 워게임 사이트 정리 MoA 2014.01.27 1897
181 C/C++ RAND_MAX 2 MoA 2014.01.19 1293
180 Python OpenCV 이용한 템플릿 매칭 MoA 2014.01.16 2198
179 Tool/etc Quake 3 source code and review MoA 2014.01.15 969
178 Python 화면 캡쳐 소스 MoA 2014.01.14 1836
177 C/C++ __FILE__ __LINE__ __FUNCTION__ 등 매크로 MoA 2014.01.02 1627
» Tool/etc 유용한 라이브러리 소개 MoA 2013.12.27 1655
175 Python Embedding Python in C/C++ MoA 2013.12.23 933
174 Python SciPy and NumPy MoA 2013.12.23 1215
173 API/MFC 다국어를 위한 StringTable, LoadString 1 MoA 2013.12.22 3392
172 API/MFC WTL 정리 file MoA 2013.12.22 1968
171 API/MFC GetLastInputInfo 함수 MoA 2013.12.06 1019
170 Python [GUI] wxPython에서 에러메시지 콘솔로 보는 법 MoA 2013.12.03 1448
169 Python [GUI] wxPython 기본 프로그램 file MoA 2013.11.30 1533
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15