1. κ°μ
7μ 19μΌ ~ 24μΌ λμ μΌνλͺ° νλ‘κ·Έλ¨μ λ§λλ ν νλ‘μ νΈλ₯Ό μ§ννμμ΅λλ€.
νμλΆλ€μ΄ λ€λ€ λ무 μνμ μ μ μ 맑μ λΆλΆλ§ μ΄μ¬ν νλ
μμ‘°λ‘κ² νλ‘μ νΈκ° μ§νλμλ κ±° κ°μ΅λλ€.
μ΄μ λΆν° νλ‘μ νΈλ₯Ό μ΄λ€ μμΌλ‘ μ§ννμκ³ μ΄λ»κ² λ§λ¬΄λ¦¬λμλμ§ μ°¨κ·Όμ°¨κ·Ό μμ±ν΄ λ³΄κ² μ΅λλ€.
2. νλ‘κ·Έλ¨ μꡬμ¬ν
- μΌνλͺ° νλ‘κ·Έλ¨μ MVC ν¨ν΄μΌλ‘ ꡬνν΄ μ£ΌμΈμ!
- νμ μμ± : μμ΄λ(PK), λΉλ°λ²νΈ
- μν μμ± : νλ²(PK), νλͺ , κ°κ²©, μ¬κ³
- λ‘κ·ΈμΈν νμλ§ μ₯λ°κ΅¬λλ₯Ό μ¬μ©ν μ μμ΅λλ€.
- νμμ΄ λ‘κ·Έμμμ νλ©΄ μ₯λ°κ΅¬λλ μ¬λΌμ§λλ€.
- μꡬ기λ₯ λͺ©λ‘
- νμκ°μ
- λ‘κ·ΈμΈ
- λ‘κ·Έμμ
- μν λͺ©λ‘ μΆλ ₯ : μ¬κ³ κ° μλ μνμ λν΄μ [νμ ] νμνκΈ°
- μ₯λ°κ΅¬λμ μν λ΄κΈ°
- μ₯λ°κ΅¬λμ λ΄κΈ΄ μν λͺ©λ‘ μΆλ ₯
- μ₯λ°κ΅¬λμ λ΄κΈ΄ μν λͺ©λ‘ ꡬ맀
- μ₯λ°κ΅¬λμμ μν λΉΌκΈ°
3. νλ‘μ νΈ νμλΌμΈ
νμ λꡬ : Notion
7μ 19μΌ
1μ°¨ μ€κ³ λ° ννΈ λΆλ°°
7μ 20μΌ ~ 21μΌ
λΆλ°°λ ννΈμ λ§κ² νκΈμ½λ©μ μμ±
7μ 22μΌ
μ€κ³ λ° νκΈμ½λ© κ²μ¬ ν μ½λ μμ± μμ
7μ 23μΌ
μ½λ μ·¨ν© ν PPT μ μ & λ°νμ€λΉ
7μ 24μΌ
λ°ν π’
4. 맑μ μν
νμλΆλ€κ³Ό μ΄μΌκΈ°λ₯Ό λλμ΄ κ°μ 맑μ ννΈλ₯Ό μ νλ μ€ κ°μ¬λμ μΆμ²μΌλ‘
Model 2λͺ
, View 1λͺ
, Controller 2λͺ
μΌλ‘ λλκΈ°λ‘ κ²°μ μ νμκ³
κ·Έμ€ μ λ λͺ¨λΈ λΆλΆμ λ§‘κ² λμμ΅λλ€.
ModelλΆλΆμμλ ννΈλ₯Ό λλ 보λ Member ννΈμ Product ννΈλ‘ λλμλλ°
μ λ Product(μν) λΆλΆμ λ΄λΉνκΈ°λ‘ κ²°μ μ μ§μμ΅λλ€.
5. μμ±ν μ½λ
- ProductDAO
package team3;
import java.util.ArrayList;
public class ProductDAO {
private ArrayList<ProductDTO> datas; // μν λ°μ΄ν°λ₯Ό μ μ₯ν 리μ€νΈ
public ProductDAO() {
this.datas = new ArrayList<ProductDTO>(); // 맴λ²λ³μ μ΄κΈ°ν
// βΌ μν λ°μ΄ν°
ProductDTO data1 = new ProductDTO();
data1.setProductId(1001); // μνλ²νΈ
data1.setProductName("μλ°"); // μνμ΄λ¦
data1.setProductPrice(13990); // μνκ°κ²©
data1.setProductInventory(4); // μνμ¬κ³
this.datas.add(data1); // 리μ€νΈμ data1 μΆκ°
ProductDTO data2 = new ProductDTO();
data2.setProductId(1002); // μνλ²νΈ
data2.setProductName("λΈκΈ°(300g)"); // μνμ΄λ¦
data2.setProductPrice(14900); // μνκ°κ²©
data2.setProductInventory(0); // μνμ¬κ³
this.datas.add(data2); // 리μ€νΈμ data2 μΆκ°
ProductDTO data3 = new ProductDTO();
data3.setProductId(1003); // μνλ²νΈ
data3.setProductName("λ°λλ(1kg)"); // μνμ΄λ¦
data3.setProductPrice(4150); // μνκ°κ²©
data3.setProductInventory(5); // μνμ¬κ³
this.datas.add(data3); // 리μ€νΈμ data3 μΆκ°
ProductDTO data4 = new ProductDTO();
data4.setProductId(1004); // μνλ²νΈ
data4.setProductName("μ°ΈμΈ(1.5kg)"); // μνμ΄λ¦
data4.setProductPrice(8990); // μνκ°κ²©
data4.setProductInventory(2); // μνμ¬κ³
this.datas.add(data4); // 리μ€νΈμ data4 μΆκ°
ProductDTO data5 = new ProductDTO();
data5.setProductId(1005); // μνλ²νΈ
data5.setProductName("λΈλ£¨λ² 리(200g)"); // μνμ΄λ¦
data5.setProductPrice(5660); // μνκ°κ²©
data5.setProductInventory(1); // μνμ¬κ³
this.datas.add(data5); // 리μ€νΈμ data5 μΆκ°
}
public ArrayList<ProductDTO> selectAll(ProductDTO productDTO) {
ArrayList<ProductDTO> datas = new ArrayList<ProductDTO>(); // λ°νν 리μ€νΈ μ΄κΈ°ν
// βΌ 1. μν μ 체 μΆλ ₯
if(productDTO.getcondition().equals("ALL")) { // 컨λμ
κ° == "ALL"μ΄λ©΄
for(ProductDTO data: this.datas) { // μλ‘μ΄ λ¦¬μ€νΈμ this.μν리μ€νΈλ₯Ό λ€μ λ΄μμ λ°ν
datas.add(data); // 리μ€νΈμ λ°μ΄ν° μΆκ°
}
}
// βΌ 2. μ₯λ°κ΅¬λμμ μνλͺ©λ‘ μΆλ ₯ (νμ μν μ μΈ)
else if(productDTO.getcondition().equals("INSTOCK_PRODUCTS")) { // 컨λμ
κ° == "INSTOCK_PRODUCTS"μ΄λ©΄
for(ProductDTO data: this.datas) { // μ¬κ³ 체ν¬ν νμ μνμ μ μΈν μν리μ€νΈλ₯Ό 보λ΄μ€
if(data.getProductInventory() > 0) { // μ¬κ³ κ° 0λ³΄λ€ ν΄ κ²½μ°μ
datas.add(data); // μν 리μ€νΈμ λ΄μ (νμ μν μ μΈ)
}
}
}
return datas;
}
// βΌ 3. μ₯λ°κ΅¬λμ μνλ΄κΈ°
public ProductDTO selectOne(ProductDTO productDTO) {
// βΌ μ λ¬λ°μ μνPKλ‘ μνμ μ ν
for(ProductDTO data:this.datas) {
if(data.getProductId() == (productDTO.getProductId())) {
// Ⲡ컨νΈλ‘€λ¬μμ λ°λ PKκ°κ³Ό μν PKκ°μ λΉκ΅νλ€.
return data; // μΌμΉνλ μνμ λ°νν©λλ€.
}
}
return null; // μνμ΄ μ‘΄μ¬νμ§ μμ κ²½μ°
}
// βΌ 4. μ₯λ°κ΅¬λμ λ΄κΈ΄ μν λͺ©λ‘ ꡬ맀
public boolean update(ProductDTO productDTO) {
for(ProductDTO data:this.datas) {
if(data.getProductId() == (productDTO.getProductId())) { // 리μ€νΈμ μνλ²νΈμ DBμ μνλ²νΈκ° κ°μΌλ©΄
if(data.getProductInventory() >= productDTO.getProductInventory()) {
// β² DBμ μνμ¬κ³ κ° μ₯λ°κ΅¬λμ μνμ¬κ³ λ³΄λ€ ν¬κ±°λ κ°λ€λ©΄ (μ¬κ³ κ° 0 λ―Έλ§μΌλ‘ λ΄λ €κ°μ§ μμκ²½μ°)
data.setProductInventory(data.getProductInventory() - productDTO.getProductInventory());
// β² DBμ μνμ¬κ³ μμ μ₯λ°κ΅¬λμ μνμ¬κ³ λ₯Ό λΊ
return true; // μ λλ‘ μ
λ°μ΄ν° λλ©΄ true λ°ν
}
else { // λ§μ½ μ¬κ³ κ° 0λ―Έλ§μΌλ‘ λ΄λ €κ° κ²½μ°
return false; // false λ°ν
}
}
}
return false; // μνμ μ°Ύμ§ λͺ»νλ©΄ false λ°ν
}
}
- ProductDTO
package team3;
public class ProductDTO {
private int productId; // μν λ²νΈ
private int productPrice; // μν κ°κ²©
private int productInventory; // μν μ¬κ³
private String productName; // μν μ΄λ¦
private String condition; // κ°λ°μμκ² νμν λ°μ΄ν°
public String getcondition() {
return condition;
}
public int getProductId() {
return productId;
}
public void setProductId(int productId) {
this.productId = productId;
}
public int getProductPrice() {
return productPrice;
}
public void setProductPrice(int productPrice) {
this.productPrice = productPrice;
}
public int getProductInventory() {
return productInventory;
}
public void setProductInventory(int productInventory) {
this.productInventory = productInventory;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
@Override
public String toString() {
return "ProductDTO [productId=" + productId + ", productPrice=" + productPrice + ", productInventory="
+ productInventory + ", productName=" + productName + ", condition=" + condition + "]";
}
}
6. λ°ν ν νΌλλ°±
6-1 μ§μμλ΅ λΆλΆ
- μ΄λ νλ ¨μ λΆμ μ§λ¬Έ
ProductDAO μ½λ μ€ public ArrayList <ProductDTO> selectAll(ProductDTO productDTO) {
ArrayList <ProductDTO> datas = new ArrayList <ProductDTO>();
μ΄ λΆλΆμμ Array리μ€νΈλ₯Ό λ λ² λ°μ μ΄μ κ° λκ°μ?
λ΅λ³ : κ·Έ μ΄μ λ 보μμμ μ΄μ λλ¬Έμ this. λ°μ΄ν°λ₯Ό μ§μ λ°μ μ μκΈ° λλ¬Έμ
λμ ν΄μ 리μ€νΈλ₯Ό λ°μ쀬μ΅λλ€.
- κ°μ¬λμ μ§λ¬Έ
λ§μ½ μ¬λ¦λ°©νμ΄ λμ΄ μ¬λ¦νΉκ°μΈμΌμ ν΄μΌ νλ μν©μ΄ μμ
20λ§ μμ§λ¦¬ νΉκ°μΈμΌ ν¨ν€μ§λ₯Ό νμμΌ ν©λλ€.
μ¬λ¦λ°©νμ΄κΈ° λλ¬Έμ ν λ¬ λμλ§ κ°κ²©μ 50% ν μΈν΄μ£Όλ €κ³ νλ€.
μν λ°μ΄ν°λ₯Ό 2000λ²μΌλ‘ μ§μ νκ³ νΉκ°μΈμΌ ν¨ν€μ§λ₯Ό λ§λ€μ΄ νλ μν©μμ
M, V, C κ°κ°μ μ μ₯μμ νΉκ°μΈμΌν¨ν€μ§λ₯Ό λ§λ€κΈ° μν΄ ν μ μλ μν μλ 무μμ΄ μμκΉμ?
λ΅λ³ : Modelμ μ μ₯μμ ν μ μλ μν μ λ§μλλ¦¬κ² μ΅λλ€.
λ¨Όμ 2000λ² νΉκ°μΈμΌ ν¨ν€μ§λ₯Ό μνλ°μ΄ν°λ‘ μμ± ν λ€
λλ¨Έμ§ 50%λ₯Ό ν μΈν΄μ£Όλ λΆλΆμ controllerλΆλ€κ³Ό νμν ν
Modelμμ λ§λ€μ΄μΌκ² λ€ λΌλ μκ²¬μ΄ λμ¨λ€λ©΄
Discount λ©μλλ₯Ό νλ μμ±ν΄μ 50%λ₯Ό ν μΈν΄μ€κ±° κ°μ΅λλ€.
6-2 κ°μ¬λμ νΌλλ°±
- νλ¦° λ§μΆ€λ²μ΄ μλμ§ κ²μ¬νκΈ°
- μ£Όμμ μΆκ°νκΈ° (μ£Όμμ΄ λ무 λΆμ‘±ν¨, κΌΌκΌΌν λ¬λ©΄ λ¬μλ‘ μ’μ)
- λ°νν λ λ λ€κ±°λ μμ§μ΄μ§ μκΈ°
- PPTλ₯Ό λ§λ€ λ λ§λμ μ΄λ―Έλ₯Ό λμΌνκ² λ§μΆκΈ°
6-3 λ°νν λ μμλλ©΄ μ’μ μ
• λ°νλ₯Ό ν λ μ²μκ³Ό λ λͺ¨λ μ΄λ¦μ λ λ² λ§νλ©° μκΈ° μμ μ μ΄ννλ κ² μ€μνλ€.
ex) βΌ
- λ°νμμ λΆλΆ
μλ νμΈμ μ λ ModelλΆλΆμμ Product μ¦ μνμ κ΄ν λ΄μ©μ 맑μ κΉμΉμ£ΌλΌκ³ ν©λλ€.
- λ°νλ§μ§λ§ λΆλΆ
μ΄μμΌλ‘ Modelμ ProductλΆλΆμ λ΄λΉνλ κΉμΉμ£Όμμ΅λλ€.
• λ°νλ₯Ό ν λ λ§ λμ μ λ ν리면 μ λλ€. (λ§μ μ²μ²ν λλ°λλ° λ§νκΈ°)
• λ΅λ³νκΈ° νλ μ§λ¬Έμ μμ ν μμ μ΄μμ΅λλ€.λΌκ³ λ§νλ κ² μ’λ€.
• μκ°μ΄ μμ΄μ μ€κ³λ΄μ©λλ‘ μ½λλ₯Ό μ§μ§ λͺ»ν κ²½μ°μλ
μ€κ³λ΄μ©μ λ°κΎΈλ κ² μλλΌ μ½λλ₯Ό μ§μ§ λͺ»ν λΆλΆμ
νλ‘κ·Έλ¨ μ€ν μμ μ΄λ€.λΌκ³ μ μ΄λλ κ² λ¬λ€.
• λ°νλ₯Ό ν λλ κΌ λλ³Έμ μ§μ μ€μ
λλ³Έμ μ§λ©΄ μ’μ μ
- μ격μ¦μ λλ€ -> μ·¨λνμλ€ / μ€λ₯κ° λ¬λ€ -> μ€λ₯κ° λ°μνμμ΅λλ€. λ±μ λ§ν¬ μμ μ μ©μμ±
- μ΄κ±°λ μ΄λ κ³ μ μ 건 μ λμ λ±μ λ§ν¬κ° μ λμ¨λ€. (μ λ° λ§ν¬λ λ°νμμ - )
7. λλ μ
μ΄λ κ² 7μμ λ§λ¬΄λ¦¬νλ©° ν νλ‘μ νΈλ₯Ό μ§ννμμ΅λλ€.
μ΄λ² ν νλ‘μ νΈλ₯Ό νλ©° λλ μ μ μ€κ³λ₯Ό νννκ³ μμΈνκ² μ§λλλ€λ©΄
κ·Έ λ€μ μ½λλ₯Ό μ§λ λΆλΆμ μ‘°κΈ λ§νλ λΆλΆμ΄ μλλΌλ μ€κ³ λΆλΆμ 보며
κ³ λ―Όνλ©΄ μ λ΅μ μ°Ύμ μ μλ€λ κ²μ μκ² λμμ΅λλ€.
κ·Έλ¦¬κ³ νμ λꡬλ‘μ¨ "notion"μ μ μ΄λΌλ κ²μ λ ν λ² κΉ¨λ«λ νλ‘μ νΈμμ΅λλ€.
κΈ λ΄μ£Όμ λΆλ€ λͺ¨λ κ°μ¬ν©λλ€.
'π·ππππππ π > Team Project' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] 7μ μ΄ ν νλ‘μ νΈ (PokemonGame) (0) | 2024.07.10 |
---|---|
[Java] 6μ ν νλ‘μ νΈ (UpDownGame) (0) | 2024.07.01 |