์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

[์ž…๋ฌธ] Qt 6 ํ”„๋กœ๊ทธ๋ž˜๋ฐ 2ํŽธ

์ด๋ฒˆ ๊ฐ•์˜๋Š” Qt ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1ํŽธ์— ์ด์–ด์„œ 2ํŽธ ๊ฐ•์˜ ์ž…๋‹ˆ๋‹ค. Qt๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ 1ํŽธ์„ ๋จผ์ € ํ•™์Šตํ•˜์‹œ๊ณ  2ํŽธ์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Thumbnail

์ž…๋ฌธ์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐ์Šคํฌํ†ฑ ์•ฑ ๊ฐœ๋ฐœ, ์ž„๋ฒ ๋””๋“œ ยท IoT] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ๋ฐ์Šคํฌํƒ‘, ๋ชจ๋ฐ”์ผ, ์ž„๋ฒ ๋””๋“œ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๋™์ž‘ํ•˜๋Š” SW๋ฅผ Qt๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • MS Windows, Linux, MacOS ์—์„œ Qt๋ฅผ ์ด์šฉํ•ด SW๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • ๋ชจ๋ฐ”์ผ์ธ Android ํ”Œ๋žซํผ์—์„œ App์„ Qt๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ํ™•์ธํ•ด์ฃผ์„ธ์š”!

Qt Programming
One framework, one codebase, any platform.

Qt๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Qt๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, Qt๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•œ SW๋Š” MS Windows, MacOS, Android, iOS, Embedded Linux, QNX ๋“ฑ์—์„œ ๋ชจ๋‘ ํ˜ธํ™˜(์ง€์›)๋ฉ๋‹ˆ๋‹ค๊ทธ๋Ÿฌ๋ฏ€๋กœ ์šด์˜์ฒด์ œ ๋ณ„ ํ˜ธํ™˜๋˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋”ฐ๋กœ ๊ฐœ๋ฐœํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค๊ทธ๋ฆฌ๊ณ  Qt ๋Š” ๋‹จ์ˆœํžˆ GUI๋ฅผ ์œ„ํ•œ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Qt๋Š” ๋‹ค์–‘ํ•œ ์‚ฐ์—… ๋ถ„์•ผ์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฐฉ๋Œ€ํ•œ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ•œ๋ฒˆ Qt๋กœ ๊ฐœ๋ฐœ๋œ SW๋Š” ๊ฐ ์šด์˜์ฒด์ œ์— ์ด์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค์˜ˆ๋ฅผ ๋“ค์–ด Android ๋กœ App์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ JAVA ์™€ Android SDK, NDK ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ Qt ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” C++์„ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•˜๋ฉด Android ์—์„œ ๋™์ž‘ํ•˜๋Š” App ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Qt๋กœ ํ•œ๋ฒˆ ๊ฐœ๋ฐœํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Desktop ์šด์˜์ฒด์ œ๋ชจ๋ฐ”์ผ ์šด์˜์ฒด์ œ Embedded ์šด์˜์ฒด์ œ์—์„œ ๋ชจ๋‘ ์ด์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ์‹œ ์†Œ์š”๋˜๋Š” ์ธ๊ฑด๋น„์‹œ๊ฐ„์„ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋ฉฐ C++์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค์‹ฌ์ง€์–ด ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ๋‹ค๊ตญ์–ด ์ง€์›์ด ๊ฐ€๋Šฅํ•œ ํˆด๊ณผ ์„ค์น˜ ๋ฐฐํฌํŒ(์„ค์น˜ ํŒŒ์ผ)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ํˆด๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Qt๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๋‹ค์–‘ํ•œ ์‚ฐ์—…๋ถ„์•ผ์—์„œ๋„ Qt๋ฅผ ์ด์šฉํ•ด SW๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค์œ ์ˆ˜์˜ ์ˆ˜๋งŒ์€ ์ž๋™์ฐจ OEM์—์„œ Qt๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค๊ทธ๋ฆฌ๊ณ  TV, ๊ฐ€์ „๊ฑด์„ค ๋“ฑ ์ˆ˜ ๋งŽ์€ ๋ถ„์•ผ์—์„œ Qt๋ฅผ ์ด์šฉํ•ด SW๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

์‹ค์‹œ๊ฐ„ OS์ธ FreeRTOS ์šด์˜์ฒด์ œ์™€ ๊ฐ™์€ MCU ์ˆ˜์ค€์—์„œ๋„ ๋™์ž‘ํ•˜๋Š” ์šด์˜์ฒด์ œ์—์„œ๋„ Qt๋กœ ๊ฐœ๋ฐœํ•œ SWํฌํŒ…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

Qt, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

Qt๋Š” ๊ฐœ๋ฐœ IDE ํˆด๋กœ Qt Creator IDE ํˆด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹คํ•˜์ง€๋งŒ Visual Studio IDEํˆด์— ์ต์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•ด์„œ Qt Visual Studio Add-in ์„ ์„ค์น˜ํ•ด Visual Studio IDEํˆด์—์„œ Qt ๋ฅผ ์ด์šฉํ•ด SW๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

 

์ด๋Ÿฐ๊ฑธ ๋ฐฐ์›Œ์š”

Qt๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์™€ ํ˜ธํ™˜์ด ๋˜๋ฏ€๋กœ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์„ ์ตœ๋Œ€ํ•œ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๊ต์œก ๊ณผ์ •์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ๋ถ„์€ Qt๋ฅผ ์ด์šฉํ•ด SW๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๊ณผ์ •์„ ์ˆ˜๊ฐ•ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์‚ฐ์—… ๋ถ„์•ผ์˜ SW๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ Qt ์ค‘๊ธ‰์ž ์ด์ƒ์˜ ์—ญ๋Ÿ‰์„ ๋ณด์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • Qt์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋Œ€ํ•œ API ํ•™์Šต
  • ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ์—์„œ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•
  • Qt์—์„œ ์ œ๊ณตํ•˜๋Š” ํˆด์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ํ•™์Šต

 

์ด๋Ÿฐ ๋ถ„์—๊ฒŒ ์ถ”์ฒœํ•ด์š”

  • ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ํ˜ธํ™˜๋˜๋Š” SW๋ฅผ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ๋ถ„
  • ๋‹ค์–‘ํ•œ ์‚ฐ์—… ๋ถ„์•ผ์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” SW๋ฅผ Qt๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜๋Š” ๋ถ„

๊ฐ•์˜๊ตฌ์„ฑ ๐Ÿ“–

์„น์…˜ 1. QPainter Class๋ฅผ ์ด์šฉํ•œ 2D Graphics 
QPainter ํด๋ž˜์Šค๋Š” QWidget์ƒ์—์„œ 2D๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๋ฅผ ๋“œ๋กœ์ž‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Widget ์ƒ์—์„œ ๋„ํ˜•, ์„ , ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” QPainter๋ฅผ ์ด์šฉํ•ด 2D ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๋ฅผ QWidget ์ƒ์— ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 2. QPainter ์‹ค์ „ ํŽธ, ํฌ๋กœ๋งˆํ‚ค ์˜์ƒ ์ฒ˜๋ฆฌ ๊ตฌํ˜„ 
ํฌ๋กœ๋งˆํ‚ค(Chromakey)๋ž€ ๋ฐฐ๊ฒฝ์˜ ์ƒ‰์„ ํŠน์ • ์ƒ‰์ƒ์œผ๋กœ ์„ค์ •ํ•จ์œผ๋กœ์จ ๋ฐฐ๊ฒฝ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. QPainter๋กœ ์ฝ์–ด ๋“ค์ธ ์‚ฌ์ง„์—์„œ ๋ฐฐ๊ฒฝ์˜ ๋…น์ƒ‰์„ ๋‹ค๋ฅธ ์‚ฌ์ง„์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ•ด ๋ด„์œผ๋กœ์จ QPainter์— ๋Œ€ํ•ด์„œ ์ข€๋” ์ž์„ธํžˆ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 3. ํƒ€์ด๋จธ ๊ตฌํ˜„ 
์ง€์ •ํ•œ ์‹œ๊ฐ„์„ ๋ฐ˜๋ณตํ•  ๋•Œ ๋งˆ๋‹ค ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก Qt์—์„œ๋Š” QTimerํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” QTimer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 4. Thread Programming 
Qt์—์„œ๋Š” Thread๋ฅผ ์ข€๋” ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ ์šฉํ•œ Thread ๊ด€๋ จ ํด๋ž˜์Šค๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Re-entrancy๋ฅผ ๋งŒ์กฑํ•˜๋Š” Thread๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” Thread๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Multi Thread ์ƒ์—์„œ Re-entrancy๋ฅผ ๋งŒ์กฑํ•˜๋Š” Thread๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 5. Custom Widget 
Qt์—์„œ ์ œ๊ณตํ•˜๋Š” Widget์„ ์ด์šฉํ•ด GUI๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ง์ ‘ Widget์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ, ์–ด๋–ป๊ฒŒ Custom Widget์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€ ๋ฐฐ์›๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ ์œˆ๋„์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ชจ์–‘์˜ ์œˆ๋„์šฐ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ฐฐ์›๋‹ˆ๋‹ค.


์„น์…˜ 6. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ 
Qt๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Qt์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API๋ฅผ ์ด์šฉํ•˜๋ฉด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ƒ๊ด€์—†์ด ๊ณตํ†ต์˜ Qt ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
์˜ˆ๋ฅผ ๋“ค์–ด MySQL, MS-SQL, Oracle, SQLite ๋“ฑ๊ณผ ๊ฐ™์ด ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ API๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Qt์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API๋ฅผ ์ด์šฉํ•˜๋ฉด MySQL, MS-SQL, Oracle, SQLite ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•ธ๋“ค๋ง ํ•˜๋Š”๋ฐ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” Qt์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 7. XML 
Qt๋Š” XML์„ ์‰ฝ๊ฒŒ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Qt์—์„œ ์ œ๊ณตํ•˜๋Š” XML๋ชจ๋“ˆ์„ ์ด์šฉํ•˜๋ฉด XML์˜ SAX ์™€ DOM ๋ฐฉ์‹์˜ XML ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์„ ํ†ตํ•ด์„œ XML์„ ํ•ธ๋“ค๋ง ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 8. JSON 
Qt๋Š” JSON(JavaScript Object Notation)์„ ์‰ฝ๊ฒŒ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ๋Š” JSON๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” Qt์—์„œ ์ œ๊ณตํ•˜๋Š” JSON ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด JSON ํฌ๋งท์„ ์‰ฝ๊ฒŒ ํ•ธ๋“ค๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 9. ๋‹ค๊ตญ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ์‘์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ 
Qt๋Š” ๋‹ค๊ตญ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” Qt์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค๊ตญ์–ด ์ง€์› ํˆด์„ ์ด์šฉํ•ด ๋‹ค๊ตญ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 10. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 
Qt๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์— ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค. ๋˜ํ•œ Qt ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 11. D-Pointer 
๋ฒ„์ „์—…์— ๋”ฐ๋ฅด๋Š” ํšจ๊ณผ์ ์€ ์†Œ์Šค์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ C์™€ C++์—์„œ๋Š” Opaque Pointer ๋˜๋Š” Opaque Type์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Qt์—์„œ๋Š” Opaque Pointer๋ฅผ ์ข€๋” ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ํ•œ ๊ฒƒ์ด D-Pointer์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” D-Pointer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค. 

์„น์…˜ 12. Qt๋ฅผ ์ด์šฉํ•œ Android ๋ชจ๋ฐ”์ผ App๊ฐœ๋ฐœ 
Qt๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” C++๊ณผ Qt๋ฅผ ์ด์šฉํ•ด Android ํ”Œ๋žซํผ์—์„œ ๋™์ž‘ํ•˜๋Š” App์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 13. Network Programming 
TCP/IP ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„์„ ์ข€๋” ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ Qt ์—์„œ๋Š” Qt Network ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” Qt Network ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด TCP ์™€ UDP ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

์„น์…˜ 14. ๊ฐœ๋ฐœํ•œ SW๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์„ค์น˜ ๋ฐฐํฌํŒ ์ œ์ž‘
Qt์—์„œ๋Š” Qt Install Framework ๋ผ๋Š” ํˆด์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํˆด์€ MS Windows, Linux ๊ทธ๋ฆฌ๊ณ  macOS ํ”Œ๋žซํผ์—์„œ ์„ค์น˜ํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์„น์…˜์—์„œ๋Š” Qt Install Framework๋ฅผ ์ด์šฉํ•ด ์„ค์น˜ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ํ˜ธํ™˜๋œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š” ๋ถ„์—๊ฒŒ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

  • ์ž๋™์ฐจ, ์˜๋ฃŒ, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด, ๋„คํŠธ์›Œํฌ๋“ฑ ๋‹ค์–‘ํ•œ ์‚ฐ์—…๋ถ„์•ผ์—์„œ SW๋ฅผ ๊ฐœ๋ฐœํ•˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • C++, Qt 6 ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1ํŽธ

์•ˆ๋…•ํ•˜์„ธ์š”
๊น€๋Œ€์ง„์ž…๋‹ˆ๋‹ค.

919

๋ช…

์ˆ˜๊ฐ•์ƒ

66

๊ฐœ

์ˆ˜๊ฐ•ํ‰

95

๊ฐœ

๋‹ต๋ณ€

4.7

์ 

๊ฐ•์˜ ํ‰์ 

9

๊ฐœ

๊ฐ•์˜

์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ โœ’๏ธ


๊ทผ๋ฌด๊ฒฝ๋ ฅ
ํ˜„: Embedded ๋ถ„์•ผ Senior software developer
LG์ „์ž, VS์‚ฌ์—…๋ถ€ IVI์„ ํ–‰ํ”Œ๋žซํผ/๋ชจ๋“ˆ๊ฐœ๋ฐœ
SW๋งˆ์—์ŠคํŠธ๋กœ, SW ๋ฉ˜ํ† 

๊ฐ•์˜๊ฒฝ๋ ฅ
์‚ผ์„ฑ์ „์ž, Qt & QML ๊ฐ•์˜
LG์ „์ž, Qt & QML ๋ถ„์•ผ ์‚ฌ๋‚ด ๊ฐ•์‚ฌ
ํ•œ์ปด์•„์นด๋ฐ๋ฏธ Qt ๊ฐ•์˜ ์ถœ๊ฐ•
๋‹ค์ˆ˜์˜ IT๊ธฐ์—… Qt ๊ฐ•์˜ ์ถœ๊ฐ•


์ €์„œ
Qt ํ”„๋กœ๊ทธ๋ž˜๋ฐ
Qt Quick ํ”„๋กœ๊ทธ๋ž˜๋ฐ
Qt5 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€์ด๋“œ
MeeGo ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ
Qt ์‹ค์ „ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

SW์ปค๋ฎค๋‹ˆํ‹ฐ ์šด์˜
Qt ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์šด์˜์ž ( www.qt-dev.com )

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

55๊ฐœ โˆ™ (11์‹œ๊ฐ„ 32๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

13๊ฐœ

4.8

13๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • QT_part.2

    โˆ™

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  4.0

    4

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • ๊นœ์ง ํ–‰์šด์˜ ์ฆ๊ฑฐ์›€

      โˆ™

      ์ˆ˜๊ฐ•ํ‰ 2

      โˆ™

      ํ‰๊ท  ํ‰์  4.5

      5

      60% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ํ•„์š”ํ•œ ์ค‘์š” ์š”์†Œ๋“ค๋กœ ์ปค๋ฆฌํ˜๋Ÿผ์ด ์ž˜ ์งœ์—ฌ ์žˆ๋„ค์š” ๋งŽ์€ ๋„์›€์ด ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

      • ๊น€๋Œ€์ง„
        ์ง€์‹๊ณต์œ ์ž

        ๊นœ์ง ํ–‰์šด์˜ ์ฆ๊ฑฐ์›€๋‹˜, ์ข‹์€ ํ‰๊ฐ€ํ•ด ์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ^^;

    • ๊ทธ๋ฆฟ

      โˆ™

      ์ˆ˜๊ฐ•ํ‰ 4

      โˆ™

      ํ‰๊ท  ํ‰์  3.8

      5

      100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      Qt 1ํŽธ์— ์ด์–ด 2ํŽธ ์ˆ˜๊ฐ•ํ–ˆ์–ด์š”. ๋ฐฐํฌํŒ ๋งŒ๋“ค๊ธฐ๊ฐ€ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค ^^

      • ๊น€๋Œ€์ง„
        ์ง€์‹๊ณต์œ ์ž

        khrim ๋‹˜, ์ข‹์€ ํ‰๊ฐ€ํ•ด ์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ^^;

    • Junghwan Jeong

      โˆ™

      ์ˆ˜๊ฐ•ํ‰ 52

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์ œ๊ฐ€ ๋…ํ•™ํ•œ ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๋ณด์ถฉ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋งŽ์€ ๋„์›€์ด ๋˜์–ด์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Painter์—์„œ Transform ๋ˆ„์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•˜๊ธฐ ์œ„ํ•ด์„œ save, restore ๊ธฐ๋Šฅ๋„ ๊ธฐํšŒ๊ฐ€ ๋˜์‹œ๋ฉด ์„ค๋ช…ํ•ด ์ฃผ์‹œ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. Json๋Š” JsonObject๋ฅผ ๋งŒ๋“ค์–ด์„œ setObjectํ•œ ๋‹ค์Œ์— Document์—์„œ toJson์œผ๋กœ ์ถœ๋ ฅ ํ•˜๋ฉด ๋‚ด์šฉ์ด ์ˆ˜์ •๋˜๋˜๋ฐ Save์œผ๋กœ ๋Œ€์ฒด ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜ ์ˆ˜๊ฐ• ๊ธฐ๊ฐ„์ด 3๋‹ฌ์ด๋ผ์„œ ๋‚˜์ค‘์— ๊ฐ•์˜๋ฅผ ๋ณผ ์ˆ˜ ์—†๋‹ค๋ฉด ๋‚ด์šฉ ์ฐธ๊ณ  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ•์˜ ๋…ธํŠธ๋ฅผ ์ฃผ์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

      • ๊น€๋Œ€์ง„
        ์ง€์‹๊ณต์œ ์ž

        ๋ฌผ๋ก ์ด์ฃ . ^^ ๋ง์”€ํ•ด์ฃผ์‹  ๋Œ€๋กœ Painter Transform ๋ˆ„์  ๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ๊ณผ save, restore ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๋˜๋ฉด ๊ฐ•์˜ ๋…ธํŠธํ˜•์‹์œผ๋กœ ์ฐธ์กฐํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ๋ณด๋‚ด๋“œ๋ฆด๊ป˜์š”. JSON ๊ณผ ๊ด€๋ จํ•ด์„œ๋„ ๋‹ค์‹œํ•œ๋ฒˆ ๊ฒ€ํ† ํ•ด๋ณด๊ณ  ์ˆ˜์ •๋œ ๋‚ด์šฉ์žˆ์œผ๋ฉด ์ „๋‹ฌ ๋“œ๋ฆด๊ป˜์š”. ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ์œ„์™€ ๊ด€๋ จํ•ด ์ถ”๊ฐ€ ๋˜๊ฑฐ๋‚˜ ์ˆ˜์ •๋˜๋Š” Qt ๊ด€๋ จ PDF๋Š” ์•„๋ž˜ Github ์—์„œ ๋ฐฐํฌํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ์•„๋ž˜ URL์„ ์ฐธ์กฐํ•˜์‹œ๋ฉด ๋„์›€์ด ๋˜์‹ค๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/eddykim777/qtbook ๋ชจ์ชผ๋ก ๊ฐ•์˜ ์ˆ˜๊ฐ•ํ•ด ์ฃผ์…”์„œ ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฒ˜์Œ์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•ด์ฃผ์…” ๋„ˆ๋ฌด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊พธ๋ฒ…~ (_._)

    • ์„ญ์ด

      โˆ™

      ์ˆ˜๊ฐ•ํ‰ 2

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      60% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      funn~

      • ๊น€๋Œ€์ง„
        ์ง€์‹๊ณต์œ ์ž

        ์ข‹์€ ํ‰๊ฐ€ํ•ด์ฃผ์„œ์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    ๊น€๋Œ€์ง„๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

    ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

    ๋น„์Šทํ•œ ๊ฐ•์˜

    ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

    ์—ฐ๊ด€ ๋กœ๋“œ๋งต

    ๊ฐ•์˜๊ฐ€ ํฌํ•จ๋œ ๋กœ๋“œ๋งต์œผ๋กœ ํ•™์Šตํ•ด ๋ณด์„ธ์š”!

    ์›” โ‚ฉ22,000

    5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

    โ‚ฉ110,000