๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€36

[JAVA] Stream API Stream API???๋žŒ๋‹ค๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฐฐ์—ด์ด๋‚˜ Collection ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์„ ๋”ธ๊น(?)ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” API๋‹ค.๋ฐ์ดํ„ฐ์˜ CRUD๊ฐ€ ํ•„์š”ํ•  ๋•Œ, for๋ฌธ์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜, Iterator๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์—ˆ์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ณ ,ํƒ€์ž…๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์™”๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ๋ฉ”์„œ๋“œ๋งŒ ์ฃผ๋ ์ฃผ๋  ๋‹ฌ๋ฉด์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ทธ๋Ÿฐ API๊ฐ€ ๋˜์‹œ๊ฒ ๋‹ค. Stream์˜ ํŠน์ง•- ์ƒ์„ฑ - ์ค‘๊ฐ„ ์ฒ˜๋ฆฌ - ์ตœ์ข… ์ฒ˜๋ฆฌ ์ˆœ์„œ๋กœ ์ด์–ด์ง„๋‹ค.- ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ๊ฐ ๋‹จ๊ณ„๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋งŒ๋“ค์–ด์ง„ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ค์Œ ๋ฉ”์„œ๋“œ์— ๋„˜๊ธฐ๋Š” ๋ฐฉ์‹์ด๋‹ค.- ์ตœ์ข… ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ๋‹ค์‹œ ์ค‘๊ฐ„์ฒ˜๋ฆฌ๋กœ ๊ฐˆ ์ˆ˜ ์—†๊ณ , ์žฌ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.- ์ค‘๊ฐ„ ์ฒ˜๋ฆฌ๋Š” ์ตœ.. 2024. 7. 25.
[JAVA] Lambda Lambda(๋žŒ๋‹ค)๊ฐ€ ๋ญ์˜ˆ์š”๋žŒ๋‹ค๋Š” ์ •์˜ํ•˜์ž๋ฉด ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ˜•ํƒœ๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์ด๋‹ค.์ด์ „์— ์ •์˜ํ–ˆ๋˜ ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ์ง€์นญํ•˜๋Š” ์šฉ์–ด์ด๊ธฐ๋„ ํ•˜๋ฉด์„œ ๋Œ€์ถฉ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•ด์„œ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ ... ์ด๊ฒŒ ๋„ˆ๋ฌด ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ์—ฌ๊ฒจ์„œ ๋‚˜์˜ค๊ฒŒ ๋œ ๊ฑฐ + ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์˜ ์ด์œ ๋กœ ๋‚˜์˜จ ํ•จ์ˆ˜์ด๋‹ค. ๋žŒ๋‹ค ์™œ ์“ฐ๋ƒ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค. public class LambdaTest { public static void main(String[] args) { MyInterface m1 = new MyInterface() { //1.์ต๋ช…์„ ์ด์šฉํ•œ MyInterface ๊ตฌํ˜„๋ถ€ @Override public int max(int a, int b){ .. 2024. 7. 24.
[JAVA] Comparable? Comparator? ์„œ๋ก ๊ฐ์ฒด ๊ฐ„์˜ sort๋ฅผ ์ˆ˜ํ–‰ํ•˜๋˜ ์ค‘ Comparable์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ๊ณผ Comparator๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด ์กด์žฌํ•ด ๋‘˜ ์ค‘ ์–ด๋–ค ๊ฑธ ์–ด๋А ์ƒํ™ฉ์— ์จ์•ผ ํ•˜๋‚˜..๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค. ๊ณตํ†ต์ - ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค.- ์›ํ•˜๋Š” ๊ฐ์ฒด์— ์ถ”๊ฐ€ํ•˜๊ณ , ๊ฐ๊ฐ ์š”๊ตฌ๋กœ ํ•˜๋Š” ๋ฉ”์„œ๋“œ(๋น„๊ต ๋ฉ”์„œ๋“œ)๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. Comparable- compareTo(T o) return: int- ์ž๊ธฐ ์ž์‹ ๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•œ๋‹ค.- ์ž๊ธฐ ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๊ฐ€ ๋” ํฌ๋ฉด ์–‘์ˆ˜, ์ƒ๋Œ€๊ฐ€ ๋” ํฌ๋ฉด ์Œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.- ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ ์ข€ ๋‹ค๋ฅธ๋ฐ, ๊ธฐ์ค€๊ฐ’์— ๋น„๊ต๋Œ€์ƒ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์„œ๋กœ์˜ ๋ฌธ์ž์—ด ๊ธธ์ด์˜ ์ฐจ์ด๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.- ๋ญ”์†Œ๋ฆฌ๋ƒํ•˜๋ฉด ์˜ˆ์‹œ๋ฅผ ๋ณด์žString str = "abcd";System.out.println(str.com.. 2024. 7. 23.
[JAVA] Generic ์„œ๋ก ์–ด๋””์„ ๊ฐ€ ์ž๋ฐ”๋กœ ๋งŒ๋“  ์ฝ”๋“œ๋ฅผ ๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด ArrayList ๊ฐ™์€ ํ˜•์‹์˜ ๋ฌธ์žฅ์„ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.์ € ์•ˆ์— ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํƒ€์ž…์„ ๋„ฃ์œผ๋ฉด ๊ทธ ํƒ€์ž…์— ๋งž๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ์ด ๋˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์ด Generic์ด๋‹ค. Generic Generic์€ ๋ฐ์ดํ„ฐ ํ˜•์‹์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง€๋„๋ก ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์ด๊ฑธ ์กฐ๊ธˆ ๋” ์žˆ์–ด ๋ณด์ด๊ฒŒ ํ‘œํ˜„ํ•˜์ž๋ฉด ์ปดํŒŒ์ผ ๋•Œ ํƒ€์ž…์„ ์ฒดํฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.Generic์€ ๊ฐ์ฒด์˜ ํƒ€์ž…์— ๋Œ€ํ•œ ์•ˆ์ „์„ฑ์„ ๋†’์ด๊ณ , ํ˜• ๋ณ€ํ™˜์˜ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.๊ฐ€ ํ‘œ๋ฉด์ ์ธ ์ด์œ ์ด์ง€๋งŒ, ํ•œ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์™œ ์“ฐ๋Š”์ง€ ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.์„œ๋ก ์—์„œ ์–ธ๊ธ‰ํ•œ ArrayList์˜ ํƒ€์ž…์ด ๋งŒ์•ฝ ์ง€์ •๋˜์–ด ์žˆ๋‹ค๋ฉด, ๊ฐœ๋ฐœ์ž๋Š” ์ˆ˜๋งŽ์€ ํƒ€์ž…์˜ Array.. 2024. 7. 22.
[JAVA] ์ถ”์ƒ ์„œ๋ก ์ด์ „ ๊ธ€์—์„œ ๊ฐ€๋ณ๊ฒŒ ์ •์˜ํ•œ ์ถ”์ƒ์— ๋Œ€ํ•ด ์ž‘์„ฑํ–ˆ๋‹ค. ์ถ”์ƒ ํด๋ž˜์Šค์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ๊ฐ€ ์ƒ์†์€ ํ•˜๋Š”๋ฐ ๋ง‰์ƒ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜๋ฅผ ๊ณ„์†ํ•˜๋‹ค ๋ณด๋‹ˆ '์ด๋Ÿด ๊ฑฐ๋ฉด ๋ถ€๋ชจ ํด๋ž˜์Šค ์ชฝ์— ๊ตณ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์žˆ๋‚˜..?' ํ•ด์„œ ๋‚˜์˜ค๊ฒŒ ๋œ ํด๋ž˜์Šค์ด๋‹ค. ํ‚ค์›Œ๋“œ๋กœ๋Š” abstract๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์„ ์–ธ๋งŒ ํ•˜๊ณ  ๊ตฌํ˜„๋ถ€๋Š” ;๋กœ ๋Œ€์ฒดํ•œ๋‹ค.-> ์ƒ์† ์ „์šฉ ๋ฉ”์„œ๋“œ๋ผ๋Š” ๋œป์œผ๋กœ ์ž์‹์€ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ๋ฌด์กฐ๊ฑด ์žฌ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค. ํŠน์ง•์œผ๋กœ๋Š” ๊ตฌํ˜„๋ถ€๊ฐ€ ์—†๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๋งŒํผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค(์ฐธ์กฐ๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค) ๋งŒ์•ฝ ์ƒ์† ๋ฐ›์€ abstract ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜๋ฅผ ์•ˆ ํ–ˆ๋‹ค๋ฉด ์ž์‹ ํด๋ž˜์Šค๋„ abstract ํด๋ž˜์Šค๊ฐ€ ๋œ๋‹ค. ์ถ”์ƒํด๋ž˜์Šค์˜ ๋ชฉ์ ์€ ๊ตฌํ˜„์„ ๊ฐ•์ œํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์ด ํ–ฅ์ƒ๋˜๊ฒŒ๋” ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. abstract class .. 2024. 7. 20.
[JAVA] ๋‹คํ˜•์„ฑ Encapsulation- ์™ธ๋ถ€์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.- ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค์„ private์„ ์„ ์–ธํ•ด ์™ธ๋ถ€์—์„œ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จ- ์ ‘๊ทผ ๊ฒฝ๋กœ๋Š” getter, setter๋กœ๋งŒ ์œ ๋„ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. Singleton- ๊ฐ์ฒด๋ฅผ ์ฒ˜์Œ ํ•œ๋ฒˆ ์„ ์–ธํ•ด ๋‘๊ณ ,์žฌ์‚ฌ์šฉํ•จ- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๊ฐ€ ํ•„์š” ์—†๊ฑฐ๋‚˜, ๊ฐ์ฒด์˜ ๋น„์šฉ์ด ์ปค ์‚ฝ์ž…/์‚ญ์ œ์— ๋ถˆํŽธํ•จ์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐclass SingletonClass { private static SingletonClass Instance; //privateํ•œ Instance ๊ฐ์ฒด๋ฅผ static์œผ๋กœ ์ƒ์„ฑ private SingletonClass() { //์ƒ์„ฑ์ž ์‚ฌ์šฉ์„ ์ œํ•œ Instance = new SingletonClass(); // ํด๋ž˜์Šค ๋กœ๋”ฉ์ค‘ ์ƒ์„ฑ }public s.. 2024. 7. 18.