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

๋ชฉ๋ก2021/11 (22)

KoreanFoodie's Study

์ž๋ฐ” Spring FrameWork #4 : ํ”„๋ฆฌ์  ํ…Œ์ด์…˜๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค๋ ˆ์ด์–ด ํ†ตํ•ฉ

๋น„์ฆˆ๋‹ˆ์Šค ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉํ•˜๊ธฐ ๋‹ค์Œ ๊ทธ๋ฆผ์ด ๋ฐ”๋กœ ํ•ต์‹ฌ์ด์ž, "์ˆฒ"์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ๊ด€๊ณ„ ํ†ฐ์บฃ ์„œ๋ฒ„๋ฅผ ์ฒ˜์Œ ๊ตฌ๋™ํ•˜๋ฉด โ‘  web.xml ํŒŒ์ผ์„ ๋กœ๋”ฉํ•˜์—ฌ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ตฌ๋™๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  โ‘ก ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” web.xml ํŒŒ์ผ์— ๋“ฑ๋ก๋œ ContextLoaderListener ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ(Pre Loading)ํ•œ๋‹ค. ์ด๋•Œ ContextLoaderListener ๊ฐ์ฒด๋Š” resources ์†Œ์Šค ํด๋”์— ์žˆ๋Š” business-layer.xml ํŒŒ์ผ์„ ๋กœ๋”ฉํ•˜์—ฌ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ตฌ๋™ํ•˜๋Š”๋ฐ, ์ด๋ฅผ 'Root ์ปจํ…Œ์ด๋„ˆ'๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋•Œ, Service ๊ตฌํ˜„ ํด๋ž˜์Šค๋‚˜ DAO ๊ฐ์ฒด๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ โ€˜.doโ€™ ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๋ฉด ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” D..

Tutorials/Spring Framework 2021. 11. 25. 16:39
์ž๋ฐ” Spring FrameWork #3 : ํŠธ๋žœ์žญ์…˜, JSP, Spring MVC

Transaction ๊ด€๋ฆฌ ์Šคํ”„๋ง๊ณผ ๋น„๊ต๋˜๋Š” EJB๋Š” ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ EJB ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ค€๋‹ค. ์Šคํ”ผ๋ง์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์Šคํ”„๋ง์˜ ํŠธ๋žœ์žญ์…˜ ์„ค์ •์—์„œ๋Š” ์•ž์—์„œ ํ•™์Šตํ•œ AIO๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ XML ๊ธฐ๋ฐ˜์˜ AOP ์„ค์ •๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์–ด๋…ธํ…Œ์ด์…˜์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์• ์ŠคํŽ™ํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋„ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ณ  ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 1. ํŠธ๋žœ์ ์…˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋“ฑ๋ก 2. ํŠธ๋ Œ์žญ์…˜ ๊ด€๋ฆฌ์ž ๋“ฑ๋ก 3. ํŠธ๋žœ์žญ์…˜ ์–ด๋“œ๋ฐ”์ด์Šค ์„ค์ • ์—˜๋ฆฌ๋จผํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 4. AOP ์„ค์ •์„ ํ†ตํ•œ ํŠธ๋žœ์žญ์…˜ ์ ์šฉ ์œ„์˜ ์„ค์ •๋“ค์„ ํ†ตํ•ด ํŠธ๋žœ์žญ์…˜์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. JSP : Scriptlet. ๊ทธ๋ƒฅ ์ž๋ฐ” ์ฝ”๋“œ ..

Tutorials/Spring Framework 2021. 11. 24. 22:53
์ž๋ฐ” Spring FrameWork #2 : IoC, AOP(Pointcut, Aspect), ์–ด๋“œ๋ฐ”์ด์Šค

IoC๋ฅผ ์ด์šฉํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ : 4๊ฐœ์˜ ์ž๋ฐ” ํŒŒ์ผ 1. VO(Value Object) ํด๋ž˜์Šค ์ž‘์„ฑ VO(Value Object) ํด๋ž˜์Šค๋Š” ๋ ˆ์ด์–ด์™€ ๋ ˆ์ด์–ด ์‚ฌ์ด์—์„œ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ฃผ๊ณ ๋ฐ›์„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค. VO ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. 2. DAO(Data Access Object) ํด๋ž˜์Šค SQL ๋ช…๋ น์–ด๋“ค 3. Service ์ธํ„ฐํŽ˜์ด์Šค 4. Service ๊ตฌํ˜„ ํด๋ž˜์Šค @Service, @Repository, @Controller ์–ด๋…ธํ…Œ์ด์…˜ @Component๋ฅผ ๋ชฉ์ ์— ๋”ฐ๋ผ ๋‚˜๋ˆ” (ํด๋ž˜์Šค๋ณ„๋กœ @Repository, @Service, @Data) AOP(Aspect Oriented Programming) IoC๊ฐ€ ๊ฒฐํ•ฉ๋„์™€ ..

Tutorials/Spring Framework 2021. 11. 23. 16:56
4-4. ์‹œ๊ฐ„ ์ธก์ •๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ (ํƒ€์ด๋จธ, GameTimer ํด๋ž˜์Šค)

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-4. ์‹œ๊ฐ„ ์ธก์ •๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ (ํƒ€์ด๋จธ, GameTimer ํด๋ž˜์Šค) ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : 1. ์„ฑ๋Šฅ ํƒ€์ด๋จธ ์ •๋ฐ€ํ•œ ์‹œ๊ฐ„ ์ธก์ •์„ ์œ„ํ•ด, ์ด ์ฑ…์˜ ์˜ˆ์ œ๋“ค์€ Windows๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ฑ๋Šฅํƒ€์ด๋จธ(perfomance timer)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ ์„ฑ๋Šฅ ์นด์šดํ„ฐ(performance counter)๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค(Windows.h ๋ฅผ include). ์„ฑ๋Šฅ ํƒ€์ด๋จธ์˜ ์‹œ๊ฐ„ ์ธก์ • ๋‹จ์œ„๋Š” '์ง€๋‚˜๊ฐ„ ํด๋Ÿญ ํ‹ฑ(tick)'๋“ค์˜ ๊ฐœ์ˆ˜(count)์ด๋‹ค. ์„ฑ๋Šฅ ํƒ€์ด๋จธ๋กœ๋ถ€ํ„ฐ ํ‹ฑ ์ˆ˜ ๋‹จ์œ„์˜ ํ˜„์žฌ ์‹œ๊ฐ„์„ ์–ป์„ ๋•Œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด QueryPerformanceCounter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. __int64 currTim..

Game Dev/DirectX 2021. 11. 18. 15:06
4-3. Direct3D ์ดˆ๊ธฐํ™” (ID3D12Device, Fence, 4X MSAA ์ ๊ฒ€ ๋“ฑ)

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-3. Direct3D ์ดˆ๊ธฐํ™” (ID3D12Device, Fence, 4X MSAA ์ ๊ฒ€ ๋“ฑ) Direct3D ์ดˆ๊ธฐํ™” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 1. D3D12CreateDevice ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ID3D12Device๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 2. ID3D12Fence ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์„œ์ˆ ์ž๋“ค์˜ ํฌ๊ธฐ๋ฅผ ์–ป๋Š”๋‹ค 3. 4X MSAA(Multisample anti-aliasing) ํ’ˆ์งˆ ์ˆ˜์ค€ ์ง€์› ์—ฌ๋ถ€๋ฅผ ์ ๊ฒ€ํ•œ๋‹ค. 4. ๋ช…๋ น ๋Œ€๊ธฐ์—ด๊ณผ ๋ช…๋ น ๋ชฉ๋ก ํ• ๋‹น์ž, ๊ทธ๋ฆฌ๊ณ  ์ฃผ ๋ช…๋ น ๋ชฉ๋ก์„ ์ƒ์ƒํ•œ๋‹ค. 5. ๊ตํ™˜ ์‚ฌ์Šฌ์„ ์„œ์ˆ ํ•˜๊ณ  ์ƒ์„ฑํ•œ๋‹ค. 6. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ์„œ์ˆ ์ž ํž™๋“ค์„ ์ƒ์„ฑํ•œ๋‹ค. 7. ํ›„๋ฉด ..

Game Dev/DirectX 2021. 11. 17. 14:52
4-2. Direct3D ๊ธฐ์ดˆ : CPU์™€ GPU์˜ ์ƒํ˜ธ์ž‘์šฉ , ๋ช…๋ น ๋Œ€๊ธฐ์—ด, CPU/GPU ๋™๊ธฐํ™”

'DirectX 12๋ฅผ ์ด์šฉํ•œ 3D ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ'์„ ์ฝ์œผ๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ  ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๊ธฐ๋กํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. 4-2. Direct3D ๊ธฐ์ดˆ : CPU์™€ GPU์˜ ์ƒํ˜ธ์ž‘์šฉ , ๋ช…๋ น ๋Œ€๊ธฐ์—ด, CPU/GPU ๋™๊ธฐํ™” ์•Œ์•„ ๋‘์–ด์•ผ ํ•  ๊ฐœ๋…๋“ค : ๋ช…๋ น ๋Œ€๊ธฐ์—ด๊ณผ ๋ช…๋ น ๋ชฉ๋ก CPU๋Š” GPU์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ๊ทธ๋ž˜ํ”ฝ์„ ๊ทธ๋ ค์ค€๋‹ค. ์šฐ๋ฆฌ๋Š” GPU์™€ CPU๊ฐ€ ๊ฐ๊ฐ ์‰ฌ์ง€ ์•Š๊ณ  ์—ด์‹ฌํžˆ ์ผํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. CPU/GPU ์‚ฌ์ด์—๋Š” ๋™๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ๋™๊ธฐํ™”๋Š” ๋ณ‘๋ ฌ์„ฑ์„ ๋ง์น  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋ช…๋ น ๋Œ€๊ธฐ์—ด์ด ๊ฝ‰ ์ฐจ CPU๊ฐ€ ๋†€๊ฑฐ๋‚˜ ๋ช…๋ น ๋Œ€๊ธฐ์—ด์ด ๋น„์–ด ์žˆ์–ด GPU๊ฐ€ ๋…ธ๋Š” ์ƒํ™ฉ์€ ๋ฐฉ์ง€ํ•ด์•ผ ํ•œ๋‹ค. Direct3D 12์—์„œ ๋ช…๋ น ๋Œ€๊ธฐ์—ด์„ ๋Œ€ํ‘œํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ID3D12CommandQueue์ด๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋Œ€๊ธฐ์—ด์„ ์„œ์ˆ ํ•˜..

Game Dev/DirectX 2021. 11. 17. 09:41
๊ทธ๋†ˆ์˜ ๋ง›์ง‘์ด ๋„๋Œ€์ฒด ๋ญ๊ธธ๋ž˜, ๊ทธ๋Ÿฐ๋ฐ ์ด์ œ ์˜์‹์˜ ํ๋ฆ„์„ ๊ณ๋“ค์ธ...

Memento Mori ๋‹น์‹ ์ด '์ง„์งœ ๋ง›์ง‘'์„ ์ฐพ๋Š”๋‹ค๋ฉด ๊ธฐ์–ตํ•ด์•ผ ํ•  ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 1. ํ•œ๊ตญ์ธ์€ ๊ฐ์„ฑ์— ๋ฏธ์ณ์žˆ๋‹ค. 2. ๊ธฐ๋Œ€ํ•˜๋ฉด ์‹ค๋งํ•œ๋‹ค. ๊ฐ์„ฑ์ด ์ง„์งœ ๋ญ๊ธธ๋ž˜. ์‚ฌ๋žŒ๋“ค์€ ์™œ ๋ณ„ ๊ฑฐ ์•„๋‹Œ ๋ฐ€๊ฐ€๋ฃจ ๋ฉ์–ด๋ฆฌ์— ๋ˆ์„ ๋‚ด๋˜์ง€๋Š” ๊ฑธ๊นŒ. ๋น„์Šทํ•œ ์Œ์‹์ด๋ผ๋„ ์ ‘์‹œ์˜ ๊ตด๊ณก์— ๋ชธ๊ฐ’์ด ์™œ ๊ทธ๋ฆฌ ๋‹ฌ๋ผ์ง€๋Š” ๊ฑธ๊นŒ. ์•„, ๋ฌผ๋ก  ๊ณผํ•˜์ง€ ์•Š์€ ์€์€ํ•œ ์กฐ๋ช…์ด ๋น ์ ธ์„œ๋Š” ์•ˆ๋˜๊ฒ ๋‹ค. ๊ฐ์„ฑ์ด๋ž€ ๊ฒŒ ์ฐธ ์˜ค๋ฌ˜ํ•˜๋‹ค. ํ•ฉ๋ฆฌ์ ์œผ๋กœ๋Š” ๋‹น์ตœ ์ดํ•ดํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋œจ๋ˆํ•œ ๊ตญ๋ฐฅ์„ ๋จน๊ณ  '์•„ ์ข‹๋‹ค~'๋ฅผ ์™ธ์น˜๋Š” ์•„์žฌ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ ๋‚˜์—๊ฒŒ ๋‚จ์€ ์„ ํƒ์ง€๋Š” ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ๊ฐ์„ฑ์ด๋ผ๋Š” ๊ฐœ๋…์„ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์ˆ˜์šฉํ•˜๋Š” ๊ฒƒ ๋ฟ์ด๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๊ฐ์ƒ์„ ๋ฌผ์–ด๋ณด๋ฉด ๋จผ ์‚ฐ์„ ๋ฐ”๋ผ๋ณด๋“ฏ ์‹œ์„ ์„ ๋Œ๋ฆฌ๋ฉฐ ๋ฏธ์†Œ๋ฅผ ์ง“๋Š” ๊ฒƒ ๋ฐ–์—. ๋ถ„์œ„๊ธฐ๋ฅผ ๊นจ๊ณ  ์‹ถ์ง€๋Š” ์•Š์œผ๋‹ˆ๊นŒ. ...๋ผ๊ณ  ๋งํ–ˆ์ง€๋งŒ, ์‚ฌ์‹ค ๋‚˜๋„ ์•„์˜ˆ ๊ฐ..