user-img
Language/Java 59
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
Runnable
runnable๋„ Thread์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ณ‘๋ ฌ ์ˆ˜ํ–‰์„ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. ๋‘˜์˜ ์ฐจ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Thread๋Š” ํด๋ž˜์Šค์ด๊ณ  runnable์€ ์ธํ„ฐํŽ˜์ด์Šค๋ž€ ๊ฒƒ์ด๋‹ค. ๋‹จ์ผ ์ƒ์† ์›์น™์— ๋”ฐ๋ผ Thread๋ฅผ ์ƒ์†ํ•œ ์ž์‹ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ, runnable๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋Š” ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์“ฐ๋ฉด์„œ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์žฅ์ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ import Chap_12.clean.CleanRunnable; public class _02_Runnable { public static void main(String[] args) { // ์“ฐ๋ ˆ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€ // 1. Thread ๋ผ๋Š” ํด๋ž˜์Šค ์ƒ์†ํ•ด์„œ ๋งŒ๋“ค๊ธฐ // 2, Runnable ์ด๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ํ•ด์„œ ๋งŒ..
2023.03.11
Language/Java
thumbnail
Thread
1. ์šฉ์–ด์ •๋ฆฌ (1) ํ”„๋กœ๊ทธ๋žจ์ด๋ž€? ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ธฐ๊ณ„. (๊ฐ€๋™ ์•ˆํ•˜๋Š” ์ƒํƒœ, ์ฃฝ์€ ์ƒํƒœ) (2) ํ”„๋กœ์„ธ์„œ๋ž€? ์ž‘๋™ํ•˜๋Š” ์ƒํƒœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์ผ์ปซ๋Š” ๋ง (๊ฐ€๋™ ์ค‘์ธ ์ƒํƒœ, ์‚ด์•„์žˆ๋Š” ์ƒํƒœ) (3) ์“ฐ๋ ˆ๋“œ๋ž€? ํ”„๋กœ์„ธ์„œ๋ฅผ ์ž‘๋™์‹œํ‚ค๊ณ  ์žˆ๋Š” ๋…€์„์œผ๋กœ, ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰์ค‘ (๊ธฐ๊ณ„๋ฅผ ๋Œ๋ฆฌ๊ณ  ์žˆ๋Š” ์ธ๋ถ€) (4) ํ”„๋กœ์„ธ์Šค๋ž€? ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด์™€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„. ๋ณดํ†ต ์„ค์ • ์•ˆํ•˜๋ฉด, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์— ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ๋งŒ ์กด์žฌํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋ฅผ ๋Œ๋ ค์„œ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. (ํ•˜์ง€๋งŒ ์ด๊ฒŒ ์ง„์งœ๋กœ ์ผ์ด ๋™์‹œ์— ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋‘ ๊ฐ€์ง€ ์ผ์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ณ  ์žˆ์ง€๋งŒ, ๊ทธ ๋‘˜์ด ์Šค์œ„์นญ ํ•˜๋Š” ๊ฒŒ ๋‚˜๋…ธ๋ฏธํ„ฐ ์ดˆ๋กœ ์ด๋ฃจ์–ด์ ธ์„œ, ์‚ฌ๋žŒ๋“ค ๋ˆˆ์—๋Š” ๊ทธ๊ฒŒ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ..
2023.03.09
Language/Java