ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿฆฅ ๋””์ž์ธ ํŒจํ„ด

์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด์ฒ˜๋Ÿผ ์ž์ฃผ ๋‚˜ํƒ€๋‚˜๋Š” ํด๋ž˜์Šค๋“ค ๊ฐ„์˜ ๊ด€๊ณ„(์„ค๊ณ„)๋ฅผ ๋งบ์–ด์คŒ

๐ŸŒฟ ์˜ฌ๋ฐ”๋ฅธ ์„ค๊ณ„๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

- ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ด์ƒ์ 

- ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š” ํด๋ž˜์Šค๋“ค ๊ฐ„์˜ ์†Œํ†ต์„ ํ†ตํ•ด ๊ฐœ๋ฐœ

- ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ ์ˆ˜์ •์„ ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์ง

- ๊ธฐ์กด ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

๐Ÿฆฅ Iterator ํŒจํ„ด

๐ŸŒฟ Iterator ๋ž€

- Array, Linked List, Tree, Graph, Table(DBMS) ์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ iterator๋ผ๊ณ  ํ•œ๋‹ค.

- ์ปฌ๋ ‰์…˜ ๊ตฌํ˜„๋ฐฉ๋ฒ•์„ ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š๊ณ  ์ง‘ํ•ฉ์ฒด ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

- ์ดํ„ฐ๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปฌ๋ ‰์…˜ ์•ˆ์— ์žˆ๋Š” ํ•ญ๋ชฉ๋“ค์— ์ˆœ์ฐจ์ ‘๊ทผ ๊ฐ€๋Šฅ

iterator ์‚ฌ์šฉ ์ „๊ณผ ํ›„
class ExampleIterator() {
	pulic static void main(String[] args) {
    	List<Integer> arrayList = new ArrayList<Integer>();
        for(int i=0; i<arrayList.size(); i++) {
        	sout("%d ๋ฒˆ์งธ ์ˆ˜ : %d", i, arrayList.get(i);
        }
        
        Iterator it = arrayList.createIterator();
        while(it.hasNext()) {
        	int num = (Integer)it.next();
            sout("์ˆ˜ : %d", num);
        }
    }
}

 

๐ŸŒฟ Iterator ์žฅ์ ๊ณผ ๋‹จ์ 

- ์žฅ์  : ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ๊ตฌํ˜„๊ณผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

- ๋‹จ์  : ํŠน์ • ์š”์†Œ๋งŒ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ž„

๐Ÿฆฅ Strategy ํŒจํ„ด

๐ŸŒฟ strategy ํŒจํ„ด์ด๋ž€

- ๊ฐ์ฒด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰์œ„๋“ค์„ ์ „๋žต์œผ๋กœ ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋™์ ์œผ๋กœ ์ „๋žต ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋Š” ํŒจํ„ด

- ์‹คํ–‰์ค‘์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒจํ„ด

- ํŠน์ • ์ปจํ…์ŠคํŠธ์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ์„ค๊ณ„ ๋ฐฉ๋ฒ•

- ์˜ˆ์‹œ) ๋ฐฐ์†ก์ „๋žต

์šฐํŽธ ๋ฐฐ์†ก ์ค€๋“ฑ๊ธฐ ๋ฐฐ์†ก ๋น ๋ฅธ๋“ฑ๊ธฐ ๋ฐฐ์†ก ํƒ๋ฐฐ
  • ๋™์ผ ๊ณ„์—ด์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •์˜ : walk, run, fly, rocket
  • ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Šํ™” : ๋ฐฐ์†ก ์ „๋žต ๋ฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์บก์Šํ™”
  • ์ด๋“ค์ด ์ƒํ˜ธ ๊ตํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค๊ณ„ํ•ด์•ผํ•จ

๐Ÿฆฅ Singleton ํŒจํ„ด

๐ŸŒฟ Singleton ํŒจํ„ด์ด๋ž€

- ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๊ฐ€ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋””์ž์ธ ํŒจํ„ด

- ์‚ฌ์šฉํ•ด๋ณธ ๊ณณ : SecurityUtils ํด๋ž˜์Šค๋ฅผ object ํ‚ค์›Œ๋“œ๋กœ ์‹ฑ๊ธ€ํ†ค ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑ. StringUtils์˜ isNullorEmpty ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ 

๐Ÿฆฅ Factory ํŒจํ„ด

๐ŸŒฟ Factory ํŒจํ„ด์ด๋ž€

- ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์—์„œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋–ผ๋†“๋Š” ๊ฒƒ 

- ๊ฐ์ฒด์™€ ๊ฐ์ฒด๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์•„์ง

- ์ƒ์œ„ํด๋ž˜์Šค์™€ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋ถ„๋ฆฌ๋˜๋Š” ์žฅ์ 

- ์˜ˆ์ œ

enum BAZZITYPE {
	ANGELBAZZI,
    DEVILBAZZI
}
abstract class Bazzi {
	public abstract void printName();
}

class AngelBazzi extends Bazzi {
	private String name;
    @Override
    public void printName() {
    	sout(name);
    }
}

class DevilBAZZI extends Bazzi {
	private String name;
    @Override
    public void printName() {
    	sout(name);
    }
}

class BazziFactory {
	public static Bazzi getBazzi(BAZZITYPE type) {
    	if(BAZZITYPE.ANGELBAZZI == type){
        	return new AngelBazzi();
        } else if(BAZZITYYPE.DEVILBAZZI) {
        	return new DevilBazzi();
        }
    }
}

class Main {
	public static void main(String[] args) {
    	Bazzi bazzi = new AngelBazzi(); // ๊ฒฐํ•ฉ๋„ ์žˆ์Œ
    	Bazzi bazzi = BazziFactory.getBazzi(BAZZITYPE.DEVILBAZZI);
        Bazzi bazzi2 = BazziFactory.getBazzi(BAZZITYPE.ANGELBAZZI);
    }
}

๐Ÿฆฅ Observer ํŒจํ„ด

๐ŸŒฟ Observer ํŒจํ„ด์ด๋ž€

- ์ฃผ์ฒด๊ฐ€ ์–ด๋–ค ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐํ•˜๋‹ค๊ฐ€ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์˜ต์ €๋ฒ„ ๋ชฉ๋ก์— ์žˆ๋Š” ์˜ต์ €๋ฒ„์—๊ฒŒ ๋ณ€ํ™”๋ฅผ ์•Œ๋ ค์คŒ

- ํŠธ์œ„ํ„ฐ์˜ ํŒ”๋กœ์ž‰ ๋Œ€์ƒ์ด ๊ธ€์„ ์˜ฌ๋ฆฌ๋ฉด ํŒ”๋กœ์šฐํ•œ ์‚ฌ๋žŒ ํ”ผ๋“œ์— ๋ณ€ํ™”๋ฅผ ์•Œ๋ ค์คŒ

๐Ÿฆฅ Proxy ํŒจํ„ด

๐ŸŒฟ Proxy ํŒจํ„ด์ด๋ž€

- ๋Œ€์ƒ ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ธฐ ์ „ ์ ‘๊ทผ์— ๋Œ€ํ•œ ํ๋ฆ„์„ ๊ฐ€๋กœ์ฑ„์–ด ๊ฐ์ฒด ์•ž๋‹จ์— ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด

- ๋ณด์•ˆ, ๋กœ๊น…, ์บ์‹ฑ, ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์— ์‚ฌ์šฉ

๐Ÿฆฅ MVC ํŒจํ„ด

๐ŸŒฟ MVC ํŒจํ„ด์ด๋ž€

- ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋‹ด๋Š” ๋ชจ๋ธ, ์‚ฌ์šฉ์ž์˜ ์ธํ„ฐํŽ˜์ด์Šค์ธ ๋ทฐ, ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๊ตฌ์„ฑ๋œ ๋””์ž์ธ ํŒจํ„ด.

- ๊ฐ๊ฐ ๊ตฌ์„ฑ์š”์†Œ์— ์ง‘์ค‘ํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ 

 

 

 

 

'๋ฉด์ ‘์งˆ๋ฌธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Day03] Web  (0) 2022.12.15
[Day02] Java  (0) 2022.12.14
[Day01] ๋„คํŠธ์›Œํฌ์™€ ์šด์˜์ฒด์ œ  (0) 2022.12.13
[DB] ๋ฉด์ ‘ ์Šคํ„ฐ๋”” (1)  (0) 2022.02.28
MVC ํŒจํ„ด  (0) 2022.01.30
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ