728x90
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€ 1180

[SPRING]fixedDelay vs fixedRate

**fixedDelay**๋Š” ์ด์ „ ์ž‘์—…์ด ๋๋‚œ ํ›„ ์ง€์ •๋œ ์‹œ๊ฐ„ ๋™์•ˆ ๋Œ€๊ธฐํ•œ ํ›„ ๋‹ค์Œ ์ž‘์—…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.**fixedRate**๋Š” ์ž‘์—… ์™„๋ฃŒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ์ง€์ •๋œ ์ฃผ๊ธฐ๋งˆ๋‹ค ์ž‘์—…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.๋‘ ์˜ต์…˜์€ ์ž‘์—… ์ฃผ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์ด๋‚˜ ์ž‘์—…์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐฉ์‹์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JAVA/SPRING 2024.09.18

[SPRING] fixedDelay

fixedDelay๋Š” Spring์˜ @Scheduled ์–ด๋…ธํ…Œ์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋กœ, ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„ ์ผ์ • ์‹œ๊ฐ„(๋”œ๋ ˆ์ด)์ด ์ง€๋‚˜๋ฉด ๋‹ค์‹œ ์‹คํ–‰๋˜๋Š” ๋ฐฉ์‹์˜ ์Šค์ผ€์ค„๋ง์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.fixedDelay ๋™์ž‘ ๋ฐฉ์‹:์ด์ „ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ์‹œ๊ฐ„์œผ๋กœ๋ถ€ํ„ฐ ์ง€์ •๋œ ์‹œ๊ฐ„๋งŒํผ ๋Œ€๊ธฐํ•œ ํ›„์— ์ž‘์—…์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.๋”œ๋ ˆ์ด ์‹œ๊ฐ„์€ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, fixedDelay = 1000 * 30์€ 30์ดˆ(30,000๋ฐ€๋ฆฌ์ดˆ)์˜ ๋”œ๋ ˆ์ด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.์ฃผ์š” ํŠน์ง•:์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„ ๋”œ๋ ˆ์ด ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ฏ€๋กœ, ์ด์ „ ์ž‘์—…์ด ๋๋‚˜๊ธฐ ์ „์— ์ƒˆ ์ž‘์—…์ด ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์ž‘์—… ์‹œ๊ฐ„์ด ๋ถˆ๊ทœ์น™ํ•˜๊ฑฐ๋‚˜ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.import org.springframework.sche..

JAVA/SPRING 2024.09.17

ProgramData ๋ฐ ์ˆจ๊ธดํด๋” ๋ณด๊ธฐ

ProgramData ๋ฐ ์ˆจ๊ธดํด๋” ๋ณด๊ธฐ : ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ (naver.com) ProgramData ๋ฐ ์ˆจ๊ธดํด๋” ๋ณด๊ธฐ๊ฐ€๋” ์ˆจ๊ธดํด๋”๋ฅผ ๋ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด์œ ์•ผ ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ์š”. ์ปดํ“จํ„ฐ ํ•˜๋‹จ ํˆด๋ฐ”๋ฅผ ๋ณด๋ฉด ...blog.naver.com

IT์ง€์‹ 2024.09.16

์œˆ๋„์šฐ11 SFTP ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ

https://cypsw.tistory.com/entry/SFTP-%EC%84%9C%EB%B2%84%EB%A5%BC-%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90%EC%84%9C-%EA%B5%AC%EC%B6%95-%ED%95%B4-%EB%B3%B4%EC%9E%90-%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%9E%90%EC%B2%B4-%EA%B8%B0%EB%8A%A5%EC%9C%BC%EB%A1%9C%EB%A7%8C SFTP ์„œ๋ฒ„๋ฅผ ์œˆ๋„์šฐ์—์„œ ๊ตฌ์ถ• ํ•ด ๋ณด์ž (์œˆ๋„์šฐ ์ž์ฒด ๊ธฐ๋Šฅ์œผ๋กœ๋งŒ!)์šฐ์„  ์™ธ๋ถ€ ๋ง๊ณผ ํŒŒ์ผ์„ ๊ณต์œ ํ•˜๋Š” ์šฉ๋„๋กœ ์ˆœ์ˆ˜ FTP๋ฅผ ์“ฐ๋ฉด ์•ˆ๋œ๋‹ค.ํŒจํ‚ท ์Šค๋‹ˆํ•‘์„ ํ†ตํ•ด ํ‰๋ฌธ์ƒํƒœ์˜ ID, ํŒจ์Šค์›Œ๋“œ๋Š” ๋ฌผ๋ก ์ด๊ณ , ์ฃผ๊ณ ๋ฐ›๋Š” ํŒŒ์ผ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ „๋ถ€ ๋…ธ์ถœ๋˜๊ธฐ์—FTP๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€-์™ธ๋ถ€ ๋ง๊ฐ„..

IT์ง€์‹ 2024.09.15

[JAVA] Map containsKey

containsKey ๋ฉ”์„œ๋“œ๋Š” Java์—์„œ Map ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋กœ,ํŠน์ • ํ‚ค๊ฐ€ ๋งต์— ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ฆ‰, containsKey๋Š” Map ์•ˆ์— ์ง€์ •๋œ ํ‚ค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ boolean ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค๊ฐ€ ์กด์žฌํ•  ๋•Œ๋งŒ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.boolean containsKey(Object key) ๋ฐ˜ํ™˜๊ฐ’true: ๋งต์— ์ง€์ •๋œ ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ.false: ๋งต์— ์ง€์ •๋œ ํ‚ค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ.๋งค๊ฐœ๋ณ€์ˆ˜key: ์ฐพ์œผ๋ ค๋Š” ํ‚ค. ์ด ํ‚ค๊ฐ€ Map ์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.null๋„ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋‹จ, HashMap์—์„œ๋Š” null์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ, TreeMap์€ null์„ ํ‚ค๋กœ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)import java.util...

JAVA 2024.09.14

[jQuery][Datatables] scrollCollapse

scrollCollapse: false๋Š” DataTables ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋กœ, ํ…Œ์ด๋ธ” ๋‚ด์— ์„ธ๋กœ ์Šคํฌ๋กค์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์„ ๋•Œํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์Šคํฌ๋กค ์˜์—ญ์ด ์ž๋™์œผ๋กœ ์ถ•์†Œ๋˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:scrollCollapse: false:ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์–ด๋„ ์Šคํฌ๋กค ์˜์—ญ์ด ๊ณ ์ •๋œ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.์„ธ๋กœ ์Šคํฌ๋กค์ด ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ๋„ ํ…Œ์ด๋ธ”์˜ ๋†’์ด๋ฅผ ์กฐ์ •ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์Šคํฌ๋กค๋ฐ”๊ฐ€ ํ•ญ์ƒ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋นˆ ๋ฐ์ดํ„ฐ๋‚˜ ์ ์€ ๋ฐ์ดํ„ฐ๋กœ ์ธํ•ด ํ…Œ์ด๋ธ”์˜ ๋†’์ด๊ฐ€ ์ž‘์•„์ง€๋”๋ผ๋„ ์Šคํฌ๋กค ์˜์—ญ์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์Šคํฌ๋กค๋ฐ”์˜ ์œ ๋ฌด์— ์ƒ๊ด€์—†์ด ํ…Œ์ด๋ธ”์ด ์ผ์ •ํ•œ ๋†’์ด๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ scrollCollapse: true๋กœ ์„ค์ •ํ•˜๋ฉด, ๋ฐ์ดํ„ฐ์˜ ์–‘์— ๋งž์ถฐ ํ…Œ์ด๋ธ” ๋†’์ด๊ฐ€ ์ž๋™์œผ๋กœ ์ค„..

Front/JS & jQuery 2024.09.13

[HTML] rel="noopener noreferrer"

rel="noopener noreferrer"๋Š” ๋ณด์•ˆ๊ณผ ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ์ƒˆ ์ฐฝ์„ ์—ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” target="_blank" ์†์„ฑ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ๋“ค์€ ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค:1. noopener๋ชฉ์ : ์ƒˆ ์ฐฝ์ด ๋ถ€๋ชจ ์ฐฝ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค.์„ค๋ช…: target="_blank"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ ์ฐฝ(๋˜๋Š” ์ƒˆ ํƒญ)์ด ์—ด๋ฆฌ๋Š”๋ฐ, ์ด๋•Œ ์ƒˆ๋กœ ์—ด๋ฆฐ ์ฐฝ์ด window.opener ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ถ€๋ชจ ์ฐฝ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•…์˜์ ์ธ ํŽ˜์ด์ง€๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์•…์šฉํ•˜์—ฌ ๋ถ€๋ชจ ์ฐฝ์˜ ๋‚ด์šฉ์„ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. rel="noopener"๋Š” ์ด๋Ÿฐ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ์ƒˆ ์ฐฝ์ด ๋ถ€๋ชจ ์ฐฝ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ๋ง‰์•„์ค๋‹ˆ๋‹ค.์ƒˆ ์ฐฝ์—์„œ ์—ด๊ธฐ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด ์ƒˆ ์ฐฝ์€ ์ฐธ์กฐ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •..

Front/HTML 2024.09.12

POSTMAN์œผ๋กœ API ํ˜ธ์ถœ, ์‘๋‹ต๋ฐ›๊ธฐ

1. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ์ค€๋น„์™ธ๋ถ€ API ์ฃผ์†Œ์™€ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ ํ˜•์‹์„ JSON, XML, ํ˜น์€ form-data ํ˜•์‹์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.2. HTTP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ POST ์š”์ฒญ ๋ณด๋‚ด๊ธฐํด๋ผ์ด์–ธํŠธ์—์„œ POST ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.์˜ˆ์‹œ 1: Postman์„ ์‚ฌ์šฉํ•œ ํ…Œ์ŠคํŠธPostman์„ ์„ค์น˜ ํ›„ ์‹คํ–‰.์š”์ฒญ ํƒ€์ž…์„ ์„ค์ •.URL์— ์™ธ๋ถ€ API์˜ ์—”๋“œํฌ์ธํŠธ ์ž…๋ ฅ.Body ์„น์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ JSON, form-data ๋“ฑ ์›ํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ž…๋ ฅ.์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ํ™•์ธํ•˜์—ฌ ์„ฑ๊ณต ์—ฌ๋ถ€ ํ™•์ธ.   3. ์‘๋‹ต ํ™•์ธAPI๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‘๋‹ต ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต ์ฝ”๋“œ๊ฐ€ 200๋ฒˆ๋Œ€์ผ ๊ฒฝ์šฐ ์„ฑ๊ณต์ ์œผ๋กœ ์ „๋‹ฌ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.200: ์š”์ฒญ ์„ฑ๊ณต400: ์ž˜๋ชป๋œ ์š”์ฒญ (๋ฐ์ดํ„ฐ ..

IT์ง€์‹ 2024.09.11

[jQuery][Datatables] datatables ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

$(document).ready(function() { var table = $('#example').DataTable(); // ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ var data = table.rows().data(); // ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ data.each(function(value, index) { console.log('Row ' + index + ' data: ', value); });}); ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„๋•Œ๋Š”, ๋ฐ์ดํ„ฐ๋กœ๋“œ ํ›„์— ํ˜ธ์ถœ๋˜๋„๋ก ์ˆ˜์ •ํ•˜๊ธฐ

Front/JS & jQuery 2024.09.10

[JAVA] stream anyMatch ์‚ฌ์šฉ

List resList = getList(listParam); // ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ ๋“ฑ๋ก ์—ฌ๋ถ€๊ฐ€ ์ „์ฒด TRUE์ธ์ง€ ํ™•์ธ for( ResListDTO res : resList ) { rsltYn = res.getRsltYn(); if(!rsltYn) { break; } } // ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ๊ฐ€ ์ „์ฒด TRUE์ด๋ฉด, ์ฒ˜๋ฆฌ๋กœ์ง if(rsltYn) { }boolean hasFalse = resVocList.stream() .anyMatch(dto -> !dto.getRsltYn());if (hasFalse) { // RsltYn์ด false์ธ ๊ฐ์ฒด๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•  ๋กœ..

JAVA 2024.09.09
728x90
๋ฐ˜์‘ํ˜•