๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๊ฐœ๋ฐœ/Web21

[Spring] ๋นˆ(bean)์„ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ• 1. ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ • ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์˜ ์›๋ฆฌ @Component ์–ด๋…ธํ…Œ์ด์…˜์ด ์„ ์–ธ๋˜์–ด ์žˆ์œผ๋ฉด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก @Controller ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก๋œ ์ด์œ ๋„ ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋•Œ๋ฌธ! (@Controller ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ดํŽด๋ณด๋ฉด @Component๊ฐ€ ์„ ์–ธ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ) @Service, @Repository๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ @Component๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ์–ด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก ๋œ๋‹ค. ์˜ˆ์‹œ OrderController.java @Controller public class OrderController { private final OrderService orderService; @Autowired public OrderController(OrderServic.. 2022. 7. 1.
[Web] ๋™๊ธฐ ๋ฐฉ์‹๊ณผ ๋น„๋™๊ธฐ ๋ฐฉ์‹์˜ ์ฐจ์ด์  ๋™๊ธฐ(synchronous) ๋ฐฉ์‹ ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์‘๋‹ต์„ ๋ฐ›์•„์•ผ ๋‹ค์Œ ๋™์ž‘์ด ์ง„ํ–‰๋œ๋‹ค. ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ํ•œ ์ž๋ฆฌ์— ๋™์‹œ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋ƒˆ์„ ๊ฒฝ์šฐ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ฆฌํ„ด๋ฐ›๊ธฐ ์ „๊นŒ์ง€๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋™์‹œํ‚ค๋Š” ๋ฐ ์‹œ๊ฐ„์ด 5๋ถ„ ์†Œ์š”๋œ๋‹ค๊ณ  ํ•˜๋ฉด, ์ด ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌ๋™๋˜๋Š” 5๋ถ„๋™์•ˆ ์ปดํ“จํ„ฐ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ž‘์‹œํ‚ค์ง€ ๋ชปํ•˜๊ณ , ๊ตฌ๋™๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ์žฅ์  : ์„ค๊ณ„๊ฐ€ ๊ฐ„๋‹จํ•˜๊ณ , ์ง๊ด€์ ์ด๋‹ค. ๋‹จ์  : ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋˜๊ธฐ ์ „๊นŒ์ง€ ๋Œ€๊ธฐํ•ด์•ผ ํ•œ๋‹ค. ๋น„๋™๊ธฐ(Asynchronous) ๋ฐฉ์‹ ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์š”์ฒญํ•œ ๊ณณ์— ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋ฉฐ, .. 2022. 5. 4.
[Spring Framework] CORS ์ ์šฉํ•˜๊ธฐ - @CrossOrigin, <mvc:cors>, Filter CORS๋ž€? test2.com:8080์‚ฌ์ดํŠธ์™€ test.com:18080 ์‚ฌ์ดํŠธ๋Š” ๋„๋ฉ”์ธ๊ณผ ํฌํŠธ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ test.com:18080์—์„œ test2.com:8080์‚ฌ์ดํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋‹ค. Access to XMLHttpRequest at 'http://domain1:8080/xxxxx' from origin 'http://test.com:18080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. http://localhost:8080/test/1 ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•ด๋ณด๋ฉด URL ์ถœ์ฒ˜ ๋น„๊ณ  http://local.. 2022. 3. 11.
[Web] Received fatal alert: handshake_failure ์—๋Ÿฌ ์ด ์—๋Ÿฌ๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ„์˜ TLS ๋ฒ„์ „์ด ๋‹ฌ๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ด๋‹ค. Received fatal alert: handshake_failure ์„œ๋ฒ„๋Š” JDK 1.6์ด๋ผ TLSv1๋งŒ ์ง€์›์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ https.protocols์„ TLSv1๋กœ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. jdk ๋ฒ„์ „ Default Other Support 1.6 TLS 1.0 TLS 1.1(111์ดํ›„ ๋ฒ„์ „), SSL v3.0 1.7 TLS 1.0 TLS 1.1, TLS 1.2, SSL v3.0 1.8 TLS 1.2 TLS 1.0, TLS 1.1, SSL v3.0 โ€ป JDK 1.6.0_111 ์ดํ›„ TLS1.1 ์ง€์›, 1.6.0_121 ์ดํ›„ TLS 1.2 ์ง€์›(๋‹จ, jsse.enableSNIExtension ๋“ฑ์˜ ์˜ต์…˜ ์„ค์ •์€ ๋ถˆ๊ฐ€๋Šฅ) ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•.. 2022. 3. 8.
[Web] Restful API๋ž€? API (Application Programming Interface) ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๋กœ๋ถ€ํ„ฐ ์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ๋ช…๋ น์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ผ์ข…์˜ ํ˜•์‹ ์ •๋ณด๋ฅผ ์š”์ฒญํ•œ๋Š” ์ง€์ •๋œ ํ˜•์‹์ด ์žˆ์–ด์•ผ ํ•จ Restful API ๊ณผ๊ฑฐ์˜ SOAP๋ผ๋Š” ๋ณต์žกํ•œ ํ˜•์‹ ๋Œ€์ฒด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์„ฑ์€ ๊ฐ ์š”์ฒญ์ด ์–ด๋–ค ๋™์ž‘์ด๋‚˜ ์ •๋ณด๋ฅผ ์œ„ํ•œ ๊ฒƒ์ธ์ง€ ๊ทธ ์š”์ฒญ์˜ ๋ชจ์Šต ์ž์ฒด๋กœ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ URL๋งŒ ๋ด๋„ ์–ด๋–ค ์š”์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•จ์ธ์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ! - 'https://domain/1, https://domain/hello ' : ๋ฌด์Šจ ๊ธฐ๋Šฅ์ธ์ง€ ๋ช…ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์›€ - https://๋„๋ฉ”์ธ/classes : class ๋ชฉ๋ก์„ ๋ฐ›์•„์˜ค๋Š” ์š”์ฒญ์ด๋ผ๋Š” ๊ฒƒ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ { "result":[ {"idx":1,.. 2022. 2. 21.
[Spring] Bean ๋“ฑ๋ก ๋ฐฉ๋ฒ• : @Bean vs @Component ์ฐจ์ด Spring์ด ๊ฐ์ฒด๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด๋“ค์ด Bean์œผ๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ธฐ์กด์—” xml์„ ํ†ตํ•ด bean์œผ๋กœ ๋“ฑ๋กํ–ˆ๋Š”๋ฐ Spring MVC์—์„œ๋Š” @Controller, @Service, @Repository ๋“ฑ์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด Spring Container์— Bean์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Configuration ๊ด€๋ จ ๊ฐ์ฒด๋Š” @Bean๊ณผ @Component ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด Bean์œผ๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ @Bean๊ณผ @Component์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? @Bean ์ง์ ‘ ์ปจํŠธ๋กคํ•  ์ˆ˜ ์—†๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ Bean์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(Re.. 2022. 2. 3.
[Maven] ๋ฉ”์ด๋ธ repository์— ์—†๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ํ•˜๊ธฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ build.gradle์ด๋‚˜ pom.xml์˜ dependency์— ๋ช…์‹œ์— ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด maven repository์—์„œ ์•Œ์•„์„œ ๊ฐ€์ ธ์™€์ค€๋‹ค. ํ•˜์ง€๋งŒ ํšŒ์‚ฌ์˜ ๋‚ด๋ถ€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ฐ™์€ maven repository์— ์—†๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๋ฐฉ๋ฒ•1 pom.xml์— ๋จผ์ € ๋ช…์‹œํ–ˆ์„ ๊ฒฝ์šฐ maven repository์— ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋กœ์ปฌ์˜ maven repository ์— ๊ฐ€๋ณด๋ฉด ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์—ฌ๊ธฐ์— test-1.0.0.jar ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด pom.xml์˜ ์—๋Ÿฌ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค. ๋ฐฉ๋ฒ•2 mvn install:install-file -Dfile=D:\test-1.0.0.jar -DgroupId=com.test.ynzu -Dartifact.. 2022. 2. 3.
[Spring] Spring Boot Admin ์‚ฌ์šฉํ•˜๊ธฐ - Log, Login ์ ์šฉ 1. ๊ธฐ๋ณธ ์„ธํŒ… 1.1 Admin Server maven ํ˜น์€ gradle์— spring-boot-admin-starter-server ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ de.codecentric spring-boot-admin-starter-server 2.6.2 // https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server implementation 'de.codecentric:spring-boot-admin-starter-server:2.6.2' @EnableAdminServer ์ถ”๊ฐ€ @SpringBootApplication @EnableAdminServer public class AdminApplication { public.. 2022. 1. 25.
728x90
๋ฐ˜์‘ํ˜•