์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

Ad


์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

Linux์šฉ LibNebular ๋‹ค์šด๋กœ๋“œ

Ubuntu ์˜จ๋ผ์ธ, Fedora ์˜จ๋ผ์ธ ๋˜๋Š” Debian ์˜จ๋ผ์ธ์—์„œ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜๋ ค๋ฉด LibNebular Linux ์•ฑ์„ ๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”.

์ด๊ฒƒ์€ libnebular-0.1.tar.gz๋กœ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” LibNebular๋ผ๋Š” Linux ์•ฑ์ž…๋‹ˆ๋‹ค. ์›Œํฌ์Šคํ…Œ์ด์…˜์šฉ ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์ธ OnWorks์—์„œ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OnWorks๊ฐ€ ํฌํ•จ๋œ LibNebular๋ผ๋Š” ์•ฑ์„ ๋ฌด๋ฃŒ๋กœ ์˜จ๋ผ์ธ์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰ํ•˜์„ธ์š”.

์ด ์•ฑ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”.

- 1. ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ PC์— ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

- 2. ํŒŒ์ผ ๊ด€๋ฆฌ์ž https://www.onworks.net/myfiles.php?username=XXXXX์— ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

- 3. ์ด๋Ÿฌํ•œ ํŒŒ์ผ ๊ด€๋ฆฌ์ž์—์„œ ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

- 4. ์ด ์›น์‚ฌ์ดํŠธ์—์„œ OnWorks Linux ์˜จ๋ผ์ธ ๋˜๋Š” Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” MACOS ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

- 5. ๋ฐฉ๊ธˆ ์‹œ์ž‘ํ•œ OnWorks Linux OS์—์„œ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ ๊ด€๋ฆฌ์ž https://www.onworks.net/myfiles.php?username=XXXXX๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

- 6. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ƒท

Ad


Lib์„ฑ์šด


๊ธฐ์ˆ 

LibNebular๋Š” DL(".so") ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์œ ํ˜•์ด ๋„์ž…๋˜๋Š” ๋ฌธ์ž์—ด ํ‚ค-๊ฐ’ ์Œ(๋•Œ๋•Œ๋กœ BLOB ๊ฐ’ ํฌํ•จ)์œผ๋กœ ๊ท ์ผํ•œ ์ด๋ฏธ์ง€ ํŒŒ์ผ ์กฐ์ž‘์„ ์œ„ํ•œ C++ Linux ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. BMP ๋ฐ JPEG ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์ด์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



ํŠน์ง•

  • ํ•œ ํŽ˜์ด์ง€์˜ ํ•œ ํ”„๋ ˆ์ž„ ๊ทธ๋ฆผ์„ ๋ฌธ์ž์—ด ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ์ฝ๊ธฐ/์“ฐ๊ธฐ(๋ฌธ์ž์—ด ๊ฐ’์ด ๋งž์ง€ ์•Š์œผ๋ฉด BLOB๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ)(์†์„ฑ ํ•˜์œ„ ํŠธ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์†์„ฑ ์‹œ์Šคํ…œ์„ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€ ํŒŒ์ผ ๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋ฆฌ.)
  • ๋‹ค์–‘ํ•œ(RGBAX) ๋น„ํŠธ๋งต ๋ฉ”๋ชจ๋ฆฌ ํ˜•์‹์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ์œ ํ˜•์€ URL ํ™•์žฅ์ž์™€ ํŒŒ์ผ ์„œ๋ช…("magic")์„ ํ†ตํ•ด ๊ฒฐ์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋Ÿฐ ๋‹ค์Œ ํŒŒ์ผ์€ ํ•ด๋‹น ๋™์  ๋กœ๋“œ ๊ฐ€๋Šฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(".so") ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ์กฐ์ž‘๋ฉ๋‹ˆ๋‹ค).
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋น„ํŠธ๋งต์„ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ(ํ•„์š”ํ•œ ํฌ๊ธฐ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Œ)
  • ํŒ”๋ ˆํŠธํ™”๋œ ๋น„ํŠธ๋งต์œผ๋กœ์˜ ๋ณ€ํ™˜์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ถ”๊ฐ€๊ฐ€ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์—). ๊ทธ๋Ÿฌ๋‚˜ ํŒ”๋ ˆํŠธ ์ €์žฅ ๋ฐ ๊ฒ€์ƒ‰์€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅ์— ๋Œ€ํ•ด ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(LibSDL์˜ ๋„์›€์œผ๋กœ ์ถœ๋ ฅ ์˜ˆ์ œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Œ).
  • through ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” GNU/Linux์˜ GCC์šฉ์ด๋ฏ€๋กœ ํฌํŒ…์€ ์–ด๋ ต์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • ๊ฝค ์ข‹์€ ํด๋ž˜์Šค ๋””์ž์ธ๊ณผ C++ ์–ธ์–ด(์ฃผ๋กœ ISO/IEC 14882:2003์—์„œ์™€ ๊ฐ™์Œ)
  • ์ปดํŒŒ์ผ ์‹œ ์ ๋‹นํ•œ ์ˆ˜์˜ ์™ธ๋ถ€ ์ข…์†์„ฑ("INSTALL" ์ฐธ์กฐ) ๋ฐ ๊ทธ ์ด์ƒ: ์ผ๋ถ€๋Š” ๋ฐฐํฌ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค(๋‹จ, ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ผ์ด์„ผ์Šค์— ์œ ์˜ํ•˜์„ธ์š”).
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ปดํŒŒ์ผ ์‹œ๊ฐ„ ์ข…์†์„ฑ์ด ํ›จ์”ฌ ์ ์Šต๋‹ˆ๋‹ค(GNU C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐฐํฌํŒ LibBoost "boost/shared_ptr.hpp", "boost/make_shared.hpp"์— ํฌํ•จ๋จ... ์ข€ ๋”? ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. )
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Ÿฐํƒ€์ž„ ์‹œ ์™ธ๋ถ€ ์ข…์†์„ฑ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค(GNU C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์•„๋งˆ๋„ C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ ... JPEG ํ”Œ๋Ÿฌ๊ทธ์ธ์šฉ LibJPEG)
  • ์‚ฌ์šฉ์ž API์™€ ํ”Œ๋Ÿฌ๊ทธ์ธ API ์‚ฌ์ด์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„
  • Doxygen ์ฝ”๋“œ ๋‚ด ๋ฌธ์„œ
  • ์˜ค๋ฅ˜๋Š” ์˜ˆ์™ธ๋ฅผ ํ†ตํ•ด ๋ณด๊ณ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ์ฝœ๋ฐฑ์— ๊ฒฝ๊ณ (๋ฐ ์ •๋ณด ๋ฉ”์‹œ์ง€)๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • C ์ฝ”๋“œ ์•„๋ž˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์˜ "์—๋ฎฌ๋ ˆ์ด์…˜"์„ ์œ„ํ•œ ๋ž˜ํผ(์˜ˆ: LibJPEG์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์šฉ)
  • (1) ์™ธ๋ถ€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JPEG ํ”Œ๋Ÿฌ๊ทธ์ธ) ๋ฐ (2) ์ž์‹ ์˜ ์†(BMP ํ”Œ๋Ÿฌ๊ทธ์ธ) ์™ธ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•œ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์ผํ•œ ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์€ ์†์„ฑ์„ ๋ณ„๋„์˜ ํŠธ๋ฆฌ ๋ฐ ๊ทธ๋ฆผ์œผ๋กœ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ ํ•˜์œ„ ํŠธ๋ฆฌ ํ”„๋ก์‹œ
  • ๋งŽ์€ ๊ฒฝ๊ณ , ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋™์ผํ•˜์ง€๋งŒ ๋™์ผํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Google Test์˜ ๋„์›€์œผ๋กœ ์ˆ˜ํ–‰)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฐœ์ ์œผ๋กœ ๋…ธ์ถœ๋œ ๋ชจ๋“  ์‹๋ณ„์ž์— ๋Œ€ํ•œ ๊ณ ์œ ํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค(๋‹จ, ๋งคํฌ๋กœ๋Š” ์ œ์™ธ)
  • ์ผ๋ถ€ ์œ ์šฉํ•œ ํ…œํ”Œ๋ฆฟ์ด ์ด๋ฏธ ์ธ์Šคํ„ด์Šคํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • OOP ํŒจํ„ด ๋ฐ ๊ธฐํƒ€ ์šฐ์ˆ˜ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Singleton, ์ž์ฒด Iterator-s; Functor-s, ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ, Pimpl-s, ์“ฐ๊ธฐ ์ค‘ ๋ณต์‚ฌ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” BLOB-s, ๋ž˜ํผ, ํ•˜์œ„ ํŠธ๋ฆฌ์šฉ ํ”„๋ก์‹œ
  • Autotools(Autoconf, Automake) ๋นŒ๋“œ ์‹œ์Šคํ…œ
  • ์†Œํ”„ํŠธ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ ์‚ฌ์–‘ ๋ฐ ์›๋ž˜ ์ž‘์—…์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ•ญ๋ชฉ์€ ์˜์–ด๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์ด์ „์€ ๋Ÿฌ์‹œ์•„์–ด๋กœ ๋˜์–ด ์žˆ์Œ).


์˜ค๋””์–ธ์Šค (Audience)

๊ฐœ๋ฐœ์ž, ์ •๋ณด ๊ธฐ์ˆ 



ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

C + +


์นดํ…Œ๊ณ ๋ฆฌ

๋ฐ์ดํ„ฐ ํ˜•์‹, ๊ทธ๋ž˜ํ”ฝ

์ด๋Š” https://sourceforge.net/projects/libnebular/์—์„œ๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ์šด์˜ ์‹œ์Šคํ…œ ์ค‘ ํ•˜๋‚˜์—์„œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด OnWorks์—์„œ ํ˜ธ์ŠคํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

Linux ๋ช…๋ น

Ad