Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

C++๋กœ ๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ๊ฒŒ์ž„ ๊ฐœ๋ฐœ๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ with Windows API

Windows API์™€ C++๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ 2D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์›๋ฆฌ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒŒ์ž„ ๊ฐœ๋ฐœ&์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, winapi] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

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

  • C++

  • 2D ๋ฌผ๋ฆฌ ์—”์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • AI ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • Windows API

Windows API์™€ C++๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์–‘ํ•œ ๊ฒŒ์ž„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด์„œ ์—ฌ๋Ÿฌ๋ถ„๋งŒ์˜ ๊ฒŒ์ž„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งŒ๋“ค๊ณ  ์›๋ฆฌ ์ค‘์‹ฌ์œผ๋กœ ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ Windows API๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋‚˜์š”?

>์•„๋‹ˆ์š”!

๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์€ ๋ชจ๋‘ ์„ค๋ช…์„ ๋“œ๋ฆฐํ›„ ์‹ค์Šต์„ ์‹œ์ž‘ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. winapi์— ๊ด€ํ•ด์„œ๋Š” ๋ชจ๋ฅด๋Š” ์ƒํƒœ๋กœ ๋“ค์œผ์…”๋„ ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ C++๋ฅผ ์•Œ์•„์•ผ ํ•˜๋‚˜์š”?

>๋„ค!

๊ฐ•์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” C++์˜ STL๊ณผ ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ๋ชจ๋‘ ์„ค๋ช… ๋“œ๋ฆด ์˜ˆ์ •์ด์ง€๋งŒ,

๊ธฐ๋ณธ์ ์ธ C++๋ฌธ๋ฒ•์€ ์•Œ๊ณ  ์žˆ์œผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ๋ฌผ๋ฆฌ์™€ ๊ฒŒ์ž„ ์ˆ˜ํ•™์„ ์ด์šฉํ•ด์„œ ์‹ ๊ธฐํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค !

๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚˜๋ฉด ์ด๋Ÿฐ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”

๋‚˜๋งŒ์˜ ๊ฒŒ์ž„ UI ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

๊ฒŒ์ž„ UI์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

์ˆ˜ํ•™์„ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

"๋ชจ์–‘"๋งŒ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™์„ ์ด์šฉํ•œ ์‹ค์ „ ๊ฒŒ์ž„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ธธ์„ ์ฐพ๋Š” AI ๋งŒ๋“ค๊ธฐ

๊ธธ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์›€์ง์ด๋Š” AI๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

๋‚˜๋งŒ์˜ ๋ฌผ๋ฆฌ ์—”์ง„ ๋งŒ๋“ค๊ธฐ

์—ฌ๋Ÿฌ๋ถ„๋“ค๋งŒ์˜ 2D ๋ฌผ๋ฆฌ ์—”์ง„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚œ ํ›„, ๋‹ค์–‘ํ•œ ๊ณ ๊ธ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์— ๋Œ€ํ•œ ๋‘๋ ค์›€์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค !

  • ๋ง‰์—ฐํ•˜๊ฒŒ C++๋ฌธ๋ฒ•์€ ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ, ์–ด๋””์— ์‚ฌ์šฉํ• ์ง€ ๋ชฐ๋ผ์„œ ํ—ค๋งค๋Š” ์ผ์ด ์—†์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค !

ํ•™์Šต ๋‚ด์šฉ

ํŒŒํŠธ (1) Windows API์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์•Œ์•„๋ณด๊ธฐ

Windows API์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์„น์…˜ (2) ๊ฒŒ์ž„ ์ž…๋ ฅ, ์‚ฌ์šด๋“œ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ

๊ฒŒ์ž„์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์ œ์ผ ๊ธฐ๋ณธ์ ์ธ ๊ฒŒ์ž„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์„น์…˜ (3) ๊ฒŒ์ž„ ์‹œ์Šคํ…œ๊ณผ ๋‹ค์–‘ํ•œ ๊ณ ๊ธ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ฒŒ์ž„ ๊ฐœ๋ฐœ์—์„œ ํ•„์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ, ๊ณ ๊ธ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊นŒ์ง€ ๋ชจ๋‘ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์„น์…˜ (4) ํ”„๋กœ์ ํŠธ ์ง„ํ–‰

๋ง‰์—ฐํ•˜๊ฒŒ ๋ณด์—ฌ์ฃผ๊ธฐ์‹ ์ด๋ก , ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ์‹ค์ œ๋กœ ๋งŒ๋“ค์—ˆ๋˜ ์ฝ”๋“œ๋“ค์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค!

๊ฒŒ์ž„ ํ”„๋กœ์ ํŠธ

ํ”„๋กœ์ ํŠธ (1) 2D ๋””ํŽœ์Šค ๊ฒŒ์ž„

๋ชฐ๋ ค์˜ค๋Š” AI๋“ค๋กœ๋ถ€ํ„ฐ ๋„ฅ์„œ์Šค๋ฅผ ์ง€์ผœ๋ผ !

ํ”„๋กœ์ ํŠธ (2) 2D ๋ณด๊ธ€๋ณด๊ธ€๋ฅ˜ ์ŠˆํŒ… ๊ฒŒ์ž„

์ ๋“ค์„ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋ชจ๋‘ ๋ฌด์ฐŒ๋ฅด์ž !

์—์…‹ ๋ชจ๋‘ ์ œ๊ณตํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค !

์ง€์‹ ๊ณต์œ ์ž๊ฐ€ ๋งŒ๋“  ์—์…‹์„ ๋ชจ๋‘ ์ œ๊ณต ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค !

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

  • ๋ณธ ๊ฐ•์˜๋Š” ๊ธฐ๋ณธ์ ์ธ C++๋ฌธ๋ฒ•์„ ๋ฐฐ์šฐ์‹  ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • STL์„ ์•Œ๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด ๋”์šฑ ์ข‹์ง€๋งŒ, ๋ชจ๋ฅด์…”๋„ ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค.

  • ๊ฐ•์˜ ์Šคํƒ€์ผ์€ ๐Ÿ‘‰ ์ฝ”๋“œ ๋ฆฌ๋ทฐ+์ง์ ‘ ์ฝ”๋“œ ์ž‘์„ฑ+ppt ๋ชจ๋‘ ํ˜ผํ•ฉํ•ด์„œ ๊ฐ•์˜ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 10

  • ์‚ฌ์šฉ ์–ธ์–ด: C++17

  • ์‚ฌ์šฉ ๋„๊ตฌ: Visual Studio 2022

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ•์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ์ž„ ์—์…‹ ์ œ๊ณต(์ดํŽ™ํŠธ, ์บ๋ฆญํ„ฐ ์Šคํ”„๋ผ์ดํŠธ ๋“ฑ๋“ฑ)

  • ๊ฐ•์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ์ž„ ํ”„๋กœ์ ํŠธ ์†”๋ฃจ์…˜ ํŒŒ์ผ ์ œ๊ณต

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜ ์‚ฌํ•ญ

  • C++11 ๋ฌธ๋ฒ•, C++17 fold expression

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

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

  • 2D ๊ฒŒ์ž„๊ฐœ๋ฐœ์„ ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜์กด์—†์ด ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ์‹  ๋ถ„

  • ๊ฒŒ์ž„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„์ฃผ๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„

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

  • C++11

์•ˆ๋…•ํ•˜์„ธ์š”
ํ†ต์†์˜๋‡Œ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”.

์ปดํ“จํ„ฐ ๊ทธ๋ž˜ํ”ฝ์Šค์™€ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ชฝ์œผ๋กœ ๊ด€์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

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

์ „์ฒด

51๊ฐœ โˆ™ (9์‹œ๊ฐ„ 33๋ถ„)

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

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

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!