user-img
Language 91
thumbnail
[Java] JSON ์ง๋ ฌํ™”์˜ ๋ชจ๋“ ๊ฒƒ
1. JSON ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ๐Ÿ’ก(1) ์ •์˜JSON์ด๋ž€ JavaScript Object Notation์˜ ์•ฝ์ž๋กœ Javascript ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตํ™˜ ์–‘์‹์ด๋‹ค.JS ๊ฐ์ฒด์˜ ํ˜•ํƒœ : javascript ๊ฐ์ฒด๋Š” (key: value) ํ˜•ํƒœ์˜ ๊ฐ’๋“ค์ด ๋‚˜์—ด๋œ ๊ตฌ์กฐ์ด๋‹ค. java์—์„œ HashMap๊ณผ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. js์—์„œ๋Š” ๋”ฐ๋กœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ํƒ€์ž… ์„ ์–ธ์ด ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด ๋ฌธ๋ฒ•์ด ๋น„๊ต์  ๊ฐ„ํŽธํ•˜๋‹ค.(2) ํŠน์ง•a. ์–ธ์–ด ๋…๋ฆฝ์ ์ธ ์–‘์‹์ด๋‹ค.๋ถ„๋ช… JS ๊ฐ์ฒด ํ˜•ํƒœ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์–‘์‹์ด์ง€๋งŒ, javascript ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€๋‹ค์ˆ˜์˜ ์–ธ์–ด, ๊ทธ ์–ธ์–ด ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.b. ์ƒํƒœ๋ฅผ ๊ตํ™˜ํ•œ๋‹ค.JSON์„ ํ†ตํ•ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ž€ ํŠน์ • ๊ฐ์ฒด ํ˜น์€ ๊ฐ’๋“ค์˜ ์ƒํƒœ์ด๋‹ค. ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•˜..
2024.11.05
Language/Java
thumbnail
JAVA์—์„œ์˜ ๊ฐ์ฒด ์ง๋ ฌํ™” ๋น„๊ต (Byte Stream ์ง๋ ฌํ™” vs JSON ์ง๋ ฌํ™”)
0. ์•Œ์•„๋ณผ ๋‚ด์šฉJava์˜ ๊ฐ์ฒด ์ง๋ ฌํ™”์—๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.์ฒซ ๋ฒˆ์งธ๋กœ, Serializable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ Byte Stream ์ง๋ ฌํ™”ํ•˜๋Š” ๊ฒƒ ์ด๋‹ค.๋‘ ๋ฒˆ์งธ๋กœ, RESTful API Sever๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ๊ฐ์ฒด๋ฅผ JSON ์ง๋ ฌํ™”ํ•˜๋Š” ๊ฒƒ ์ด๋‹ค.๋‘ ๊ฐ€์ง€์˜ ์ฐจ์ด์ ์€ ์–ด๋ ดํ’‹์ด ์•Œ์ง€๋งŒ, ์ œ๋Œ€๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ธฐ์–ตํ•˜์ง€ ์•Š์•˜๋”๋‹ˆ, ๋‘ ๋ฐฉ๋ฒ•์˜ ๊ตฌํ˜„ ๋ฐฉ์‹๊ณผ ํ™œ์šฉ๋ฒ•์ด ์„œ๋กœ ๋’ค์ฃฝ๋ฐ•์ฃฝ ์„ž์—ฌ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์ง๋ ฌํ™”์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ์•Œ์•„๋ณด๊ณ , ๊ทธ ์ฐจ์ด์ ์„ ๊ตฌ๋ถ„ํ•˜๋ ค ํ•œ๋‹ค.์—ฌ๊ธฐ์„œ๋Š” ๋จผ์ € ๋‘ ์ง๋ ฌํ™”์˜ ์˜๋ฏธ๋งŒ ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๊ณ  ์ฐจ์ด์  ์„ค๋ช…์— ๋” ์ง‘์ค‘ํ•˜๊ฒ ๋‹ค.๋งŒ์•ฝ ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„์€ ๊ฐ ํ•ญ๋ชฉ ๋ณ„ ๋” ์•Œ์•„๋ณด๊ธฐ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.๋‹ค์Œ๊ณผ ๊ฐ™์€ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ..
2024.11.04
Language/Java
thumbnail
[Java] Hash ๋™๋“ฑ์„ฑ ์žฌ์ •์˜๋ฅผ ํ†ตํ•œ Hash ์ผ๊ด€์„ฑ ์ง€ํ‚ค๊ธฐ (hashcode(),equals() ์žฌ์ •์˜, ๋‘˜์˜ ๊ด€๊ณ„) ์ค‘ํ•™์ƒ๋„ ์ดํ•ด ๊ฐ€๋Šฅ!
1. ๋ฌด์—‡์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋‚˜์š”? ๐Ÿค”๐Ÿ’ญ์ด๋ฒˆ์— ์•Œ์•„๋ณผ ๋‚ด์šฉ์€ Hash ํ˜•ํƒœ์˜ ์ž๋ฃŒ ๊ตฌ์กฐ์—์„œ (ex - HashMap, HashSet ๋“ฑ) ์ €์žฅ๋œ ์ž๋ฃŒ๊ฐ„์˜ ๋™๋“ฑ์„ฑ์„ ์–ด๋–ป๊ฒŒ ๋น„๊ตํ•˜๋Š”์ง€์™€ ์ด๊ฒƒ์„ ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด์— ๋งž๊ฒŒ ์žฌ์ •์˜ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.2. ์™œ ์ด๊ฑธ ์•Œ์•„์•ผ ํ•˜์ฃ ? ๐Ÿคท๐Ÿป‍โ™‚๏ธ๋ฌผ๋ก  HashMap์˜ key๋‚˜ HashSet์˜ ๊ฐ’์œผ๋กœ ์›์‹œ์ž๋ฃŒํ˜•๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ํ•ด๋‹น ๋‚ด์šฉ์„ ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์—†๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ HashMap์˜ key๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“  ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ˆœ๊ฐ„์ด ์˜จ๋‹ค๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์„ ์•„๋Š” ๊ฒƒ์ด ๊ทนํžˆ ๋„์›€์ด ๋˜๊ณ , ๋ฌธ์ œ ํ•ด๊ฒฐ ์‹œ์•ผ๋ฅผ ๋„“ํ˜€์ค€๋‹ค.์™œ๋ƒํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์žฌ์ •์˜ ํ•ด์ฃผ์ง€ ์•Š๋Š” ์ด์ƒ Hash ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ฐ์ฒดํ˜• ์ž๋ฃŒ์— ๋Œ€ํ•œ ๋™๋“ฑ์„ฑ ๋น„๊ต๋ฅผ ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.(1)..
2024.10.18
Language/Java
thumbnail
java TreeMap์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!
(1) ์ •์˜Red-black Tree๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ Key ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋˜๋Š” Map์ด๋‹ค.์ •๋ ฌ ๊ธฐ์ค€์€ default๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Comparator๋ฅผ ๋„ฃ์œผ๋ฉด, ๊ฐœ๋ฐœ์ž ์ž…๋ง›์— ๋”ฐ๋ผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. TreeMap map = new TreeMap((o1,o2) -> (return o1.score - o2.score)); Red-black Tree ๋ž€? ์ด์ง„ํƒ์ƒ‰์„ ๋ณด์™„ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•œ Tree ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. ์ด์ง„ํƒ์ƒ‰์€ ์ผ๋ฐ˜์ ์œผ๋กœ O(logN)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์„œ, ์ผ์žํ˜• Tree๊ฐ€ ๋‚˜์˜ฌ ๊ฒฝ์šฐ(ex- ๊ณ„์† ์ž‘์€ ๊ฐ’์˜ ๋ฐ์ดํ„ฐ๋งŒ ์ž…๋ ฅ ๋“ฑ) O(n)์ด๋ผ๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋“ ๋‹ค. ์ด์— ๋น„ํ•ด Red-black Tree๋Š” ๋ถ€๋ชจ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํฐ ๊ฐ’์€ ์˜ค๋ฅธ์ชฝ, ์ž‘์€..
2024.07.18
Language/Java
Enum์— ๋Œ€ํ•˜์—ฌ
Enum์€ ์—ด๊ฑฐํ˜•์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (์˜์–ด๋กœ๋Š” enumerated type์ด๋ผ ํ•˜๊ณ  ์ด๊ฒƒ์˜ ์ค„์ž„๋ง์ด๋‹ค.) Enum์€ ‘์š”์†Œ’ ํ˜น์€ ‘๋ฉค๋ฒ„’ ๋ผ ๋ถˆ๋ฆฌ๋Š” ๋ช…๋ช…๋œ ๊ฐ’์˜ ์ง‘ํ•ฉ์„ ์ด๋ฃจ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ์—ฌ๊ธฐ์„œ ‘๋ช…๋ช…๋˜๋‹ค.’๋ž€ ์–ด๋–ค ๋ฌผ๊ฑด์ด๋‚˜ ์ผ์— ์ด๋ฆ„์ด ์ง€์–ด์ ธ ๋ถ™์—ฌ์ง€๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. Enum์˜ ๋ฉค๋ฒ„๊ฐ€ ๋˜๋Š” ๋…€์„๋“ค์€ ์ฃผ๋กœ ์–ด๋–ค ๋ฌผ๊ฑด์ด๋‚˜ ์ผ์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์ˆ˜ ์—ญํ• ์„ ํ•œ๋‹ค.
2024.01.16
Language/Java
๋ชฐ๋ž๋˜ ๊ฒƒ
1. Intger ์ปฌ๋ž™์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ int ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๊ธฐ. int [] arr = map.keySet().stream().mapToInt(x->x).toArray(); maptoInt(x->x): ์ปฌ๋ž™์…˜ ํ”„๋ ˆ์ž„ ์›Œํฌ์—๋Š” ๊ฐ’๋“ค์„ Wrapper Class์ธ Integer๋กœ ๋‹ค ์ €์žฅ ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฐ์—ด์— ์ €์žฅํ• ๋ ค๋ฉด type์ด ์›์‹œํƒ€์ž…(int, double,...) ์—ฌ์•ผ ํ•œ๋‹ค ํ•ด๋‹น maptoInt๋Š” ์ปฌ๋ž™์…˜ ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ’์„ IntStream์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. (IntStream ์›์‹œ ํƒ€์ž… int์— ๋Œ€ํ•œ Stream ์ด๋‹ค.) toArray(): ์ปฌ๋ž™์…˜์„ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜. (์›์‹œ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ€ ๊ฑฐ๋ฉด, ์ธ์ˆ˜๋„ ์›์‹œ ํƒ€์ž…์ด์–ด์•ผ ํ•œ๋‹ค.) 2. String ArrayList๋ฅผ String ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ• String..
2023.05.21
Language/Java
thumbnail
์ฝœ๋ฐฑ (Call Back)
1. ์ฝœ๋ฐฑ์ด๋ž€? ํ•˜๋‚˜์˜ ์ฝ”๋“œ์— ์ธ์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ Call back์ด๋ผ ํ•œ๋‹ค. ์–ด๋–ค ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜๋ฅผ Call back ํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. 2. ์ฝœ๋ฐฑ ์˜ˆ์ œ 3๊ฐ€์ง€ (1) ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ const a = (callback) => { console.log("A"); callback(); }; const b = () => { console.log("B"); }; a(b); ๋งจ ๋งˆ์ง€๋ง‰ ๋ฌธ์„ ๋ณด๋ฉด, a๋ผ๋Š” ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ b ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ๋„ฃ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด console.log(b) ํ–ˆ์„ ๋•Œ ์ฒ˜๋Ÿผ b ํ•จ์ˆ˜ ์ž์ฒด๊ฐ€ a์˜ ์ธ์ˆ˜๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  3๋ฒˆ์งธ ์ค„์„ ๋ณด๋ฉด callback()์€ ์ธ์ˆ˜๋กœ ๋ฐ›์€ b() ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ์‹คํ–‰ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ถœ๋ ฅ์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (2) ์‘์šฉ // ..
2023.04.20
Language/JS
์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ (IIFE)
1. ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜ ํ•จ์ˆ˜๋Š” ์›๋ž˜ ์„ ์–ธ๋ถ€ (ํ˜น์€ ํ‘œํ˜„์‹)๊ณผ ํ˜ธ์ถœ๋ถ€๊ฐ€ ๋”ฐ๋กœ ํ•„์š”ํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„ ์–ธ๋ถ€๋Š” ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๊ธฐ์ˆ ๋งŒ ํ•˜์—ฌ ๋†“์€ ๊ณณ์ด๊ณ , ํ˜ธ์ถœ๋ถ€๋Š” ํ•จ์ˆ˜์˜ ๋‚ด์šฉ์„ ์“ฐ๋Š” ๊ณณ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฆ‰์‹œ ์‹คํ–‰ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์„ ์–ธ๊ณผ ํ˜ธ์ถœ์„ ํ•œ๋ฒˆ์— ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ๋ฐ‘์— ์ฆ‰์‹œ ์‹คํ–‰ํ•จ์ˆ˜ ์‚ฌ์šฉ ํŒจํ„ด์„ ๋ฐฐ์šฐ๊ฒ ์ง€๋งŒ, ๋Œ€ํ‘œ์ ์ธ ํŒจํ„ด์œผ๋กœ ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜์˜ ๋ชจ์Šต์„ ์‚ดํŽด๋ณด๋ฉด, //(์‹คํ–‰ํ•  ํ•จ์ˆ˜)(์ธ์ˆ˜); // ์˜ˆ์‹œ ((a) => { console.log(a*2); })(7); ์ด์™€ ๊ฐ™๋‹ค. ()() ๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ํ˜•ํƒœ๋กœ, ์ฒซ๋ฒˆ์งธ ()์—๋Š” ์‹คํ–‰ํ•  ํ•จ์ˆ˜, ๋‘๋ฒˆ์งธ ()์—๋Š” ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐˆ ์ธ์ž๋ฅผ ๊ธฐ์ˆ ํ•˜๋ฉด ๋œ๋‹ค. 2. ํŒจํ„ด // ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜ ํŒจํ„ด // 1. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ์‚ฌ์šฉ ํŒจํ„ด -> ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ์ฆ‰์‹œ ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์€..
2023.04.20
Language/JS