์ํํธ์จ์ด ์ค๊ณ ์๋ฆฌ
- ๋ถํ ๊ณผ ์ ๋ณต
- ์ฌ๋ฌ๊ฐ์ ์์ ์์คํ ์ผ๋ก ๋๋๊ณ ๊ฐ ๊ฐ์ ๋ง๋ ๋ค.
- ๋ชจ๋ํ (Modulartly)
- ์์คํ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋จ์๋ก ๋ถ๋ฅ -> ์ฑ๋ฅ / ์ฌ์ฌ์ฉ์ฑ ํฅ์
- ๋ชจ๋ ํฌ๊ธฐ๊ฐ ํด ์๋ก ๋ง๋ค ๋ชจ๋์ ์๋ ์ ๋ค. ๊ทธ๋ผ ํตํฉํ ๋น์ฉ๋ ์ ์ด์ง๋ค. ๋์ ๋ชจ๋ ํ๋์ ๋น์ฉ์ด ๋์
- ๋ชจ๋ ํฌ๊ธฐ๊ฐ ์์ ์๋ก ๋ชจ๋ ์๋ ๋ง์์ง๊ณ ํตํฉํ๋๋ฐ ๋น์ฉ์ด๋ ๋ค.
- ์ถ์ํ (Abstraction)
- ๋ถํ์ํ ๋ถ๋ถ์ ์๋ต, ํ์ํ ๋ถ๋ถ๋ง ๊ฐ์กฐ
- ๋ฌธ์ ์ ํฌ๊ด์ ์ธ ๊ฐ๋ ์ค๊ณ -> ์ธ๋ถํ -> ๊ตฌ์ฒดํ
- ๊ณผ์ ์ถ์ํ : ์ ๋ฐ์ ์ธ ํ๋ฆ๋ง ํ์ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ
- ๋ฐ์ดํฐ(์๋ฃ) ์ถ์ํ: ๋ฐ์ดํฐ์ ์ธ๋ถ์ ์์ฑ์ด๋ ์ฉ๋๋ ์ ์ํ์ง ์๊ณ ๊ตฌ์กฐ๋ง ํํํ๋ค.
- private ์ผ๋ก ์ธ๋ถ์์๋ ์ด ์ ๋ณด๋ฅผ ๋ชจ๋ฅด๊ณ ์์ฑ์๋ก ์ ๋ณด์ ๊ตฌ์กฐ๋ง ์๋ ค์ฃผ๊ณ ์บก์ํ๋ก ์ ๋ณด๋ฅผ ์ป๋๋ค.
- ์ ์ด ์ถ์ํ: ์ด๋ฒคํธ ๋ฐ์์ ์ ํํ ์ ์ฐจ๋ ๋ฐฉ๋ฒ์ ์ ์ํ์ง ์๋๋ค. ๋ํ ๊ฐ๋ฅํ ํํ์ผ๋ก ๋์ฒดํ๋ค.
// ๊ณผ์ ์ถ์ํ
abstract class CoffeeShop {
void processOrder(CoffeeOrder order) {
takeOrder(order);
prepareCoffee(order);
serveCoffee(order);
}
abstract void takeOrder(CoffeeOrder order);
abstract void prepareCoffee(CoffeeOrder order);
abstract void serveCoffee(CoffeeOrder order);
}
// ๋ฐ์ดํฐ ์ถ์ํ
class CoffeeOrder {
private String customerName;
private String coffeeType;
private int quantity;
public CoffeeOrder(String customerName, String coffeeType, int quantity) {
this.customerName = customerName;
this.coffeeType = coffeeType;
this.quantity = quantity;
}
public String getCustomerName() {
return customerName;
}
public String getCoffeeType() {
return coffeeType;
}
public int getQuantity() {
return quantity;
}
}
// ์ ์ด ์ถ์ํ
interface Button {
void onClick();
}
- ๋จ๊ณ์ ๋ถํด (Stepwise refinement)
- ํํฅ์ ์ค๊ณ ์ ๋ต์ผ๋ก ์ถ์ํ๋ฅผ ๋ฐ๋ณตํด์ ์ธ๋ถํ
- ์ ๋ณด ์๋ (Information Hiding)
- ๋ค๋ฅธ ๋ชจ๋์ ์ ๊ทผ/ ๋ณ๊ฒฝ ๋ถ๊ฐ
- ๋ชจ๋์ด ๋ ๋ฆฝ์ ์ด๋ผ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์์ /ํ ์คํธ/์ ์ง๋ณด์ ์ฉ์ด
UML (Unified Modeling Language)
- ๊ณ ๊ฐ/๊ฐ๋ฐ์ ๊ฐ ์๋ํ ์ํต์ ์ํด ํ์คํ๋ ๋ํ์ ๊ฐ์ฒด์งํฅ ๋ชจ๋ธ๋ง ์ธ์ด
- Rumbaugh, Booch, Jacobson ๋ฑ ๊ฐ์ฒด์งํฅ ๋ฐฉ๋ฒ๋ก ์ ์ฅ์ ์ ํตํฉํจ.
- ์ฌ๋ฌผ (Things)
- ๊ตฌ์กฐ (๊ฐ๋ , ๋ฌผ๋ฆฌ์ ์์), ํ๋, ๊ทธ๋ฃน, ์ฃผํด(๋ถ๊ฐ์ ์ค๋ช , ์ ์ฝ์กฐ๊ฑด)
- ๊ด๊ณ (Relationship)
- ์ฐ๊ด ๊ด๊ณ (Association)
- 2๊ฐ ์ด์์ ์ฌ๋ฌผ์ด ์๋ก ์ฐ๊ด ๋ ๊ฒฝ์ฐ, ์๋ฐฉํฅ or ๋จ๋ฐฉ
- ๋ค๋ฅธ ํด๋์ค์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ
- private void setOtherclass(OtherClass other) { this.other = other; }
- ์งํฉ ๊ด๊ณ (aggregation)
- ํ๋์ ์ฌ๋ฌผ์ด ๋ค๋ฅธ ์ฌ๋ฌผ์ ํฌํจ๋ ๊ฒฝ์ฐ (์ ์ฒด-๋ถ๋ถ ๊ด๊ณ)
- ์ฆ, ๋ค๋ฅธ ํด๋์ค๊ฐ ๊ผญ ์์ด์ผ ์์ฑ ๋๋ ๊ฒฝ์ฐ
- private OtherClass other = other;
- ํฌํจ ๊ด๊ณ (Composition)
- ์งํฉ ๊ด๊ณ ๋ด ํ ์ฌ๋ฌผ์ ๋ณํ๊ฐ ๋ค๋ฅธ ์ฌ๋ฌผ์๊ฒ ์ํฅ
- ๋ค๋ฅธ ํด๋์ค๊ฐ ์์ด์ผ ์์ฑ๋์ง๋ง ๋ค๋ฅธ ํด๋์ค๊ฐ ๋์๊ฒ ์ข ์๋ ๊ฒฝ์ฐ
- ๋ด๊ฐ ์ฌ๋ผ์ง๋ฉด ๋ค๋ฅธ ํด๋์ค๋ ์ฌ๋ผ์ง.
- private OtherClass other = new OtherClass();
- ์ผ๋ฐํ ๊ด๊ณ (Generalization)
- ๋ค๋ฅธ ์ฌ๋ฌผ์ ๋นํด ์ผ๋ฐ์ ์ธ์ง ๊ตฌ์ฒด์ ์ธ์ง ํํ
- ์์ ๊ฐ๋ extends
- Child extends Parent
- ์์กด ๊ด๊ณ (Dependency)
- ์ฌ๋ฌผ ๊ฐ ์๋ก ์ํฅ์ ์ฃผ๋ ๊ด๊ณ
- ํ ํด๋์ค์์ ๋ค๋ฅธ ํด๋์ค์ ๊ธฐ๋ฅ์ ์ฌ์ฉ
- public print(OtherPrint print) { print.print(); }
- ์ค์ฒดํ ๊ด๊ณ (Realization)
- ํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์๊ฒ ์คํผ๋ ์ด์ ์ ์ํํ๋๋ก ์ง์
- ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ
- implements OtherClass
- ์ฐ๊ด ๊ด๊ณ (Association)
- ๋ค์ด์ด๊ทธ๋จ (Diagram)
- ๊ตฌ์กฐ, ์ ์ ๋ค์ด์ด ๊ทธ๋จ
- ํด๋์ค : ํด๋์ค ๊ฐ ๊ด๊ณ, ํด๋์ค์ ๋ณ์ ์๋ฃํ, ๋ณ์๋ช ์ ๋ณด
- ๊ฐ์ฒด : ์ธ์คํด์ค๋ฅผ ๊ฐ์ฒด, ๊ฐ์ฒด์ ๊ฐ ์ ๋ณด
- ์ปดํฌ๋ํธ : ๊ตฌํ ๋ชจ๋ ๊ฐ ๊ด๊ณ
- ๋ฐฐ์น : ๋ฌผ๋ฆฌ์ ์์์ ์์น/๊ตฌ์กฐ ํํ Server ์์ ์ด๋ค ์ ๋ณด๊ฐ Client์๊ฒ ์ด๋ค ์ ๋ณด๋ก
- ๋ณตํฉ์ฒด ๊ตฌ์กฐ : ํด๋์ค์ ์ปดํฌ๋ํธ์ ๋ณตํฉ์ฒด ๋ด๋ถ ํํ
- ํจํค์ง : ํจํค์ง ๊ตฌ์กฐ๋ฅผ ํํ
- ํ์, ๋์ ๋ค์ด์ด๊ทธ๋จ
- ์ ์ค์ผ์ด์ค : ์ฌ์ฉ์ + Use Case
- ์ํ์ค : ์์คํ ๊ณผ ๊ฐ์ฒด๊ฐ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง ํํ
- ์ปค๋ฎค๋์ผ์ด์ : ๊ฐ์ฒด๋ค ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง์ ์ฐ๊ด๊ด๊ณ
- ์ํ: ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํธ์์ฉ์ ๋ฐ๋ฅธ ์ํ ๋ณํ
- ํ๋ : ๊ฐ์ฒด์ ์ฒ๋ฆฌ ๋ก์ง, ์กฐ๊ฑด์ ๋ฐ๋ฅธ ์ฒ๋ฆฌ์ ํ๋ฆ ์์์ ๋ฐ๋ผ ํํ
- ํ์ด๋ฐ: ๊ฐ์ฒด ์ํ ๋ณํ, ์๊ฐ ์ ์ฝ์ ํํ
- ์ํธ์์ฉ ๊ฐ์ : ์ํธ์์ฉ ๋ค์ด์ด๊ทธ๋จ ๊ฐ ์ ์ด ํ๋ฆ ํํ
- ๊ตฌ์กฐ, ์ ์ ๋ค์ด์ด ๊ทธ๋จ
- UI ์ค๊ณ (User Interface)
- ์ง๊ด์ฑ, ์ ํจ์ฑ, ํ์ต์ฑ, ์ ์ฐ์ฑ
- CLI(command line), GUI(graphic), NUI(natural), VUI(voice), OUI(organic)
- Wireframe : ๊ธฐํ ์ด ๋๋ต์ ์ธ ๋ ์ด์์ ์ค๊ณ
- Story Board: ์ต์ข ์ ์ฐ์ถ ๋ฌธ์ (์์ด์ดํ๋ ์ UI, ํ๋ก์ธ์ค)
- Prototype : ์์ด์ดํ๋ ์ / ์คํ ๋ฆฌ๋ณด๋์ ์ธํฐ๋ ์ (๋์ ํจ๊ณผ) ์ ์ฉ
- Mockup : ์ค์ ํ๋ฉด๊ณผ ์ ์ฌํ ์ ์ ์ธ ํํ ๋ชจํ
- Use case : ์ฌ์ฉ์ ์ธก๋ฉด ์๊ตฌ์ฌํญ ๋ฐ ๋ชฉํ๋ฅผ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํํ
'์๊ฒฉ์ฆ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๊ธฐ] ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ 22๋ 3ํ ๊ธฐ์ถ ์ค๋ต๋ ธํธ (0) | 2024.07.26 |
---|---|
[์ค๊ธฐ] ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ 23๋ 1ํ ๊ธฐ์ถ ์ค๋ต๋ ธํธ (1) | 2024.07.26 |
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ์๊ตฌ์ฌํญ ๋ถ์ (0) | 2024.07.25 |
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ํ๋ก์ ํธ ๊ณํ (0) | 2024.07.25 |
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - SW ์ค๊ณ (0) | 2024.07.25 |