๊ฐ๋ฐ์ํ42 git lfs ์ฌ๋ ธ๋ ๋ฐ์ดํฐ ์ญ์ lfs๋ก ์ฌ๋ ธ๋ ๋ฐ์ดํฐ๋ฅผ ๋์ด์ ์ฌ์ฉํ์ง ์์ ์ญ์ ํ๊ณ ์ถ์๋ค.์ต์ข ์ ์ผ๋ก ์ํ๋ ์ก์ ์ ์ถ์ ํ์ผ ์ญ์ , ์๋ณธ ๋ฐ์ดํฐ ๋ก์ปฌ๋ง ์ ์ง, lfs ์์ฒด uninstall 1. lfs์ ์ฌ๋ผ๊ฐ ์ถ์ ํ์ผ -> ์๋ณธ ํ์ผ๋ก ๋ณ๊ฒฝgit lfs fetch --allgit lfs checkout 2. lfs ๋ฐ์ดํฐ ์ถ์ ์ญ์ git lfs untrack "src/main/resources/data.csv"git lfs untrack "src/test/resources/testData.csv" ์ด๋ untrack๋ง ํ๋ฉด ๊ณ์ git lfs ls-files ํ ๋ ๋ณด์ด๋๋ผGit ์บ์์ ์ธ๋ฑ์ค๋ ์ ๋ฆฌํด์ค์ผํ๋ค๊ณ ํจgit rm --cached "src/main/resources/data.csv"git rm --cached "src/t.. 2024. 11. 3. ์ด๋ฏธ ์์ฑ๋์ด ์๋ ๋์ปค ์ปจํ ์ด๋(mysql)์ ์ database ์ถ๊ฐ ๊ฐ์์ด๋ฏธ ๊ณผ๊ฑฐ์ mysql8-container์ด๋ผ๋ ๋์ปค ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์ ์ง์คsample1 database๋ฅผ ๊ฐ๊ณ ์์์ผ๋, sample2 database๋ฅผ ์ถ๊ฐ ํ๊ณ ์ถ์๋ค.ํ ์คํธ ์ฉ์ด๋ผ ์ปจํ ์ด๋๋ฅผ ํ๋ ๋ ๋์ธ ํ์๋ ์๊ณ ์ค์ ๋ ๋ ์ถ๊ฐํ๊ธฐ ๊ท์ฐฎ์๋ค. -> ๊ธฐ ์ค์น ๋์ด์๋ ์ปจํ ์ด๋, ์ค์ ๋์ด์๋ ๊ณ์ ์ database๋ง ์ถ๊ฐํ๊ณ ๊ถํ๋ง ์ถ๊ฐํด์ฃผ๊ธฐ~~ ์์ ์์1. Terminal ์๊ฑฐ๋ ์ ์ํด์ ์ปจํ ์ด๋ ์ ์docker exec -it {{mysql8-container}} bash 2. MySQL ์ ๋ฃจํธ ๊ณ์ ์ผ๋ก ์ ์ mysql -u root -padmin 3. ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ CREATE DATABASE {{sample2}}; 4. ๊ธฐ์กด ์ ์ ์ ๊ถํ ๋ถ์ฌ GRANT ALL PR.. 2024. 10. 26. SSE ์ ์ฉ (3) - SSE ์ ์ฉ ์ ์ด์ ์ฒ๋ฆฌ 1. Event Share ์ด์ ์ฒ๋ฆฌ (๋์ ์ ์ ๊ณ ๋ ค)์ด์ - ์ฌ๋ฌ๊ฐ์ ํญ์ ๋์๋จ์ ๋ Emitter Subscribe Response๋ ๋ค OK๊ณ Event๊ฐ ์ ๋๋ก ์์ฑ์์ง๋ง ๊ฐ์ฅ ์ต๊ทผ์ ์์ฑ๋ ํญ๋ง event data ์ ํ ์ดํธ๊ฐ ๋จ ์์ธ - API์์ ๋์ผ ์ด๋ฒคํธ๊ฐ ์๋ ๋ค์ ์์ฑ๋ ๋์ผ ํค์ ์ด๋ฒคํธ๋ก ๋ฎ์ด ์ฐ๊ธฐ๊ฐ ๋์ด์ ธ๋ฒ๋ฆผ - = API์์ concurrentHashMap์ emitter ๋ด๊ณ ์๋๋ฐ ๋์ผ key๋ก ์ ๊ฒ์ผ๋ก ์์ด์ณ์ ธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ - emitter๋ ๊ณต์ ์๋จ - ์ด๋ฒคํธ ๊ตฌ๋ ์ด ํ์ํ ๋๋ง๋ค ์ฌ๋ฌ๊ฐ emitter๋ฅผ uuid ์ถ๊ฐ ๋ฐ idPrefix์ ์ฉํด์ Broadcast ์ idPrefix ํ์ ๊ฒ๋ค ๋ชจ๋ ์ ๋ฐ์ดํธ ๋๋๋ก ๋ณ๊ฒฝ 2. ์ธ์ฆ์ด์ - event subscribe์ .. 2024. 8. 19. SSE ์ ์ฉ (2) - ์ด์คํ๋ฅผ ์ ์ฉํด๋ณด์ ํ์์ฑ- ์ ๊ท ๊ตฌ์ถ ์คํ ์ด์ง ๋๋ถ๋ถ API 2๋ -> ์ค์ผ์ผ๋ง ์ด์ ๊ณ ๋ฏผ์ด ํ์- ํ์ฌ ๊ฐ๊ฐ API์ Subscribe, broadcast๊ฐ ์์ผ๋ฉด ์ด๋ฒคํธ ๋ฐ์ํ ์ชฝ์ ์๋ต ๋๋ฝ ๊ฐ๋ฅ์ฑ์ด ์์. ๊ตฌํ ๋ฐฉ๋ฒ- MQ๋ฅผ ์ด์ฉ - ๊ธฐ์กด์ ์ฌ์ฉ์ค์ธ ๋ฆฌ์์ค - Redis๋ Kafka๋ฅผ ๋ง์ด ์ฌ์ฉํ๋, ํ์ฌ ์ํฉ์์ SSE๋๋ฌธ์ ์ธํ๋ผ ์ถ๊ฐ๋ ๋ถ๊ฐํ ์ํฉ - ๋ค์ค ๋ก๊ทธ์ธ ์ด๋ ๊ฒ ์ฌํ๊น์ง ํ์ํ์ง ์์ (๋จ์ผ ๊ธฐ๊ธฐ ๋ก๊ทธ์ธ ํ๊ฒฝ) - ๊ตฌํ์ ์ด๊ฒ์ ๊ฒ ๋ณด๋ MQ๋ก ์ถฉ๋ถํ๊ฒ ๋์ ๊ฐ๋ฅํ ๊ฒ ๊ฐ์- Subscribe๋ ์ด๋ ์๋ฒ์์ ๋ฐ์ํด๋ ์๊ด์ด ์์, ๋ฐ๋ผ์ API๋ก ์งํ, Broadcast๋ MQ๋ก ์ ์ฉ- ์ด๋ฒคํธ ๋ฐ์ ์ ์ด๋ฒคํธ ID Prefix๋ฅผ ํ์ธํ์ฌ ๊ตฌ๋ ์ค์ธ ๋ชจ๋ ์๋ฒ์ ๋งคํ๋๋ ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ๋์์ Br.. 2024. 8. 19. github git-lfs ์ฌ์ฉ ๋์ฉ๋ ํ์ผ ์ ๋ก๋ ๊นํ๋ธ ํ์ผ ์ ๋ก๋ ์ 25๋ฉ๊ฐ ์ฉ๋ ์ ํ์ด ์์ git-lfs ์ด์ฉํด์ ์ ๋ฐ์ดํธ ํ์ ์ฃผ์ ์ฌํญ์ฌ๋ฆฌ๋ ์ฌ๋๋ ๋ฆฌํฌ๋ฅผ ํด๋ก ๋ฐ๋ ์ฌ๋๋ ๋ชจ๋ git-lfs๊ฐ ์ค์น ๋์ด์์ด์ผํจgit-lfs๊ฐ ์ค์น๋์ด์์ง ์์ PC์์ lfs๋ก ์ ๋ก๋ํ ํ์ผ์ ๋ค์ด๋ฐ์ผ๋ฉด ํฌ์ธํฐ๋ง ๋ค์ด๋ฐ์์ง ์ค์น ๋ฐ ์ ๋ก๋ ๋ฐฉ๋ฒ1. ์ค์น : brew install git-lfs2. lfs ์ด๊ธฐํ : git lfs install3. ํ์ผ ์ถ์ ์ค์ : git lfs track "*.csv" ex)csvํ์ผ์ ์ถ์ ํ๊ณ ์ถ๋ค.4. ํ์ผ ์ถ๊ฐ ๋ฐ ์ปค๋ฐ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ด๋git add .gitattributesgit add {์ด๋ฆ}.csvgit commit -m "Add large CSV file using Git LFS"git push origin m.. 2024. 8. 15. Group Concat Query DSL 1. UtilityClass๋ก ๋นผ์ ์์ ํ๊ธฐ ๋จ์ Group Concatpublic static StringTemplate getGroupConcatTemplate(StringPath field) { return Expressions.stringTemplate("GROUP_CONCAT(DISTINCT {0})", field);}//์ฟผ๋ฆฌ ์ฌ์ฉ์QueryTemplateUtils.getGroupConcatTemplate(account.accId).as("accGroupingString"), 2. QueryRepository Class์ ์ฟผ๋ฆฌ์์ ์ง์ ์ฌ์ฉํ๊ธฐ๋ฌธ์์ด ๋๊ฐ ์ฐ๊ฒฐ ํ Group Concat...Expressions.stringTemplate("GROUP_CONCAT(DISTINCT CONCA.. 2024. 8. 5. ๋กฌ๋ณต ๋น๋ ๊ธฐ๋ณธ๊ฐ ๋ชจ๋ธ์ ๊ธฐ๋ณธ๊ฐ์ ์ฃผ๊ณ ์ถ์ ๋, ๋น๋์์ ๋ฐ๋ก ์ง์ ์ํด๋ ํด๋น ์ด๋ ธํ ์ด์ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๋ณธ๊ฐ ์ธํ 2024. 6. 11. 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. ์ด์ 1 2 3 4 5 ๋ค์