์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JAVA SPRING
- ํ๋ฌํฐ
- ํ์ด์ฌ
- C์ธ์ด
- php
- ๋ฐฐ์ด
- ์ต๋จ ๊ฒฝ๋ก
- php ํ๋ก๊ทธ๋๋ฐ
- ํ์ด์ฝ ์น๊ตฌ์ฝ๋
- Java
- ํ์ด์ฝ ์ถ์ฒ์ธ
- spring
- ๋ฐฑ์ค
- ์๋ฐ
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ๋ฌธ์ ํ์ด
- ์๋ฐ ์คํ๋ง
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์ฐ์ต๋ฌธ์
- programmers
- ํ์ด์ฝ ์ถ์ฒ์ธ์ฝ๋
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์๋ฃจ์
- Flutter
- ํ์ ๋ถ๊ธฐ
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ
- C
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ 3ํ
- ํ๋ฌํฐ ๊ฐ๋ฐํ๊ฒฝ ์ค์
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์์
- ์คํ๋ง
- ํ์ด์ฝ ์ด๋์ฝ๋
- SWEA
- Today
- Total
๋ชฉ๋กJava Spring/์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ (63)
์ฌ๋ฅ์ด๐ป
[Java Spring] 2-61. ์ค์ฝํ์ ํ๋ก์ ์ด๋ฒ์๋ ํ๋ก์ ๋ฐฉ์์ ์ฌ์ฉํด๋ณด์. @Component @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public class MyLogger { } ์ฌ๊ธฐ๊ฐ ํต์ฌ์ด๋ค. proxyMode = ScopedProxyMode.TARGET_CLASS ๋ฅผ ์ถ๊ฐํด์ฃผ์. ์ ์ฉ ๋์์ด ์ธํฐํ์ด์ค๊ฐ ์๋ ํด๋์ค๋ฉด TARGET_CLASS ๋ฅผ ์ ํ ์ ์ฉ ๋์์ด ์ธํฐํ์ด์ค๋ฉด INTERFACES ๋ฅผ ์ ํ ์ด๋ ๊ฒ ํ๋ฉด MyLogger์ ๊ฐ์ง ํ๋ก์ ํด๋์ค๋ฅผ ๋ง๋ค์ด๋๊ณ HTTP request์ ์๊ด ์์ด ๊ฐ์ง ํ๋ก์ ํด๋์ค๋ฅผ ๋ค๋ฅธ ๋น์ ๋ฏธ๋ฆฌ ์ฃผ์ ํด ๋ ์ ์๋ค. ์ด์ ๋๋จธ์ง ์ฝ๋๋ฅผ Provider ์ฌ์ฉ ์ด์ ์ผ..
[Java Spring] 2-61. ์ค์ฝํ์ Provider ์ฒซ๋ฒ์งธ ํด๊ฒฐ๋ฐฉ์์ ์์ ๋ฐฐ์ด Provider๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ๊ฐ๋จํ ObjectProvider๋ฅผ ์ฌ์ฉํด๋ณด์. package hello.core.web; import hello.core.common.MyLogger; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.R..
[Java Spring] 2-60. request ์ค์ฝํ ์์ ๋ง๋ค๊ธฐ ์น ํ๊ฒฝ ์ถ๊ฐ ์น ์ค์ฝํ๋ ์น ํ๊ฒฝ์์๋ง ๋์ํ๋ฏ๋ก web ํ๊ฒฝ์ด ๋์ํ๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ์. build.gradle์ ์ถ๊ฐ //web ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ implementation 'org.springframework.boot:spring-boot-starter-web' ์ด์ hello.core.CoreApplication ์ main ๋ฉ์๋๋ฅผ ์คํํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. Tomcat started on port(s): 8080 (http) with context path '' Started CoreApplication in 0.914 seconds (JVM running for 1.528) ์ฐธ๊ณ : s..
[Java Spring] 2-59. ์น ์ค์ฝํ ์ง๊ธ๊น์ง ์ฑ๊ธํค๊ณผ ํ๋กํ ํ์ ์ค์ฝํ๋ฅผ ํ์ตํ๋ค. ์ฑ๊ธํค์ ์คํ๋ง ์ปจํ ์ด๋์ ์์๊ณผ ๋๊น์ง ํจ๊ปํ๋ ๋งค์ฐ ๊ธด ์ค์ฝํ์ด๊ณ , ํ๋กํ ํ์ ์ ์์ฑ๊ณผ ์์กด๊ด๊ณ ์ฃผ์ , ๊ทธ๋ฆฌ๊ณ ์ด๊ธฐํ๊น์ง๋ง ์งํํ๋ ํน๋ณํ ์ค์ฝํ์ด๋ค. ์ด๋ฒ์๋ ์น ์ค์ฝํ์ ๋ํด์ ์์๋ณด์ ์น ์ค์ฝํ์ ํน์ง ์น ์ค์ฝํ๋ ์น ํ๊ฒฝ์์๋ง ๋์ํ๋ค. ์น ์ค์ฝํ๋ ํ๋กํ ํ์ ๊ณผ ๋ค๋ฅด๊ฒ ์คํ๋ง์ด ํด๋น ์ค์ฝํ์ ์ข ๋ฃ์์ ๊น์ง ๊ด๋ฆฌํ๋ค. ๋ฐ๋ผ์ ์ข ๋ฃ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋ค. ์น ์ค์ฝํ ์ข ๋ฅ request: HTTP ์์ฒญ ํ๋๊ฐ ๋ค์ด์ค๊ณ ๋๊ฐ ๋ ๊น์ง ์ ์ง๋๋ ์ค์ฝํ, ๊ฐ๊ฐ์ HTTP ์์ฒญ๋ง๋ค ๋ณ๋์ ๋น ์ธ์คํด์ค๊ฐ ์์ฑ๋๊ณ , ๊ด๋ฆฌ๋๋ค. session: HTTP Session๊ณผ ๋์ผํ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๋ ์ค์ฝํ application..
[Java Spring] 2-58. ํ๋กํ ํ์ ์ค์ฝํ - ์ฑ๊ธํค ๋น๊ณผ ํจ๊ป ์ฌ์ฉ์ Provider๋ก ๋ฌธ์ ํด๊ฒฐ ์ฑ๊ธํค ๋น๊ณผ ํ๋กํ ํ์ ๋น์ ํจ๊ป ์ฌ์ฉํ ๋, ์ด๋ป๊ฒ ํ๋ฉด ์ฌ์ฉํ ๋ ๋ง๋ค ํญ์ ์๋ก์ด ํ๋กํ ํ์ ๋น์ ์์ฑํ ์ ์์๊น? ์คํ๋ง ์ปจํ ์ด๋์ ์์ฒญ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ฑ๊ธํค ๋น์ด ํ๋กํ ํ์ ์ ์ฌ์ฉํ ๋ ๋ง๋ค ์คํ๋ง ์ปจํ ์ด๋์ ์๋ก ์์ฒญํ๋ ๊ฒ์ด๋ค. public class PrototypeProviderTest { @Test void providerTest() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean cl..
[Java Spring] 2-57. ํ๋กํ ํ์ ์ค์ฝํ - ์ฑ๊ธํค ๋น๊ณผ ํจ๊ป ์ฌ์ฉ์ ๋ฌธ์ ์ ์คํ๋ง ์ปจํ ์ด๋์ ํ๋กํ ํ์ ์ค์ฝํ์ ๋น์ ์์ฒญํ๋ฉด ํญ์ ์๋ก์ด ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ์์ฑํด์ ๋ฐํํ๋ค. ํ์ง๋ง ์ฑ๊ธ ํค ๋น๊ณผ ํจ๊ป ์ฌ์ฉํ ๋๋ ์๋ํ ๋๋ก ์ ๋์ํ์ง ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค. ๊ทธ๋ฆผ๊ณผ ์ฝ๋๋ก ์ค๋ช ํ๊ฒ ๋ค. ๋จผ์ ์คํ๋ง ์ปจํ ์ด๋์ ํ๋กํ ํ์ ๋น์ ์ง์ ์์ฒญํ๋ ์์ ๋ฅผ ๋ณด์. ํ๋กํ ํ์ ๋น ์ง์ ์์ฒญ ์คํ๋ง ์ปจํ ์ด๋์ ํ๋กํ ํ์ ๋น ์ง์ ์์ฒญ1 1. ํด๋ผ์ด์ธํธA๋ ์คํ๋ง ์ปจํ ์ด๋์ ํ๋กํ ํ์ ๋น์ ์์ฒญํ๋ค. 2. ์คํ๋ง ์ปจํ ์ด๋๋ ํ๋กํ ํ์ ๋น์ ์๋ก ์์ฑํด์ ๋ฐํ(x01)ํ๋ค. ํด๋น ๋น์ count ํ๋ ๊ฐ์ 0์ด๋ค. 3. ํด๋ผ์ด์ธํธ๋ ์กฐํํ ํ๋กํ ํ์ ๋น์ addCount() ๋ฅผ ํธ์ถํ๋ฉด์ count ํ๋..
[Java Spring] 2-56. ํ๋กํ ํ์ ์ค์ฝํ ์ฑ๊ธํค ์ค์ฝํ์ ๋น์ ์กฐํํ๋ฉด ์คํ๋ง ์ปจํ ์ด๋๋ ํญ์ ๊ฐ์ ์ธ์คํด์ค์ ์คํ๋ง ๋น์ ๋ฐํํ๋ค. ๋ฐ๋ฉด์ ํ๋กํ ํ์ ์ค ์ฝํ๋ฅผ ์คํ๋ง ์ปจํ ์ด๋์ ์กฐํํ๋ฉด ์คํ๋ง ์ปจํ ์ด๋๋ ํญ์ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํด์ ๋ฐํํ๋ค. ์ฑ๊ธํค ๋น ์์ฒญ ์ฑ๊ธํค ์ค์ฝํ์ ๋น์ ์คํ๋ง ์ปจํ ์ด๋์ ์์ฒญํ๋ค. ์คํ๋ง ์ปจํ ์ด๋๋ ๋ณธ์ธ์ด ๊ด๋ฆฌํ๋ ์คํ๋ง ๋น์ ๋ฐํํ๋ค. ์ดํ์ ์คํ๋ง ์ปจํ ์ด๋์ ๊ฐ์ ์์ฒญ์ด ์๋ ๊ฐ์ ๊ฐ์ฒด ์ธ์คํด์ค์ ์คํ๋ง ๋น์ ๋ฐํํ๋ค. ํ๋กํ ํ์ ๋น ์์ฒญ1 ํ๋กํ ํ์ ์ค์ฝํ์ ๋น์ ์คํ๋ง ์ปจํ ์ด๋์ ์์ฒญํ๋ค. ์คํ๋ง ์ปจํ ์ด๋๋ ์ด ์์ ์ ํ๋กํ ํ์ ๋น์ ์์ฑํ๊ณ , ํ์ํ ์์กด๊ด๊ณ๋ฅผ ์ฃผ์ ํ๋ค. ํ๋กํ ํ์ ๋น ์์ฒญ2 3. ์คํ๋ง ์ปจํ ์ด๋๋ ์์ฑํ ํ๋กํ ํ์ ๋น์ ํด๋ผ์ด์ธํธ์..
[Java Spring] 2-55. ๋น ์ค์ฝํ๋? ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ ์คํ๋ง ๋น์ด ์คํ๋ง ์ปจํ ์ด๋์ ์์๊ณผ ํจ๊ป ์์ฑ๋์ด์ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋ ๋ ๊น์ง ์ ์ง๋๋ค ๊ณ ํ์ตํ๋ค. ์ด๊ฒ์ ์คํ๋ง ๋น์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธํค ์ค์ฝํ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ค์ฝํ๋ ๋ฒ์ญ ๊ทธ๋๋ก ๋น์ด ์กด์ฌํ ์ ์๋ ๋ฒ์๋ฅผ ๋ปํ๋ค. ์คํ๋ง์ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ค์ฝํ๋ฅผ ์ง์ํ๋ค. ์ฑ๊ธํค: ๊ธฐ๋ณธ ์ค์ฝํ, ์คํ๋ง ์ปจํ ์ด๋์ ์์๊ณผ ์ข ๋ฃ๊น์ง ์ ์ง๋๋ ๊ฐ์ฅ ๋์ ๋ฒ์์ ์ค์ฝํ์ด๋ค. ํ๋กํ ํ์ : ์คํ๋ง ์ปจํ ์ด๋๋ ํ๋กํ ํ์ ๋น์ ์์ฑ๊ณผ ์์กด๊ด๊ณ ์ฃผ์ ๊น์ง๋ง ๊ด์ฌํ๊ณ ๋๋ ๊ด๋ฆฌํ์ง ์๋ ๋งค์ฐ ์งง์ ๋ฒ์์ ์ค์ฝํ์ด๋ค. ์น ๊ด๋ จ ์ค์ฝํ request: ์น ์์ฒญ์ด ๋ค์ด์ค๊ณ ๋๊ฐ๋ ๊น์ง ์ ์ง๋๋ ์ค์ฝํ์ด๋ค. session: ์น ์ธ์ ์ด ์์ฑ๋๊ณ ์ข ๋ฃ๋ ๋ ..
[Java Spring] 2-54. ์ ๋ ธํ ์ด์ @PostConstruct, @PreDestroy ์ฐ์ ์ฝ๋ ๋จผ์ ๋ณด๊ณ ์ค๋ช ํ๊ฒ ๋ค. package hello.core.lifecycle; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; public class NetworkClient { private String url; public NetworkClient() { System.out.println("์์ฑ์ ํธ์ถ, url = " + url); } public void setUrl(String url) { this.url = url; } //์๋น์ค ์์์ ํธ์ถ public void connect() { System.o..
[Java Spring] 2-53. ๋น ๋ฑ๋ก ์ด๊ธฐํ, ์๋ฉธ ๋ฉ์๋ ์ง์ ์ค์ ์ ๋ณด์ @Bean(initMethod = "init", destroyMethod = "close") ์ฒ๋ผ ์ด๊ธฐํ, ์๋ฉธ ๋ฉ์๋๋ฅผ ์ง์ ํ ์ ์๋ค. ์ค์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ package hello.core.lifecycle; public class NetworkClient { private String url; public NetworkClient() { System.out.println("์์ฑ์ ํธ์ถ, url = " + url); } public void setUrl(String url) { this.url = url; } //์๋น์ค ์์์ ํธ์ถ public void connect() { System.out.println(..