Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1104)

KoreanFoodie's Study

[์–ธ๋ฆฌ์–ผ] ์–ธ๋ฆฌ์–ผ ์ธํ„ฐํŽ˜์ด์Šค - Does Implement Interface ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ๋ฏธ์ง€, ์ธํ„ฐ๋ž™์…˜ ๊ตฌํ˜„ํ•˜๊ธฐ

Does Implement Interface ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ๋ฏธ์ง€, ์ธํ„ฐ๋ž™์…˜ ๊ตฌํ˜„ํ•˜๊ธฐ ์ด์„ ์˜์•˜์„๋•Œ, ๋งž์€ ๋Œ€์ƒ์ด Enemy ์ด๋ฉด ๋ฐ๋ฏธ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜, ๋งŒ์•ฝ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ์˜ค๋ธŒ์ ํŠธ์ธ ๊ฒฝ์šฐ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด ์ข‹์„๊นŒ? ๋ฌผ์ฒด์˜ ๊ฒฝ์šฐ, ๊ฐ ๋ฌผ์ฒด์— ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์‹ฌ๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ๋ฐฐ์น˜๋˜๋Š” ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋งˆ๋‹ค ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋”ฐ๋กœ ์„ค์ •ํ•ด์•ผ ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋„ˆ๋ฌด ๋”์ฐํ•  ๊ฒƒ์ด๋‹ค. ๋ฐ๋ฏธ์ง€์˜ ๊ฒฝ์šฐ, ์ด์— ๋งž์€ ์•กํ„ฐ๊ฐ€ ๋ฐ๋ฏธ์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ํŒ๋ณ„ํ•˜๋ฉด ์ข‹์„๊นŒ? ์‚ฌ์‹ค Enemy ๋ง๊ณ ๋„ ๋ถ€์ˆ  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์•ผ ํ• ํ…๋ฐ, ๊ฐ ํด๋ž˜์Šค๋งˆ๋‹ค ๋ฐ๋ฏธ์ง€๋ฅผ ๋ฐ›๋Š”์ง€ ์•ˆ ๋ฐ›๋Š”์ง€๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ท€์ฐฎ์€ ์ผ์ด๋‹ค. ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” Does Implemen..

Game Dev/Unreal C++ : Dev Log 2022. 6. 22. 09:48
[์–ธ๋ฆฌ์–ผ] 1์ธ์นญ ์‹œ์  ๊ตฌํ˜„ํ•˜๊ธฐ (์นด๋ฉ”๋ผ์™€ ๋ฉ”์‹œ ์—ฐ๋™)

1์ธ์นญ ์‹œ์  ๊ตฌํ˜„ํ•˜๊ธฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์–ธ๋ฆฌ์–ผ์„ ์ฒ˜์Œ ๋ฐฐ์šธ๋•Œ๋Š” ๋‹ค๋“ค 3์ธ์นญ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š”๋ฐ, 3์ธ์นญ์˜ FPS ์˜ ๊ฒฝ์šฐ ์‹œ์ ๊ณผ ๋™์ž‘์ด ํ•จ๊ป˜ ์›€์ง์ด์ง€ ์•Š๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์‹œ์ ์€ ๋ฐ”๋‹ฅ์„ ๋ฐ”๋ผ๋ณด๋Š”๋ฐ ํŒ”์€ ์ด์„ ๋“  ์ƒํƒœ๋กœ ์•ž์„ ํ–ฅํ•˜๊ณ  ์žˆ๋Š” ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์šด ์ƒํ™ฉ์ด ์—ฐ์ถœ๋œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•œ๋ฐ, ๋ฐ”๋กœ FirstPersonBP (์‹œ์ž‘์šฉ ์ปจํ…์ธ ) ์ฒ˜๋Ÿผ, ๊ธฐ๋ณธ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” Skeletal Mesh ๋ฅผ Clear ํ•˜๊ณ , ์นด๋ฉ”๋ผ์˜ ์ž์‹(Children)์— ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” Skeletal Mesh ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์•Œ๋งž์€ Skeletal Mesh ๋ฅผ ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ, ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“์€ Animation Blueprint ๋ฅผ ์„ ํƒ๋งŒ ํ•ด์ฃผ๋ฉด, ์• ๋‹ˆ๋ฉ”์ด์…˜๋„ ์ž˜ ์žฌ์ƒ๋  ๊ฒƒ์ด๋‹ค.

Game Dev/Unreal C++ : Dev Log 2022. 6. 22. 09:17
๋””์ž์ธ ํŒจํ„ด (GOF) #3 - Liskov Substitution Principle (๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™)

GoF ์˜ ๋””์ž์ธ ํŒจํ„ด๊ณผ ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Liskov Substitution Principle (๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™) ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ (์ค„์—ฌ์„œ LSP) ๋ž€, ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ๊ณ  ํŒŒ์ƒ ํด๋ž˜์Šค๊ฐ€ ์žˆ์„๋•Œ, ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์ž๋ฆฌ์— ํŒŒ์ƒ ํด๋ž˜์Šค๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋•Œ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๋ฅผ ๋„ฃ์—ˆ์„๋•Œ์˜ ์˜๋„๋Œ€๋กœ ์ฝ”๋“œ๊ฐ€ ์ž˜ ๋™์ž‘ํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Rectangle ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค๋กœ ํ•œ Square ํด๋ž˜์Šค๋ฅผ ๋ณด์ž. process ๋ผ๋Š” ํ•จ์ˆ˜์—์„œ ๋†’์ด๋ฅผ 10์œผ๋กœ ๋งŒ๋“  ํ›„, ๋„“์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. #include class Rectangle { protected: int width, height; public: Rectangle(const int ..

Game Dev/Design Patterns 2022. 6. 7. 16:50
๋””์ž์ธ ํŒจํ„ด (GOF) #2 - Open-Closed Principle (๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™)

GoF ์˜ ๋””์ž์ธ ํŒจํ„ด๊ณผ ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Open-Closed Principle (๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™) OCP ๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ๊ณ , ์ˆ˜์ •์—๋Š” ํ์‡„์ ์ธ ๋””์ž์ธ ์›์น™์„ ์˜๋ฏธํ•œ๋‹ค. (Open for extension, Closed for modification) ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์˜ Product ๋ฅผ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ์ƒ‰๊น”๊ณผ ์‚ฌ์ด์ฆˆ ๋“ฑ์˜ ๊ธฐ์ค€์œผ๋กœ ์ œํ’ˆ์„ ๋ถ„๋ฅ˜ํ•  ๊ฒƒ์ด๋‹ค. struct Product { string name; Color color; Size size; }; ์œ„ ๊ฒฝ์šฐ, enum class ์™€ functor ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. #include #include #include using n..

Game Dev/Design Patterns 2022. 6. 7. 16:30
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 17-4 : C++ ํŒŒ์ผ ์‹œ์Šคํ…œ(<filesystem>) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

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

Tutorials/C++ : Beginner 2022. 5. 27. 10:32