π¨ UML μμ± λ°©λ²
π¨ UML μμ± λ°©λ²
UML
μ΄λ?
Unified Modeling Language
μ μ½μ΄λ‘, μμ€ν μ μκ°ννμ¬ λ¬ΈμννκΈ° μν νν λ°©λ²μ΄λ€.
μ UML
μ μμ±ν΄μΌ ν κΉ?
μ΅κ·Ό μλ° λμμΈ ν¨ν΄κ³Ό 리ν©ν λ§ κ΄λ ¨ μ± μ μ½μλλ°, λͺ¨λ
UML
μ ν΅ν΄μ κ°λ μ μ€λͺ ν΄ μ£Όμλ€.
λ¬Όλ‘ μΉμ νκ²λ μ± μ 첫 μ₯μμUML
μ κΈ°μ΄μ μΈ λΆλΆμ λ€λ€μ μ± μ μ½λ λ°λ λ¬Έμ κ° μμμ§λ§, λμ€μ νλ‘μ νΈ μ§νν λ μ½λμ νλ¦μ μ€λͺ νκΈ°μ μ’μ κ² κ°μμ μ λ¦¬ν΄ λμΌλ €κ³ νλ€.
λνμ μΈ λ€μ΄μ΄κ·Έλ¨ μ’ λ₯
- ν΄λμ€ λ€μ΄μ΄κ·Έλ¨
- μνμ€ λ€μ΄μ΄κ·Έλ¨
ν΄λμ€ λ€μ΄μ΄κ·Έλ¨
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
interface Executable {
abstract void execute();
}
abstract class ParentClass {
Something _field1;
static int FIELD2;
abstract void method1();
void method2() { /* ... */}
static void method3() { /* ... */}
}
class ChildClass extends ParentClass implements Executable {
void method1() { /* ... */}
void execute() { /* ... */}
}
class Something {
int _value;
// ...
}
- μκΈ° μ½λλ₯Ό ν΄λμ€ λ€μ΄μ΄κ·Έλ¨μΌλ‘ λμννλ©΄ λ€μκ³Ό κ°λ€.
- ν΄λμ€ λ€μ΄μ΄κ·Έλ¨μ ν΄λμ€, μΈμ€ν΄μ€, μΈν°νμ΄μ€ λ± μκ°μ΄ μ§λλλΌλ λ³ν¨μ΄ μλ μ μ μΈ κ΄κ³λ₯Ό νννλ€.
- μλ΅μ΄ μ‘΄μ¬νλ―λ‘ ν΄λμ€ λ€μ΄μ΄κ·Έλ¨μΌλ‘λΆν° μμ€ μ½λλ₯Ό 볡μν μλ μλ€.
β ν΄λμ€μ κ³μΈ΅ κ΄κ³
- νμ΄νλ₯Ό κ°λ¦¬ν€λ €λ©΄ μλλ₯Ό μκ³ μμ΄μΌ νλ―λ‘ νμ΄νλ νμ ν΄λμ€μμ μμ ν΄λμ€λ‘ ν₯νλ€.
- μμ ν΄λμ€λ νμ ν΄λμ€λ₯Ό λͺ°λΌλ λμ§λ§, νμ ν΄λμ€λ μμ ν΄λμ€λ₯Ό μμμΌ νλ€.
- μ΄κ±Έ μμ‘΄νλ€κ³ ννν μ μλ€.
β λ€μ΄μ΄κ·Έλ¨ μμ± λ°©λ²
- κ°κ°μ ν΄λμ€λ μ§μ¬κ°νμΌλ‘ νννλ€.
- μ§μ¬κ°νμ μνμ μΌλ‘ λλ ν΄λμ€λͺ , νλλͺ , λ©μλλͺ μ μμλλ‘ μ λλ€.
- μ‘μΈμ€ μ μ΄ λλ λ©μλμ μΈμ λ± λΆκ° μ 보λ₯Ό μ κ±°λ μλ΅ν΄λ λλ€.
- μΆμ(
abstract
) ν΄λμ€μ νλλ κΈ°μΈμ κΌ΄λ‘ μμ±νλ€. - μ μ (
static
) ν΄λμ€μ νλλ λ°μ€μ κΈλλ€.
β μΈν°νμ΄μ€μ ꡬν
1
2
3
4
5
6
7
8
9
interface Printable {
abstract void print();
abstract void newPage();
}
class PrintClass implements Printable {
void print() { /* ... */ }
void newPage() { /* ... */ }
}
<<interface>>
λ₯Ό λͺ μνμ¬ μΈν°νμ΄μ€λ₯Ό νννλ€.- νμ΄νλ ꡬνμ²΄κ° μΈν°νμ΄μ€λ₯Ό κ°λ¦¬ν€λλ‘ μμ±νλ€.
β μ§μ½
1
2
3
4
5
6
7
8
9
10
class Color { /* ... */ }
class Fruit {
Color color;
}
class Basket {
Fruit[] fruits;
// ...
}
- μΈμ€ν΄μ€λ₯Ό νλλ‘ κ°κ³ μλ ννλ₯Ό μ§μ½μ΄λΌκ³ νλ€.
- κ°λ Ή λ°κ΅¬λμ μ¬λ¬ κ°μ κ³ΌμΌμ΄ μκ³ , κ° κ³ΌμΌμλ μκΉμ΄ μ‘΄μ¬νλ€.
- κ°κ°μ μΈμ€ν΄μ€μ νλ κ°λ μΌλ‘ λ³΄κ³ ν΄λμ€ λ€μ΄μ΄κ·Έλ¨μΌλ‘ νννλ©΄ λ€μκ³Ό κ°λ€.
β μ‘μΈμ€ μ μ΄
1
2
3
4
5
6
7
8
9
10
11
class Something {
private int privateField;
protected int protectedField;
public int publicField;
int packageField;
private void privateMethod() { /* ... */ }
protected void protectedMethod() { /* ... */ }
public void publicMethod() { /* ... */ }
void packageMethod() { /* ... */ }
}
public
μ+
,private
λ-
,protected
λ#
μ ν΄λμ€ μμ λͺ μνλ€.- κ°μ ν¨ν€μ§ λ΄μ ν΄λμ€λ§ μ‘μΈμ€ νκ² νλ €λ©΄
~
λ₯Ό ν΄λμ€ μμ λͺ μνλ€.
β κ΄κ³
- ν΄λμ€ κ° κ΄κ³λ₯Ό λνλ΄κΈ° μν΄ νμ΄νμ
βΆ
λ§ν¬μ μ€λͺ μ ν¨κ» κΈ°μ¬ν μ μλ€. - κ°λ Ή μ¬μ©νκ±°λ μμ±νλ λ±μ κ΄κ³κ° μ‘΄μ¬ν μ μλ€.
μνμ€ λ€μ΄μ΄κ·Έλ¨
- νλ‘κ·Έλ¨μ΄ μλν λ μ΄λ€ λ©μλκ° μ΄λ€ μμλ‘ μ€νλλμ§ νννλ€.
- μνμ€ λ€μ΄μ΄κ·Έλ¨μ μκ°μ λ°λΌ λ³ν¨μ΄ μ‘΄μ¬νλ λμ μΈ κ΄κ³λ₯Ό λνλΈλ€.
- κ° μΈμ€ν΄μ€μμ μλ λ°©ν₯μΌλ‘ λ»μ λΌμ΄ν λΌμΈμ μκ°μ΄ μλ λ°©ν₯μΌλ‘ νλ₯΄λ©°, μΈμ€ν΄μ€κ° μμ‘΄νλ λμλ§ μ‘΄μ¬νλ€.
- λΌμ΄ν λΌμΈ μ€κ°μ μΈλ‘λ‘ κΈ΄ μ§μ¬κ°νμ κ°μ²΄κ° νλ μ€μμ νννλ€.
- μ€μ μΌλ‘ λ κ²μμ νμ΄νλ λ©μλ νΈμΆμ λνλ΄λλ°, κ°λ Ή
open
λΌλ²¨μ΄ λΆμ νμ΄νλ₯Ό μ΄ν΄ 보면client
κ°server
μopen
λ©μλλ₯Ό νΈμΆνμμ μ μ μλ€. - λ©μλ νΈμΆμμ μμνμ¬ μ§μ¬κ°νμ μλμμ μΌμͺ½μΌλ‘ λ»λ μ€μ μ νμ΄νλ λ©μλμ λ°νμ λνλ΄λλ°, λ°ν κ°μ΄ μμ κ²½μ° μλ΅ν μ μμΌλ©°, λ°νλλ©΄ ν΄λΉ μΈμ€ν΄μ€μ μμ‘΄μ μ’ λ£λλ€.
- μ΄μ²λΌ λΌμ΄ν λΌμΈμ λ°λΌ μμμλΆν° μ°¨λ‘λλ‘ μ½μ΄ λκ°κ³ , νμ΄νλ₯Ό λ°λΌκ°μ μΈμ€ν΄μ€ κ°μ νμ‘° λμμ νμΈνλ€.
β λ€μ΄μ΄κ·Έλ¨ μμ± λ°©λ²
- κ° μΈμ€ν΄μ€λ λ€μ΄μ΄κ·Έλ¨ μμͺ½μ μ§μ¬κ°νμΌλ‘ νννλ€.
- μ§μ¬κ°ν μμλ μ½λ‘
:
λ€μ ν΄λμ€ μ΄λ¦μ μ°κ³ λ°μ€μ κΈλλ€. - μΈμ€ν΄μ€μ μ΄λ¦μ΄ νμν λλ
servername:Server
μ²λΌ μ½λ‘ μμ μ΄λ¦μ μ λλ€.
νκ³
- 볡μ‘ν μμ€ν μ νμμκ² μ΄ν΄νλλ‘ νλ κ²μ μ΄λ ΅λ€.
- ν΅μ¬ κΈ°λ₯μ λ‘μ§μ
UML
μ μμ±νμ¬ μν΅νλ©΄ μ’μ κ² κ°λ€λ μκ°μ νλ€.
This post is licensed under CC BY 4.0 by the author.