Spring-study๐ฑ/Spring-Basic60 Section 9-8. ์ค์ฝํ์ ํ๋ก์ ์ด๋ฒ์๋ ํ๋ก์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ณด์. ์ง๋ ์ ๋ฌธํธ์์ ๋ฐฐ์ ๋ฏ์ด ํ๋ก์๋ ๊ฐ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด๋๋ค. ์ฌ๊ธฐ๊ฐ ํต์ฌ์ด๋ค. proxyMode = ScopedProxyMode.TARGET_CLASS ๋ฅผ ์ถ๊ฐํด์ฃผ์. ์ ์ฉ ๋์์ด ์ธํฐํ์ด์ค๊ฐ ์๋ ํด๋์ค๋ฉด TARGET_CLASS ๋ฅผ ์ ํ ์ ์ฉ ๋์์ด ์ธํฐํ์ด์ค๋ฉด INTERFACES ๋ฅผ ์ ํ ์ด๋ ๊ฒ ํ๋ฉด MyLogger์ ๊ฐ์ง ํ๋ก์ ํด๋์ค๋ฅผ ๋ง๋ค์ด๋๊ณ HTTP request์ ์๊ด ์์ด ๊ฐ์ง ํ๋ก์ ํด๋์ค๋ฅผ ๋ค๋ฅธ ๋น์ ๋ฏธ๋ฆฌ ์ฃผ์ ํด ๋ ์ ์๋ค. ๋๋จธ์ง ์ฝ๋๋ค์ Provider ์ฌ์ฉ ์ด์ ์ผ๋ก ๋๋ ค๋๋ค. ์คํ๋ง ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํด๋ณด๋ฉด Provider๋ฅผ ์ฌ์ฉํ์ ๋์ ๋๊ฐ์ด ๋์ํ๋ค. myLogger๊ฐ์ฒด๋ฅผ ์ง์ ์ถ๋ ฅํด๋ณด๋ ์์ํ myLogger๊ฐ์ฒด๊ฐ ์๋ ๋ค.. 2022. 5. 4. Section 9-7. ์ค์ฝํ์ Provider ์ฒซ๋ฒ์งธ ํด๊ฒฐ๋ฐฉ์์ ์์ ๋ฐฐ์ด Provider๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์์ ๋ฐฐ์ด ObjectProvider๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. -> ์์กด๊ด๊ณ์ฃผ์ (DI)๊ฐ ์๋ ํ์ํ ์์กด๊ด๊ณ๋ฅผ ์ฐพ๋ DL ์ด์ ๋งคํ์ํจ localhost:8080/log-demo๋ก ์ ์์ ํด๋ณด์. ResponseBody๋ฅผ ํตํด ๋ฐํ์ํจ OK๊ฐ ์ถ๋ ฅ๋๊ณ ์ฝ์์ฐฝ์ ์ด์ด๋ณด๋ฉด ์ ์ํ ์ ์ ์ UUID๊ฐ๊ณผ requestURL, message๊ฐ ์ถ๋ ฅ๋๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์๋ก๊ณ ์นจ์ ์ฌ๋ฌ๋ฒ ํ๋ฉด ์๋ก์ด UUID์ request ์ค์ฝํ ๋น์ด ์์ฑ๋๋ค. Thread์ง์ฐ์ ํตํด์ controller์ Service๊ฐ์ ์๊ฐ์ฐจ๋ฅผ ๋๊ณ ๊ณ ๊ฐ ์์ฒญ์ ์ฌ๋ฌ๋ฒ ์ฃผ์ด๋ณด์๋ค. controller์ Service๊ฐ์ ์๊ฐ์ฐจ๋ฅผ ๋์ด ๊ทธ ์ฌ์ด์ ๋ค๋ฅธ .. 2022. 5. 3. Section 9-6. request ์ค์ฝํ ์์ ๋ง๋ค๊ธฐ ์น ํ๊ฒฝ ์ถ๊ฐ ์น ์ค์ฝํ๋ ์น ํ๊ฒฝ์์๋ง ๋์ํ๋ฏ๋ก web ํ๊ฒฝ์ด ๋์ํ๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ์. ์ด์ hello.core.CoreApplication ์ main ๋ฉ์๋๋ฅผ ์คํํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. web๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ฉด ์คํ๋ง ๋ถํธ๋ ๋ด์ฅ ํฐ์ผ ์๋ฒ๋ฅผ ํ์ฉํด์ ์น ์๋ฒ์ ์คํ๋ง์ ํจ๊ป ์คํ์ํจ๋ค. ์คํ๋ง ๋ถํธ๋ ์น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ฉด AnnotationConfigApplicationContext๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ค. ์น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ๊ฐ๋๋ฉด ์น๊ณผ ๊ด๋ จ๋ ์ถ๊ฐ ์ค์ ๊ณผ ํ๊ฒฝ๋ค์ด ํ์ํ๋ฏ๋ก AnnotationConfigServletWebServerApplicationContext๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ค. request ์ค์ฝํ ์์ ๊ฐ๋ฐ ๋์์ .. 2022. 5. 3. Section 9-5. ์น ์ค์ฝํ ์ง๊ธ๊น์ง ์ฑ๊ธํค๊ณผ ํ๋กํ ํ์ ์ค์ฝํ๋ฅผ ํ์ตํ๋ค. ์ฑ๊ธํค์ ์คํ๋ง ์ปจํ ์ด๋์ ์์๊ณผ ๋๊น์ง ํจ๊ปํ๋ ๋งค์ฐ ๊ธด ์ค์ฝํ์ด๊ณ , ํ๋กํ ํ์ ์ ์์ฑ๊ณผ ์์กด๊ด๊ณ ์ฃผ์ , ๊ทธ๋ฆฌ๊ณ ์ด๊ธฐํ๊น์ง๋ง ์งํํ๋ ํน๋ณํ ์ค์ฝํ์ด๋ค. ์ด๋ฒ์๋ ์น ์ค์ฝํ์ ๋ํด์ ์์๋ณด์ ์น ์ค์ฝํ์ ํน์ง ์น ์ค์ฝํ๋ ์น ํ๊ฒฝ์์๋ง ๋์ํ๋ค. ์น ์ค์ฝํ๋ ํ๋กํ ํ์ ๊ณผ ๋ค๋ฅด๊ฒ ์คํ๋ง์ด ํด๋น ์ค์ฝํ์ ์ข ๋ฃ์์ ๊น์ง ๊ด๋ฆฌํ๋ค. ๋ฐ๋ผ์ ์ข ๋ฃ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ค. ์น ์ค์ฝํ ์ข ๋ฅ request: HTTP ์์ฒญ ํ๋๊ฐ ๋ค์ด์ค๊ณ ๋๊ฐ ๋ ๊น์ง ์ ์ง๋๋ ์ค์ฝํ, ๊ฐ๊ฐ์ HTTP ์์ฒญ๋ง๋ค ๋ณ๋์ ๋น ์ธ์คํด์ค๊ฐ ์์ฑ๋๊ณ , ๊ด๋ฆฌ๋๋ค. session: HTTP Session๊ณผ ๋์ผํ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๋ ์ค์ฝํ application: ์๋ธ๋ฆฟ ์ปจํ ์คํธ( ServletContext .. 2022. 5. 3. Section 9-4. ํ๋กํ ํ์ ์ค์ฝํ - ์ฑ๊ธํค ๋น๊ณผ ํจ๊ป ์ฌ์ฉ์ Provider๋ก ๋ฌธ์ ํด๊ฒฐ ์ด์ ์ฅ์์ ์ฑ๊ธํค ๋น๊ณผ ํ๋กํ ํ์ ๋น์ ํจ๊ป ์ฌ์ฉ์์ ๋์์ฑ๋ฌธ์ ์ ์ ์ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค. ์ฑ๊ธํค ๋น๊ณผ ํ๋กํ ํ์ ๋น์ ํจ๊ป ์ฌ์ฉํ ๋, ์ด๋ป๊ฒ ํ๋ฉด ์ฌ์ฉํ ๋๋ง๋ค ํญ์ ์๋ก์ด ํ๋กํ ํ์ ๋น์ ์์ฑํ ์ ์์๊น? ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋ง ๊ทธ๋๋ก ๋ก์ง์ ํธ์ถํ ๋๋ง๋ค ์๋ก์ด prototypeBean์ ๋ง๋๋ ๊ฒ์ด๋ค. ์คํํด๋ณด๋ฉด applicationContext.getBean()์ ํตํด ํญ์ ์๋ก์ด ํ๋กํ ํ์ ๋น์ด ์์ฑ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ์์กด๊ด๊ณ๋ฅผ ์ธ๋ถ์์ ์ฃผ์ (DI)๋ฐ๋๊ฒ ์๋๋ผ ์ด๋ ๊ฒ ์ง์ ํ์ํ ์์กด๊ด๊ณ๋ฅผ ์ฐพ๋ ๊ฒ์ Dependency Lookup(DL) - ์์กด๊ด๊ณ ์กฐํ(ํ์)์ด๋ผ๊ณ ํ๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ์คํ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ ์ ์ฒด๋ฅผ ์ฃผ์ ๋ฐ๊ฒ ๋๋ฉด, ์คํ๋ง ์ปจํ ์ด๋์ ์ข ์์ ์ธ ์ฝ๋๊ฐ .. 2022. 5. 3. ์ด์ 1 2 3 4 ยทยทยท 12 ๋ค์