์ถ์๊ฐ ์ด๋ฃจ์ด์ก์ต๋๋ค OpenDDS 3.34.0 โ ํด๋น ์ฌ์์ ๋ฌด๋ฃ C++ ๊ตฌํ์ฒด ๊ฐ์ฒด ๊ด๋ฆฌ ๊ทธ๋ฃน ์ค์๊ฐ ์์คํ ์ฉ ๋ฐ์ดํฐ ๋ฐฐํฌ ์๋น์คDDS๋ ๋ฐํ/๊ตฌ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, OpenDDS ์์ฒด๋ C++ ์ธ์๋ Java/JNI ๋ฐ์ธ๋ฉ์ ์ ๊ณตํ๊ณ ACE/TAO๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ํด๋น ๋ฆด๋ฆฌ์ค๊ฐ ๊ฒ์๋์์ต๋๋ค. 21 ์ 2026 ๋ , ๊ธฐ์ฑ ์์นด์ด๋ธ ์ฌ์ฉ ๊ฐ๋ฅ Windows, Linux ะธ macOS.
ํ๋ก์ ํธ๊ฐ ๋ฐฐํฌ๋๊ณ ์์ต๋๋ค ์คํ ์์ค ์ํํธ์จ์ด๋ก์ OpenDDS๋ ์ ์๊ถ ํ์๋ฅผ ์ ์งํ๋ ์กฐ๊ฑด์ผ๋ก ๋ก์ดํฐ ์์ด ์ฌ์ฉ, ์์ ๋ฐ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ํนํ OpenDDS๋ ์์ค ์ฝ๋๋ฅผ ๊ณต๊ฐํ ์๋ฌด ์์ด ๋ ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ์ฌ์ฉํ ์ ์์์ ๊ฐ์กฐํฉ๋๋ค.
OpenDDS 3.34.0์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
RtpsRelay ๊ธฐ๋ฅ์ด ํ์ฅ๋์์ต๋๋ค. RtpsRelay๋ ์ด์ RtpsRelayControl ๋ฉ์ปค๋์ฆ์ ํตํด ๋ฐํ์์ ์ถ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ํ ์๋ก์ด RelayDeniedPartitions ํ ํฝ์ ํตํด ํน์ RtpsRelay ์ธ์คํด์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ฑฐ๋ถํ ํํฐ์ ๋ชฉ๋ก์ ์ง์ ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. -DeniedPartitionsTimeout ์ต์ ์ ์ด๋ฌํ ๊ฑฐ๋ถ ์ง์ ์๊ฐ์ ์ ์ดํ๋ โโ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ํ๋กํ์ผ๋ง์ ์ํ ๋น๋ ๋ชจ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. GCC์์ ์ฑ๋ฅ ๋ถ์์ ์ํ ์ผ๋ฐ์ ์ธ ์ปดํ์ผ ์ต์ ์ ํ์ฑํํ๊ธฐ ์ํด ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ์ --profiling ํ๋๊ทธ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
OpenDDS ํ๋ฆ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฝ๋ฐฑ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๊ฐ๋ฐ์๋ค์ OpenDDS ์ค๋ ๋๊ฐ ์์๋๊ณ ์ข ๋ฃ๋ ๋ ํธ์ถ๋๋ ํธ๋ค๋ฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ค๋ ๋ ๋์์ ์ ์ดํ ์ ์์ผ๋ฉฐ, ์๋ฅผ ๋ค์ด ํน์ CPU ์ฝ์ด์ ํ ๋นํ ์ ์์ต๋๋ค. Linux.
IDL ํ์ ์ ์ญ์ง๋ ฌํ๊ฐ ์ต์ ํ๋์์ต๋๋ค. ์ด์ ๋ชจ๋ IDL ๋งคํ์ ์ธ์คํด์ค๋ฅผ ์ญ์ง๋ ฌํํ ๋ ๊ธฐ๋ณธ ์ ํ ์ํ์ค์ ๋ํด ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ์ด๊ธฐํ๋ฅผ ๋ฐฉ์งํ๋ ค๊ณ ํฉ๋๋ค. IDL์์ C++11๋ก์ ๋ณํ์ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ํด์๋ `@OpenDDS::no_init_before_deserialize`๋ฅผ ํตํด ๋ช ์์ ์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค.
EventDispatcher ์ค๋ ๋ ์๋ฅผ ์ ์ดํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. DCPSEventDispatcherThreads ๋งค๊ฐ๋ณ์์ event_dispatcher_threads ์ ์ก ์ค์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. event_dispatcher_threads=0์ธ ๊ฒฝ์ฐ, ์ ์ก์ ์์ฒด ๋ก์ปฌ ๋์คํจ์ฒ๋ฅผ ์์ฑํ๋ ๋์ ๊ณต์ ์ด๋ฒคํธ ๋์คํจ์ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
TCP ๋ฒํผ ์ค์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. TCP ์ ์ก์ send_buffer_size ๋ฐ rcv_buffer_size ๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ผ ๋ฒํผ ํฌ๊ธฐ๋ ์ด๋ฌํ ๋งค๊ฐ๋ณ์๊ฐ ์์๋ก ์ค์ ๋์ง ์๋ ํ ํ๋ซํผ์ ๋ฐ๋ผ ๊ฒฐ์ ๋ฉ๋๋ค.
ACE/TAO๊ฐ ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์ข ์์ฑ์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ACE 6/TAO 2๋ 6.5.23์์ 6.5.24๋ก, ACE 8/TAO 4๋ 8.0.5์์ 8.0.6์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. CMake๋ฅผ ํตํด OpenDDS๋ฅผ ๋น๋ํ ๋ ๊ธฐ๋ณธ ACE/TAO ๋ฒ์ ์ ์ด์ ACE 8/TAO 4์ ๋๋ค.
์ฌ์ฉํ์ง ์๋ RtpsRelay ์ต์ ์ ์ ๊ฑฐํ์ต๋๋ค. -LogParticipantStatistics ์ต์ ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฏ๋ก RtpsRelay์์ ์ ๊ฑฐ๋์์ต๋๋ค.
์ฑ๋ฅ ๋ฐ ๋คํธ์ํฌ ๊ด๋ จ ์์ ์ฌํญ. ๋ท๋งํฌ ์์ ๋ฒํผ ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ์ผ๋ฉฐ, ์๋น์ค ๋ฐ ์๋ต ์์ ์ ์๋น ๋ถ๋ถ์ด ๋ฆฌ์กํฐ ์ค๋ ๋์์ ํด๋น ์ด๋ฒคํธ ๋์คํจ์ฒ ์ค๋ ๋๋ก ์ด๋๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋คํธ์ํฌ ์ฝ๊ธฐ ๊ด๋ จ ๋ฆฌ์กํฐ ์ค๋ ๋์ ๋ถํ๊ฐ ์ค์ด๋ค ๊ฒ์ ๋๋ค.
ThreadStatusManager ๋ฐ ์ ์ก ๊ด๋ จ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ต๋๋ค. ThreadStatusManager๋ ์ด์ ์์ฒด ์ ๊ธ์ ์ฌ์ฉํ๋ ์ฌ๋ฌ ์ฌ๋กฏ์ ํ์ฉํ์ฌ ์ค๋ ๋ ๊ฐ ๊ฒฝํฉ์ ์ค์์ต๋๋ค. ์ญ์ ๋ ์ฐธ์ฌ์๋ก๋ถํฐ DynamicData๋ฅผ ์ญ์ง๋ ฌํํ ๋ ๋ฐ์ํ๋ null ํฌ์ธํฐ ์ญ์ฐธ์กฐ ์ค๋ฅ๊ฐ ์์ ๋์์ผ๋ฉฐ, ์ ์ก ์ธ์คํด์ค ์กฐํ ๋ฐ ๊ณต์ ๋ก์ปฌ ์ฃผ์ ์ฒ๋ฆฌ ์ค๋ฅ๋ก ์ธํด ์ฐธ์ฌ์ ๋ฐ ์๋ํฌ์ธํธ ์ ์ธ์์ ์๋ชป๋ ๋ก์ผ์ดํฐ ๊ฐ์ด ์์ฑ๋ ์ ์์๋ ๋ฌธ์ ๋ ํด๊ฒฐ๋์์ต๋๋ค.
<<<
ํ๋ก์ ํธ ์น์ฌ์ดํธ์ ๋ด์ค
์ถ์ฒ : linux.org.ru
