Home Basic Confusing Questions โ…  ๐Ÿคทโ€โ™‚๏ธ (13๊ฐœ)
Post
Cancel

Basic Confusing Questions โ…  ๐Ÿคทโ€โ™‚๏ธ (13๊ฐœ)

Basic Confusing Questions โ…  ๐Ÿคทโ€โ™‚๏ธ


ํด๋ฆญํ•˜๋ฉด ์ •๋‹ต์ด ๋‚˜์˜ต๋‹ˆ๋‹น~
์ž๋ฐ”์˜ ์ •์„(๋‚จ๊ถ์„ฑ ์ง€์Œ)์—์„œ ์ธ์šฉํ•œ ์ฝ”๋“œ์™€ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ํƒ€์ž…์ค‘ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด

๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
์ฐธ์กฐํ˜• ์ฃผ์†Œ๊ฐ’์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

์ž๋ฐ”๋Š” C์™€ ๋‹ค๋ฅด๊ฒŒ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋ผ๋ฆฌ ์—ฐ์‚ฐ์ด ์•ˆ๋œ๋‹ค.

ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์— ๋Œ€ํ•ด ์„ค๋ช…

๊ฐ์ฒด : ์‹ค์ œ์˜ ์‚ฌ๋ฌผ์˜ ์†์„ฑ๊ณผ ๋™์ž‘์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ๋‹ค๋ฅธ๊ฒƒ๊ณผ ์‹๋ณ„๊ฐ€๋Šฅํ•˜๋ƒโ€ฆ (๋ถ•์–ด๋นต)
ํด๋ž˜์Šค: ํ•„๋“œ, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š” ๊ฐ์ฒด์˜ ์„ค๊ณ„๋„ (๋ถ•์–ด๋นต ํ‹€)

๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์ฐจ์ด
ย ์˜ค๋ฒ„๋กœ๋”ฉ์˜ค๋ฒ„๋ผ์ด๋”ฉ
๋ฉ”์„œ๋“œ ์ด๋ฆ„samesame
๋ฉ”๊ฒŒ๋ณ€์ˆ˜, ํƒ€์ž…differentsame
๋ฆฌํ„ด ํƒ€์ž…doesn`t mattersmame

์˜ค๋ฒ„๋ผ์ด๋”ฉ : ์ƒ์œ„ ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋‹ค์‹œ ํ˜ธ์ถœํ•ด์„œ ์ƒˆ๋กœ์šด ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ–‰์œ„, ๋ฆฌํ„ด ํƒ€์ž…์ด ๋™์ผํ•ด์•ผํ•จ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
๋ถ€๋ชจ์—๊ฒŒ์„œ ์ƒ์†๋ฐ›์€ ๋ฉ”์†Œ๋“œ์˜ ๋‚ด์šฉ๊ณผ ์ž์‹ํด๋ž˜์Šค์™€ ๋งž์ง€์•Š์„ ๊ฒฝ์šฐ ์ž์‹ํด๋ž˜์Šค์—์„œ ๋™์ผํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜
/*-----------------------------------๋ถ€๋ชจ ํด๋ž˜์Šค--------------------------------------*/
class Man{ 
    public String name;
    public int age;
    
        public void info(){
        System.out.println("์ด ๋‚จ์ž์˜ ์ด๋ฆ„์€ "+name+", ๋‚˜์ด๋Š” "+age+"์‚ด");
    }   
}
/*----------------------------------์ž์‹ ํด๋ž˜์Šค---------------------------------------*/
class Job extends Man{
    String job;
    
    public void info() {//๋ถ€๋ชจํด๋ž˜์Šค์— ์žˆ๋Š” info()๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜
        super.info(); // ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ์œ„ํ•œ super์„ ์–ธ ํ•„์ˆ˜
        System.out.println("์ด ์ž์˜ ์ง์—…์€ "+job);
    }
}
/*-------------------------------------๋ฉ”์ธ ํด๋ž˜์Šค-----------------------------------*/
public class OverRidding {
     public static void main(String[] args) {      
        Job job = new Job(); //Job ๊ฐ์ฒด ์ƒ์„ฑ
        
        //๋ณ€์ˆ˜ ์„ค์ •
        job.name = "๋ฏผ์„ญ";
        job.age = 30;
        job.job = "๋ฐฑ์—”๋“œ";
        
        job.info();
    } 
}

์˜ค๋ฒ„๋กœ๋”ฉ: ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜, ํƒ€์ž…๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ–‰์œ„ ๋ฆฌํ„ดํƒ€์ž… ์ƒ๊ด€์—†์Œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ์•ˆ์˜ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์ •์˜
class Shape {
    public void area() { // ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ. ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ 4๊ฐœ.
        System.out.println("๋„“์ด");
    }
    public void area(int r) {
        System.out.println("์› ๋„“์ด = " + 3.14 * r * r);
    }

    public void area(int w, int l) {
        System.out.println("์ง์‚ฌ๊ฐํ˜• ๋„“์ด = " + w * l);
    }

    public void area(double b, double h) {
        System.out.println("์‚ผ๊ฐํ˜• ๋„“์ด = " + 0.5 * b * h);
    }
jvm ๋™์ž‘ ๋ฐฉ์‹

img

[1] .Java โ†’ compiler โ†’ .class(๋ฐ”์ดํŠธ ์ฝ”๋“œ) โ†’ JVM

์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด JVM๋จธ์‹ ์œผ๋กœ ๋ณด๋‚ด์ฃผ๊ธฐ์ „์— Java Compiler์—๊ฒŒ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌ๋ฅผ ๋ฐ›๊ณ  ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•œ๋‹ค.
.java ํ™•์žฅ์ž๋ฅผ ๊ฐ€์กŒ๋˜ ์ฝ”๋“œ โ†’ .class ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ java byte code๋กœ ๋ณ€ํ•œ๋‹ค.

[2] JVM ์ฝ”๋“œ ์‹คํ–‰์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ OS๋กœ ๋ถ€ํ„ฐ ๋ฐ›์Œ (๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น)

[3] Class Loader๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ ํŒŒ์ผ โ†’ RuntimeData Area๋กœ ์ ์žฌ์‹œํ‚ด (์ž๋ฐ”์†Œ์Šค์ฝ”๋“œ ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋“œ)

[4] ๋กœ๋“œ ์™„๋ฃŒ ํ›„, Execution๊ฐ€ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ ์žฌ๋œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ์‹คํ–‰ (2๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ์‹คํ–‰)

4-1. ์ธํ„ฐํ”„๋ฆฌํ„ฐ โ†’ ์ฝ”๋“œ๋ฅผ ํ•œ์ค„์”ฉ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ณ  ์‹คํ–‰

4-2. Jit ์ปดํŒŒ์ผ๋Ÿฌ โ†’ just in time complier๋กœ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ์ „๋ถ€๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ณ  ์‹คํ–‰

โ€ป ์ฐจ์ด - ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๋‹ค๊ฐ€ โ€˜๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์žฅ์ด ์ž์ฃผ ์‹คํ–‰๋œ๋‹คโ€™๋กœ ํŒ๋‹จ๋˜๋ฉด jit ์ปดํŒŒ์ผ๋Ÿฌ ์‹คํ–‰

์ž๋ฐ”์˜๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•ด ์„ค๋ช…

img

JVM์—์„œ Runtime Data Area๋ฅผ ๋” ๋””ํ…Œ์ผํ•˜๊ฒŒ ํ‘œํ˜„ํ•œ ๋ถ€๋ถ„์ด๋‹ค.

๋ฉ”์„œ๋“œ ์˜์—ญ (Method Area)
ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ์ด๋ฆ„, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ ‘๊ทผ ์ œ์–ด์ž ์ •๋ณด์™€ ๊ฐ™์€ ๊ฐ์ข… ํ•„๋“œ ์ •๋ณด๋“ค๊ณผ ๋ฉ”์„œ๋“œ ์ •๋ณด, ๋ฐ์ดํ„ฐ Type ์ •๋ณด, Constant Pool, static๋ณ€์ˆ˜, final class ๋“ฑ์ด ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ์ด๋‹ค.

ํž™ ์˜์—ญ(Heap Area)
JVM์—๋Š” ํ•˜๋‚˜์˜ heap์˜์—ญ๋งŒ ์กด์žฌํ•จ. ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ๋ฐฐ์—ด์ด๋˜๋Š” ์˜์—ญ์ด๋‹ค ๊ฐ€๋น„์ง€์ปฌ๋ž™์…˜์ด ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™œ๋™ํ•˜๋Š” ์˜์—ญ์ด๋‹ค

์Šคํƒ ์˜์—ญ (Stack Area)
์ง€์—ญ๋ณ€์ˆ˜, ํŒŒ๋ผ๋ฏธํ„ฐ, ๋ฆฌํ„ด ๊ฐ’, ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ž„์‹œ ๊ฐ’ ๋“ฑ์ด ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ์ด๋‹ค

PC ๋ ˆ์ง€์Šคํ„ฐ (PC Register)
Thread๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ, ์ฆ‰ ํ˜„์žฌ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ถ€๋ถ„์˜ ์ฃผ์†Œ์™€ ๋ช…๋ น์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์˜์—ญ์ด๋‹ค

๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ ์Šคํƒ (Native Method Stack)
JVM์—์„œ C์™€ ๊ฐ™์€ Java ์–ธ์–ด ์ด์™ธ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ ๊ตฌ์กฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค

โ€ป ์ž๋ฐ” ์ด์™ธ์˜ ์–ธ์–ด(C++, ์–ด์…ˆ๋ธ”๋ฆฌ ๋“ฑ)๋กœ ์ž‘์„ฑ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ์ผ๋ฐ˜์ ์ธ C ์Šคํƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•จ.

static, final ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€

static = ๊ณตํ†ต์ ์ธ ์˜ ์˜๋ฏธ๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ๋‹ค. ์ธ์Šคํ„ด์Šค์— ์ƒ๊ด€์—†์ด ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๊ธฐ ๋–„๋ฌธ์ด๋‹ค. final = ๋ณ€๊ฒฝ๋ ์ˆ˜ ์—†๋Š”์˜ ์˜๋ฏธ๋ฅผ ์ง€๋‹ˆ๊ณ ์žˆ๋‹ค. ๋ณ€์ˆ˜์— ์ด์šฉ๋˜๋ฉด ์ƒ์ˆ˜๊ฐ€ ๋˜๊ณ , ๋ฉ”์„œ๋“œ์— ์‚ฌ์šฉ๋˜๋ฉด ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ์ž์†ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์—†๋‹ค.

static ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ์€ ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ๋•Œ, ๋‹จ ํ•œ๋ฒˆ๋งŒ ์ˆ˜ํ–‰๋จ.

1
2
3
4
5
6
7
8
9
10
11
12
//static ๋ณ€์ˆ˜
static int width = 200;
> ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๊ฐ€ ๋จ
> ํด๋ž˜์Šค๋ณ€์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€์•Š์•„๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ
> ํด๋ž˜์Šค ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋ ๋•Œ ์ƒ์„ฑ

//static ๋ฉ”์„œ๋“œ
public static Method(){
    ...
}
> ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•œ static ๋ฉ”์„œ๋“œ๊ฐ€ ๋œ๋‹ค.
> static ๋ฉ”์„œ๋“œ ๋‚ด์— ์ธ์Šคํ„ด์Šค๋งด๋ฒ„๋“ค์„ ์ง์ ‘ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†๋‹ค.
1
2
3
4
5
6
7
final class Final{              //์กฐ์ƒ์ด ๋  ์ˆ˜ ์—†๋Š” ํด๋ž˜์Šค
    final int MAX_SIZE = 10;    //๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ์ƒ์ˆ˜
    final void getSize(){       //์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ
        final int LV = MAX_SIZE;//๊ฐ’ ๋ณ€๊ฒฝ์ด ์•ˆ๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜
        return MAX_SIZE;
    }
}
OOP ์žฅ๋‹จ์ ๊ณผ ์„ค๋ช…

์ ˆ์ฐจ ์ง€ํ–ฅ ๋Œ€์‹  ์™œ ์šฐ๋ฆฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€?

์ ˆ์ฐจ ์ง€ํ–ฅ์€ ๋ง์ฒ˜๋Ÿผ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”์‹œํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ๋Š” C์–ธ์–ด๊ฐ€ ์žˆ๋‹ค.
์ปดํ“จํ„ฐ์˜ ์ผ์ฒ˜๋ฆฌ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ด ์‹คํ–‰ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
ํ•˜์ง€๋งŒ ๋ฆฌํŒฉํ„ฐ๋ง, ๋””๋ฒ„๊น…์˜ ์–ด๋ ค์›€, ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๋“ฑ ๋‹จ์ ์ด ๋งŽ์•„์„œ ๋‚˜์˜จ ์ด๋ก ์ด ๊ฐ์ฒด์ง€ํ–ฅ์ด๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ์€...

์‹ค์ œ ์กด์žฌํ•˜๋Š”๊ฒƒ๊ณผ ๊ฐ์ฒด๋“ค ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•จ
๋˜ํ•œ ์ด๋ ‡๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์žฌ์‚ฌ์šฉ์„ฑ, ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด, ์ค‘๋ณต ์ฝ”๋“œ ๊ฐ์†Œ ํšจ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚จ.

๋‹จ์ ์œผ๋กœ๋Š” ์„ค๊ณ„์— ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์ ˆ์ฐจ์ง€ํ–ฅ์–ธ์–ด์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ์‹คํ–‰์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.


์บก.์ƒ.์ถ”.๋‹ค!

์ƒ์† (inherutance) = ํ™•์žฅ๊ณผ ๋ถ„๋ฅ˜์šฉ์ด, ์ค‘๋ณต์ฝ”๋“œ ์ œ๊ฑฐ, ์žฌ์‚ฌ์šฉ์„ฑโ†‘

  • ๊ธฐ์กด์˜ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑ (a.k.a ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํŠน์ง•๊ณผ ๊ธฐ๋Šฅ์„ ๋”ฐ๋ผ ๋ฐ›๋Š” ๊ฒƒ)

  • ๋‹ค์ค‘ ์ƒ์† ์•ˆ๋จ

  • extends ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ

์บก์Šํ™” (encaspulation) = ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ์™€ ์€๋‹‰

  • ์†์„ฑ(๋ณ€์ˆ˜)๊ณผ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ, public, private ๊ฐ™์€ ์ ‘๊ทผ ์ง€์ •์ž๋ฅผ ํ†ตํ•ด ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•.

  • getter/setter ์‚ฌ์šฉ

  • ๋†’์€ ์‘์ง‘๋„(Cohension) ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„(Coupling)๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์„ค๊ณ„ ๋ฐฉ์‹

๋‹คํ˜•์„ฑ (polymorphism) = ์˜ค๋ฒ„ ๋ผ์ด๋”ฉโ€ฆ ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋กœ ํ•˜์œ„ ํด๋ž˜์Šค๋“ค์„ ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

  • ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ์ž์‹ ํด๋ž˜์Šค์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ์•Œ ์ˆ˜ ์—†์–ด๋„ ์˜ค๋ฒ„ ๋ผ์ด๋”ฉ์„ ํ†ตํ•ด ์ž์‹ ํด๋ž˜์Šค๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒ์œ„ ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜๋กœ ํ•˜์œ„ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ (๋ฐ˜๋Œ€๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์•ˆ๋จ)

  • ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ข‹๊ณ  ๊ฒฐํ•ฉ์ด ๋Š์Šจํ•˜๋„๋ก ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹

ex) SportCar() -> Car() ์ผ ๊ฒฝ์šฐ

1
2
3
4
5
Car car = new car();
SportCar Scar = new SportCar();

Car Scar = new SportCar(); //๊ฐ€๋Šฅ
SportCar Scar = new Car(); //๋ถˆ๊ฐ€๋Šฅ

์ถ”์ƒํ™”(Abstraction) = ๊ณตํ†ต๋œ ํŠน์ง•์„ ํ•˜๋‚˜์˜ ๊ฐœ๋…ํ™”

  • abstract ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ

  • ๊ณตํ†ต๋œ ํŠน์ง•์ธ ๋งŒํผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•ด์„œ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๋“ค์€ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ ํ•ด์•ผ ํ•จ

  • ๋‹ค์ค‘ ์ƒ์† ๋ถˆ๊ฐ€๋Šฅ. ๊ฐ์ฒด ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ

์ ‘๊ทผ์ œ์–ด์ž์˜ ํŠน์ง•๊ณผ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…

public: ์ ‘๊ทผ ์ œํ•œ์ด ์—†๋‹ค.
default: ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.
protected: ๊ฐ™์€ ํŒจํ‚ค์ง€์™€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ์ž์†ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ์ด ๋œ๋‹ค.
private: ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ถ”์ƒ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด

์ถ”์ƒํด๋ž˜์Šค๋Š” IS - A โ€œ~์ด๋‹คโ€. (๋‹ค์ค‘์ƒ์† X)
์ธํ„ฐํŽ˜์ด์Šค๋Š” HAS - A โ€œ~์„ ํ•  ์ˆ˜ ์žˆ๋Š” (๋‹ค์ค‘์ƒ์† O)

์ถ”์ƒํ™”(Abstraction) = ๊ณตํ†ต๋œ ํŠน์ง•์„ ํ•˜๋‚˜์˜ ๊ฐœ๋…ํ™”

  • abstract ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ

  • ๊ณตํ†ต๋œ ํŠน์ง•์ธ ๋งŒํผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•ด์„œ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๋“ค์€ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ ํ•ด์•ผ ํ•จ

  • ๋‹ค์ค‘ ์ƒ์† ๋ถˆ๊ฐ€๋Šฅ. ๊ฐ์ฒด ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ

์ธํ„ฐํŽ˜์ด์Šค (interface) = ์—ญํ• ๊ณผ ๊ตฌํ˜„์˜ ๊ตฌ๋ถ„

  • implements ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ *์ƒ์†๋ณด๋‹จ ๊ตฌํ˜„

  • ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ถ”์ƒํ™”๋กœ ์ •์˜๋งŒ ํ•˜๊ณ  ํด๋ž˜์Šค ๋‚ด์—์„œ ๊ตฌํ˜„์€ ํ•˜์ง€ ์•Š์€ ๊ฒƒ. (๋ฏธ๋ฆฌ ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋งž๊ฒŒ ๊ตฌํ˜„ํ•˜๋„๋ก ํ‘œ์ค€์„ ์ œ์‹œ)

์ธํ„ฐํŽ˜์ด์Šค์™€ ์ถ”์ƒํ™”์˜ ์ฐจ์ด์  - ๊ธฐ๋ณธ ์„ค๊ณ„๋„์™€ ๋ฏธ์™„์„ฑ ์„ค๊ณ„๋„

์ถ”์ƒํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๋ณด๋‹ค๋Š” ์ƒ์†์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ๋ฐ˜๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ฃผ๋กœ ์ œ๊ณตํ•  ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ.
์ถ”์ƒํด๋ž˜์Šค๋Š” ์ƒ์„ฑ์ž ํ•„๋“œ ์ผ๋ฐ˜, ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ• ์ˆ˜์žˆ๋Š” ๋ฐ˜๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ƒ์ˆ˜์™€ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋งŒ ํฌํ•จ ํ• ์ˆ˜ ์žˆ๋‹ค.

์ถ”์ƒ ํด๋ž˜์Šค๋Š” ์ž์‹ ์˜ ๊ธฐ๋Šฅ๋“ค์„ ํ•˜์œ„ ํด๋ž˜์Šค๋กœ ํ™•์žฅ

-> ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹  ํŠน์ง•์— ๋งž๊ฒŒ ํ™•์žฅํ•ด์„œ ์‚ฌ์šฉ, ๋ณ€์ˆซ๊ฐ’ ์ง€์ • ์—†์ด ์ƒํ™ฉ์— ๋งž๊ฒŒ๋” ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ ํด๋ž˜์Šค์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„

-> ํด๋ž˜์Šค๋ฅผ ๊ฐ์‹ธ์„œ ์ง์ ‘์ ์ธ ํด๋ž˜์Šค ๊ฐ„์˜ ์ข…์†๊ด€๊ณ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ•ด ์คŒ (๋…๋ฆฝ์„ฑ ํ™•๋ณด) ์ด๊ฒƒ์€ ์œ ์ง€๋ณด์ˆ˜์— ์žˆ์–ด์„œ ์œ ๋ฆฌํ•จ

๋˜ํ•œ ๋ณ€์ˆซ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ณ ์ •๊ฐ’์„ ์ค˜์•ผ ํ•จ

์ด๋„ˆํด๋ž˜์Šค์™€ ์ต๋ช…ํด๋ž˜์Šค, ์žฅ๋‹จ์ 

๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ํด๋ž˜์Šค ๋‚ด์— ์„ ์–ธ๋œ ํด๋ž˜์Šค์ด๋‹ค.
ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•˜๋ฉด ๋‘ ํด๋ž˜์Šค์˜ ๋งด๋ฒ„๋“ค๊ฐ„์— ์„œ๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ๊ณผ
์™ธ๋ถ€์˜ ๋ถˆํ•„์š”ํ•œ ํด๋ž˜์Šค๋ฅผ ๊ฐ์ถค์œผ๋กœ์จ ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ผ์ˆ˜์žˆ๋‹ค -> ์บก์Šํ™”.

1
2
3
4
5
6
7
8
9
10
11
12
class A{

}
class B{

}
----
class A{ 
    class B{ //๋‚ด๋ถ€ ํด๋ž˜์Šค B

    }
}

์ต๋ช…ํด๋ž˜์Šค: ์ด๋ฆ„์ด ์—†๊ณ , ํด๋ž˜์Šค ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ์ฒด๋ฅผ ์ƒํ•˜๊ธฐ์— ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋ฉฐ,
์˜ค์ง ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ์„์ƒ์„ฑ ํ•  ์ˆ˜์žˆ๋Š” ์ผํšŒ์šฉ ํด๋ž˜์Šค ๋‹ค์‹œ์‚ฌ์šฉํ•˜์ง€์•Š๋Š”๋‹ค๊ณ  ํ•˜๋ฉด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š”๊ฒƒ๋ณด๋‹จ ์ข‹๋‹ค. ๋“๋ณด๋‹ค ์‹ค์ด ์ปค๋ณด์ธ๋‹ค.

์ปฌ๋ž™์…˜๊ณผ ์ŠคํŠธ๋ฆผ์˜ ์ฐจ์ด ์„ค๋ช…

์ปฌ๋ ‰์…˜๊ณผ ๋ฐฐ์—ด์˜ ์ฐจ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์ ํ• ๋‹นํ•˜๋ƒ ๋™์ ํ• ๋‹นํ•˜๋ƒ์˜ ์ฐจ์ด์ด๋‹ค.

์ปฌ๋ ‰์…˜์€ ๋ฐฐ์—ด์ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, DTO ๋˜ํ•œ ์ž๋ฃŒ๋ฅผ ๋‹ด๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ์‹

์ŠคํŠธ๋ฆผ์€ ์„ ์–ธํ˜• ์ฝ”๋“œ๋กœ์จ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ์˜ฌ๋ผ๊ฐ. ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€ ๋ณด๋‹จ ๋ฌด์—‡์„ ์ฒ˜๋ฆฌํ• ์ง€์— ํฌ์ปค์‹ฑ

  1. ๋ฐ์ดํ„ฐ์˜ ์ฒ˜๋ฆฌ์‹œ์ ์ด ๋‹ค๋ฅด๋‹ค. ์ปฌ๋ ‰์…˜์€ ํ•„์š”ํ•œ ๋ชจ๋“ ๊ฐ’์ด ๊ณ„์‚ฐ๋˜์–ด ์ž๋ฃŒ๊ตฌ์กฐ์— ๋‹ด๊ฒจ์•ผํ•œ๋‹ค. ์ฆ‰ ์ €์žฅํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ์š”์†Œ๊ฐ€ ๊ณ„์‚ฐ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋ฉด, ์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งŒ ๊ณ„์‚ฐํ•จ.

  2. ํ•œ๋ฒˆ ์†Œ๋น„ํ•˜๋ฉด ์žฌ์‚ฌ์šฉ์ด ๋˜๋ƒ ์•ˆ๋˜๋ƒ ์ปฌ๋ ‰์…˜์€ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‚˜ ์ŠคํŠธ๋ฆผ์€ ํ•œ๋ฒˆ ์†Œ๋น„๋˜๋ฉด ์žฌ์‚ฌ์šฉ์ด ์•ˆ๋œ๋‹ค.

  3. ์ปฌ๋ ‰์…˜์€ '์™ธ๋ถ€๋ฐ˜๋ณต', ์ŠคํŠธ๋ฆผ์€ '๋‚ด๋ถ€๋ฐ˜๋ณต' ์ปฌ๋ ‰์…˜์„ ๋ฐ˜๋ณตํ•˜๋ ค๋ฉด iterator๋‚˜ for๋ฅผ ์จ์„œ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณตํ•ด์•ผํ•œ๋‹ค. ์ด๋ฅผ ์™ธ๋ถ€๋ฐ˜๋ณต์ด๋ผ ํ•จ ์ŠคํŠธ๋ฆผ์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์•Œ์•„์„œ ๋ฐ˜๋ณตํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ค€๋‹ค. filter, map๋“ฑ์˜ ์—ฐ์‚ฐ ๋ฉ”์†Œ๋“œ์—์„œ๋Š” ๋ฐ˜๋ณต์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ˆจ๊ฒจ์ ธ์žˆ๊ณ  ์ถ”์ƒํ™”๋˜์–ด์žˆ๋‹ค.

    ๋˜ํ•œ, ๋‚ด๋ถ€๋ฐ˜๋ณต์€ ๋ณ‘๋ ฌ์„ฑ์˜ ์ด์ ์ด ์žˆ๋‹ค. ์™ธ๋ถ€ ๋ฐ˜๋ณต์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ‘๋ ฌ์„ฑ์„ ์Šค์Šค๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ๋ณ‘๋ ฌ์„ฑ์„ ์Šค์Šค๋กœ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„๋“ค์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ ๊ฒฝ์จ์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. ๋ฏธ์ฒ˜ ํŒŒ์•…ํ•˜์ง€ ๋ชปํ•œ ์‚ฌ์†Œํ•œ ์ด์œ ๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. parallel() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š”๋ฐ ์ด ๋•Œ ๋ณ‘๋ ฌ์„ฑ ๊ตฌํ˜„์„ ์ž๋™์œผ๋กœ ์„ ํƒํ•ด์„œ ์‹คํ–‰ํ•ด์ค€๋‹ค. ์ŠคํŠธ๋ฆผ์€ Java๋ฅผ ๋งŒ๋“  ๊ฐœ๋ฐœ์ž๋“ค์— ์˜ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. Java์˜ ๋‚ด๋ถ€ ๋™์ž‘์„ ๊นŠ์ด์žˆ๊ฒŒ ์•Œ๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ ธ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ˆจ๊ฒจ์ง€๊ณ  ์ถ”์ƒํ™”๋œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ๊ณต๊ฐœ API๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ์ŠคํŠธ๋ฆผ์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ForkJoin ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ๋ณ‘๋ ฌ ์—ฐ์‚ฐ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ง€์‹์ด ํ•„์š”ํ•œ๊ฑด ๋ฌผ๋ก ์ด๋‹ค.

    โ€ปfork-join ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํƒœ์Šคํฌ(Task)๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์ž‘์—… ๋‹จ์œ„๋กœ ๋ถ„ํ• (fork)ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฒ˜๋ฆฌ๋œ ์„œ๋ธŒ ํƒœ์Šคํฌ๋“ค์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์ณ ์ „์ฒด ๊ฒฐ๊ณผ๋กœ ํ•ฉ์นœ๋‹ค(join).

    ์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ

list ,set, map ์ฐจ์ด์ 

img

List๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜๋ฉฐ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค.

Map์€ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๊ณ  Key๊ฐ’์˜ ์ค‘๋ณต์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ Value๊ฐ’์˜ ์ค‘๋ณต์€ ํ—ˆ์šฉ๋œ๋‹ค.

Set์€ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋“ค์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

img

์ œ๋„ค๋ฆญ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ  ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์—์„œ ์™œ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€?

๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๊ฐ์ฒด๋“ค์„ ๋‹ค๋ฃจ๋Š” ๋ฉ”์„œ๋“œ๋‚˜ ์ปฌ๋ž™์…˜ ํด๋ž˜์Šค์— ์ปดํŒŒ์ผ ์‹œ ํƒ€์ž… ์ฒดํฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ.

ํƒ€์ž…์˜ ์•ˆ์ •์„ฑ์„ ์ฃผ๊ณ  ํƒ€์ž…์ฒดํฌ์™€ ํ˜•๋ณ€ํ™˜์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง

This post is licensed under CC BY 4.0 by the author.

์ƒ์Šต์ ์œผ๋กœ ํ‹€๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ Hashmap

Java Syntex - hashmap