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

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

KoreanFoodie's Study

C++ ๊ธฐ์ดˆ ๊ฐœ๋… 12-1 : ์šฐ์ธก๊ฐ’, ์ด๋™ ์ƒ์„ฑ์ž์™€ ์šฐ์ธก๊ฐ’ ๋ ˆํผ๋Ÿฐ์Šค

์ขŒ์ธก๊ฐ’๊ณผ ์šฐ์ธก๊ฐ’ C++์—์„œ, ๊ฐ’์€ ๋Œ€์ฒด๋กœ ์šฐ์ธก๊ฐ’๊ณผ ์ขŒ์ธก๊ฐ’์œผ๋กœ ๋‚˜๋‰˜์–ด์ง„๋‹ค. (๋” ๊ตฌ์ฒด์ ์ธ ๋ถ„๋ฅ˜๋Š” ์ด๊ณณ์„ ์ฐธ์กฐ) ์ขŒ์ธก๊ฐ’์€ '์ด๋ฆ„'์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…€์„, ์šฐ์ธก๊ฐ’์€ '์ด๋ฆ„'์ด ์—†๋Š” ๋…€์„์ด๋‹ค. ์ด๋™ ์ƒ์„ฑ์ž์™€ ์šฐ์ธก๊ฐ’ ๋ ˆํผ๋Ÿฐ์Šค ํด๋ž˜์Šค์—์„œ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ํ•ด ๋ณด์ž. ๋งŒ์•ฝ ํด๋ž˜์Šค๊ฐ€ String ๋ณ€์ˆ˜๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, ์ด๋ฏธ ์ƒ์„ฑ๋œ ๋ณ€์ˆ˜ a๋ฅผ ์ด์šฉํ•ด b๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ•  ๋•Œ String ๊ฐ’์„ ๋งค๋ฒˆ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„์ด๋‹ค. ์ƒˆ๋กœ์šด String์„ ๋‹ด์„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋Œ€์‹ , ํฌ์ธํ„ฐ๋ฅผ ์ „๋‹ฌํ•จ์œผ๋กœ์จ ํšจ์œจ์ ์œผ๋กœ ๊ฐ’์„ ์˜ฎ๊ธฐ๋ฉฐ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋•Œ ์ด๋™ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋™ ์ƒ์„ฑ์ž๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์„ ๊ฐ€์ง„๋‹ค. ์šฐ์ธก๊ฐ’ ๋ ˆํผ๋Ÿฐ์Šค์˜ ๊ฒฝ์šฐ, typename && var ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„๋˜๋Š”๋ฐ, ์ด๋•Œ &..

Tutorials/C++ : Beginner 2022. 4. 19. 10:22
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 11 : ์˜ˆ์™ธ์ฒ˜๋ฆฌ

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! throw ๋กœ ์˜ˆ์™ธ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด์ž. // ์ƒ๋žต ... const T& at(size_t index) const { if (index >= size) { // ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค! throw std::out_of_range("vector ์˜ index ๊ฐ€ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜์˜€์Šต๋‹ˆ๋‹ค."); } return data[index]; } ์œ„์—์„œ๋Š” ๋ฒ”์œ„ ์ดˆ๊ณผ๋ฅผ ์•Œ๋ฆฌ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. C++ ๋Š” ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ณ  ์‹ถ๋‹ค๋ฉด throw ๋กœ ์˜ˆ์™ธ๋กœ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๊ฐ์ฒด๋ฅผ ์จ์ฃผ๋ฉด ๋œ๋‹ค. C++ ํ‘œ์ค€์—๋Š” overflow_error, length_error, runtime_error ..

Tutorials/C++ : Beginner 2022. 4. 19. 10:18
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 10-4 : C++ ๋ฌธ์ž์—ด์˜ ๋ชจ๋“  ๊ฒƒ (string๊ณผ string_view)

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! std::string std::string ์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์‚ฌ์‹ค std::string ์€ basic_string์ด๋ผ๋Š” ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ์˜ ์ธ์Šคํ„ด์Šคํ™” ๋ฒ„์ „์ด๋‹ค. basic_string definition ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค : template class basic_string; Traits ๋Š” ์ฃผ์–ด์ง„ CharT ๋ฌธ์ž๋“ค์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ๋“ค์„ ์ •์˜ํ•ด ๋†“์€ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ, Traits๋ฅผ ๋ฐ”๊พธ๋ฉด ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์กฐ์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค! ๋‹ค์‹œ ๋งํ•ด, basic_string ์— ์ •์˜๋œ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ๋“ค์€ ์‚ฌ์‹ค ์ „๋ถ€ Traits ์˜ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ๋“ค์„ ๊ฐ€์ง€๊ณ  ..

Tutorials/C++ : Beginner 2022. 4. 18. 17:07
C++ ๊ธฐ์ดˆ ๊ฐœ๋… 10-3 : STL ์•Œ๊ณ ๋ฆฌ์ฆ˜ (STL algorithm)

๋ชจ๋‘์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„์ถ”๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘์˜ ์ฝ”๋“œ์˜ ์”น์–ด๋จน๋Š” C++ ๊ฐ•์ขŒ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! STL algorithm STL algorithm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” STL ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ํ•„์š”ํ•œ ํŽธ๋ฆฌํ•œ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. STL ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์€ ๋Œ€์ฒด๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค. template void do_something(Iter begin, Iter end); template void do_something(Iter begin, Iter end, Pred pred); ๋‘ ๋ฒˆ์งธ์˜ Pred ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ bool ์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด(Funtor) ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค. ์ •๋ ฌ (sort, stable_sort, partial_sort ์ •๋ ฌ์€ ..

Tutorials/C++ : Beginner 2022. 4. 18. 15:15
์–ธ๋ฆฌ์–ผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ ˆ์ด์–ด (Layered Animation), ๋ณธ๋งˆ๋‹ค ๋ ˆ์ด์–ด๋กœ ๋ธ”๋ Œ๋”ฉ (Layered Blend Per Bone)

์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ ˆ์ด์–ด ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ฐ„์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ „ํ™˜์„ ์œ„ํ•ด ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ UpperBody ๋งŒ ์ด์„ ๋“œ๋Š” ๋ชจ์…˜์„ ์žฌ์ƒํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž. ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ํŠน์ • ๋ถ€์œ„๋งŒ ๋™์ž‘์„ ๋ฐ”๊พธ๋Š” ๋“ฑ์˜ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์–ธ๋ฆฌ์–ผ์—์„œ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ ˆ์ด์–ด๋ฅผ ํ™œ์šฉํ•ด ์œ„์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. ๋จผ์ € ๋ธ”๋ Œ๋“œํ•  ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์„ ํƒํ•œ๋‹ค. 2. ๊ฒŒ์ž„ ๋ชจ๋“œ์˜ Default Pawn Class ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ํƒ€๊นƒ๋œ ์Šค์ผˆ๋ ˆํ†ค์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. 3. ์• ๋‹˜ ๋ชฝํƒ€์ฃผ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 4. ์• ๋‹˜ ๋ชฝํƒ€์ฃผ์—์„œ ๋‹๋ณด๊ธฐ ํด๋ฆญ ํ›„, ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์Šฌ๋กฏ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค. 5. ์Šฌ๋กฏ์ด ์—†์„ ๊ฒฝ์šฐ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค. 6. ์›ํ•˜๋Š” ์Šฌ๋กฏ์„ ์ง€์ •ํ•œ๋‹ค. 7. ์• ๋‹˜ ๊ทธ๋ž˜ํ”„๋กœ ์ด๋™ํ•œ๋‹ค. 8...

Game Dev/Unreal C++ : Study 2022. 4. 6. 20:08
์–ธ๋ฆฌ์–ผ ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค (Blendspace)

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

Game Dev/Unreal C++ : Study 2022. 4. 6. 20:08