• CodeStates BootCamp/Section 2
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ! AOP (Aspect-Oriented Programming) AOP ์ฉ์ด AOP ํ๋ก์ โ๏ธ ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง 1. ํต์ฌ ๊ด์ฌ์ฌ (Core Concerns) ( ํต์ฌ ๊ธฐ๋ฅ ) ๊ฐ์ฒด๊ฐ ์ ๊ณตํ๋ ๊ณ ์ ์ ๊ธฐ๋ฅ Ex. ์
๋ฌด ๋ก์ง 2. ํก๋จ ๊ด์ฌ์ฌ (CROSS-CUTTING CONCERNS) ํต์ฌ ๊ธฐ๋ฅ์ ๋ณด์กฐํ๊ธฐ ์ํด ์ฌ๋ฌ ํด๋์ค์ ๊ฑธ์ณ ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ โ ์ค๋ณต ์ฝ๋ ์๊น ( AOP ๋ฐฉ์์ผ๋ก ํด๊ฒฐ ) ํต์ฌ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ฌ์ฉ ( ๋จ๋
X ) Ex. ๋ก๊น
, ๋ณด์, ํธ๋์ญ์
, ๋ก๊ทธ ์ถ์ ๋ก์ง ๋ฑ Ex. orderService๋ผ๋ ํ๋์ ๊ฐ์ฒด์ ํต์ฌ๊ธฐ๋ฅ์ธ ์ฃผ๋ฌธ ๋ก์ง๊ณผ ๋ถ๊ฐ๊ธฐ๋ฅ์ธ ๋ก๊ทธ ์ถ์ ๋ก์ง์ด ํฉ์ณ์ ธ์ ํ๋์ ๋ก์ง์ ์์ฑํ๊ฒ ๋จ โ๏ธ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (Object Oriente..
• CodeStates BootCamp/Section 2
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ! Java ๊ธฐ๋ฐ ์ปจํ
์ด๋(Container) ์ค์ ์ปดํฌ๋ํธ ์ค์บ (Component Scan) ์์กด๊ด๊ณ ์ฃผ์
๋ฐฉ๋ฒ โ๏ธ Java ๊ธฐ๋ฐ ์ปจํ
์ด๋(Container) ์ค์ โ ์ค์ ์ ๋ํ
์ด์
โ๏ธ @Configuration ์ค์ ํ์ผ์ ํด๋์ค ๋ ๋ฒจ์์๋ง ์ฌ์ฉ ( ์ฐ๋ฆฌ๊ฐ ์์ฑํ ๊ฐ์ฒด ํด๋์ค ์์ ์์ฑ ) โ "์ฌ๊ธฐ ๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ Bean๋ค์ด ์์ด !!" ํ๊ณ ์๋ ค์ฃผ๋ ๊ฒ ๐ก ์ค์ ํ์ผ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋น๋ค์ ์ ๋ณด์ ์์กด์ฑ ์ ๋ณด๊ฐ ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ ธ ์๋์ง ์ฐ์ฌ์๋ ํ์ผ ํด๋์ค ๋ ๋ฒจ์์๋ง ์ฌ์ฉ โ๏ธ @Bean ์ค์ ํ์ผ ๋ด์ ๋ฉ์๋ ๋ ๋ฒจ์์๋ง ์ฌ์ฉ ( ๊ฐ์ฒด ํด๋์ค ๋ด๋ถ์ ์์ฑ์(๋ฉ์๋) ์์ ์์ฑ ) โ ๋ฉ์๋๊ฐ Spring ์ปจํ
์ด๋์์ ๊ด๋ฆฌํ ์ ๊ฐ์ฒด๋ฅผ ์ธ์คํด์คํ, ๊ตฌ์ฑ ๋ฐ ์ด๊ธฐํํ๋ค๋ ๊ฒ์ ๋..
• CodeStates BootCamp/Section 2
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ! ์คํ๋ง ์ปจํ
์ด๋ (Spring Container) ๋น (Bean) ๋น ์ค์ฝํ (Bean Scope) ์ฑ๊ธํค โ๏ธ DI (Dependency Injection) ( ์ด ์ ๊ฒ์๋ฌผ์์ ์ ๋ฆฌํ ๊ฒ๊ณผ ๊ฐ์ด) ๊ฐ์ฒด ๊ต์ฒด์ ๊ฒฝ์ฐ ์์ ์ด ๋ถํธํ๊ธฐ ๋๋ฌธ์, ์์ฑ์๋ฅผ ํตํ ์์กด์ฑ ์ฃผ์
์ผ๋ก ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ์๊ฐ ์์กด๊ด๊ณ๋ฅผ ์ค์ ํ๋ ๊ฒ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก๋ ์์กด์ฑ ์ฃผ์
์ด ๊ฐ๋ฅํ์ง๋ง, ์์ฑ์๋ฅผ ํตํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๊ณ ์ด๋ ๊ฒ ํ๋ฉด, ์ค์ ๋ก ์คํ๋ง์์ ์์กด์ฑ ์ฃผ์
์ ๋์์ฃผ๊ฒ ๋จ ( ์คํ๋ง์์ ๊ณต์์ ์ผ๋ก ์ถ์ฒํ๋ ๋ฐฉ๋ฒ ) ( ์๋๋ ๊ณต์ ๋ฌธ์์ ์์ฑ์ ๊ธฐ๋ฐ ๋ฐ setter ๊ธฐ๋ฐ DI๋ฅผ ํจ๊ป ์ฌ์ฉํ ์ ์์ง๋ง, ์คํ๋ง์์๋ ์์ฑ์ ์ฃผ์
์ ์ถ์ฒํ๋ค๋ ๋ด์ฉ์ด ํฌํจ โฌ๏ธ ) [์ฐธ๊ณ ] https://docs.spring.i..
• CodeStates BootCamp/Section 2
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ! ์ํคํ
์ฒ Spring Framewokr ๋ชจ๋ ๊ตฌ์ฑ Spring Boot โ๏ธ ์์คํ
์ํคํ
์ฒ ( System Architecture ) ์ด๋ค ์์คํ
์ ์ ์ฒด์ ์ธ ๊ตฌ์ฑ์ ํฐ ๊ทธ๋ฆผ์ผ๋ก ํํํ ๊ฒ ( ํ๋์จ์ด์ ์ํํธ์จ์ด๋ฅผ ๋ชจ๋ ํฌํจ ) โ๏ธ ์ํํธ์จ์ด ์ํคํ
์ฒ ( Software Architecture ) ์ํํธ์จ์ด์ ๊ตฌ์ฑ์ ํฐ ๊ทธ๋ฆผ์ผ๋ก ํํํ ๊ฒ ( ํ๋์จ์ด ์ ์ธํ ์ปดํจํฐ ๋ด ๋ชจ๋ ํ๋ก๊ทธ๋จ ) Ex. Java ํ๋ซํผ ์ํคํ
์ฒ (์๋ ) [์ฐธ๊ณ ] https://mingrammer.com/translation-10-common-software-architectural-patterns-in-a-nutshell/ โ๏ธ ์ ํ๋ฆฌ์ผ์ด์
์ํคํ
์ณ ( Application Architecture ) ์ ..
• CodeStates BootCamp/Section 2
๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ! Framework Framework vs Library Spring Framework Spring Triangle / POJO Spring Framework์ 3๋ ํต์ฌ ๊ฐ๋
โ๏ธ Framework ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ํ ํ, ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒ Ex. Java์์์ Collection โ Map, Set, List์ ๊ฐ์ ์ธํฐํ์ด์ค์ ๊ทธ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ตฌํ์ฒด๋ค์ ์งํฉ ( ๊ทธ ๊ตฌํ๋์ด ์๋ ๊ตฌํ์ฒด๋ค์ ๊ฐ์ ธ๋ค ์ธ ์ ์์ ) โ ์ฅ์ ํจ์จ์ ์ธ ์ฝ๋ ์์ฑ ๊ฐ๋ฅ โ Framework๊ฐ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ์ ๊ณต ( ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ํต์ฌ ๋ก์ง ๊ฐ๋ฐํ๋ ๊ฒ์ ์ง์คํ ์ ์๋๋ก ํจ ) ์ ํด์ง ๊ท์ฝ์ด ์์ด, ์ ํ๋ฆฌ์ผ์ด์
ํจ์จ์ , ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ โ..