c++ serialization (boost 사용)
c++에서 Trie 구조를 최적화 하였다. 최적화한 노드를 입력된 용어에 대해 search해야 하므로 노드구조를 저장해주어야 한다.
c++에서 구조를 저장해주는 serialization 기능을 boost에서 지원해준다고 한다.
우선, boost를 빌드해주어야 한다.
이 링크에 boost를 빌드해주는 과정이 상세히 적혀있다.
http://psychoria.tistory.com/entry/Boost-Boost-%EB%B9%8C%EB%93%9C-%EB%B0%A9%EB%B2%95
http://psychoria.tistory.com/158
빌드과 꽤 오래 걸린다. 준비만 하는데 한두시간 걸렸다..
빌드가 끝나면 boost공식 사이트대로 tutorial을 따라해 보자.
https://www.boost.org/doc/libs/1_36_0/libs/serialization/doc/index.html
목표 : MakeTrie프로젝트에서 Trie구조를 object Serialization하고, 다른 프로젝트 wordSearch에서 Serialization된 트리구조를 불러온다.
boost를 사용하기위해 include를 해주고요 !
저는 저장되는 변수의 타입이 vector가 있기 때문에 #include <boost/serialization/vector.hpp>를 추가해주었습니다.
그리고 다음과 같이 설정을 해줍니다.
serialize에는 저장할 변수들을 선언해주면 됩니다.
그리고 다음과 같이 main함수에서 test라는 파일안에 serialize 해줍니다.
실행시킨 결과
:
test파일이 새로 생겼다.
이제 다른 프로젝트 wordsearch로 이동하여 다음과 같이 test를 불러와 출력해봅니다.
링커와 참조파일은 모두 이전에 빌드했던것과 같이 연결해주어야 합니다.
그리고 test파일은 wordsearch의 cpp파일에 있는 위치에 복붙해주었습니다.
실행 결과 자식노드까지 잘 받아온것을 확인하였습니다.