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

์ „์ฒด ๊ธ€49

H2 ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐ ์„ค์ • ๋ฐฉ๋ฒ• h2 ๋””๋น„ ์ฒ˜์Œ ์ ‘๊ทผํ•  ๋•Œ๋งŒ ํŒŒ์ผ๋ชจ๋“œ๋กœ ์ ‘์†ํ•˜๊ณ  ๋””๋น„ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ๋กœ ์ ‘์† 1. ์„ค์น˜ ๋ฐ ์••์ถ• ํ•ด์ œ https://www.h2database.com/html/main.html 2. ์‰˜ ํŒŒ์ผ ์‹คํ–‰ cd Downloads/h2/bin ./h2.sh 3. ๊ถŒํ•œ์ด ์—†๋‹ค๋ฉด ๊ถŒํ•œ ์—…๋ฐ์ดํŠธ ํ›„ ์žฌ์‹คํ–‰ chmod 755 h2.sh ./h2.sh 4. ์‰˜ ํŒŒ์ผ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋””๋น„ ๋œจ์ง€๋งŒ ์•ˆ๋œฌ๋‹ค๋ฉด localhost:8082๋กœ ์ง์ ‘ ๊ฐ€๋„๋ก 5. ์‹คํ–‰ ํ›„ ์ตœ์ดˆ ์ ‘์† ์‹œ JDBC URL์— `jdbc:h2:~/{dbName}` 6. ์œ ์ € ๋””๋ ‰ํ† ๋ฆฌ์— `~/{dbName}.mv.db` ํŒŒ์ผ ์ƒ์„ฑ ํ™•์ธ 7. ์ดํ›„ ๋ถ€ํ„ฐ๋Š” ์—ฐ๊ฒฐํ•ด์ œ ํ›„ `jdbc:h2:tcp://localhost/~/{dbName}` ์ด๋ ‡๊ฒŒ ์ ‘์† 2024. 4. 15.
Spring Boot 3.0 ์ด์ƒ QueryDSL ์„ค์ • gradle ๊ธฐ์ค€ 1. dependencies ์ถ”๊ฐ€ implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" 2. build -> clean 3. other -> compileJava 2024. 4. 14.
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.
ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ ๋…์„œ ๊ธฐ๊ฐ„ ์žฌ์‹œ์ž‘ 2024.01.08~2024.03.25 ์ฑ… ์ฝ์€ ์†Œ๊ฐ ์ •๋ฆฌ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๊ด€๋ จ ๊ณต๋ถ€๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ์—ญ์‰ฌ๋‚˜ ์‹œ์ž‘์„ ํ•˜๊ณ  ์ด์ œ์•ผ ์ข…๋ฃŒํ•œ ์ฑ…. TDD๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋ง›๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ค‘๊ฐ„์— UnitTest ์ธ๊ฐ•์„ ํ•˜๋‚˜ ๋ง›๋ณด๊ธฐํ•˜๊ณ  ์ด์–ด์„œ ํ–ˆ๋”๋‹ˆ ์ดํ•ด๊ฐ€ ๋” ์‰ฌ์› ๋‹ค. ํ…Œ์ŠคํŠธ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์ž…์žฅ์—์„œ ๋ณผ ๋•Œ ๊ฐ€๋ณ๊ฒŒ ํ•ต์‹ฌ๋งŒ ๊ฐ„๋‹จํžˆ ์ง‘๊ณ  ๊ฐˆ ์ˆ˜ ์ด์จ์„œ ์ข‹์•˜๊ณ , ๋Œ€์—ญ, ๋ชฉ์ด๋‚˜ given-when-then๋“ฑ ์˜์–ด๋กœ ์ต์ˆ™ํ•œ์• ๋“ค์ด ํ•œ๊ธ€๋กœ ์ž‘์„ฑ๋˜์–ด์žˆ์–ด ์–ด์ƒ‰ํ•˜๊ธด ํ–ˆ์ง€๋งŒ ๋งคํ•‘ ํ‘œํ˜„์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์Šฅ์Šฅ ๋”ฐ๋ผํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋…์€ ํ›„๋ฃจ๋ฃฉ ์ฝ์œผ๋ฉด์„œ ์ž…๋ฌธ ๊ธฐ๋ณธ์„œ๋กœ ๋น ๋ฅด๊ณ  ํŒํ•˜๊ฒŒ ๋ณด๊ธฐ ์ข‹์€ ์ฑ…์ด๋‹ค. ๊ฐ์žํ•จ๋‹ˆ๋‹ค. ๊ทธ์น˜๋งŒ ๋ณด๋ฉด์„œ ๋“ค์—ˆ๋˜ ์˜๋ฌธ์  ํ•œ๊ฐ€์ง€ ๊ณผ์—ฐ ์—…๋ฌด๋ฅผ ํ•˜๋Š”๋ฐ ์žˆ์–ด์จ TDD ํŒจํ„ด์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์€ ์ •๋ง ์ด์ƒ์ ์ด๊ธด ํ•˜์ง€๋งŒ ์‹คํ–‰์ด ๊ฐ€๋Šฅ.. 2024. 3. 27.
[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.
2023 ํšŒ๊ณ  ์•ผ์•ผ์•ผ ์ž‘์„ฑ์ „ ๋ฐ˜์„ฑ ์˜ฎ๊ฒจ์ ์–ด์•ผ์ง€ ํ•˜๋ฉด์„œ ๋ฏธ๋ฃจ๋‹ค๋ฏธ๋ฃจ๋‹ค ์˜ค๋Š˜์—์„œ์•ผ ๋‹ค์‹œ ์ž‘์„ฑ์ค‘ 1์›”1์ผ์— ๊ตฟ๋…ธํŠธ์— ์ดˆ์•ˆ ์ž‘์„ฑํ•œ ๋ถ€๋ถ„ ์˜ฎ๊ธด ๊ฒƒ ํ™”์ดํŒ… ์•ผ์•ผ์•ผ Intro ํšŒ๊ณ ๋ฅผ ๋†“์€์ง€๊ฐ€ ์ข€ ๋˜์„œ ํ•œ ํ•ด๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋Š”๊น€์— ๋‹ค์‹œ ํšŒ๊ณ  ์Šต๊ด€๋„ ๊ธฐ๋ฅผ ๊ฒธ ์ž‘์„ฑ ๋…„ ํšŒ๊ณ ๋ฅผ ์˜ฌ๋ ธ์ง€๋งŒ ๋”ฐ๋กœ ๋…ธ์…˜์— 2024๋ถ€ํ„ฐ๋Š” ์ผ,์›”,๋ถ„๊ธฐํšŒ๊ณ ๋„ ์ง„ํ–‰์„ ํ•ด๋ณผ๊นŒ ํ•˜๋Š”์ค‘ 2023 ํšŒ๊ณ ๋Š” 2023์˜ ๋ชจ๋“ ๊ฒƒ์„ ๋˜๋Œ์•„ ๋ณด์ž๊ฐ€ ๋ชฉํ‘œ ํ•œ ๊ฒƒ - ์—…๋ฌด ๋ถ€๋ฌธ ์„œ๋น„์Šค ๊ฐœ์„  ๊ธฐ์กด ๊ฐœ์„ ํ–ˆ๋˜ ๋ฐฐ์น˜์— ๋Œ€ํ•ด์„œ ์šด์˜ ๋ฐฐํฌ ํ›„ ์ด์Šˆ๊ฐ€ ์žˆ์–ด ์™„๋ฒฝํ•˜๊ฒŒ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ๋ชปํ•œ ์ƒํ™ฉ์ด์—ˆ๋‹ค. ์–ด๋–ป๊ฒŒํ•˜๋‚˜ ์–ด๋–ป๊ฒŒํ•˜๋‚˜ ๋ฆฌ์„œ์น˜ ๋์— ์ƒˆ๋กœ์šด ์‹œ๋„๋กœ ๊ฐœ์„ ์„ ํ•ด์„œ ํ˜„์žฌ๋Š” ์ž˜ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๊ณ  ๊ธฐ์กด์— ๊ฐ„ํ—์ ์œผ๋กœ ๋ฐœ์ƒํ–ˆ๋˜ ์ด์Šˆ๋“ค์ด ์ง€๊ธˆ์€ ์ „ํ˜€ ๋‚˜์ง€ ์•Š๊ณ ์žˆ๋‹ค. ๋™์‹œ์— ์ฝœ์ˆ˜๋ฅผ ๋Œ€ํญ ์ค„์ด๋Š” ๊ฐœ์„ ๋„ ๋˜์—ˆ๋‹ค. ๊ฒฐ๊ตญ ์“ฐ๋กœํ‹€ ๊ฐœ์„ ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋А.. 2024. 1. 20.
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.