Study/Java91 [TIL] Controller & DTO ๐๐ป Controller ํด๋์ค ์ค๊ณ ๋ฐ ๊ตฌ์กฐ ์์ฑ โ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ๊ณ ์ค์ ex) ์ปคํผ ์ฃผ๋ฌธ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ผ๋ ๊ฒฝ๊ณ ์ค์ โก ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ ์๊ตฌ์ฌํญ ์์ง ex) ์ปคํผ ์ฃผ๋ฌธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๊ณตํด์ผ ํ ๊ธฐ๋ฅ์ด ๋ฌด์์ธ์ง ํ์ โข ํจํค์ง ๊ตฌ์กฐ ์์ฑ ๐ก Java ํจํค์ง ๊ตฌ์กฐ (1) ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ - ์ ํ๋ฆฌ์ผ์ด์ ์ ํจํค์ง๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ตฌํํด์ผ ํ๋ ๊ธฐ๋ฅ์ ๊ธฐ์ค์ผ๋ก ํจํค์ง ๊ตฌ์ฑ - ํจํค์ง ์์๋ ํ๋์ ๊ธฐ๋ฅ์ ์์ฑํ๊ธฐ ์ํ ๊ณ์ธต๋ณ(API ๊ณ์ธต, ์๋น์ค ๊ณ์ธต, ๋ฐ์ดํฐ ์์ธ์ค ๊ณ์ธต) ํด๋์ค๋ค์ด ๋ชจ์ฌ์์ - ํ ์คํธ์ ๋ฆฌํฉํ ๋ง์ด ์ฉ์ดํ๊ณ ํฅํ์ ๋ง์ดํฌ๋ก ์๋น์ค ์์คํ ์ผ๋ก์ ๋ถ๋ฆฌ๊ฐ ์๋์ ์ผ๋ก ์ฉ์ด - ex) ํจํค์ง๋ฅผ ํ์ ํจํค์ง์ ์ปคํผ ํจํค์ง๋ก ๋๋๋ฉฐ ๊ฐ๊ฐ์ ํจํค์ง ์์๋ ๋ ์ด์ด๋ณ ํด๋์ค .. 2022. 6. 26. [TIL] Spring MVC ๐๐ป Spring MVC : Spring Web MVC - ์๋ธ๋ฆฟ API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ ์์ฒญ์ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ชจ๋ - ์น ํ๋ ์์ํฌ์ ํ ์ข ๋ฅ์ด๊ธฐ ๋๋ฌธ์ Spring MVC ํ๋ ์์ํฌ๋ผ๊ณ ๋ ๋ถ๋ฆ ๐ก Spring Framework - ์คํ๋ง์์ ์ง์ํ๋ ๋ชจ๋ ๊ธฐ๋ฅ๋ค ๐ก ์๋ธ๋ฆฟ : Servlet - ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ํน์ ๊ท์ฝ์ ๋ง์ถ์ด Java ์ฝ๋๋ก ์์ฑํ๋ ํด๋์ค ํ ๐ก ์ํ์น ํฐ์บฃ : Apache Tomcat - ์๋ธ๋ฆฟ๋ค์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์คํ์ด ๋๋๋ก ํด์ฃผ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ์ค ํ๋ ๐ Spring MVC : Model - ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ฌํญ์ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ - ์๋น์ค ๊ณ์ธต ? ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ฌํญ์ ๊ตฌ์ฒด์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์์ญ - ๋น์ฆ๋์ค ๋ก์ง ? ์ค์ ์์ฒญ ์ฌํญ์.. 2022. 6. 23. [TIL] AOP โ๐ป AOP : Aspect-Oriented Programming ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ - AOP๋ ์ ์คํํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ๋ถ๋ฆฌํจ - ํต์ฌ ๊ธฐ๋ฅ๊ณผ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๊ณ ๋ถ๋ฆฌ๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ด๋์ ์ ์ฉํ ์ง ์ ํ๊ฐ๋ฅ - OOP๋ฅผ ๋์ฒดํ๋ ๊ฒ์ด ์๋ ํก๋จ ๊ด์ฌ์ฌ๋ฅผ ๊น๋ํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด OOP์ ๋ถ์กฑํ ๋ถ๋ถ ๋ณด์กฐ ๐ AOP ๊ด๋ จ ๊ฐ๋ ๐ก Aspect : ๊ด์ Aspect = Advice + PointCut - ํต์ฌ ๊ธฐ๋ฅ์ ๋ถ๊ฐ๋์ด ์๋ฏธ๋ฅผ ๊ฐ๋ ํน๋ณํ ๋ชจ๋ - ๋ถ๊ฐ ๊ธฐ๋ฅ(advice)๊ณผ ํด๋น ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ด๋์ ์ ์ฉํ ์ง ์ ์(point cut)ํ ๊ฒ - ํฉ์ด์ง ๊ด์ฌ์ฌ๋ฅผ ๋ฌถ์ด์ ๋ชจ๋ํ ํ ๊ฒ - ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ผ๋ณด๋ ๊ด์ ์ ๊ธฐ๋ฅ๋ค์ ํก๋จ ๊ด์ฌ์ฌ ๊ด์ ์ผ๋ก ๋ณด๋ ๊ฒ ๐ก Target : ํ๊ฒ - Asp.. 2022. 6. 23. [TIL] Component Scan ๐ช๐ป Component Scan : ์ปดํฌ๋ํธ ์ค์บ โช๏ธ ํํฐ โธ includeFilters : ์ปดํฌ๋ํธ ์ค์บ ๋์์ ์ถ๊ฐ๋ก ์ง์ โธ excludeFilters : ์ปดํฌ๋ํธ ์ค์บ์์ ์ ์ธํ ๋์ ์ง์ โธ Filter Type ์ต์ โ ANNOTATION : ์ ๋ํ ์ด์ ์ผ๋ก ์ธ์ํ์ฌ ๋์ โก ASSIGNABLE_TYPE : ์ง์ ํ ํ์ ๊ณผ ์์ ํ์ ์ ์ธ์ํด์ ๋์ โข ASPECTJ : AspectJ ํจํด ์ฌ์ฉ โฃ REGEX : ์ ๊ทํํ์์ ๋ํ๋ โค CUSTOM : TypeFilter๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ ์ฒ๋ฆฌ โธ ApplicationContext - ์คํ๋ง ์ปจํ ์ด๋ - ๊ธฐ์กด์ AppConfig๋ฅผ ์ฌ์ฉํด์ ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์กด ์ฃผ์ ํ๋ ๊ฒ์ ์คํ๋ง ์ปจํ ์ด๋๋ฅผ ํตํด ์์กด์ฃผ์ - ์คํ๋ง ์ปจํ ์ด๋๋ @Co.. 2022. 6. 19. [TIL] Spring DI ๐ซฐ๐ป Spring DI (Dependency Injection) : ์คํ๋ง ์์กด์ฑ ์ฃผ์ ๐ ์์กด ๊ด๊ณ ์ฃผ์ ๋ฐฉ๋ฒ โ ์์ฑ์ ์ฃผ์ @Component public class Student { private final Hong hong; @Autowired public Student(Hong hong) { this.hong = hong; } } - ์์ฑ์๋ฅผ ํตํด์ ์์กด ๊ด๊ณ ์ฃผ์ ๋ฐ๋ ๋ฐฉ๋ฒ - ์์ฑ์์ @Autowired๋ฅผ ํ๋ฉด ์คํ๋ง ์ปจํ ์ด๋์ @Component๋ก ๋ฑ๋ก๋ ๋น์์ ์์ฑ์์ ํ์ํ ๋น ์ฃผ์ โช๏ธ ํน์ง - ์์ฑ์ ํธ์ถ ์์ ์ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ ๊ฒ์ด ๋ณด์ฅ๋จ - ๋ถ๋ณ๊ณผ ํ์ ์์กด ๊ด๊ณ์ ์ฌ์ฉ - ์์ฑ์๊ฐ 1๊ฐ๋ง ์กด์ฌํ๋ ๊ฒฝ์ฐ @Autowired๋ฅผ ์๋ตํด๋ ์๋ ์ฃผ์ ๋จ - NullpointerE.. 2022. 6. 17. [TIL] Java ๊ธฐ๋ฐ ์ปจํ ์ด๋ ์ค์ ๐๐ป Java ๊ธฐ๋ฐ ์ปจํ ์ด๋ ์ค์ โช๏ธ ์ ๋ํ ์ด์ ๋ฐฉ์ @Configuration pulic class AppConfig { @Bean public UserService userService( ) { return new UserServiceImpl( ); } } โช๏ธ XML ๋ฐฉ์ ๐ Annotation (@) : ์ด๋ ธํ ์ด์ - ์ฝ๋์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ฌ ์ง๊ด์ ์ธ ์ฝ๋ฉ์ด ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ค โช๏ธ @Configuration - ํด๋น ํด๋์ค๋ฅผ ์คํ๋ง ์ค์ ํด๋์ค๋ก ์ง์ - ์คํ๋ง ์ปจํ ์ด๋์๊ฒ ํด๋น ํด๋์ค๋ฅผ Bean ๊ตฌ์ฑ ํด๋์ค์์ ์๋ ค์ฃผ๋ ์ ๋ ธํ ์ด์ โช๏ธ @Bean ๊ณผ @Component - ์คํ๋ง ์ปจํ ์ด๋์๊ฒ Bean์ ๋ฑ๋กํ๋๋ก ํ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ ํ๋ ์ ๋ ธํ ์ด์ โธ @Bean - ๊ฐ๋ฐ์๊ฐ ์ง์ ์ ์ด .. 2022. 6. 17. [TIL] Spring Container & Bean ๐ซถ๐ป ์คํ๋ง ์ปจํ ์ด๋ : Spring Container - Bean ํ๋์ ๋ฉํ ์ ๋ณด๊ฐ ํ๋์ฉ ์์ฑ๋๋ฉฐ ์คํ๋ง ์ปจํ ์ด๋๋ ์ด ๋ฉํ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ง ๋น ์์ฑ ๐ ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ๋ฐฉ๋ฒ ๐ซถ๐ป ๋น Bean ๐ซถ๐ป ๋น ์ค์ฝํ : Bean Scope ๐ ์ฑ๊ธํค ํจํด์ ๋ฌธ์ ์ - ์ฑ๊ธํค ํจํด์ ๊ตฌํํ๋ ์ฝ๋ ์์ฒด๊ฐ ๋ง์ → (1) static ํ๋๋ก ์ธ์คํด์ค๋ฅผ ์์ฑ (2) ๋ง๋ค์ด๋ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ์ (3) private ์์ฑ์๋ฅผ ์ฌ์ฉ = ์ฝ๋ ๊ธธ์ด์ง - ์์กด ๊ด๊ณ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ตฌ์ฒด ํด๋์ค์ ์์กด = DIP ์๋ฐ - private ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํด๋์ค๋ฅผ ๋ง๋ค๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ ์ฐ์ฑ์ด ๋จ์ด์ง - ์์ฑ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ฉํฐ์ฐ๋ ๋ ํ๊ฒฝ์์ ๋ฌธ์ ๋ฐ์ ( ๋ด๋ถ ์์ฑ ๋ณ๊ฒฝ ๋ฐ ์ด๊ธฐํ .. 2022. 6. 17. [TIL] Spring Boot ๐๐ป Spring Boot : ์คํ๋ง ๋ถํธ - ๋ชจ๋ ์คํ๋ง ๊ฐ๋ฐ์ ๋ํด ๊ทผ๋ณธ์ ์ผ๋ก ๋ ๋น ๋ฅด๊ณ ๊ด๋ฒ์ํ๊ฒ ์์ธ์ค ํ ์ ์๋ ์์ ํ๊ฒฝ์ ์ ๊ณต - ๋๊ท๋ชจ ํ๋ก์ ํธ ํด๋์ค์ ๊ณตํต์ ์ธ ๊ธฐ๋ฅ ๋ฑ์ ์ ๊ณต (๋ด์ฅ ์๋ฒ, ๋ณด์, ๋งคํธ๋ฆญ, ์ํํ์ธ ๋ฑ) - ์ฝ๋ ์์ฑ ๋ฐ XML ๊ตฌ์ฑ ์๊ตฌ ์ฌํญ์ด ์์ → Spring Framework ์ฌ์ฉ์ ํธ๋ฆฌํ๊ธด ํ์ง๋ง Spring ์ค์ ์ ๋ณต์กํจ์ ๊ฐ์ง๊ณ ์์ → ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ Spring Project ์ค ํ๋ ๐๊ธฐ์กด Spring ๊ณผ์ ์ฐจ์ด โ ๋ด์ฅ ํฐ์บฃ - ๋ฐ๋ก ํฐ์บฃ์ ์ค์นํ๊ฑฐ๋ ๋งค๋ฒ ๋ฒ์ ๊ณผ๋ฆฌ๋ฅผ ํ์ง ์์๋ ๋จ โก starter์ ํตํ dependency ์๋ํ - starter์ ํตํด ์ข ์๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ง๊ฒ ์ฐพ์์ ๊ฐ์ ธ์ ์์กด์ฑ์ด๋ ํธํ๋ฒ์ ์ ๋ํด ์ ๊ฒฝ .. 2022. 6. 15. [TIL] Spring Framework Module ๐๐ป ์คํ๋ง ํ๋ ์์ํฌ = ์คํ๋ง : ์๋ฐ ํ๋ซํผ์ ์ํ ์คํ ์์ค ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ - ๋์ ์น ์ฌ์ดํธ ๊ฐ๋ฐ์ ์ํด ์ฌ๋ฌ๊ฐ์ง ์๋น์ค ์ ๊ณต โ POJO ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํ๋๋ผ๋ ๊ฐ๋ณ๊ณ ์ ์ด ๊ฐ๋ฅํ๋ฉฐ ์ํธ ๊ด๋ จ์ด ์ ์ โก ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ง์ โข ์ปจํ ์ด๋๋ฅผ ํตํด ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ โฃ XML ๊ธฐ๋ฐ์ผ๋ก ์ปดํฌ๋ํธ ๊ฐ๋ฐ ๊ฐ๋ฅ โธ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๋ผ๊ณ ๋ ๋ถ๋ฆผ - ์น ์ ํ๋ฆฌ์ผ์ด์ , ์ฝ์ ์ ํ๋ฆฌ์ผ์ด์ , GUI ์ ํ๋ฆฌ์ผ์ด์ ๋ฑ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ ์ฉ ๊ฐ๋ฅ โธ ๊ฒฝ๋ ์ปจํ ์ด๋๋ผ๊ณ ๋ ๋ถ๋ฆผ - ๋ณต์กํ ์์๋ฅผ ๊ฑฐ์น์ง ์์๋ ๊ฐ๋จํ๊ฒ ์ด์ฉ ๊ฐ๋ฅ - ๊ฒฝ๋ ์ปจํ ์ด๋๋ก์ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์ง์ ๊ด๋ฆฌ ( ๊ฐ์ฒด ์์ฑ, ์๋ฉธ์ ๋ผ์ดํ ์ฌ์ดํด ๊ด๋ฆฌ ) โธ ์์กด์ฑ ์ฃผ์ - ๊ฐ๊ฐ์ ๊ณ์ธต์ด๋ ์๋น์ค๋ค ๊ฐ ์์กด์ฑ์ด ์กด์ฌํ๋ค๋ฉด ํ๋ ์์ํฌ๊ฐ .. 2022. 6. 15. ์ด์ 1 2 3 4 5 6 7 ยทยทยท 11 ๋ค์