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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ49

Effective Java Study Effective Java Study ์Šคํฌ๋Ÿผ ์นœ๊ตฌ๋“ค๊ณผ ์ง„ํ–‰ํ•˜๋Š”์ค‘ 220925 ~ ํ˜ผ์ž ์ฑ…์„ ์ฝ์„ ๋•Œ๋ณด๋‹ค ํ™•์‹คํžˆ ๋„์›€์€ ๋” ๋งŽ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์žฌ๋ฐŒ๋‹น ํ™”์ดํŒ… https://github.com/now-study/study-effective-java 2023.07.06 ๋งˆ์ง€๋ง‰ ์Šคํƒ€๋”” ํ›„๊ธฐ ์˜ค ๊ทธ๋ž˜๋„ ์ฑ… ํ•œ๊ถŒ์€ ๋‹ค ๋„์—ˆ๋‹ค ์ฒจ์—๋Š” ๋‚˜๋ฆ„ ์—…๋ฌด์— ์ ์šฉํ• ๋งŒํ•œ ์˜ˆ์ œ + ์ฒ˜์Œ์˜ ์˜์ง€๋กœ ์งˆ๋ฌธ๋„ ์—ด์‹ฌํžˆ ์ดํ•ด๋„ ์—ด์‹ฌํžˆ ํ–ˆ๋Š”๋ฐ ๊ฐˆ์ˆ˜๋ก ์—…๋ฌด๋ž‘ ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋‚ด์šฉ์ด ๋‚˜์™€ ์ง‘์ค‘๋ ฅ์ด ์•ฝ๊ฐ„ ํํŠธ๋Ÿฌ ์กŒ๋‹ค. ๊ทธ๋ž˜๋„ ์ด๋Ÿด๋• ์ด๋Ÿฌ์ง€ ๋ง์•„๋ผ. ์ด๋Ÿด ๋• ์ด๋ž˜๋ผ ์ ๋‹นํ•œ ์ •๋ณด ์ •๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ค‘๊ฐ„์— ํฌ๊ธฐ ์•Š๊ณ , ์ฃผ 1ํšŒ 2-3 ์•„์ดํ…œ ์ •๋„์˜ ๊ฑฐ์˜ 1๋…„์„..ใ…Žใ…Ž ์ฒœ์ฒœํ–ˆ์ง€๋งŒ ๋๊นŒ์ง€ ํ•œ๊ถŒ ๋๋‚ธ๊ฑฐ ๋Œ€๋‹จํ•œ๊ฑฐ ๊ฐ™๋‹ค ์ด์ œ ๋‹ค์Œ ์Šคํ„ฐ๋””๋ฅผ ์‹œ์ž‘ํ•ด๋ณผ๊นŒ ์‹œ์Šค ํ™”.. 2022. 12. 1.
Select ์ฟผ๋ฆฌ ์‹คํ–‰ ์ค‘ Apparent connection leak detected Batch ๋™์ž‘ ์ค‘ Select ์ฟผ๋ฆฌ ์‹คํ–‰ํ•˜๋ฉด์„œ ๊ฐ„ํ—์ ์œผ๋กœ Leak์ด ๋‚œ๋‹ค. -> java.lang.Exception: Apparent connection leak detected ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์กฐ๊ฑด๊ณผ ๋™์ผํ•˜๊ฒŒ Database Tool๋กœ ๋Œ๋ ค๋ณด์•˜๋‹ค. ์ฟผ๋ฆฌ ์ž์ฒด๋Š” ์‹คํ–‰์ด ๋˜๋Š”๋ฐ Output์— ๊ฒฝ๊ณ ๊ฐ€ ๋œฌ๋‹ค. -> Memory capacity of 8388608 bytes for 'range_optimizer_max_mem_size' exceeded. Range optimization was not done for this query. ๋ฌธ์ œ๋Š” IN์ ˆ์— ๋„˜๊ธด ํŒŒ๋žŒ ๊ฐœ์ˆ˜.. IN์ ˆ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒฝ์šฐ, Where ์กฐ๊ฑด ๋ฒ”์œ„๊ฐ€ DB์— ์ œํ•œ๋œ ๋ฉ”๋ชจ๋ฆฌ 8388608 Bytes๋ฅผ ์ดˆ๊ณผํ•œ๋‹ค. ์ด๋Ÿฐ .. 2022. 12. 1.
ObjectMapper ์‚ฌ์šฉ List Mapping ObjectMapper ์‚ฌ์šฉํ•ด์„œ List๋ฅผ ํ•œ๋ฐฉ์— ํŠน์ • ํƒ€์ž…์˜ List๋กœ ๋งคํ•‘ ์‹œํ‚ฌ ๋•Œ list list mapping import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; ... ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //์—ฌ๊ธฐ ์„ ์–ธ ์•Š๊ณ  Model ์ชฝ์— lombok annotation ์‚ฌ์šฉํ•ด.. 2022. 11. 28.
[GCP] VM์˜ Disk, Memory ์ˆ˜์ง‘์„ ์œ„ํ•œ Ops Agent ์„ค์น˜ ์„ค์น˜ ๊ฐœ์š” ํด๋ผ์šฐ๋“œ ์ •์ฑ… ์ƒ Memory, Disk ์ •๋ณด๋Š” ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. AWS, Azure, GCP ๋ชจ๋‘ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฉฐ, ํ•ด๋‹น utilization์ด๋‚˜ ๊ธฐํƒ€ ์ถ”๊ฐ€์ ์ธ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘์„ ์›ํ•˜๋ฉด ๊ฐ ๋ฒค๋” ๋งˆ๋‹ค ์ง€์›ํ•˜๋Š” agent๋ฅผ ์„ค์น˜ํ•ด์„œ ์ˆ˜์ง‘์„ ์ง„ํ–‰ํ•ด์•ผํ•œ๋‹ค. GCP๋Š” ๊ธฐ์กด์— Stack Driver Agent๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋“ฏ ํ–ˆ์œผ๋‚˜ ๊ณง ์ง€์› ์ข…๋ฃŒ๋กœ ๋ณด์ด๋ฉฐ, ํ˜„์žฌ๋Š” Ops Agent ์„ค์น˜๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๊ณตํ†ต ๊ธฐ๋ณธ ์„ค์ • Cloud Monitoring API ์‚ฌ์šฉ ์ฒดํฌ (API ํ™œ์„ฑํ™”) https://console.cloud.google.com/apis/api/monitoring/metrics ์—ญํ•  ์ƒ์„ฑ monotoring.timeSerires.create ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค ์—ญํ•  ์ถ”๊ฐ€ ์ƒ์„ฑํ•œ ์—ญํ• ์„.. 2022. 7. 30.
A fatal error has been detected by the Java Runtime Environment. Docker Alphine Image Crashed Exception ์ด์Šˆ ํŠน์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์•ŒํŒŒ์ธ ์ด๋ฏธ์ง€ ๋ฏธ์ง€์› ์ด์Šˆ๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋œจ์ž๋งˆ๋‹ค ๋ป—์–ด๋ฒ„๋ฆผ ์›์ธ google api๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๊ณ , ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  bom์„ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์•ˆ์— ์žˆ๋Š” Library์ค‘์˜ ์ผ๋ถ€๊ฐ€ Alphine ์ด๋ฏธ์ง€๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด์Šˆ com.google.cloud libraries-bom 25.3.0 pom import ๋กœ์ปฌ์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ, Docker๋กœ ์˜ฌ๋ฆฐ ๊ฐœ๋ฐœ ECS ์ปจํ…Œ์ด๋„ˆ์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ๋Š” ๊ฑ ์ด๋ฏธ์ง€ ๊ต์ฒด ์•ŒํŒŒ์ธ์ด ๊ฐ€๋ฒผ์›Œ์„œ ์ผ๋‹ค์ง€๋งŒ ์•ˆ๋œ๋‹ค๊ธฐ์— ๋‹ค๋ฅธ slimํ•œ ์ด๋ฏธ์ง€๋กœ ๊ต์ฒด -> ๋„์ปคํŒŒ์ผ ๋‚ด image ์ถ”๊ฐ€ ๋ฐ wget์ด ์•ˆ๋œ๋‹ค๊ธฐ์— ํ•ด๋‹น ๋ช…๋ น์–ด๋„ ์ถ”๊ฐ€ (as-is image : amazoncorretto:8-alpine-jre) .... 2022. 7. 25.
Clone์œผ๋กœ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™” ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ณ  ์ƒˆ๋กœ ๊ตฌ์„ฑํ•ด์„œ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ Clone ํ•˜์—ฌ, ๊ธฐ์กด Git ์—ฐ๊ฒฐ์„ ๋Š๊ณ  Commit๋“ค์„ ์ดˆ๊ธฐํ™” ํ•œ ํ›„ ํ•„์š” ํŒŒ์ผ๋“ค๋งŒ ์ถ”๋ ค์„œ ์ปค๋ฐ‹ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ƒˆ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•. Clone ๋œฌ ์›๊ฒฉ ๋ถ€ํ„ฐ ๋Š๊ธฐ git remote -v git remote remove origin ์›๊ฒฉ ์—ฐ๊ฒฐ ๋Š๊ณ  ๋‚œ ํ›„ Git ์ดˆ๊ธฐํ™” rm -rf .git git init ์ฒซ Commit ์ž‘์„ฑ git add . git commit -m "Initial Commit" ์›๊ฒฉ ์ €์žฅ์†Œ(Bitbucket, github ...)์— ์ƒˆ๋กœ์šด Repository ์ƒ์„ฑ git ์ €์žฅ์†Œ ์—ฐ๊ฒฐ ํ›„ ํ‘ธ์‰ฌ git remote add origin {remoteUrl} git push -u --force or.. 2022. 5. 28.
[Java] List ๋‚˜๋ˆ„๊ธฐ As-Is ํž˜๋“ค๊ฒŒ ๋‚˜๋ˆ„๋Š” ๋ฒ• (subList) public static void main(String[] args) { List integerList = new ArrayList(); for(int i = 0; i 2022. 5. 23.
[Java] Null String Casting Null์„ String์œผ๋กœ Castingํ•  ๋•Œ, Null Pointer Exception ์•ˆ๋ฐœ์ƒํ•จ. ์ž˜ ์บ์ŠคํŒ…๋จ 2022. 4. 29.
[Java] Map ์ œ๊ณต ๋ฉ”์„œ๋“œ๋“ค ์ •๋ฆฌ map.getOrDefault(key,0) null ์ธ ๊ฒฝ์šฐ Default ๊ฐ’ 0์œผ๋กœ ์ง€์ • map.containsKey('A') ํ‚ค ๊ฐ’์— ํ•ด๋‹น ๊ฐ’(A)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ map.size() ๋งต ํฌ๊ธฐ ์ฒดํฌ map.isEmpty() ๋งต์ด ๋น„์–ด์žˆ๋Š”์ง€ ์ฒดํฌ map.remove('A') ๋งต์—์„œ ํ‚ค๊ฐ€ A์ธ ํ•ญ๋ชฉ ์‚ญ์ œ A๋ผ๋Š” ํ‚ค์˜ value๊ฐ’ ๋ฆฌํ„ด 2022. 4. 26.