๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ์ƒํ™œ42

SSE ์ ์šฉ (1) - SSE๋ฅผ ์ ์šฉํ•ด๋ณด์ž ๊ฐœ๋… ๋ฐฐ์น˜ ๋™์ž‘ ์™„๋ฃŒ ์‹œ์ ๋งˆ๋‹ค ํ™”๋ฉด์— update๋ฅผ ํ•ด์ค˜์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์‹  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ์œ„ํ•ด ์ ์ ˆํ•œ ๊ธฐ์ˆ  ๊ฒ€ํ† ์ค‘์— SSE ์ถ”์ฒœ์„ ๋ฐ›์•„ ๋ถ„์„ ํ›„ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์„ ์ •๋ฆฌ SSE๋ž€, Server Sent Event ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„ ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์›น ๊ธฐ์ˆ  ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๋กœ ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„๋กœ์˜ ์—ฐ๊ฒฐ์„ ์—ด์–ด๋‘๊ณ  ์„œ๋ฒ„์—์„œ ์ด๋ฒคํŠธ๋ฅผ ํ‘ธ์‰ฌํ•˜๋Š” ๋ฐฉ์‹ ์„œ๋ฒ„๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฒคํŠธ์— ํ•„์š”ํ•œ Data๋ฅผ ํฌํ•จํ•˜์—ฌ Client์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค. Client๋Š” ์ด๋ฒคํŠธ ์ˆ˜์‹  ํ›„ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ SSE ํŠน์ง• - ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ๋กœ๋งŒ Data ์ „์†ก - ๊ธฐ๋ณธ HTTP ํ”„๋กœํ† ์ฝœ ์‚ฌ.. 2024. 4. 12.
ํฌ๋ก  ์ผ๋ถ€ ์Šคํ…Œ์ด์ง€ ๋น„ํ™œ์„ฑํ™” ์ฒ˜๋ฆฌ ์—ฌ๋Ÿฌ ์Šคํ…Œ์ด์ง€๊ฐ€ ์žˆ์„ ๋•Œ ํŠน์ • ์Šคํ…Œ์ด์ง€๋Š” ์Šค์ผ€์ค„ ์‹คํ–‰ ์•ˆ๋˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ถ€ํŠธ 2.1๋ถ€ํ„ฐ ์ ์šฉ @Scheduled(cron = "${spring.scheduled.cron.test.job:-}") public void testBatchExecute() { testBatch.execute(); } ScheduleConfig.java ํฌ๋ก  ์„ค์ • ๊ฐ’ ์˜†์— :- ์ถ”๊ฐ€ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด ์—†์„ ๋•Œ๋Š” - ์ฒ˜๋ฆฌ๊ฐ€ ๋จ cron์—์„œ - ์ฒ˜๋ฆฌ๋Š” disable์„ ์˜๋ฏธ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋˜, ๋งŒ์•ฝ ํŠน์ • ์Šคํ…Œ์ด์ง€์— ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ -๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค์ผ€์ค„๋ง์„ ๋น„ํ™œ์„ฑํ™” ์Šค์ผ€์ค„ ์›ํ•˜์ง€ ์•Š๋Š” ์Šคํ…Œ์ด์ง€๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ disable ์ฒ˜๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋จ. example application-local... 2024. 4. 4.
์„ค๊ณ„ ๊ต์‹ค ์„ค๊ณ„ํ•  ์ผ์ด ์ƒ๊ฒผ๋Š”๋ฐ ๋‚ด๋ฉ‹๋Œ€๋กœ ๋ง๊ณ  ์ œ๋Œ€๋กœ ํ•˜๊ณ  ์‹ถ์–ด์„œ ์งˆ๋ฌธํ•˜๊ณ  ์ •๋ฆฌํ•œ ๊ฒƒ ์ž‘์—… ์ˆœ์„œ - ์ •๋ง ์ „์ฒด์— ๋Œ€ํ•œ ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•ด์•ผํ•จ (ํ•œ ๋ถ€๋ถ„๋งŒ์ด ์•„๋‹Œ) - ์ฒจ๋ถ€ํ„ฐ ํด๋ž˜์Šค ๋‹จ์œ„, ๋‚ด๋ถ€, ์งœ๊ฐœ๋Š”๊ฑฐ ์ƒ๊ฐ X (๋‚˜์ค‘์— ๊ณ ๋ฏผํ•  ๊ฒƒ) - ๊ธฐ๋Šฅ ๋ช…์„ธ ์ •์˜ (์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ์ง€→ ํ”„๋กœ์„ธ์Šค ํ๋ฆ„๋„→ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„, ๊ด€๊ณ„์ •์˜) ex) ํ†ต์„ ๋‚˜๋ˆ„๋ฉด ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๋งŒ๋“ค๊ธฐ → ํ•„์ˆ˜ ์ •๋ณด ์กฐํšŒ → ์‹ค์ œ ๋ฐ์ดํ„ฐ ์กฐํšŒ → ๊ฐ€๊ณต → Response ๋ชจ์–‘ ๋งŒ๋“ค๊ธฐ ๋‹จ์ˆœํ•˜์ง€๋งŒ ์ด๋Ÿฐ ํ”Œ๋กœ์šฐ => ๊ฐœ๋ฐœ ์ •์ฑ… → ๊ธฐ๋Šฅ ์ •์˜ → ์ „์ฒด Flow → ๊ฐ Flow๋ณ„ ๊ธฐ๋Šฅ ์ž‘์„ฑ → ๋ฏธ์ฒ˜ ๋†“์นœ ๋ถ€๋ถ„๋“ค ์ฒ˜๋ฆฌ → (DB์„ค๊ณ„, ํด๋ž˜์Šค ์„ค๊ณ„, ๊ฐœ๋ฐœ ์‹œ์ž‘) ๊ฐ ์ˆœ์„œ ๋ณ„ ํ•„์š” ์ž‘์—… ๊ฐœ๋ฐœ ์ •์ฑ… - ํ•ต์‹ฌ ๊ฐœ๋ฐœ ์ •์ฑ… ์ •ํ•˜๊ธฐ ๊ธฐ๋Šฅ ์ •์˜ - ์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ์ง€ ์ „์ฒด Flo.. 2024. 4. 2.
[AWS]Resource Explorer Research Resource Excplerer ๋ฆฌ์†Œ์Šค ๊ฒ€์ƒ‰ ์„œ๋น„์Šค AWS ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ์กฐํšŒํ•ด์•ผํ•˜๋Š”๋ฐ ๊ฐ API ๊ฐœ๋ณ„ ํ˜ธ์ถœ์ด ์•„๋‹Œ Explorer๋กœ ๋Œ€์ฒด๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ์กฐ์‚ฌ ํ•„์š” ํ•ญ๋ชฉ์€ ๋‹จ์ˆœ ์‹๋ณ„ ์ •๋ณด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ ๋ฆฌ์†Œ์Šค๋ณ„ ํŠน์ง•๋„ ํ•„์š”ํ•จ ์กฐํšŒ API ListSupportedResourceType - Resource Explorer ์ง€์› ๋ฆฌ์†Œ์Šค ํƒ€์ž… ListIndexes - ํ˜„์žฌ AWS Resource Explorer์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์žˆ๋Š” AWS ๋ฆฌ์ „์˜ ๋ชจ๋“  ์ธ๋ฑ์Šค ๋ชฉ๋ก - ์ˆ˜์ง‘ ๋ฆฌ์ „๋“ค์„ ์ œ๊ณตํ•˜๋Š” API๋กœ ๋ณด์ž„ ListViews - ์ด ์ž‘์—…์„ ํ˜ธ์ถœํ•˜๋Š” AWS ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด๊ธฐ์˜ Amazon ๋ฆฌ์†Œ์Šค ์ด๋ฆ„(ARN) - ํ˜ธ์ถœ ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ list ๋ทฐ - AWS ๊ธฐ๋ณธ ๋ทฐ๊ฐ€ all-resou.. 2024. 3. 14.
GitHub ๋ช…์‹ฌ! ๋งจ๋‚  ํ•˜๋„ ๊นŒ๋จธ๊ฑฐ์„œ github ์“ธ ๋•Œ ๋ช…์‹ฌํ•  ๊ฒƒ๋“ค ์ •๋ฆฌ 1. ๊ฐœ์ธ ํ”ผ์”จ๊ฐ€ ์•„๋‹ˆ๋ฉด ํ”„๋กœ์ ํŠธ ์„ค์ • ํ›„์— git ์ •๋ณด๋ฅผ ๋จผ์ € ๋ด๋ผ git config user.email / git config user.name 2. ๊ฐ„ํ˜น user.name ๋งž์ถฐ๋†จ๋Š”๋ฐ ์™œ push ์ด๋ ฅ์— github profile์ด ์•ˆ๋ณด์ด๊ณ  ์ž”๋””๊ฐ€ ์•ˆ์‹ฌ์–ด์ง€๋Š”๊ฐ€? email์„ ์˜์‹ฌํ•ด๋ผ email์„ ๋‹ค์‹œ ๋ฐ”๊ฟ”์ฃผ๋˜๊ฐ€ ์•„๋‹˜ ์ด๋ฉ”์ผ ์„ค์ •์—์„œ ์ถ”๊ฐ€ ๋ฉ”์ผ๋กœ ๋“ฑ๋ก์„ ํ•ด๋†”๋ผ ์ถ”๊ฐ€๋ฉ”์ผ ๋“ฑ๋กํ•˜๋ฉด ๋กœ๊ทธ์— ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋Š” ์•ˆ๋ณด์—ฌ๋„ ์ž”๋””๋Š” ์‹ฌ์–ด์ง„๋‹ค 3. github access token์„ ์ž˜ ๊ฐ–๊ณ ์žˆ๊ณ  ๋ฐ›์•„๋‘ฌ๋ผ push ํ• ๋•Œ ์ธ์ฆ์ •๋ณด ์ž…๋ ฅ ์‹œ id pw๋ฅผ ์ง€์›์„ ์•ˆํ•œ๋‹ค ์ธ์ฆ์ •๋ณด ๋งž๊ฒŒ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ๋„ pw๊ฐ€ ํ‹€๋ ธ๋‹ค๊ณ  ๋œฌ๋‹ค github setting ๋“ค์–ด๊ฐ€์„œ develope.. 2023. 12. 14.
[JS] ๋ธŒ๋ผ์šฐ์ € ํƒ€์ž„์กด -> utc ๋ณ€ํ™˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ € ํƒ€์ž„์กด์— ๋งž๊ฒŒ ์‹œ๊ฐ„์„ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ํƒ€์ž„์กด์— ๋งž๋Š” ํ˜„์žฌ ์‹œ๊ฐ„์„ UTC๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. // ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด (์˜ˆ: '2023-11-01 00:00:00') const inputString = '2023-11-01 00:00:00'; // ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ JavaScript์˜ Date ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ const inputDate = new Date(inputString); // ๋ธŒ๋ผ์šฐ์ €์˜ ํƒ€์ž„์กด์— ๋งž๊ฒŒ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ํ‘œ์‹œ const userTimeZoneDate = inputDate.toLocaleString('en-US', { timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone }); // ๋ธŒ๋ผ์šฐ์ €์˜ ํƒ€์ž„์กด์— ๋งž๋Š” ํ˜„์žฌ .. 2023. 11. 30.
ํ”„๋กœ์ ํŠธ Tree ๊ตฌ์กฐ ์ถ”๊ฐ€ mac์„ ์‚ฌ์šฉ์ค‘์ด๋ฉฐ, README.md ํŒŒ์ผ ์ž‘์„ฑ์ค‘์— ํ”„๋กœ์ ํŠธ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ ์ฒจ๋ถ€ํ•˜๊ณ  ์‹ถ์–ด์„œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„ ์ •๋ฆฌ 1. brew install tree (brew๊ฐ€ ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—) 2. ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ root๋กœ ๊ฐ€์„œ tree . ๋ช…๋ น์–ด ์น˜๋ฉด ๋ 3. ๋งˆํฌ๋‹ค์šด์— ๋ถ™์ด๊ณ  ์‹ถ๋‹ค๋ฉด ```์„ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ๋ธ”๋Ÿญ์— ๋ถ™์—ฌ ๋„ฃ๋Š”๋‹ค. ``` . โ”œโ”€โ”€ Dockerfile โ”œโ”€โ”€ README.md โ”œโ”€โ”€ api.iml โ”œโ”€โ”€ docker-entrypoint.sh โ”œโ”€โ”€ pom.xml โ”œโ”€โ”€ src โ”‚ โ”œโ”€โ”€ main โ”‚ โ”‚ โ”œโ”€โ”€ java โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ com โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ test โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ Application.java ...TBD ``` ๊ฒฐ๊ณผ 2023. 10. 15.
github repository ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ธฐ repoํ•˜๋‚˜์˜ ํ•˜์œ„์˜ ์—ฌ๋Ÿฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋†“๊ธฐ (๊ธฐ์กด ๊ฒƒ๋“ค ์˜ฎ๊ธฐ๊ธฐ) 1. github์—์„œ ์ƒˆ๋กœ์šด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ (์—ฌ๊ธฐ์— ๋ชจ์„ ๊ฒƒ์ด๋‹ค) ex ) archive 2. ์ƒˆ๋กœ ๋งŒ๋“  ๋ฆฌํฌ Local clone terminal์„ ํ•˜๋‚˜ ์—ด๊ณ , cloneํ•  ๊ฒฝ๋กœ๋กœ ์ด๋™ ๋‚˜์˜ ๊ฒฝ์šฐ ~/workspace/miyeon ํ•˜์œ„์— ์—ฌ๋Ÿฌ ๋ฆฌํฌ๋“ค์„ ๋ชจ์•„๋‘ . archive์—ญ์‹œ ์—ฌ๊ธฐ์— ์ƒ์„ฑํ•  ์˜ˆ์ • (๋”ฐ๋กœ archive๋ผ๋Š” ํŒจํ‚ค์ง€ ์•ˆ๋งŒ๋“ค์–ด๋„ ํด๋ก ํ•  ๋•Œ archive ํŒจํ‚ค์ง€ ์ƒ์„ฑํ•˜๋ฉด์„œ ํด๋ก ๋จ) git clone {{cloneUrl}} git init 3. ์ƒˆ ๋ฆฌํฌ์— commit ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” readme๋ฅผ ๋งŒ๋“ค์–ด์„œ ์˜ฌ๋ ธ์Œ. (์ฃผ์˜, ๊ฐœ์ธPC๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„ git config๊ฐ€ global config๋กœ ๋˜์–ด์žˆ์Œ. ์ฒดํฌ ํ›„ ์ปค๋ฐ‹ ์ „ ๋ณ€.. 2023. 8. 9.
์‹คํ–‰ ์ง€์—ฐ TimeUnit.Sleep ๋”œ๋ ˆ์ด๋ฅผ ์ค„ ๋•Œ, Thread.Sleep ๋ณด๋‹ค๋Š” TimeUnit.Sleep๋ฅผ ์“ฐ์ž. ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๊ฒฐ๊ตญ TimeUnit.Sleep์—์„œ Thread.sleep๋ฅผ ์ฝœํ•œ๋‹ค. ๊ธฐ๊ฐ€ ๊ธฐ์ง€๋งŒ TimeUnit.Sleep๋ฅผ ์“ฐ๋Š” ์ด์œ ๋Š” 1. ๊ฐ€๋…์„ฑ์ด ๋” ์ข‹๋‹ค ๋งŒ์•ฝ์— 3๋ถ„ Delay๋ฅผ ์ค€๋‹ค Thread.Sleep(3 * 60 * 1000); == Thread.sleep(180000); //์œผํœด ํ•œ๋ฒˆ์— ๋ชป ์•Œ์•„ ๋จน์–ด = TimeUnit.MINUTES.Sleep(3); 2. 1์˜ ์—ฐ์žฅ์„ ์œผ๋กœ ์‹œ๊ฐ„ ๋‹จ์œ„ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. TimeUnit: DAYS, HOURS, MICROSECONDS, MILLISECONDS, MINUTES, NANOSECONDS.SECONDS 3. ์•ˆ์ •์„ฑ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์–‘์ˆ˜์ธ์ง€ ํ™•์ธํ•œ ํ›„ ํ˜ธ์ถœํ•จ. (ํƒ€์ž„ ์•„์›ƒ์ด.. 2023. 5. 31.