Loading...

[GP] C++์—์„œ Map์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ C++ STL์— ๋Œ€ํ•œ ๊ธ€์„ ์จ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ž˜ ์ €๋Š” STL๊ณผ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ๊ธ€์€ ์ž˜ ์“ฐ์ง€ ์•Š์œผ๋ ค ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ Documentation๋„ ์ž˜ ๋˜์–ด ์žˆ๋Š” ํŽธ์ด๊ณ , ๋ธ”๋กœ๊ทธ์˜ ๊ธ€ ์ฃผ์ œ๋กœ ์“ฐ๊ธฐ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ค๋Š˜ ์ด ๊ธ€์„ ์“ฐ๊ฒŒ ๋œ ๊ณ„๊ธฐ๋Š” ์ œ๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด๋ฅผ ๋ช‡ ๋ฒˆ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ œ๊ฐ€ ์ฃผ๋กœ ์“ฐ๊ณ  ์žˆ๋Š” Java ์–ธ์–ด์™€ ๋‹ค์†Œ ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ์ด ๋œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋ช‡ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ ์–ธ์–ด์—์„œ ๋น„์Šทํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํ˜•ํƒœ๊ฐ€ STL์ด๋‚˜ API๋กœ ์ง€์›๋œ๋‹คํ•˜๋”๋ผ๋„ ์–ธ์–ด์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ฐ ํ•จ์ˆ˜๋“ค์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ๋Š” ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. What is STL ?STL์€ C++์—์„œ ์ œ๊ณตํ•˜๋Š”..

[GP] C++ ์–ธ์–ด์—์„œ MQTT ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

์ด ๊ธ€์€ N.K Dev lab์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ง€๋‚œ ํฌ์ŠคํŠธ์— ์ด์–ด์„œ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•œ MQTT ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ C++ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ•˜์ฃ . libmosquitto C++ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•  MQTT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ libmosquitto๋ฅผ ์‚ฌ์šฉํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ libmosquitto ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ๊ฒ ์ฃ ? ๊ทธ๋Ÿผ ์„ค์น˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ sudo apt install libmosquitto ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” libmosquitto ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•ด์„œ libmosquitto๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ๋Š” ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์…”์„œ ์„ค์น˜ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Wind..

[GP] Unix Thread์˜ ๊ธฐ๋ณธ์„ ๋‹ค์ ธ๋ณด์ž

์ด ๊ธ€์€ ์ €์˜ Github Page์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ธ€์„ ์จ์˜จ์ง€ ๋ฒŒ์จ 4๊ฐœ์›”์ด ์ง€๋‚ฌ์ง€๋งŒ, ํ•™๊ต ์ƒํ™œ๊ณผ ์„ฑ์  ๊ด€๋ฆฌ ๋“ฑ์œผ๋กœ ์ธํ•ด ์ปจํ…์ธ ๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜์—ฌ ์ด๋ฆฌ์ €๋ฆฌ ์ƒ๊ฐํ•ด ๋ณธ ๊ฒฐ๊ณผ, ์ด ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ์— ์ œ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ ์ง€์‹๋“ค์„ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์šฉ๋„๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์ฃผ ์šฉ๋„๋Š” ์‚ฌ๋žŒ์˜ ๊ธฐ๋ณธ์ ์ธ ํŠน์„ฑ์ธ ๋ง๊ฐ ํŠน์„ฑ ๋•Œ๋ฌธ์ด๊ฒ ์ฃ ? ใ…Žใ…Ž ์˜ค๋Š˜์€ Unix Programming์— ๋Œ€ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ, pthread๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์™œ ์“ฐ๋ ˆ๋“œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ƒ๊ณ ์š”? ๊ทธ๋ ‡๊ตฐ์š”. ์˜ฌํ•ด๋Š” ์œ ๋‚œํžˆ ์ œ ํ”„๋กœ์ ํŠธ, ๊ณผ์ œ ๋“ฑ์—์„œ ๋ชจ๋‘ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋–„๋ฌธ์ด๋ผ๊ณ  ์ด์•ผ๊ธฐ ํ•˜๊ณ  ์‹ถ๋„ค์š”.. ์ด ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ๊ธฐ ์ „์—, Thread์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์ด ์ˆ™์ง€๋œ ์ƒํ™ฉ์—์„œ ์ฝ๊ธฐ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค..

[GP] Boost Library ์„ค์น˜์™€ ์‚ฌ์šฉ

์ด ๊ธ€์€ ์ €์˜ Github Page์˜ ๋‚ด์šฉ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ด์•„์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, CMake์— ๊ด€ํ•œ ํฌ์ŠคํŠธ๋ฅผ Tistory์— ๊ฒŒ์‹œ๋ฅผ ํ•ด๋ฒ„๋ ธ๋„ค์š”. ์ด ๊ฐœ๋ฐœ์ž ํŽ˜์ด์ง€์— ์‹ ๊ฒฝ์„ ์ผ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์•„๋ฌด๋ž˜๋„ ์•„์ง Tistory ๋ธ”๋กœ๊ทธ๋Š” ์žŠํ˜€์ง€์ง€ ์•Š์•˜๋‚˜ ๋ด…๋‹ˆ๋‹ค. (๋‹ค์Œ์—๋Š” ๊ฐœ๋ฐœ ํฌ์ŠคํŠธ๋ฅผ ๋ฐ˜๋“œ์‹œ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•˜๋„๋ก ํ• ๊ฒŒ์š” ใ… ใ… ) ์ตœ๊ทผ ์ €๋Š” C++ ์–ธ์–ด์— ๋‹ค์‹œ ๋ชฐ๋‘ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋…„๊นŒ์ง€๋Š” ํ•™๋ถ€ ์ˆ˜์—…์—์„œ ๋‘ ๊ฐœ ์ด์ƒ Java ์–ธ์–ด๋กœ ์ˆ˜์—…์„ ๋ฐ›์•˜์—ˆ(?)... ์‚ฌ์‹ค OpenCV๋Š” C++ ์–ธ์–ด๋กœ ์ง„ํ–‰ํ•˜๊ธด ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ Java ์–ธ์–ด๋กœ ์ˆ˜์—…๋ฐ›์•˜๋˜ ๋‘ ๊ณผ๋ชฉ์ด ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ณผ๋ชฉ์ด์–ด์„œ ์–ด์ฉŒ๋‹ค๋ณด๋‹ˆ Java์— ๋ชฐ๋‘ํ•˜๊ฒŒ ๋˜์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ C++ ์–ธ์–ด๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋‹ˆ ๋„ˆ๋ฌด ์–ด๋ ค์šด๊ฒŒ ์ต์ˆ™ํ•˜์ง€๊ฐ€ ์•Š์•„ ๋ธ”๋กœ๊ทธ์— ์กฐ๊ธˆ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•ฉ..

2017. 3. 4. 16:21

CMake๋ฅผ ์ด์šฉํ•œ C/C++ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

Makefile์ด๋ผ๋Š” ๊ฒƒ์„ ํ•œ ๋ฒˆ ์ฏค์€ ๋‹ค๋“ค ๋“ค์–ด๋ณด์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Visual Studio IDE ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜๋ฉด Makefile์„ ์˜คํžˆ๋ ค ๋ณด๊ธฐ ํž˜๋“ค ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, Unix, Linux์—์„œ C, C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์…จ๋‹ค๊ฑฐ๋‚˜ ํฌ๋กœ์Šค ํ”Œ๋žซํผ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด, ํ•œ ๋ฒˆ ์ฏค์€ ๋‹ค๋“ค ์ ‘ํ•ด๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Makefile์ด ํฌ์ŠคํŠธ๋Š” CMake์— ๋Œ€ํ•œ ํฌ์ŠคํŠธ์ด์ง€๋งŒ, ๊ทธ ์ „์— Makefile์ด๋ž€ ๊ฒƒ์— ๋Œ€ํ•ด์„œ ๋ช‡ ๊ฐ€์ง€ ์ ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ ์ €์˜ ๋ธ”๋กœ๊ทธ์—์„œ OpenCV ์„ค์น˜์™€ ๊ด€๋ จ๋œ ํฌ์ŠคํŠธ๋ฅผ ๋ณด์‹  ๋ถ„์ด๋ผ๋ฉด, ์•„๋งˆ ์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. $ make -j $(nproc) $ sudo make install์—ฌ๊ธฐ์„œ ์ค‘์ ์ ์ธ ์ปค๋งจ๋“œ๋Š” make ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค make ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด๊ฐ„ .sh..

2017. 1. 26. 11:02

chkmd5 (ํŒŒ์ผ MD5 ํ•ด์‹œ๊ฐ’ ๊ฐ€์ ธ์˜ค๋Š” ํ”„๋กœ๊ทธ๋žจ, only Windows OS)

์˜ค๋Š˜์€ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ฅผ ํ•œ ๊ฐœ ๋งŒ๋“ค์–ด๋ดค์Šต๋‹ˆ๋‹ค.ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„, MD5 ํ•ด์‹œ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ๋ฐ์š”. ๋ช…๋ น์–ด ์‚ฌ์šฉ์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ์ด๋ฆ„(ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„)์„ ์ž…๋ ฅํ•œ ํ›„, ์›ํ•˜๋Š” ํŒŒ์ผ ํ˜น์€ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ํ•ด๋‹น ํŒŒ์ผ์˜ MD5 ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ค๋‹ˆ๋‹ค. ํด๋”๋‚˜ ์—†๋Š” ํŒŒ์ผ๋ช…์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ, 5๋ฒˆ ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด์ค๋‹ˆ๋‹ค. Visual C++๋กœ ๊ฐœ๋ฐœC#์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ €๋Š” C++๋กœ ํ•œ ๋ฒˆ ๊ฐœ๋ฐœํ•ด๋ดค๋Š”๋ฐ์š”.Windows์—์„œ ํŒŒ์ผ์˜ ํ•ด์‹œ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ์จ๋“œ ํŒŒํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์ œ๊ฐ€ ์•Œ๊ธฐ๋กœ, ์•„๋งˆ ๊ธฐ๋ณธ ๋ช…๋ น์–ด๊ฐ€ ์—†๋Š”์ค„....) ๊ทธ๋ ‡๋‹ค๋ณด๋‹ˆ ๊ทธ๋ƒฅ ์ปค๋งจ๋“œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ๊ฐํ•ด๋ณด๋‹ค๊ฐ€ ์žฌ๋ฏธ๋กœ ๋งŒ๋“ค์–ด๋ณด๊ณ , ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Win32 API ๋“ฑ W..

System Call Function VS Library Call Function

์˜ค๋Š˜ ํฌ์ŠคํŠธ๋Š” ๊ฐœ๋ฐœ์ž๋กœ์จ ๋ฐ˜๋“œ์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผํ•  ๋ถ€๋ถ„ ์ค‘์— ํ•˜๋‚˜๋ฅผ ์จ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์šฐ๋ฆฌ๋Š” ์ฝ˜์†” ํ™”๋ฉด์— ์–ด๋–ค ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ์— ์ž…์ถœ๋ ฅ์„ ํ•œ๋‹ค๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๊ฒŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๊ฐ๊ฐ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ ํ•จ์ˆ˜๊ฐ€ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”๋Œ€๋กœ ์ธ์ž๊ฐ’์„ ๋„ฃ๊ณ , ๊ทธ ์ธ์ž๊ฐ’์„ ๋„ฃ์€๋Œ€๋กœ ์ฝ”๋”ฉ์„ ํ•˜๋ฉด ์ถœ๋ ฅ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด ํ•จ์ˆ˜์—๋„ ๋‘ ๊ฐ€์ง€์˜ ์กด์žฌ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ น ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด.... ์ด๋Ÿฐ ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ์ฝ”๋“œ๋Š” ๋งŒ์•ฝ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ์ฃ . ๋‹ค๋ฅธ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋„ ์—ญ์‹œ ํŒŒ์ผ์„ ์ฐพ์•„์„œ ์ฝ๊ณ , ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•˜๋Š” ์†Œ์Šค ์ฝ”๋“œ์ด์ฃ . ๋ถ„๋ช… ํ•˜๋Š” ์ผ์€ ๊ฐ™..

2016. 4. 3. 13:17

GCC Stack Smashing Protector

C ์ปดํŒŒ์ผ๋Ÿฌ์—๋Š” ๊ต‰์žฅํžˆ ์ข…๋ฅ˜๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. Dev C Compiler, Visual C Compiler, GNU C Compiler .... ๋ญ ๊ทธ ์™ธ์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€์š”? ์˜ค๋Š˜์€ Buffer Overflow๋ผ๋Š” ๊ฒƒ์„ ์ฃผ์ œ๋กœ ์‹œ์ž‘ํ•˜์—ฌ, GNU C Compiler์— ์กด์žฌํ•˜๋Š” Stack Smashing Protector๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€๋ฅผ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž, ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์ œ๊ฐ€ ์ž‘์„ฑ์„ ํ•ด์„œ ์ด๋ ‡๊ฒŒ ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ๋‚ฌ๋”๋‹ˆ, ์œ„์™€ ๊ฐ™์ด ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฟœ์–ด๋ƒ…๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ์š”? ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ๋ถ„์„ํ•ด๋ด…์‹œ๋‹ค. ๋ฐฐ์—ด์„ ์ด์šฉํ•ด์„œ, 1๊ฐœ์˜ ๊ณต๊ฐ„์„ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ๊ธด ํ–ˆ์ง€๋งŒ, i ์˜ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด, ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(?) ๊ทธ๋ฆฌ๊ณ , fibonacci ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์จ์„œ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด..

2013. 8. 12. 12:41

Boost thread Library

Boost ๋‘ ๋ฒˆ์งธ, ์˜ค๋Š˜์€ ์“ฐ๋ ˆ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ €, ์“ฐ๋ ˆ๋“œ๋ผ๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„์˜ ๋‹จ์œ„๋ฅผ ์ผ์ปซ๋Š” ๋ง์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต์˜ ํ”„๋กœ์„ธ์Šค๋“ค์€ ํ•œ ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ฒฝ์šฐ์— ๋”ฐ๋ฅธ ํฐ ํ”„๋กœ์„ธ์Šค๋“ค์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋ผ๊ณ  ์–˜๊ธฐํ•ฉ๋‹ˆ๋‹ค. Boost์—์„œ ์“ฐ๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ํ—ค๋”ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. #include or #include ๋จผ์ € ๊ฐ„๋‹จํ•œ ์“ฐ๋ ˆ๋“œ ์ฝ”๋“œ๋กœ ์‹œ์ž‘ํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. t ๋ผ๋Š” ์“ฐ๋ ˆ๋“œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ hello ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์„ ์“ฐ๋ ˆ๋“œ๋กœ ํ‘œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ์‹คํ–‰๋˜๋Š” ์“ฐ๋ ˆ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ ์™€์„œ ์ถœ๋ ฅํ•ด ์“ฐ๋ ˆ๋“œ๋ฅผ ์ข…๋ฃŒํ•œ ํ›„์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์„œ ์ถœ๋ ฅํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ์ข…๋ฃŒ ํ›„์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ถœ๋ ฅํ•œ ์ด์œ ๋Š” ์ •ํ™•..

Boost Random Number Generator Library

Boost Library์˜ ๋žœ๋คํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ๋ณดํ†ต C์–ธ์–ด์—์„œ ๋‚œ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ•˜๋ฉด, rand()/srand()๋ฅผ ์‚ฌ์šฉํ•˜์…จ์„๊ฒ๋‹ˆ๋‹ค. ์ข€ ๋” ๋ง๋ถ™์—ฌ์„œ time.h๋ฅผ includeํ•˜์—ฌ time๊นŒ์ง€ ์ผ๋˜ ์‚ฌ๋žŒ๋“ค๋„ ์•„๋งˆ ๋Œ€๋ถ€๋ถ„์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋จผ์ € Boost Documentation์— ์ ํ˜€์žˆ๋Š” ๋žœ๋คํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ ์–ด๋ดค์Šต๋‹ˆ๋‹ค. ๋‚œ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ๋ฌธ์ œ์˜์—ญ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 1. ๊ณ„์‚ฐ (์‹œ๋ฎฌ๋ ˆ์ด์…˜, ๋ชฌํ…Œ์นผ๋กœ๋ฆฌ ์ ๋ถ„) 2. ๊ฒŒ์ž„ (์ ์˜ ์›€์ง์ž„)3. ๋ณด์•ˆ (๊ฑด์ƒ์„ฑ)4. ํ…Œ์ŠคํŠธ (๋ฌด์ž‘์œ„ํ•œ ํ™”์ดํŠธ ๋ฐ•์Šค ํ…Œ์ŠคํŠธ) ๋ฌธ์ œ์˜์—ญ์˜ ์š”๊ตฌ์— ๋”ฐ๋ฅธ ๋‚œ์ˆ˜ ์ƒ์„ฑ์ž์˜ ๋‹ค์–‘ํ•œ ๋ณ€ํ™”. 1. ๋น„๊ฒฐ์ •์  ๋‚œ์ˆ˜์ƒ์„ฑ์ž2. ์˜์‚ฌ๊ฒฐ์ • ๋‚œ์ˆ˜์ƒ์„ฑ์ž3. ์ค€ ๋‚œ์ˆ˜์ƒ์„ฑ์ž ๋žœ๋คํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ ๋ชฉํ‘œ 1..

Boost Library

์ œ๊ฐ€ ๋“ฃ๋Š” ์ˆ˜์—…์€ ์•„๋‹ˆ์ง€๋งŒ, ์ž๋ฃŒ ๊ตฌ์กฐ ์‹œ๊ฐ„์— ์ด๋ก  ์œ„์ฃผ๋กœ ์ˆ˜์—…์„ ํ•˜๋Š” ๊ต์ˆ˜๋‹˜๊ณผ ๋‹ฌ๋ฆฌ ์‹ค๋ฌด์— ๋งž๊ฒŒ ์ˆ˜์—…์„ ํ•˜๋Š” ๊ต์ˆ˜๋‹˜์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ ๊ต์ˆ˜๋‹˜์€ ์ž๋ฃŒ ๊ตฌ์กฐ ์‹œ๊ฐ„์— Boost Library๋ฅผ ์ด์šฉํ•˜๋ผ๊ณ  ํ•˜์‹œ๋Š”๊ตฐ์š”. ๊ทธ๋ž˜์„œ http://www.boost.org/ ์—์„œ Boost Library์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค... Boost๋Š” C++ Library๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ชจ์•„๋†“์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“  ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” OS๋Š” Windows, Linux ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜์—ฌ ๋ฆฌ๋ˆ…์Šค์— ์„ค์น˜ํ•ด ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค๋งŒ, ๋ช‡๋ช‡ Windows ์œ ์ €๋“ค์€ Visual Studio์™€ ์—ฐ๋™ํ•˜์…”์„œ ํ•˜๋Š”๋ฐ, ์ตœ๊ทผ์— ๋‚˜์˜จ 2012 ๋ฒ„์ „์—๋Š” ์ž˜ ์•ˆ๋œ๋‹ค๋Š” ์–˜๊ธฐ๋„ ์žˆ๋”๊ตฐ์š”.....