Language/Java
59
[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
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
Thread
1. ์ฉ์ด์ ๋ฆฌ (1) ํ๋ก๊ทธ๋จ์ด๋? ํน์ ์์
์ ์ํํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ธฐ๊ณ. (๊ฐ๋ ์ํ๋ ์ํ, ์ฃฝ์ ์ํ) (2) ํ๋ก์ธ์๋? ์๋ํ๋ ์ํ์ ํ๋ก๊ทธ๋จ์ ์ผ์ปซ๋ ๋ง (๊ฐ๋ ์ค์ธ ์ํ, ์ด์์๋ ์ํ) (3) ์ฐ๋ ๋๋? ํ๋ก์ธ์๋ฅผ ์๋์ํค๊ณ ์๋ ๋
์์ผ๋ก, ํน์ ์์
์ ์ํ์ค (๊ธฐ๊ณ๋ฅผ ๋๋ฆฌ๊ณ ์๋ ์ธ๋ถ) (4) ํ๋ก์ธ์ค๋? ํ๋ก๊ทธ๋จ์ด ๋ค์ด์ ์์
์ ์ฒ๋ฆฌํ๋ ๊ณต๊ฐ. ๋ณดํต ์ค์ ์ํ๋ฉด, ํ๋์ ํ๋ก์ธ์ค์ ํ๋์ ์ฐ๋ ๋๋ง ์กด์ฌํ๋ค. ํ๋ก์ธ์ค์ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๋ฅผ ๋๋ ค์ ํ๋ก๊ทธ๋จ๋ค์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋๋๋ก ํ ์ ์๋ค. (ํ์ง๋ง ์ด๊ฒ ์ง์ง๋ก ์ผ์ด ๋์์ ์งํ๋๋ ๊ฒ์ด ์๋๋ผ, ๋ ๊ฐ์ง ์ผ์ด ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ณ ์์ง๋ง, ๊ทธ ๋์ด ์ค์์นญ ํ๋ ๊ฒ ๋๋
ธ๋ฏธํฐ ์ด๋ก ์ด๋ฃจ์ด์ ธ์, ์ฌ๋๋ค ๋์๋ ๊ทธ๊ฒ ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ๋ ๊ฒ์ฒ๋ผ ..
2023.03.09
Language/Java