๋์์ธ ํจํด์ ์์ฑ ํจํด, ํ๋ ํจํด, ๊ตฌ์กฐ ํจํด์ผ๋ก ๊ตฌ๋ถํด์ ์๊ฐํด ๋ณด์์ผ ํ๋ค.
2022.11.05(ํ )
์ฑํฐ 1 - Strategy Pattern (์ ๋ต ํจํด)
์๋ฐ ์ธํฐํ์ด์ค๋ ๊ตฌํ๋ถ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ฌํ์ฉํ ์ ์๋ค.
(Java interfaces have no implementation code, so no code reuse)
-> ์ฆ, ํ๋์ ์์ ํ๋ ค๋ฉด ํ๋์ด ์ ์๋ ์์ํด๋์ค ๋ํ ๋ค ์์ ํด์ผ ํ๋ค.
๋์์ธ ์์น์ ๊ธฐ๋ณธ์ ๋ณํํ๋ ๊ฒ๊ณผ ๋ณํ์ง ์๋ ๊ฒ์ ๊ตฌ๋ถํ๋ ๊ฒ์ด๋ค.
๋ ๋ค๋ฅธ ์์น์ ๊ตฌํ์ด ์๋ ์ธํฐํ์ด์ค๋ฅผ ํ๋ก๊ทธ๋จํ๋ ๊ฒ์ด๋ค.
(program to an interface, in other words, program to a supertype)
Composition์ด inheritance๋ณด๋ค ๋ซ๋ค.
(Favor composition over inheritance)
- ๋ฐํ์์ ํ์(behavior) ๋ณ๊ฒฝ
JDK์์ ์ฌ์ฉ๋ ์ ๋ตํจํด
- Comparator<T>
// TODO
์ ๋ต ํจํด์ ์ต๋ช /๋๋ค ํจ์๋ก ์ด๋ป๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ์ง?
2022.11.12(ํ )
์ฑํฐ 2 - Observer Pattern (์ต์๋ฒ ํจํด)
์ ๋ฌธ์ ๊ตฌ๋ ํ๋ฉด ๊ตฌ๋ ์๋ ๊ตฌ๋ ํ๋ ๋์ ์ ๋ฌธ์ฌ๋ก ๋ถํฐ ์๋ก์ด ์ ๋ฌธ์ ๊ณ์ ๋ฐ๋๋ค.
Observer ํจํด์์๋ ์ ๋ฌธ์ฌ๋ฅผ subject, ๊ตฌ๋ ์๋ฅผ observers๋ก ๋ถ๋ฅธ๋ค.
์ผ๋๋ค ์์กด์ฑ. ํ ๊ฐ์ subject๊ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ. ๋ฎ์ ๊ฒฐํฉ๋.
2022.11. 26(ํ )
์ฑํฐ 3 - Decorator Pattern (๋ฐ์ฝ๋ ์ดํฐ ํจํด)
ํด๋์ค๋ ํ์ฅ์๋ ์ด๋ ค์์ด์ผ ํ์ง๋ง ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค(OCP).
ํฉ์ฑ๊ณผ ์์์ ํตํด ๋ฐํ์์ ์๋ก์ด ํ๋์ ์ถ๊ฐํ ์ ์๋ค.
๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ๋ฉ์๋ ํธ์ถ ์ /ํ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํจ์ผ๋ก์จ ํด๋์ค ๋ณ๊ฒฝ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
java.io ํจํค์ง์ ๋๋ค์๋ ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋จ.
2022.12.03(ํ )
์ฑํฐ 4 - Factory Pattern (ํฉํ ๋ฆฌ ํจํด)
์ถ์ ํฉํ ๋ฆฌ
- ํฉ์ฑ์ ํตํด ๊ฐ์ฒด๋ฅผ ๋ง๋ฆ
ํฉํ ๋ฆฌ ๋ฉ์๋ : Dependency Injection์ ๊ฐ๋ฅํ๊ฒ ํด ์ค.
- abstract Product factoryMethod(String type)
- ์ธํฐํ์ด์ค๋ก ์์ฑํ ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ , ์๋ธํด๋์ค๊ฐ ์ด๋ค ํด๋์ค๋ฅผ ์์ฑํ ๊ฑด์ง ์ ํจ
- high-level ๋ชจ๋๊ณผ low-level ๋ชจ๋ ๋ชจ๋ ์ถ์ํ๋ ํด๋์ค์ ์์กดํจ.
// TODO
๋ค์ ์ฝ๊ณ .. ์ฝ๋ ํ์ธํด ๋ณด๊ธฐ
2022.12.10(ํ )
์ฑํฐ 5 - Singleton Pattern (์ฑ๊ธํด ํจํด)
ํด๋์ค๊ฐ ๋จ ํ ๊ฐ์ ์ธ์คํด์ค๋ง ๊ฐ๋ ๊ฒ์ ๋ณด์ฅํ๊ณ ์ ์ญ์์ ์ ๊ทผํ ์ ์๊ฒ ํด ์ค๋ค.
One of a Kind Objects
๋จ ํ ๊ฐ๋ง ํ์ํ ๊ฐ์ฒด ์: thread pool, caches, dialog boxes, preferences/registry settings๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด, ๋ก๊น ๊ฐ์ฒด ๋ฑ
-> ์ด๋ฐ ๊ฐ์ฒด๋ค์ ์ฌ๋ฌ ๊ฐ ์์ฑํ๋ฉด ์์์ด ํ์์ด์์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋๊ฐ, ์ผ๊ด์ ์ด์ง ์์ ๊ฒฐ๊ณผ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
public MyClass {
public static MyClass getInstance() {
}
}
์ฌ๊ธฐ์ MyClass์ static ๋ฉ์๋์ธ getInstance๋ Class ๋ฉ์๋์ด๊ธฐ๋ ํ๋ค.
์ฆ, ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํด๋์ค ์ด๋ฆ์ ์ฌ์ฉํด์ static method๋ฅผ ์ฐธ์กฐํด์ผ ํ๋ค.
์ด๋ ๊ฒ => MyClass.getInstance();
public MyClass {
private MyClass() {}
public static MyClass getInstance() {
return new MyClass();
}
}
์ฅ์ : lazy instantiation
๋ฌธ์ ์ : ๋ฉํฐ์ค๋ ๋์์ ์ธ์คํด์ค๊ฐ ์ฌ๋ฌ ๊ฐ ์๊ธธ ์ ์์ -> synchronized ํค์๋๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ๋ฉ์๋๊ฐ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋๋ก ๊ฐ์ ํจ. -> ์ฌ์ค ์ฒ์ ์ธ์คํด์ค ์์ฑํ ๋๊ฐ ์๋๋ฉด synchronize ํ ํ์๊ฐ ์์
ํด๊ฒฐ์ฑ :
1. ์๋ฌด๊ฒ๋ ํ์ง ์๋๋ค. ๊ทธ๋ฅ synchronize the getInstance() method ์ฌ์ฉ.
2. lazy instantiation์์ eager instantiation์ผ๋ก ๋ฐ๊พผ๋ค. JVM์ด ํด๋์ค๊ฐ loaded ๋ ๋ ์ธ์คํด์ค ์์ฑ.
3. double-checked locking ์ฌ์ฉ. ์ธ์คํด์ค๊ฐ ์๋์ง ํ์ธํ๊ณ ์๋ ๊ฒฝ์ฐ synchronize ํ๋ค. -> ์ฒ์ ์์ฑํ ๋๋ง synchronize ์ฌ์ฉํ ์ ์์ -> ์ค๋ฒํค๋๋ฅผ ์ค์ผ ์ ์๋ค.
best solution : enum์ ์ฌ์ฉํด์ ์ฑ๊ธํค์ ๋ง๋ฆ.
- synchronization, class loading issues, reflection, serialization/deserialization ์ด์๋ค์ด enum์ ์ฌ์ฉํด์ ์ฑ๊ธํค์ ์์ฑํ๋ฉด ํด๊ฒฐ๋จ.
// TODO
์ synchronize the getInstance() method๋ฅผ expensive ํ๋ค๊ณ ํ๋ ๊ฑธ๊น? (์ฑ๋ฅ์ ์ ํ์ํด)
- synchoronized method๋ ์ค๋ฒํค๋๊ฐ ์๋ค. ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๊ฒ ๋ง๋ค ์ ์๋๋ฐ concurrency(๋์์ฑ)์ ์ ํํ๋ค. ๊ทธ๋ฆฌ๊ณ deadlock์ ์ผ๊ธฐ์ํฌ ์ ์๋ค.
2022.12.17(ํ )
์ฑํฐ 6 - Command Pattern (์ปค๋งจํธ ํจํด)
์์ฒญ์ ๊ฐ์ฒด๋ก ์บก์ํํ๋ค. -> ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์ํ ๊ฐ๋ฅ. ์์ฒญ์ ํ์ ์ ์ฅํ๊ฑฐ๋ ๋ก๊ทธ๋ก ๊ธฐ๋กํ๋ ๊ฒ ๊ฐ๋ฅ. ์์ ์ทจ์ ๊ธฐ๋ฅ์ ์ง์ํด์ ๋ฌธ์ ์์ ๋ง๋๋ ํ๋ก๊ทธ๋จ์์ command pattern์ ์ฌ์ฉ. ctrl + z ํ ๋?
execute() ๋ฉ์๋๋ action ํ๊ณ receiver๋ฅผ ํฌํจํจ.
์ปค๋งจ๋ ํจํด์ ์์ฒญ์ invoker๋ receiver๋ฅผ decoupling ํด์ค.
๋ฆฌ๋ชจํธ ์ปจํธ๋กค์ด invoker ์ญํ ์ ํจ. -> ๋ฆฌ๋ชจ์ปจ์ ๋๋ฅด๋ฉด execute() ๋ฉ์๋๊ฐ ํด๋นํ๋ ์ปค๋งจ๋๋ฅผ ํธ์ถํจ.
// TODO
๋ค์ ๊ณต๋ถํ๊ธฐ
๋๋ค์ ํ์ฉ ๋ฐฉ๋ฒ (์ปค๋งจ๋ ์ธํฐํ์ด์ค์ ๋จ ํ๋์ abstract method๋ง ์์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ)
-> ์์ด๋ผ๊ณ ํจ. Single Abstract Method
2022.12.24(ํ )
์ฑํฐ 7 - Adapter and Facade Patterns (์ด๋ํฐ ํจํด๊ณผ ํผ์ฌ๋ ํจํด)
์ด๋ํฐ ํจํด
์ด๋ํฐ์ฒ๋ผ ์ธํฐํ์ด์ค๋ฅผ ํธํํด์ ์ฌ์ฉํ ์ ์๊ฒ ํด ์ค
ํผ์ฌ๋ ํจํด
๋ค๋ฅธ ํด๋์ค๋ค์ ๋ณต์กํ ์งํฉ์ ๋ํ ๋จ์ํ๋ ์ธํฐํ์ด์ค ์ ๊ณต
Law of Demeter = Principle of Least Knowledge
์ฑํฐ 8 - Template Method Pattern (ํ ํ๋ฆฟ ๋ฉ์๋ ํจํด)
์๊ณ ๋ฆฌ์ฆ์ ๋จ๊ณ๋ฅผ ์ ์ํ๊ณ ์์ํด๋์ค๊ฐ ํ ๊ฐ ๋๋ ์ฌ๋ฌ ๊ฐ์ ๋จ๊ณ๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์์ด ์ฌ์ ์ํ์ฌ ๊ตฌํํ ์ ์๋๋ก ํจ
์ถ์ํด๋์ค์ ์ ์๋ ํ ์ ์์ ํด๋์ค๊ฐ ์ค๋ฒ๋ผ์ด๋ ํด๋ ๋๊ณ ์ ํด๋ ๋จ. ์ต์ ๋์
ํ ํ๋ฆฟ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ sort() - Java Arrays class
์ ๋ต ํจํด๊ณผ ํ ํ๋ฆฟ ๋ฉ์๋ ๋ชจ๋ ์๊ณ ๋ฆฌ์ฆ์ ์บก์ํํ์ง๋ง,
์ ๋ต ํจํด์ ํฉ์ฑ์ ์ฌ์ฉํ๊ณ ํ ํ๋ฆฟ ๋ฉ์๋๋ ์์์ ์ฌ์ฉํ๋ค.
// TODO
Factory Method is a specialization of Template Method.
2022.12.31(ํ )
์ฑํฐ 9 - Iterator and Composite Patterns (๋ฐ๋ณต์ ํจํด๊ณผ ์ปดํฌ์งํธ ํจํด)
๋ฐ๋ณต์ ํจํด (ํ๋)
- ์ปฌ๋ ์ ์์๋ค์ ๊ธฐ๋ณธ ํํ(๋ฆฌ์คํธ, ์คํ, ํธ๋ฆฌ ๋ฑ)์ ๋ ธ์ถํ์ง ์๊ณ ๊ทธ๋ค์ ํ๋์ฉ ์ํํ ์ ์๋๋ก ํ๋ ํ๋ ๋์์ธ ํจํด -> ์ปฌ๋ ์ ์ ์ํ ๋์์ ๋ฐ๋ณต์๋ผ๋ ๋ณ๋์ ๊ฐ์ฒด๋ก ์ถ์ถ
- ๋จ์ผ ์ฑ ์์ ๊ฐ์ง ์ ์๊ฒ ํจ
- ํฅ์๋ for ๋ฌธ์ iterable interface๋ฅผ ์ฌ์ฉ (hasNext(), next() ์ฌ์ฉ ์ ํด๋ ๋จ)
์ปดํฌ์งํธ ํจํด (๊ตฌ์กฐ)
- ํธ๋ฆฌ์ ๊ฐ์ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ
- ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ณตํฉ ๊ฐ์ฒด๋ฅผ ๋ชจ๋ ๋์ผํ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ํจ
์ฑํฐ 10 - State Pattern (์ํ ํจํด)
์ํ ํจํด (ํ๋)
- ๊ฐ์ฒด์ ๋ด๋ถ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋ ํด๋น ๊ฐ์ฒด๊ฐ ํ๋์ ๋ณ๊ฒฝํ ์ ์๋๋ก ํจ
- ๊ฐ์ฒด๊ฐ ํ๋์ ๋ณ๊ฒฝํ ๋ ๊ฐ์ฒด๊ฐ ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์
- ์ ๋ต ํจํด๊ณผ ๋น์ทํจ. (๋จ, ์ ๋ตํจํด์ ์๋ธํด๋์ค์ ๋์์ด๊ณ , ์ํ ํจํด์ ์กฐ๊ฑด์ ์ ๋์์ผ๋ก ๋ณผ ์ ์์)
2023.01.07(ํ )
์ฑํฐ 11 - Proxy Pattern (ํ๋ก์ ํจํด)
ํ๋ก์ ํจํด (๊ตฌ์กฐ)
- RMI(Remote Method Invocation)
RMI๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ก ๊ตฌ์ฑ๋จ.
ํ๋ก์๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ํ ๋์ฒด ๋๋ ์๋ฆฌํ์์๋ฅผ ์ ๊ณตํ ์ ์๋ ๊ตฌ์กฐ ๋์์ธ ํจํด
๊ฐ์ฒด์ ๋ํ ์ ๊ทผ ์ ์ด. ํด๋์ค์ ๋ฉ์ธ ๋ก์ง ์ด์ ์ด๋ ์ดํ์ ๋ฌด์ธ๊ฐ๋ฅผ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ ํ๋ก์๋ ํด๋น ํด๋์ค๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ํํ ์ ์๊ฒ ํจ.
// TODO
์ง๋ ฌํ ๊ณต๋ถํ๊ธฐ
RMI ๋ฐ ํ๋ก์ ํจํด ๋ค์ ๊ณต๋ถํ๊ธฐ
์๋ฐ ๋ฆฌํ๋ ์ , getClass(), getClassLoader()
2023.01.14(ํ )
์ฑํฐ 12 - Compound Patterns (๋ณตํฉ ํจํด)
๋ณตํฉ ํจํด : 2๊ฐ ์ด์์ ํจํด์ ๋ณตํฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ.
Model-View-Controller
model: Observer ํจํด์ ์ฌ์ฉํด views๋ controllers์๊ฒ ๋ณ๊ฒฝ๋ ์ฌํญ์ ์ ๋ฐ์ดํธํด ์ค
view & controller: ์ ๋ต(strategy) ํจํด์ ์ฌ์ฉํจ. ์ปจํธ๋กค๋ฌ๋ ๋ทฐ์ strategy์ด๊ณ , ๋ทฐ๋ ๋ด๋ถ์ ์ผ๋ก ์๋์ฐ๋ ๋ฒํผ ๋ฑ ๊ด๋ฆฌํ๊ธฐ ์ํด composite ํจํด์ ์ฌ์ฉํจ.
MVC์ ์ฌ์ฉ๋๋ ํจํด๋ค:
- strategy pattern
- composite pattern
- observer pattern
2023.01.28(ํ )
์ฑํฐ 13 - Better Living with Patterns (์ค์ ๋์์ธ ํจํด)
๋์์ธ ํจํด์ name, problem, solution, ๊ทธ๋ฆฌ๊ณ consequences ์๊ธฐ
๋์์ธ ํจํด ์นดํ ๊ณ ๋ฆฌ
๋ค๋ฅธ ํจํด ์ข ๋ฅ๋ค
- Architectural Patterns
- Application Patterns
- Domain-Specific Patterns
- Business Process Patterns
- Organization Patterns
- User Interface Design Patterns
2023.02.04(ํ )
์ฑํฐ 14 - Appendix (๊ธฐํ ํจํด)
The Bridge Pattern
- ์ถ์ํ์ ๊ตฌํ๋ถ ๋ชจ๋ ๋ณ๊ฒฝํด์ผ ํ ๋ ์ฌ์ฉํ๋ค.
The Builder Pattern
- ๋ณต์กํ ๊ฐ์ฒด ์์ฑ์ ์บก์ํํ๋ค.
The Chain of Responsibility Pattern
- ํ ๊ฐ ์ด์์ ๊ฐ์ฒด์๊ฒ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๋ค. (๊ฐ์ฒด A๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด ๊ฐ์ฒด B๋ก ๋์ด๊ฐ๊ณ ๊ฐ์ฒด B๊ฐ ์ฒ๋ฆฌ ๋ชปํ๋ฉด ๊ฐ์ฒด C๋ก ๋์ด๊ฐ๊ณ ๊ฐ์ฒด C๊ฐ ์ฒ๋ฆฌ๊ฐ๋ฅํ๋ฉด ์์ฒญ์ C์์ ์ฒ๋ฆฌ๋๊ณ ๊ฐ์ฒด D๋ก ๋์ด๊ฐ์ง ์๋๋ค. ๋ชจ๋ ๊ฐ์ฒด๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉด ์์ฒญ์ด ์คํ๋์ง ์๋๋ค.)
- ์ฃผ๋ก ์๋์ฐ ํค๋ณด๋์์ ๋ง์ฐ์ค ํด๋ฆญ์ด๋ ํค๋ณด๋ ์ด๋ฒคํธ๋ฅผ ํธ๋ค๋งํ ๋ ์ฌ์ฉ๋๋ค.
The Flyweight Pattern
- ๋ฐํ์์ ๊ฐ์ฒด ์ธ์คํด์ค์ ์๋ฅผ ์ค์์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ ์ ์ฝํ ์ ์๋ค.
- ํ๋์ ํด๋์ค ์ธ์คํด์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค.
The Interpreter Pattern
- ๋จ์ํ ์ธ์ด๋ฅผ ํด์ํ ๋ ์ ์ฉํ ํจํด์ด๋ค.
The Mediator Pattern
- ๊ฐ์ฒด ๊ฐ์ ์ง์ ํต์ ์ ํํ๊ณ ์ค์ฌ์ ๊ฐ์ฒด๋ฅผ ํตํด์๋ง ํ๋ ฅํ๋๋ก ํ๋ค.
The Memento Pattern
- ๊ฐ์ฒด๋ฅผ ์ด์ ์ํ๋ก ๋๋๋ฆด ๋ ์ฌ์ฉํ๋ค.
- ๊ฐ์ฒด์ ์ค์ ์ํ๋ฅผ ์ ์ฅํ๊ณ ๊ฐ์ฒด์ ์บก์ํ๋ฅผ ์ ์งํ๋ค.
- ์๋ฐ์์๋ ์์คํ ์ ์ํ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋ซ๋ค.
The Prototype Pattern
- ํด๋์ค์ ์์กดํ์ง ์๊ณ ๊ธฐ์กด ๊ฐ์ฒด๋ค์ ๋ณต์ฌํ ์ ์๋๋ก ํ๋ ์์ฑ ๋์์ธ ํจํด์ด๋ค.
- ์๋ฐ์์๋ clone() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ๊น์ ๋ณต์ฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ญ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ๋ค.
The Visitor Pattern
- ์๊ณ ๋ฆฌ์ฆ๋ค์ด ๊ฐ์ฒด๋ค๋ก๋ถํฐ ๋ถ๋ฆฌ๋ ์ ์๋๋ก ํ๋ ํ๋ ๋์์ธ ํจํด์ด๋ค.
- ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ปดํฌ์งํธ ๊ตฌ์กฐ์ ์ฐ์ฐ์ ์ถ๊ฐํ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ
https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/util/Observable.html
https://post.naver.com/viewer/postView.naver?volumeNo=33471967&memberNo=25379965&vType=VERTICAL
https://wickedlysmart.com/head-first-design-patterns/
https://johngrib.github.io/wiki/pattern/composite/
https://docs.oracle.com/javase/tutorial/rmi/
https://circle.visual-paradigm.com/catalog/
'๋ ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฅ ๋จน์ฌ์ฃผ๋ ๊ฒฝ์ ํ (0) | 2024.10.19 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ ๊ธธ, ๋ฉํ ์๊ฒ ๋ฌป๋ค (0) | 2024.08.29 |
์ฌํ ์ํํธ์จ์ด (2) | 2024.01.25 |
์คํ๋ง ์ธ ์ก์ (3ํ) (0) | 2023.03.18 |
์คํ๋ง ์ ๋ฌธ์ ์ํ ์๋ฐ ๊ฐ์ฒด ์งํฅ์ ์๋ฆฌ์ ์ดํด (0) | 2022.12.06 |
๋๊ธ