๐Ÿค study/Java

    [Java] ObjectMapper๋ž€? | ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” | Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | Serialize, Deserialize | Json Parsing

    [Java] ObjectMapper๋ž€? | ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” | Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | Serialize, Deserialize | Json Parsing

    ObjectMapper๋ž€? : JSON ํ˜•์‹์„ ์‚ฌ์šฉํ•  ๋•Œ, ์‘๋‹ต๋“ค์„ ์ง๋ ฌํ™”ํ•˜๊ณ , ์š”์ฒญ๋“ค์„ ์—ญ์ง๋ ฌํ™” ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๋‹ค๋ฅธ ์„œ๋ฒ„๋“ค๊ณผ ์†Œํ†ตํ• ๋•Œ ๋ณดํ†ต json์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์•Œ์•„๋‘ฌ์•ผํ•จ! ์ง๋ ฌํ™”(Serialize) : Object๋ฅผ Textํ˜•ํƒœ์˜ JSON์œผ๋กœ๋„ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. ์—ญ์ง๋ ฌํ™”(Deserialize) : text ํ˜•ํƒœ์˜ JSON์„ Object๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. SpringBoot์˜ ๊ฒฝ์šฐ, spring-boot-starter-web์— ๊ธฐ๋ณธ์ ์œผ๋กœ Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด์„œ Object ↔ JSON ๊ฐ„ ๋ณ€ํ™˜์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค. Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ์ž๋ฐ”์—์„œ ๊ณ ์ˆ˜์ค€์˜ JSON Parser๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค @RestController์—์„œ๋Š”, Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด์„œ request..

    [Java] ์—๋Ÿฌ์ฒ˜๋ฆฌ | Try-catch | ์ปดํŒŒ์ผ ์˜ค๋ฅ˜, ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜, ๋…ผ๋ฆฌ ์˜ค๋ฅ˜ | ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• | checked, unchecked exception | ์˜ˆ์™ธ ์šฐ์„ ์ˆœ์œ„

    [Java] ์—๋Ÿฌ์ฒ˜๋ฆฌ | Try-catch | ์ปดํŒŒ์ผ ์˜ค๋ฅ˜, ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜, ๋…ผ๋ฆฌ ์˜ค๋ฅ˜ | ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• | checked, unchecked exception | ์˜ˆ์™ธ ์šฐ์„ ์ˆœ์œ„

    Try-catch try? catch? ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ž€ ๋ญ ํ•˜๋Š” ๊ฑด๊ฐ€์š”? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฅ˜์˜ ์ข…๋ฅ˜ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ : ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ๋ง‰๋Š” ์˜ค๋ฅ˜, ๋Œ€๋ถ€๋ถ„ ๋ฌธ๋ฒ•์ ์ธ ์˜ค๋ฅ˜๋‹ค. //1 (ํ‚ค์›Œ๋“œ ๋งž์ถค๋ฒ• ์˜ค๋ฅ˜) inet num = 1; //2 (์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ) boolean a = false //3 (endif๋ฌธ๋ถ€ํ„ฐ ์‚ฌ์šฉ) end if(!a) { return; } //4 (์„ ์–ธ์•ˆ๋œ ๋ณ€์ˆ˜ ์‚ฌ์šฉ) b = 3; ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜, ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—… ์‹œ๋„์‹œ ๋ฐœ์ƒ 1. 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ 2. ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๋Š” ๊ฒฝ์šฐ 3. null point error ๋…ผ๋ฆฌ ์˜ค๋ฅ˜ : ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ ์ž‘์—…์„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ์˜ค๋ฅ˜, ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜ try-catch ์ •์˜ : ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ ..

    [Java] length, size()์˜ ์ฐจ์ด

    [Java] length, size()์˜ ์ฐจ์ด

    ๐Ÿค length array.length -> ๋ฐฐ์—ด์˜ ๊ธธ์ด ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉ int[] array = new int[10]; System.out.println(array.length); // ์ถœ๋ ฅ : 10 ๐Ÿค size() list.size() -> collection ํƒ€์ž…์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ตฌํ• ๋•Œ ํ•„์š”ํ•˜๋‹ค.(ArrayList) List l = new ArrayList(); l.add(1); l.add(2); System.out.println(l.size()); // ์ถœ๋ ฅ : 2

    [Java] HashMap์ •๋ฆฌ

    [Java] HashMap์ •๋ฆฌ

    ๐Ÿ”ฅ ์ด ํฌ์ŠคํŒ…์€ ๋…ธ๋งˆ๋“œ์ฝ”๋”, ์ž๋ฐ”์˜์ •์„๋‹˜์˜ ์˜์ƒ์„ ๋ณด๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. HashMap์€ key-value ์‹œ์Šคํ…œ์œผ๋กœ Map ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค๋‹ค. ๐Ÿค HashMap๊ณผ List ๋น„๊ต List : O(N) - ์ผ์ผํžˆ ์•„์ดํ…œ์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ตฌ์กฐ(์•„์ดํ…œ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์‹œ๊ฐ„์ด ์ฆ๊ฐ€) HashMap : O(1) - ์ฐพ๋Š”๋ฐ ๋‹จ 1 ์Šคํ…๋งŒ ๋“ค์–ด๊ฐ => ๋งค์šฐ ๋น ๋ฆ„! ๐Ÿค ํ•ด์‹ฑ(Hashing)์ด๋ž€? hash function์„ ํ†ตํ•ด data๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ• key๊ฐ’์„ ๋„ฃ์œผ๋ฉด index(์ €์žฅ์œ„์น˜, Hash Code)๋ฅผ ์•Œ๋ ค์ค€๋‹ค. โญ๏ธ ํ•ด์‹ฑ ์ˆœ์„œ : ํ‚ค๋กœ ํ•ด์‹œํ•จ์ˆ˜ ํ˜ธ์ถœ -> hash function์„ ํ†ตํ•ด hash code์–ป์–ด์˜ด -> hash code์— ๋Œ€์‘ํ•˜๋Š” ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ ๋ฐฐ์—ด์—์„œ ์ฐพ์Œ -> ..

    [Java] ์ •๊ทœ์‹ ์ •๋ฆฌ

    ๊ณ„์† ์ถ”๊ฐ€ํ•  ๊ณ„ํš.. ๐Ÿค ๋ฌธ๋ฒ• 1. ์—ฐ์†๋œ ๋ฌธ์ž์—ด ์น˜ํ™˜ํ•˜๊ธฐ str.replaceAll("\\s{2,}", ""); \\s : ๋ฌธ์ž์—ด (ํŠน์ˆ˜๋ถ€ํ˜ธ์˜ ์—ฐ์†์ธ ๊ฒฝ์šฐ \\. ์™€ ๊ฐ™์ด ์‚ฌ์šฉ) {2,} : 2ํšŒ ์ด์ƒ์˜ 2. ํŠน์ • ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฌธ์ž ์ œ๊ฑฐ s = s.replaceAll("[^\\d\\-_.]*", ""); //์ˆซ์ž๋‚˜ -,_,.์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š์œผ๋ฉด ๋ชจ๋‘ ์ œ๊ฑฐ \\d : ์ˆซ์ž(0-9)๋ฅผ ์˜๋ฏธ ^ : (์ค‘๊ด„ํ˜ธ ์•ˆ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ)not์กฐ๊ฑด, "๊ทธ ๋’ค์— ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ž์—ด์— ํ•ด๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ~" ์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง. \\ : \d์™€ ๊ฐ™์€ \๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ๋ฒ•์ด๋‚˜ ํŠน์ˆ˜๋ฌธ์ž์˜ ์‚ฌ์šฉ์— ํ•„์š”ํ•จ 3. ํŠน์ • ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ œ๊ฑฐ new_id = new_id.replaceAll("^[.]|[..

    [Java] ArrayList<Integer>๋ฅผ int[]๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

    1. int์™€ Integer์˜ ์ฐจ์ด int๋Š” primitive ์ž๋ฃŒํ˜•์œผ๋กœ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ null๋กœ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด ํŠน์ง•์ด๋‹ค. Integer๋Š” Wrapper ํด๋ž˜์Šค๋กœ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ null๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์„ ์–ธ int i = 0; Integer j = new Integer(10); Integer๊ฐ€ ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Unboxing๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. Integer j = new Integer(5); int k = j.intValue(); //unboxing 2. ArrayList๋ฅผ int[]๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ• List list = new ArrayList(Arrays.asList(1,2,3,4)); System.out.println(list.getClass().getSimpleName..