메뉴 건너뛰기

OBG

Programming

Tool/etc
2013.12.27 16:13

유용한 라이브러리 소개

MoA
조회 수 876 추천 수 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/

?

  1. Programming 게시판 관련

  2. R language 사이트

  3. 텍스트 에디터 Sublime Text 2

  4. 에디트 플러스, VS 2008 컴파일 환경 설정

  5. 어셈블리어 컴파일 - 기초

  6. 소스 코드 버전 관리 툴 설치

  7. Visual Studio Debug Tips

  8. Redmine 설치

  9. 컨텍스트 스위칭 (Context Switching)

  10. 에디트 플러스, VS 2008 컴파일 환경 설정

  11. Coding conventions

  12. Design Patterns Quick Reference

  13. 예외 처리 가이드 (Slide)

  14. 앱 디자인의 발견 - 메모 서비스를 생각하다

  15. [S/W 공학] 월-인원(man-month), LOC

  16. Flash CS5 and Version Control

  17. 유용한 라이브러리 소개

  18. Quake 3 source code and review

  19. 자바스크립트 물리엔진 ㄷㄷ

  20. UI Guidelines

  21. Machine Learning for Video Games

Board Pagination Prev 1 ... 2 Next
/ 2
위로