๊ฐœ๋ฐœ 6

[Spring] SpringBootTest์‹คํ–‰์‹œ application.yml ์„ค์ • ๋ฌธ์ œ

๋ฌธ์ œ ์ƒํ™ฉRestDocs๋กœ API ๋ช…์„ธ์„œ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์–ด ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ํ•„์ˆ˜๋กœ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋‹ค.๊ฐœ๋ฐœ์„œ๋ฒ„์— ๋ฐฐํฌ๋ฅผ ์™„๋ฃŒํ•œ ์ƒํƒœ์—์„œ ๋กœ์ปฌ๊ณผ ์‹คํ–‰ํ™˜๊ฒฝ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— yml์„ ๋ถ„๋ฆฌํ•  ํ•„์š”๋ฅผ ๋А๊ผˆ๊ณ , dev์™€ local๋กœ yml์„ ๋ถ„๋ฆฌํ•˜์˜€๋‹ค.๊ทธ ํ›„ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ํ›„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ, ํ•˜๋‹จ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋ฉฐ ์‹คํ–‰์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค.Failed to load ApplicationContext for.....Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource ๋ฌธ์ œ ํ•ด๊ฒฐapplication-test.yml์„ ๋ณ„๋„..

๊ฐœ๋ฐœ 2025.04.29

[Server] Mac ํ™˜๊ฒฝ ๋กœ์ปฌ๋กœ Mosquitto, Spring Integration MQTT ์‚ฌ์šฉ

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”์•ฑ ์„œ๋ฒ„ ๋””๋ฐ”์ด์Šค๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋˜ ์ค‘ ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์—์„œ ๋ฐœํ–‰ํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋””๋ฐ”์ด์Šค์—์„œ ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๊ฒŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด MQTT๋ฅผ ๋„์ž…ํ•˜์˜€๋‹ค.   Spring ์„œ๋ฒ„์— MQTT ๋ธŒ๋กœ์ปค ์„ค์น˜Mosquitto, EMQX, HiveMQ ๋“ฑ MQTT ๋ธŒ๋กœ์ปค๋ฅผ ์„œ๋ฒ„์— ์„ค์น˜.ํฌํŠธ(๋ณดํ†ต 1883, ๋˜๋Š” TLS์ผ ๊ฒฝ์šฐ 8883) ์—ด๊ธฐ.MQTT ๋ธŒ๋กœ์ปค๊ฐ€ ์™ธ๋ถ€(๋””๋ฐ”์ด์Šค)์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐฉํ™”๋ฒฝ/๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ • ํ•„์š”.๋””๋ฐ”์ด์Šค์—์„œ MQTT ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„๋””๋ฐ”์ด์Šค์—์„œ MQTT ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ ์„œ๋ฒ„์˜ ๋ธŒ๋กœ์ปค์— ์—ฐ๊ฒฐ.์˜ˆ: mqtt://your.server.ip:1883ํ† ํ”ฝ์„ ๊ตฌ๋…ํ•˜์—ฌ ์„œ๋ฒ„์—์„œ publishํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.Spring ์„œ๋ฒ„์—์„œ MQTT ๋ฉ”์‹œ์ง€ ๋ฐœ..

๊ฐœ๋ฐœ 2025.04.01

[Python] Subprocess ์‚ฌ์šฉ์‹œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ฌธ์ œ

๋ฌธ์ œํŒŒ์ด์„  ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‰˜์„ ์ด์šฉํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋Š” ๊ฒฝ์šฐ Subprocess๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‰˜ ์ž‘์—…์˜ output์„ ํŒŒ์ด์„  ํ”„๋กœ์„ธ์Šค์— ์‰ฝ๊ฒŒ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ Subprocess๋Š” ๋ณ„๋„์˜ ์‰˜์„ ๋„์›Œ์„œ ์ž‘์—…ํ•˜๋ฏ€๋กœ ์‰˜ ์ž‘์—…์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์š”ํ•˜๋Š” ์ž‘์—…์ผ ๊ฒฝ์šฐ์— module not found์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๊ฑฐ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ชจ์Šต์„ ๋ณด์ธ๋‹ค. ํ•ด๊ฒฐ  env๋Š” Subprocess ์‹คํ–‰์‹œ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ž๊ฐ€ ์žˆ๋‹ค.   ๋‹ค์Œ๊ณผ ๊ฐ™์ด env๋ฅผ ์ง€์ •ํ•ด์„œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” ๋งŽ์€ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์œผ๋ฏ€๋กœ (์ฝ”๋“œ๊ฐ€ ๋”๋Ÿฌ์›Œ์ ธ์„œ..) export PATH=""export LIB_PATH=""python ~~~.py์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ shell script๋ฅผ ๋งŒ๋“ค์–ด ์ง์ ‘ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ..

๊ฐœ๋ฐœ 2024.07.01

[Python] ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค ๊ณต์œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ Manager ๊ฐ์ฒด

์„œ๋ก ํ”ํ•˜๊ฒŒ nonblocking-asyncํ•œ ๋™์ž‘์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋”ฉ/๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ ๊ณผ ๊ฐ™์€ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.ํ•˜์ง€๋งŒ python์—์„œ๋Š” Global Interpreter Lock ์ด๋ผ๋Š” ๋™์ผ ์‹œ์ ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํŒ… ๊ธฐ๋ฒ•์ด ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ๊ธฐ๋Œ€ํ•˜๊ธฐ ํž˜๋“ค๋‹ค.๊ทธ๋Ÿฌ๋ฏ€๋กœ ํŒŒ์ด์ฌ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ๋„ ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ์„ ์‚ฌ์šฉํ•ด ๋น„๋™๊ธฐ์ ์ธ ์ž‘๋™์„ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋Š” ์Šค๋ ˆ๋“œ์™€ ๋‹ฌ๋ฆฌ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ฒŒ๋˜๋ฏ€๋กœ, ๊ณต์œ ์ž์›์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋‚œ๊ด€์— ๋ด‰์ฐฉํ•œ๋‹ค. ๋ชฐ๋ผ์„œ ๊ทธ๋ƒฅ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ์ž‘์—…ํ–ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ๊นŒ Manager๋ผ๋Š” ๊ฐ์ฒด๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ„์˜ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.Manager์˜ ์‚ฌ์šฉ๋ฒ•์€ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๊ฐ€..

๊ฐœ๋ฐœ 2024.06.30

[Web] ๋ธŒ๋ผ์šฐ์ € -> ์„œ๋ฒ„ ์š”์ฒญ์‹œ JSESSIONID ๊ณ„์† ๊ฐฑ์‹ ๋˜๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ •

์‚ฌ์šฉ ์Šคํƒfront - vite+reactback - Springsession control - redisserver - AWS EC2 ๋ฌธ์ œAWS EC2์— ํšŒ์›๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ Spring boot ๊ธฐ๋ฐ˜ Rest API๋ฅผ ์˜ฌ๋ฆฌ๊ณ , ํ”„๋ก ํŠธ์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ ๊ณ„์†ํ•ด์„œ JSESSIONID ์ฟ ํ‚ค์˜ ๊ฐ’์ด ๊ณ„์† ๋ฐ”๋€Œ๋Š” ํ˜„์ƒ์ด ์ƒ๊ฒผ๋‹ค. ์„ธ์…˜์ด ๊ณ„์†ํ•ด์„œ ๊ฐฑ์‹ ๋˜๋ฉด์„œ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ๋ ˆ๋””์Šค๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ ˆ๋””์Šค์— ๊ฐฑ์‹ ๋œ session id๋กœ ๊ณ„์†ํ•ด์„œ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜์—ˆ๋‹ค.  ํ”„๋ก ํŠธ, ๋ฐฑ์„ ์ „๋ถ€ ๋กœ์ปฌํ˜ธ์ŠคํŠธ์—์„œ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด๋Ÿฌํ•œ ํ˜„์ƒ์ด ์ƒ๊ธฐ์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ํ”„๋ก ํŠธ์™€ ๋ฐฑ์„ ๋‘๊ฒŒ ๋˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค.  ํ•ด๊ฒฐCookie์˜ SameSite ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ lax๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์˜€๋‹ค.ํ˜„์žฌ์˜ ..

๊ฐœ๋ฐœ 2024.06.30