관리 메뉴

λͺ©λ‘λ””μžμΈνŒ¨ν„΄ (17)

JUINTINATION

μ–΄λŒ‘ν„°(Adapter) νŒ¨ν„΄

μ–΄λŒ‘ν„° νŒ¨ν„΄μ΄λž€?μ–΄λŒ‘ν„° νŒ¨ν„΄μ€ 클래슀의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©μžκ°€ κΈ°λŒ€ν•˜λŠ” λ‹€λ₯Έ μΈν„°νŽ˜μ΄μŠ€λ‘œ λ³€ν™˜ν•˜λŠ” νŒ¨ν„΄μœΌλ‘œ, ν˜Έν™˜μ„±μ΄ μ—†λŠ” μΈν„°νŽ˜μ΄μŠ€ λ•Œλ¬Έμ— ν•¨κ»˜ λ™μž‘ν•  수 μ—†λŠ” ν΄λž˜μŠ€λ“€μ΄ ν•¨κ»˜ μž‘λ™ν•˜λ„λ‘ ν•΄μ€€λ‹€. GOF λ””μžμΈ νŒ¨ν„΄ 쀑 ꡬ쑰 νŒ¨ν„΄μ— ν•΄λ‹Ήν•˜λ©°, 이름 κ·ΈλŒ€λ‘œ 클래슀λ₯Ό μ–΄λŒ‘ν„°λ‘œμ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄μ΄λ‹€.μ–΄λŒ‘ν„° νŒ¨ν„΄μ€ κ·Έ μ΄λ¦„μ—μ„œλ„ μ•Œ 수 μžˆλ“―μ΄ 쑰정에 λ”°λ₯Έ 적응(Adaptation)에 μ‚¬μš©λ˜λ©°, ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν˜Έν™˜ κ°€λŠ₯ν•œ μΈν„°νŽ˜μ΄μŠ€λ‘œ λ³€ν™˜ν•˜μ—¬ 두 클래슀λ₯Ό ν•¨κ»˜ μž‘λ™ν•  수 있게 ν•œλ‹€. ν”νžˆ μ–΄λŒ‘ν„° νŒ¨ν„΄μ„ μ„€λͺ…ν•  λ•Œ USB μ–΄λŒ‘ν„°λ₯Ό 예둜 λ“œλŠ” κ²½μš°κ°€ λ§Žλ‹€. 두 개의 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” μΈν„°νŽ˜μ΄μŠ€κ°€ USB μ–΄λŒ‘ν„°λ₯Ό 톡해 ν•¨κ»˜ μž‘λ™ν•  수 μžˆλ‹€λŠ” 것을 μƒκ°ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° μ‰¬μšΈ 것이닀.클래슀 μ–΄λŒ‘ν„°μ™€ 객체 μ–΄λŒ‘ν„°..

StudyNote 2024. 11. 2. 22:46
νΌμ‚¬λ“œ(Facade) νŒ¨ν„΄

νΌμ‚¬λ“œ νŒ¨ν„΄μ΄λž€? νΌμ‚¬λ“œ νŒ¨ν„΄(창ꡬ νŒ¨ν„΄)은 μ‚¬μš©ν•˜κΈ° λ³΅μž‘ν•œ λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ, ν”„λ ˆμž„μ›Œν¬μ— λŒ€ν•œ λ˜λŠ” λ‹€λ₯Έ ν΄λž˜μŠ€λ“€μ˜ λ³΅μž‘ν•œ 집합에 λŒ€ν•œ λ‹¨μˆœν™”λœ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” λ””μžμΈ νŒ¨ν„΄μ΄λ‹€. GOF λ””μžμΈ νŒ¨ν„΄ 쀑 ꡬ쑰 νŒ¨ν„΄μ— ν•΄λ‹Ήν•˜λ©°, μ„œλΉ„μŠ€ 지ν–₯ μ•„ν‚€ν…μ²˜(SOA)μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” νŒ¨ν„΄ μ€‘ ν•˜λ‚˜μ΄λ‹€.νΌμ‚¬λ“œ νŒ¨ν„΄κ³Ό μΈν„°νŽ˜μ΄μŠ€ μ„€κ³„μΈν„°νŽ˜μ΄μŠ€ κ°œλ°œμ„ ν•˜λ‹€ 보면 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ–Όλ§ˆλ‚˜ μ„ΈλΆ„ν™”ν•΄μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄  κ³ λ―Όν•˜κ²Œ λ˜λŠ”λ°, νΌμ‚¬λ“œ νŒ¨ν„΄μ€ κ·Έ 원리와 κ΅¬ν˜„μ΄ 맀우 간단할 뿐만 μ•„λ‹ˆλΌ μ‚¬μš© λŒ€μƒμ΄ 비ꡐ적 λͺ…ν™•ν•˜κΈ° λ•Œλ¬Έμ— μΈν„°νŽ˜μ΄μŠ€ 섀계에 주둜 μ‚¬μš©λœλ‹€.λ§Œμ•½ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μž¬μ‚¬μš©ν•  수 있게 ν•˜λ €λ©΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ΅œλŒ€ν•œ μ„ΈλΆ„ν™”ν•˜κ³  단일 μ±…μž„μ„ 지도둝 섀계해야 ν•˜μ§€λ§Œ, κ·Έλ ‡λ‹€κ³  ν•΄μ„œ μΈν„°νŽ˜μ΄μŠ€ 섀계λ₯Ό λ„ˆλ¬΄ μ„ΈλΆ„ν™”ν•˜λ©΄ λΉ„μ¦ˆλ‹ˆ..

StudyNote 2024. 11. 2. 17:30
비지터(Visitor) νŒ¨ν„΄

비지터 νŒ¨ν„΄μ΄λž€?비지터 νŒ¨ν„΄(방문자 νŒ¨ν„΄)은 μ•Œκ³ λ¦¬μ¦˜μ„ 객체 κ΅¬μ‘°μ—μ„œ λΆ„λ¦¬μ‹œν‚€λŠ” λ””μžμΈ νŒ¨ν„΄μ΄λ‹€. GOF λ””μžμΈ νŒ¨ν„΄ 쀑 ν–‰μœ„ νŒ¨ν„΄μ— ν•΄λ‹Ήν•˜λ©°, μ΄λ ‡κ²Œ 뢄리λ₯Ό ν•˜λ©΄ ꡬ쑰λ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ μ‹€μ§ˆμ μœΌλ‘œ μƒˆλ‘œμš΄ λ™μž‘μ„ 기쑴의 객체 ꡬ쑰에 μΆ”κ°€ν•  수 있게 λ˜λŠ” 개방-폐쇄 원칙을 μ μš©ν•˜λŠ” λ°©λ²•μ˜ ν•˜λ‚˜μ΄λ‹€.비지터 νŒ¨ν„΄μ€ μ΄ν•΄ν•˜κ±°λ‚˜ κ΅¬ν˜„ν•˜κΈ° 맀우 μ–΄λ ΅κ³ , 심지어 μ μš©ν•˜λ©΄ μ½”λ“œμ˜ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ΄ 떨어지기 λ•Œλ¬Έμ— μ‹€μ œλ‘œ 거의 μ‚¬μš©λ˜μ§€λŠ” μ•ŠλŠ”λ‹€. λ”°λΌμ„œ 맀우 νŠΉμˆ˜ν•œ 상황이 μ•„λ‹ˆλΌλ©΄ 비지터 νŒ¨ν„΄μ€ κ³ λ €ν•  ν•„μš”κ°€ μ—†λ‹€.비지터 νŒ¨ν„΄μ˜ λ„μΆœ κ³Όμ •λ‹€μŒ 예제λ₯Ό 톡해 비지터 νŒ¨ν„΄μ΄ λ§Œλ“€μ–΄μ§€λŠ” 과정을 μ‚΄νŽ΄λ³΄μž.μ›Ή μ‚¬μ΄νŠΈμ—μ„œ λŒ€λŸ‰μ˜ νŒŒμΌμ„ ν¬λ‘€λ§ν•˜λŠ”λ° 이 νŒŒμΌλ“€μ˜ ν˜•μ‹μ€ PDF, PPT, Word라고 κ°€μ •ν•΄λ³΄μž. 이 λ¦¬μ†ŒμŠ€ νŒŒμΌμ„ ..

StudyNote 2024. 6. 26. 02:21
λΉŒλ”(Builder) νŒ¨ν„΄

λΉŒλ” νŒ¨ν„΄μ΄λž€?λΉŒλ” νŒ¨ν„΄μ€ 객체λ₯Ό 생성할 λ•Œ μƒμ„±μž(Constructor)만 μ‚¬μš©ν•  λ•Œ λ°œμƒν•  수 μžˆλŠ” 문제λ₯Ό κ°œμ„ ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλ˜μ—ˆμœΌλ©°, 생성기 νŒ¨ν„΄μ΄λΌκ³ λ„ ν•œλ‹€. GOF λ””μžμΈ νŒ¨ν„΄ 쀑 생성 νŒ¨ν„΄μ— ν•΄λ‹Ήν•˜λ©°, λ³΅μž‘ν•œ 객체λ₯Ό μƒμ„±ν•˜λŠ” ν΄λž˜μŠ€μ™€ ν‘œν˜„ν•˜λŠ” 클래슀λ₯Ό λΆ„λ¦¬ν•˜μ—¬ λ™μΌν•œ μ ˆμ°¨μ—μ„œλ„ μ„œλ‘œ λ‹€λ₯Έ ν‘œν˜„μ„ μƒμ„±ν•˜λŠ” 방법을 μ œκ³΅ν•œλ‹€.μƒμ„±μžλ₯Ό μ‚¬μš©ν•œ 객체 μƒμ„±μΌλ°˜μ μΈ κ°œλ°œμ—μ„œ 객체λ₯Ό λ§Œλ“œλŠ” 일반적인 방법은 new μ˜ˆμ•½μ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 클래슀의 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜λŠ” 것이닀. λ¦¬μ†ŒμŠ€ ν’€(Resource pool)의 섀정을 μœ„ν•œ ResourcePoolConfig 클래슀λ₯Ό κ΅¬ν˜„ν•  λ•Œ, 이 λ¦¬μ†ŒμŠ€ ν’€ μ„€μ • ν΄λž˜μŠ€μ—λŠ” μ•„λž˜μ˜ ν‘œμ™€ 같이 μ„€μ • κ°€λŠ₯ν•œ 멀버 λ³€μˆ˜κ°€ μžˆλ‹€.멀버 λ³€μˆ˜μ„€λͺ…ν•¨μˆ˜ μ„€μ •κΈ°λ³Έκ°’nameλ¦¬μ†ŒμŠ€ 이름Oμ—†μŒmaxTo..

StudyNote 2024. 4. 30. 15:42
좔상 νŒ©ν† λ¦¬(Abstract Factory) νŒ¨ν„΄

좔상 νŒ©ν† λ¦¬ νŒ¨ν„΄μ΄λž€? κ΄€λ ¨μ„± μžˆλŠ” μ—¬λŸ¬ μ’…λ₯˜μ˜ 객체λ₯Ό μΌκ΄€λœ λ°©μ‹μœΌλ‘œ μƒμ„±ν•˜λŠ” κ²½μš°μ— 객체λ₯Ό μƒμ„±ν•˜λŠ” μ½”λ“œλ₯Ό μΊ‘μŠν™”ν•˜μ—¬ ꡬ체적인 ν΄λž˜μŠ€μ— μ˜μ‘΄ν•˜μ§€ μ•Šκ³  μ„œλ‘œ μ—°κ΄€λ˜κ±°λ‚˜ 의쑴적인 κ°μ²΄λ“€μ˜ 쑰합을 λ§Œλ“œλŠ” νŒ¨ν„΄μ΄λ‹€. λ‹€μŒκ³Ό 같이 μ—˜λ ˆλ² μ΄ν„° λΆ€ν’ˆ 업체에 λŒ€ν•œ 섀계가 μžˆλ‹€κ³  ν•˜μž. Motor 클래슀의 move λ©”μ„œλ“œμ˜ κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™λ‹€. public void move(Direction direction) { // 1. 이미 이동 쀑이면 λ¬΄μ‹œν•œλ‹€. // 2. λ§Œμ•½ 문이 μ—΄λ € 있으면 문을 λ‹«λŠ”λ‹€. // 3. λͺ¨ν„°λ₯Ό κ΅¬λ™ν•΄μ„œ μ΄λ™μ‹œν‚¨λ‹€. // 4. λͺ¨ν„°μ˜ μƒνƒœλ₯Ό 이동 μ€‘μœΌλ‘œ μ„€μ •ν•œλ‹€. } 3번 뢀뢄을 μ œμ™Έν•˜λ©΄ Hyundai λͺ¨ν„°, LG λͺ¨ν„° λ‘˜ λ‹€ μ½”λ“œκ°€ λ™μΌν•˜κΈ° λ•Œλ¬Έμ— ν…œν”Œλ¦Ώ λ©”μ„œλ“œ νŒ¨ν„΄μ„ μ μš©ν•  수 μžˆλ‹€. Do..