Language
91
[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
JAVA์์์ ๊ฐ์ฒด ์ง๋ ฌํ ๋น๊ต (Byte Stream ์ง๋ ฌํ vs JSON ์ง๋ ฌํ)
0. ์์๋ณผ ๋ด์ฉJava์ ๊ฐ์ฒด ์ง๋ ฌํ์๋ ๋ ๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋ค.์ฒซ ๋ฒ์งธ๋ก, Serializable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ Byte Stream ์ง๋ ฌํํ๋ ๊ฒ ์ด๋ค.๋ ๋ฒ์งธ๋ก, RESTful API Sever๋ฅผ ๊ตฌํํ ๋, ๋ฐ์ดํฐ ๊ตํ์ ์ํด ๊ฐ์ฒด๋ฅผ JSON ์ง๋ ฌํํ๋ ๊ฒ ์ด๋ค.๋ ๊ฐ์ง์ ์ฐจ์ด์ ์ ์ด๋ ดํ์ด ์์ง๋ง, ์ ๋๋ก ๊ตฌ๋ถํ์ฌ ๊ธฐ์ตํ์ง ์์๋๋, ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ ๋ฐฉ์๊ณผ ํ์ฉ๋ฒ์ด ์๋ก ๋ค์ฃฝ๋ฐ์ฃฝ ์์ฌ ์์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๊ฐ์ง ํํ์ ์ง๋ ฌํ์ ๋ํด ์ ํํ ์์๋ณด๊ณ , ๊ทธ ์ฐจ์ด์ ์ ๊ตฌ๋ถํ๋ ค ํ๋ค.์ฌ๊ธฐ์๋ ๋จผ์ ๋ ์ง๋ ฌํ์ ์๋ฏธ๋ง ๊ฐ๋ตํ ์์๋ณด๊ณ ์ฐจ์ด์ ์ค๋ช
์ ๋ ์ง์คํ๊ฒ ๋ค.๋ง์ฝ ๋ ์์ธํ ์๊ณ ์ถ์ ๋ถ์ ๊ฐ ํญ๋ชฉ ๋ณ ๋ ์์๋ณด๊ธฐ๋งํฌ๋ฅผ ํตํด ํ์ธํ๊ธฐ ๋ฐ๋๋ค.๋ค์๊ณผ ๊ฐ์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ..
2024.11.04
Language/Java
[Java] Hash ๋๋ฑ์ฑ ์ฌ์ ์๋ฅผ ํตํ Hash ์ผ๊ด์ฑ ์งํค๊ธฐ (hashcode(),equals() ์ฌ์ ์, ๋์ ๊ด๊ณ) ์คํ์๋ ์ดํด ๊ฐ๋ฅ!
1. ๋ฌด์์ ๋ํด ์์๋ณด๋์? ๐ค๐ญ์ด๋ฒ์ ์์๋ณผ ๋ด์ฉ์ Hash ํํ์ ์๋ฃ ๊ตฌ์กฐ์์ (ex - HashMap, HashSet ๋ฑ) ์ ์ฅ๋ ์๋ฃ๊ฐ์ ๋๋ฑ์ฑ์ ์ด๋ป๊ฒ ๋น๊ตํ๋์ง์ ์ด๊ฒ์ ์ฐ๋ฆฌ์ ํ๋ก์ ํธ๋ ์๊ณ ๋ฆฌ์ฆ ํ์ด์ ๋ง๊ฒ ์ฌ์ ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ๋ค.2. ์ ์ด๊ฑธ ์์์ผ ํ์ฃ ? ๐คท๐ปโ๏ธ๋ฌผ๋ก HashMap์ key๋ HashSet์ ๊ฐ์ผ๋ก ์์์๋ฃํ๋ง์ ์ฌ์ฉํ๋ค๋ฉด, ํด๋น ๋ด์ฉ์ ์์๋ณผ ํ์๊ฐ ์๋ค. ํ์ง๋ง ๋ง์ฝ HashMap์ key๋ก ์ฐ๋ฆฌ๊ฐ ์๋กญ๊ฒ ๋ง๋ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ผํ๋ ์๊ฐ์ด ์จ๋ค๋ฉด ํด๋น ๋ด์ฉ์ ์๋ ๊ฒ์ด ๊ทนํ ๋์์ด ๋๊ณ , ๋ฌธ์ ํด๊ฒฐ ์์ผ๋ฅผ ๋ํ์ค๋ค.์๋ํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ฌ์ ์ ํด์ฃผ์ง ์๋ ์ด์ Hash ์๋ฃ๊ตฌ์กฐ๋ ๊ฐ์ฒดํ ์๋ฃ์ ๋ํ ๋๋ฑ์ฑ ๋น๊ต๋ฅผ ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค.(1)..
2024.10.18
Language/Java
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
์ฝ๋ฐฑ (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