๋ชฉ๋ก์ ์ฒด ๊ธ (1099)
KoreanFoodie's Study
์๊ฐ์ด ์๋ค. ์๊ฐ์ ์ฌ๊ณ ์ถ๋ค. ๋ฏธํ์ ์๋ฐ์ ๋ชจ๋ชจ์์์ฒ๋ผ, ์๊ฐ์ํ์ด ์์์ผ๋ฉด ์ข๊ฒ ๋ค. ์ฑ์คํ ๊ฐ์๋๊ฐ ์์ ๋ ์๋๋ฐ. ๋ฌผ๋ก ์ ์ฉ๋ถ๋์๊ฐ ๋์ด ๋ง๋ ์ ์ธํ๋ฒ ์ดํฐ์์ ๋ง๊ฐํ ์๋ ์์ง๋ง์๋. ์ํ๊น๊ฒ๋ ์ํ์ ์์ง๋ง, ํ์ค ์ธ๊ณ์์๋ ์๊ฐ์ ์ฌ๊ณ ํ๋ ์ผ์ด ์ฑํํ๊ณ ์๋ค. ๋น๋ก ์ ์ฅ์ ํ ์ ์๊ธฐ์ ๋ณด์ด์ง ์์ ๋ฟ. ์ฌ๋๋ค์ ์๊ฐ์ ๋ฌผ๊ฑด๊ณผ ๋ง๋ฐ๊พธ๊ธฐ๋ ํ๊ณ , ๋์ ๋ฒ๊ธฐ ์ํด ์ฌ์ฉํ๊ธฐ๋ ํ๋ค. ์ด๋ป๊ฒ ์ฐ๋ ๊ฒ์ด ์ ์ผ ํ๋ช ํ ์๋น์ผ์ง๋ ๊ทธ ์ฌ๋๋ง์ด ์ ์ ์๋ ๋ถ๋ถ์ด๊ฒ ์ง. ์๊ฐ์๋ ์์์ฆ์ด ๋ถ๋๋ค. ๊ทธ๋ฌ๋ ํํฌ๋ฃจ ์ฌ์ฉํ์ง ์๋๋ก ๋ ธ๋ ฅํด์ผ ํ๋ค. ๋๊ณผ๋ ๋ฌ๋ฆฌ ์๊ฐ์๋ ๋ฒ์ธ์นด๋ ๋ฐ์๋ ์์ผ๋. ํจ๋ถ๋ก ์ฌ์ฉํ ์๊ฐ์ ๋๋๋์กฐ์ฐจ ๊ตฌ์ ํด ์ค ์ ์๋ค. ๋ด ๋จธ๋ฆฟ ์ ์ฐฝ๊ณ ๋ ํ๋์ด ์ฌ์ฉํ ์์์ฆ์ด ๊ฐ๋ ๋ด๊ฒจ ๋์น๊ธฐ ์ง์ ์ด..
Gradle (๊ทธ๋ ์ด๋ค)? ๊ทธ๋ฆผ : ๋น๋ ํด์ ์งํ์ ๊ทธ๋ ์ด๋ค์ ์์น ๊ทธ๋ ์ด๋ค์ ํฌ๋ก์ค ํ๋ซํผ ์คํฌ๋ฆฝํธ ์ธ์ด(JVM ์ธ์ด)์ธ ๊ทธ๋ฃจ๋น๋ฅผ ๊ธฐ๋ฐ ๊ธฐ์ ๋ก ์ ํํ๋ค. ๊ทธ๋ ์ด๋ค ๊ฐ์ ๊ทธ๋ ์ด๋ค์ Build Automation Evolved ๋ผ๊ณ ์๊ฐ๋๋ค. ๊ทธ๋ ์ด๋ค์ ๊ฐ์ข ํ๋ก์ ํธ ์๋ํ์ ์ ์ฉ๋ ์ ์์ผ๋ฉฐ, ์คํธ์ ์ ์ฐ์ฑ, ๋ฉ์ด๋ธ์ ์์กด๊ด๊ณ ๊ด๋ฆฌ์ ๊ท์น ๊ธฐ๋ฐ ๋ฑ์ ๊ธฐ์กด ๋น๋ ํด์ ์ฅ์ ์ ๊ฐ์ ธ์๋ค. ๋ํ ๊ทธ๋ฃจ๋น DSL(Domain-Specific Language)์ ๋์ ํด ํจ์จ์ ์ธ ๋น๋๋ฅผ ์คํํ๋ค. ๊ทธ๋์ด๋ค์ ๊ณต์ ์ฌ์ดํธ, ์ฝ๋, ์ฌ์ฉ์ ๊ฐ์ด๋ ๊ทธ๋ ์ด๋ค์ ๋น๋ ์คํฌ๋ฆฝํธ ์์ฐ์ฑ์ด ๋๊ณ (list literal, map literal, closure ๋ฑ), ๋น๋ ์์๋ฅผ ์ ์ดํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ๋ฉํฐ ํ๋ก์ ํธ์ ๋์ํ๊ณ , ์ปดํฌ๋ํธ๋ฅผ..
์ค๋์ ํ์ ๋ชฉ๋ง๋ผ๋ ๋ ธ๋๋ฅผ ๋ค์๋ค. ํ ๊ฐ์ง ๋ ธ๋์ ๊ฝํ๊ฒ ๋๋ฉด ํ๋ฃจ์ข ์ผ ๊ทธ ๋ ธ๋๋ฅผ ํ์ด๋๋ ๋ด ๋ฒ๋ฆ์ด ๋ ๋ฐ๋๋์๋ค. ๊ณต๋ถ์ค์๋, ์ค์ํ ๋๋, ์ด๋์ค์๋ ์ด๊น์์ด ํ์ ๋ชฉ๋ง๊ฐ ๋ฐ๋ณต์ฌ์๋๋ค. ํ์ ๋ชฉ๋ง๋ผ. ํ์ ๋ชฉ๋ง์๋ ํญ์ ํน์ ์ ๊ฐ์ฑ์ด ๋ฌป์ด์๋ค. ์ฌ์ค์ ์ด๋ ธ์ ์ , ํ์ ๋ชฉ๋ง๋ฅผ ํ ๋ณธ ์ผ์ด ๊ธฐ์ต๋์ง ์๋๋ค. ๊ธฐ์ต์ ๋ชป ํ๋ ๊ฒ์ด ์๋๋ผ ํ ๋ณธ ์ ์ด ์์์ง๋ ๋ชจ๋ฅด์ง. ๋น๋น ๋์๊ฐ๋ ํ์ ๋ชฉ๋ง์ฒ๋ผ ์์ํ ๊ณ์๋ ๊ฒ์ฒ๋ผ. ๋น๋น ๋์์จ ์ฐ๋ฆฌ์ ์๊ฐ์ฒ๋ผ. ๋ ธ๋ ๊ฐ์ฌ์ฒ๋ผ, ๋๋ ๋์๊ฒ ์ฃผ์ด์ง ์๊ฐ๊ณผ ์ ์์ด ๊ณ์๋ ์ค๋ง ์์๋ค. ๋น๋น ๋์๊ฐ๋ ํ์ ๋ชฉ๋ง์ฒ๋ผ, ๋ด ๋์ ๋ณด์ด๋ ํ๊ฒฝ์ ํ๋ฐํด๋ฅผ ๋์๋ ์ฒ์ ๊ทธ๋๋ก์ผ์ค ์์๋ค. ๋น๋น ๋์๊ฐ๋ ํ์ ๋ชฉ๋ง๋ฅผ ํ ์ฑ ์ฃผ๋ณ์ ๋๋ฌ๋ณด๋, ์ด๋์ ์ฒซ ๋ฐํด์งธ์ ํ๊ฒฝ๊ณผ๋ ์ฌ๋ญ ๋ฌ๋ผ์ง ๊ฒ๋ค์ด ๋..
์ด์ ๋ ํ๋ฃจ์ข ์ผ ์์ํ์ธ์ ์ ์ธ์ ์นด๋ฉ๋ผ๋ฅผ ๋ค์๋ค. 2020๋ ๊ฒจ์ธ, ๋๋ ๋ณ ๊ฑฑ์ ๋ ์์ด ์์ทจ๋ฐฉ์์ ์ด ๋ ธ๋๋ฅผ ๋ค์๋ค. ์ด ๋ ธ๋๊ฐ ๋ด ๊ฑฑ์ ์ ๊ฐ์ ธ๊ฐ๋ฒ๋ฆฐ๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ทธ๋ฅ, ์ด ๋ ธ๋๋ฅผ ๋ค์ผ๋ฉด ๊ทธ๋๋ก ๋๋์๊ฐ ๊ฒ๋ง ๊ฐ๋ค. ๋ฐ๋ปํ ์ ๊ธฐ์ฅํ ์ ์ธ๊ตฌ๋ ค ์ผ์ธ์ฉ ์นจ๋์์ ์ ํฌ๋ฆฌ๊ณ ์์ ๊ณ ๊ฐ๋ง ์ด์ง ํ๋ค๋ ๋ด ๋ชจ์ต์ด ๋ ์ค๋ฅธ๋ค. ์ฌ์ ์ ๊ถํ ์ฌ์ด์์ ํ๋ฆด์์ด ์๊ฐ์ ์ฃฝ์ด๋ ํ์ฌํ๊ณ ๋ถ๋ฌ์ด ๋ด๊ฐ ๋ณด์ธ๋ค. ๊ทธ๋ ๊ทธ๋ฌ์์ง. ๊ฒจ์ฐ 1๋ ์ด๋ผ๋. ๋ฒ์จ 1๋ ์ด๋ผ๋. ์๊ฐ์ ๋๋ฌด๋๋ ์์คํ๋ค. ๊ทธ๋ฌ๋ ๋ ธ๋๋ ํจ๋ถ๋ก ๊ณ ๋ฅด๋ฉด ์๋๋ ๊ฒ์ด๋ค. ๋ ธ๋๋ฅผ ๋ฃ๋๋ค๋ ๊ฑด, ๊ทธ ๊ฐ์์ ๋ชฉ์๋ฆฌ์ ๋ด ์๊ฐ์ ๋ฐ์น๋ ํ์์ด๋๊น. ๋ ธ๋๊ฐ ๋๋ผ์์ ํ์ฉํ ์ ์ผํ ๋ง์ฝ์ด๋ผ๋ ์ฐ์ค๊ฐฏ์๋ฆฌ์ฒ๋ผ, ๊ทธ๋์ ๋๋ ๊ทธ๋ฅ ๋ฌด์ธ๊ฐ์ ์ทจํ๊ณ ์ถ์๋ ๊ฑธ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ทธ๋..
์ฌ๋๋ค๋ก ๋นฝ๋นฝํ ๊ฐ๋์ฐฌ ๊ฐ์ฒ ์์ ์์์ ์ฌ๋๋ค์ ํ๋๊ฐ์ด ํ๋ผ์คํฑ ์ฅ๋๊ฐ์ ์์ ์ฅ๊ณ ์๋ค. ๋๋ก ์์์ด ๊ฐ์ง ์๋๋ค. ์ด๋ฅธ์์ด๋ค์ ์์ ํํ์์์ ์ฅ๋๊ฐ์ด ๋ค๋ ค์์ง ์์๋ ๊ด๊ฒฝ์ด. ๋ถ๋ช ์์ ์๋ ๊ทธ๋ฌ์ ํ ๋ฐ. ๊ณ ๊ฐ๋ฅผ ์ฒ๋ฐ๊ณ ํ ๊ณณ๋ง ๋ฐ๋ผ๋ณด๋ ๋์ , ์ฒ์ฅ๊ณผ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ผ๊ตด์ ๊ตฌ๊ฒฝํ๋ฉฐ ์๊ฐ์ ์ฃฝ์์ ํ ๋ฐ. ๊ทธ๋ฐ ์ฅ๋ฉด์ ๋ถ๋ช ๋๋ฌด๋ ์ด์ํ ๊ฒ์์ ํ๋ฆผ์๋ค. ๊ฑฐ๋ํ ์๋ฆฌ๋ฒ ์ดํฐ๋ฅผ ํ๊ณ ์๋ก์ ๋์น๋ฅผ ๋ณด๋ ๊ทธ๋ฐ ์ํฉ์ด๊ฒ ์ง, ๋ชจ๋ฅด๊ธด ๋ชฐ๋ผ๋. ์ถํด๊ทผ๊ธธ ๋ฒ์ค๋ ์งํ์ฒ ์ฒ๋ผ ์๋ง์ ์ฌ๋๋ค์ ์ฝฉ๋๋ฌผ์ฒ๋ผ ๊ฐ๋ ์ฃ๋๋ค. ์ด๋ค ์ ๋ฐฐ๊ฐ ๋์๊ฒ ์ด๋ ๊ฒ ๋งํ๋ค. ๋ง์ฝ ํ์ฐ ํญ๋ฐ์ด๋ ๋ค๋ฅธ ์ฌํด๊ฐ ๋ฐ์ํด, ํผํ์ด์ฒ๋ผ ์ฌ๋๋ค์ด ์ฐ ์ฑ๋ก ๋ณด์กด๋๊ฒ ๋๋ค๋ฉด. ๊ทธ๋ฆฌ๊ณ ์๋ง์ ์๊ฐ์ด ํ๋ฌ ์ธ๊ณ์ธ์ด ์ฐ๋ฆฌ ํ์ฑ์ ๋ฐฉ๋ฌธํ๊ฒ ๋๋ค๋ฉด. ๋ฒ์ค์ ํ ์ฌ๋๋ค..
์ธ๋ฆฌ์ผ ์์ง - ์์ ๋ณํ ๋ฐ ์นด๋ฉ๋ผ ์ค์ ์์ ๊ฐ์ด Blueprint class -> Character class๋ฅผ ๋ง๋ ๋ค์, Capsule Component๋ฅผ ์ด์ฉํด Collision์ ๋ง๋ค์ด ์ฃผ์. Mesh๋ ์ด๋ฏธ ๋ง๋ค์ด๋ Skeleton mesh๋ฅผ ์ ์ฉํ๊ณ , SpringArm๊ณผ Camera๋ฅผ ๋ง๋ค์ด์ค๋ค. ์ถ ๋งคํ์ ์์ ๊ฐ์ด VerticalLook๊ณผ HorizontalLook์ ๋ง๋ค์ด ์ค ๋ค์, Player๋ฅผ ์ปจํธ๋กคํ๋ BP_Player๋ฅผ ์ด์ด ์ด๋ฒคํธ ๊ทธ๋ํ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ๋ค. ๊ทธํ, BP_Player(์ ํ, ํ๋ ์ด์ด์ ๋ธ๋ฃจํ๋ฆฐํธ ํด๋์ค์ด๋ค)์ ์์ฑ์์ Pawn -> Use Controller Rotation Yaw ์ฒดํฌ๋ฐ์ค ํด์ , Auto Possess Player์ Player0์ ์ง์ ..
๋น์ฆ๋์ค ์ปดํฌ๋ํธ ์ฌ์ฉํ๊ธฐ ๋ค์ ๊ทธ๋ฆผ์ด ๋ฐ๋ก ํต์ฌ์ด์, "์ฒ"์ ํด๋นํ๋ ๊ตฌ์กฐ์ด๋ค. ์คํ๋ง ์ปจํ ์ด๋์ ๊ด๊ณ ํฐ์บฃ ์๋ฒ๋ฅผ ์ฒ์ ๊ตฌ๋ํ๋ฉด โ web.xml ํ์ผ์ ๋ก๋ฉํ์ฌ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๊ฐ ๊ตฌ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ โก ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ web.xml ํ์ผ์ ๋ฑ๋ก๋ ContextLoaderListener ๊ฐ์ฒด๋ฅผ ์์ฑ(Pre Loading)ํ๋ค. ์ด๋ ContextLoaderListener ๊ฐ์ฒด๋ resources ์์ค ํด๋์ ์๋ business-layer.xml ํ์ผ์ ๋ก๋ฉํ์ฌ ์คํ๋ง ์ปจํ ์ด๋๋ฅผ ๊ตฌ๋ํ๋๋ฐ, ์ด๋ฅผ 'Root ์ปจํ ์ด๋'๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋, Service ๊ตฌํ ํด๋์ค๋ DAO ๊ฐ์ฒด๋ค์ด ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ๋ฒํผ์ ํด๋ฆญํ์ฌ ‘.do’ ์์ฒญ์ ์๋ฒ์ ์ ๋ฌํ๋ฉด ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ D..
Transaction ๊ด๋ฆฌ ์คํ๋ง๊ณผ ๋น๊ต๋๋ EJB๋ ๋ชจ๋ ๋น์ฆ๋์ค ๋ฉ์๋์ ๋ํ ํธ๋์ญ์ ๊ด๋ฆฌ๋ฅผ EJB ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ์ฒ๋ฆฌํด ์ค๋ค. ์คํผ๋ง์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๊ธฐ๋ฅ์ด ๊ฐ๋ฅํ๋ค. ์คํ๋ง์ ํธ๋์ญ์ ์ค์ ์์๋ ์์์ ํ์ตํ AIO๊ฐ ์ฌ์ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ XML ๊ธฐ๋ฐ์ AOP ์ค์ ๋ง ์ฌ์ฉํ ์ ์๊ณ , ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์คํํธ๋ฅผ ์ค์ ํ๋ ๊ฒ๋ ์๋ฆฌ๋จผํธ๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๊ณ ์๋ฆฌ๋จผํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. 1. ํธ๋์ ์ ๋ค์์คํ์ด์ค ๋ฑ๋ก 2. ํธ๋ ์ญ์ ๊ด๋ฆฌ์ ๋ฑ๋ก 3. ํธ๋์ญ์ ์ด๋๋ฐ์ด์ค ์ค์ ์๋ฆฌ๋จผํธ๋ ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ ๊ฐ์ง ์ ์๋ค. 4. AOP ์ค์ ์ ํตํ ํธ๋์ญ์ ์ ์ฉ ์์ ์ค์ ๋ค์ ํตํด ํธ๋์ญ์ ์ด ๋์ํ๋ ๊ฒ์ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. JSP : Scriptlet. ๊ทธ๋ฅ ์๋ฐ ์ฝ๋ ..
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๊ฐ ๊ฒฐํฉ๋์ ..
๊ผญ! ์์์ผ ํ ๊ฐ๋ IoC : Inversion of Control AOP : Aspect Oriented Programming MVC : Model-View-Controller Java, JDBC, HTML, Servlet/JSP ํ๋ ์์ํฌ ํ๋ ์์ํฌ๋ ๋ผ๋์ด๋ค. ๋ผ๋๋ ๋ฐ๊พธ๋ ๊ฒ์ด ์๋๋ผ ์ด์ฉํ๋ ๊ฒ์ด๋ค. ํ๋์ ํ์ด๋ผ๊ณ ๋ด๋ ๋จ ๋ฉํ ๋ฐ์ดํฐ๋ ์ฃผ๋ก XML. ์ํคํ ์ฒ์ ํด๋นํ๋ ํด๋์ค๋ฅผ ์ฝ๋ ์คํ(Cold Spot) ์ด๋ผ๊ณ ํ๋ฉฐ, JAR(Java Archive) ํ์ผ์ ์๋ฏธํ๋ค. POJO(Plaing Old Java Object)๋? POJO๋ ๋ง ๊ทธ๋๋ก ํ๋ฒํ ์๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ๋ํ์ ์ธ Not POJO ํด๋์ค๊ฐ Servlet์ด๋ EJB ํด๋์ค๋ค. Servlet ํด๋์ค๋ ์ฐ๋ฆฌ ๋ง์๋๋ก ๋ง..