728x90
๋ฐ˜์‘ํ˜•

2024/09 30

[JAVA] Serializable

Serializable๋Š” Java์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์ด๋‚˜ ์ €์žฅ ํ›„์— ๋‹ค์‹œ ์›๋ž˜ ๊ฐ์ฒด๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.์ฃผ์š” ํŠน์ง•:๋งˆ์ปค ์ธํ„ฐํŽ˜์ด์Šค: Serializable์€ ์•„๋ฌด ๋ฉ”์„œ๋“œ๋„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋งˆ์ปค ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋Š” ์ง๋ ฌํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ๋กœ Java ์‹œ์Šคํ…œ์—์„œ ์ธ์‹๋ฉ๋‹ˆ๋‹ค.์ง๋ ฌํ™” (Serialization): ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.์—ญ์ง๋ ฌํ™” (Deserialization): ์ง๋ ฌํ™”๋œ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ๋‹ค์‹œ ๊ฐ์ฒด๋กœ ๋ณต์›ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.import java.io.Serializable;p..

JAVA 2024.09.20

[SPRING] @Value

@Value๋Š” Spring Framework์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ,์ฃผ๋กœ Spring์˜ DI(Dependency ์ฃผ์ž…) ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์™ธ๋ถ€ ์„ค์ • ๊ฐ’์„ ํด๋ž˜์Šค ํ•„๋“œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ฃผ๋กœ application.properties ๋˜๋Š” application.yml ๊ณผ ๊ฐ™์€ ์„ค์ • ํŒŒ์ผ์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.@Value("${property.key}")private String value;์—ฌ๊ธฐ์„œ๋Š” property.key์„ค์ • ํŒŒ์ผ์— ์ •์˜๋œ ์†์„ฑ์˜ ํ‚ค์ž…๋‹ˆ๋‹ค.ํ•ด๋‹น ํ‚ค์— ๋งคํ•‘๋œ ๊ฐ’์„ value์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. app.name=MyAppapp.version=1.0.0@Componentpublic class AppConfig { @Value("${app.name}") pr..

JAVA/SPRING 2024.09.19

[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
728x90
๋ฐ˜์‘ํ˜•