본문 바로가기
개발 및 운영

C++에서 Java스럽게 개발하기

by Joseph.Lee 2019. 4. 12.

제가 지금까지 만들었던 C++ 라이브러리 일부를 정리해 봅니다.
Java, 특히 Spring-boot framework의 영향을 많이 받아서 C++에서도 Java스럽게, 그리고 편하게 개발하기 위해 만든 라이브러리들입니다.

1. JsCPPUtils

github : https://github.com/jc-lab/JsCPPUtils

말 그래도 C++에서 사용할 수 있는 잡다한 라이브러리 입니다.
저는 여기서 주로 SmartPointer(Reference count기반)을 많이 사용합니다.
저는 스마트포인터와 SecureRandom/Well512Random/StringBuffer/StringEncoding 등을 주로 사용합니다.
처음 계획은 Windows/Linux모두에서 작동하는 라이브러리를 만드는 거였는데 처음 목적을 좀 상실해서 사실 대부분 Windows기반이긴 합니다.
주요 기능인 Common/SmartPointer/Lockable/StringBuffer 등은 Linux에서도 작동합니다.

추후.. java의 GC기반 SmartPointer도 만들어 보고 싶은데 언제나 가능할지...

2. JsCPPBean

github : https://github.com/jc-lab/JsCPPBean
test 코드 : https://github.com/jc-lab/JsCPPBeanTest
blog : https://jsty.tistory.com/165

Spring framework를 사용해 보셨으면 많이 보셨을 Bean. 네 바로 그 Bean이 맞습니다.
C++에서 Bean과 Autowired를 구현해주는 라이브러리 입니다.

전역 프로그램에서 사용되는 클래스를 일일히 선언하고 공통 헤더파일을 가져오고.. 또 공통헤더가 바뀌면 컴파일 엄청 오래 걸리고.. 하는 문제를 해결할 수 있으며 Java스러운 코딩이 가능합니다.

3. JsBsonRPCSerializable

github : https://github.com/jc-lab/JsBsonRPCSerializable
test 코드 : https://github.com/jc-lab/JsBsonRPCSerializable-testproject
blog : https://jsty.tistory.com/164

C++ 에서 객체를 Serialize/Deserialze 할 수 있게 도와주는 라이브러리 입니다.
Serialize 형식은 Bson 형식을 따르며, JSONObjectMapper 클래스를 통해 json(rapidjson)변환 기능도 지원합니다.
또한 JSONObjectMapper를 사용하면 rapidjson 객체로도 변환이 가능합니다.

Restful API로 통신할 때나 IPC, DLL에서 객체 교환할 때 주로 사용하며, 유용하게 사용할 수 있습니다.

4. JsCPPDBC

blog : https://jsty.tistory.com/149
github : https://github.com/jc-lab/JsCPPDBC
github(SQLiteDriver) : https://github.com/jc-lab/JsCPPDBCSQLiteDriver

Java의 JPA를 좀 따라해본 DB라이브러리 입니다.
현재 SQLite 데이터베이스 드라이버만 지원합니다.

Entity클래스와 Repository클래스를 통해 쉽게 데이터 CRUD가 가능합니다.

반응형

댓글