์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ค๋ธ์
- ์ปดํจํฐ๊ณผํ
- css
- JavaScript
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ํ
- ์ฝ๋ฉ
- ๊ฐ๋ฐ
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- K๋ฐฐํฐ๋ฆฌ
- ๋ผํ๋ผ์ค์๋ง๋
- ์๋ฐ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- html
- Java
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ ์
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ์นํผ๋ธ๋ฆฌ์ฑ
- ํ๋ก๊ทธ๋๋ฐ
- ํ์ด์ฌ
- ComputerScience
- database
- ๋ฆฌ์กํธ
- ์ฑ
- ๋ฐ์ํ
- Python
- ์ค๋ผํด
- Today
- Total
JiYoung Dev ๐ฅ
[JAVA MINI PROJECT] ๊ฐ๋ฐ์ ํค์ฐ๊ธฐ ๊ฒ์ ๋ง๋ค๊ธฐ (2023.04.17~2023.04.23) ๋ณธ๋ฌธ
[JAVA MINI PROJECT] ๊ฐ๋ฐ์ ํค์ฐ๊ธฐ ๊ฒ์ ๋ง๋ค๊ธฐ (2023.04.17~2023.04.23)
Shinjio 2023. 4. 23. 13:09๐ ํ๋ก์ ํธ ์ฃผ์
java์ sql์ ์ด์ฉํ์ฌ cmd ์ฝ์์ฐฝ์์ ํ๋ ์ด ๊ฐ๋ฅํ ๊ฐ๋จํ ๊ฒ์ ๋ง๋ค๊ธฐ
MVC ํจํด์ ์ค์ฌ์ผ๋ก ๊ฒ์ ๊ตฌํ
๋ค๋ง๊ณ ์น ๊ฒ์์ ๊ธฐ๋ณธ์ผ๋ก ํ์ฌ ์์ด๋์ด๋ฅผ ๋์ถํ์ฌ ์๋ก์ด ๊ฒ์ ๋ง๋ค๊ธฐ
๐ ํ๋ก์ ํธ ์ผ์ : 2023.04.17(์) ~ 2023.04.22(๊ธ)
๋ ์ง | ์งํ ๋ด์ฉ |
2023.04.17(์) | ์์ด๋์ด ํ์, ์ ์ค์ผ์ด์ค ์์ฑ |
2023.04.18(ํ) | ์๊ตฌ์ฌํญ ๋ช
์ธ์ ์์ฑ, ํ
์ด๋ธ ๋ช
์ธ์ ์์ฑ MVC ๋ชจ๋ํ ๊ตฌ์ฑ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ |
2023.04.19(์) | ๊ธฐํ ๊ฒ์ ํ๋ ์ด ๊ด๋ จ ๋ชจ๋ ๊ธฐ๋ฅ ๊ตฌํ (java, oracle) |
2023.04.20(๋ชฉ) | bgm ์ฝ์
์ค๋ฅ ์์ ๋ฐ ๋ณด์ ๋ฐํ์๋ฃ ์์ฑ |
2023.04.21(๊ธ) | ๋ฐํ |
๐ ๊ฒ์ ์๊ฐ
• ํ์๊ฐ์ ํ ์ฒซ ๋ก๊ทธ์ธ์ 3๊ฐ์ ์บ๋ฆญํฐ(ํ์คํ ๊ฐ๋ฐ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์, ์ธ๊ณต์ง๋ฅ ๊ฐ๋ฐ์) ์ค ํ๋์ ์บ๋ฆญํฐ๋ฅผ ์ ํํ์ฌ ํค์ฐ๋ ๊ฒ์
• ์์ฑํ ๊ฐ๋ฐ์ ์บ๋ฆญํฐ๋ EXP, STRESS, HP 3๊ฐ์ง ์์ฑ์ ๊ฐ์ง๊ณ ์์
• EXP๋ฅผ ๋์ด๋ ๋์ STRESS๋ ๋์์ง๊ณ , HP๋ ๋ฎ์์ง๋ ํ๋๋ค๊ณผ HP์ STRESS๋ฅผ ๋ฎ์ถ๋ ํ๋๋ค๋ก ๊ตฌ์ฑ
• ์์ ์ฌ๋ฌ๊ฐ์ง ํ๋ ์ ํ์ ํตํด EXP๋ฅผ ๋์ฌ ์ฌ๋ฌ ์ ์ ์ค 1๋ฑํ๋ ๊ฒ์ด ๊ฒ์์ ๋ชฉํ
• ๋จ, STRESS๊ฐ 100์ ๋๊ฑฐ๋ HP๊ฐ 0์ด ๋๋ฉด ๊ฒ์ ์ค๋ฒ
• STRESS๋ HP ์์น์ ๋ฐ๋ผ ์ด๋ฒคํธ๊ฐ ์์ผ๋ ์ฃผ์ํ๋ฉฐ ๊ฒ์ ์งํ ํ์
๐ ์ญํ ๋ถ๋ด
ํ์ | ์ญํ |
์กฐ์ฅ(๋) | MODEL ๊ตฌ์ฑ (BGM VO, CHAR VO, USER VO) ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ์์ฑ CONTROLLER (BGM์ปจํธ๋กค๋ฌ, CHAR DAO, GAME DAO, USER DAO) ์ฝ๋ ์์ฑ MAIN (GAME DAO, CHAR DAO ๊ธฐ๋ฅ ์ฐ๊ฒฐ) |
ํ์1 | MAIN ์์ฑ (USER DAO ๊ธฐ๋ฅ ์ฐ๊ฒฐ, GAME DAO ๊ธฐ๋ฅ ์ฐ๊ฒฐ) PPT ์ ์ |
ํ์2 | MAIN์ ํ์ํ ๊ตฌ์ฑ์์ (์์คํค์ฝ๋ ์์ฑ) BGM ์ฝ์ PPT ์ ์ |
ํ์3 | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ BGM ์ปจํธ๋กค๋ฌ, BGM VO ์์ USER DAO ์์ |
๐ ์์ธ ํ๋ก์ ํธ ์งํ ๋ด์ฉ
๐ 1์ผ์ฐจ
์์์ผ ์คํ ์ฃผ์ ๋ฅผ ์ ์ ํ๊ณ ๋ค๋ง๊ณ ์น ๊ฒ์์ ์ด๋ค ์์ผ๋ก ๋ณ๊ฒฝํ ๊ฒ์ธ์ง ์์ด๋์ด ํ์ ์งํ
๊ฐ๋ฐ์ ํค์ฐ๊ธฐ ๊ฒ์์ ์ฃผ์ ๋ก ๋ง๋ค์๋ ์๊ฒฌ ๋์ถํ์๊ณ , ์ ์ค์ผ์ด์ค ์์ฑ์ ํตํด ์์ธ ์์ด๋์ด ๋์ถ
์ ์ค์ผ์ด์ค๋ฅผ ํ ๋๋ก ์๊ตฌ์ฌํญ ๋ช ์ธ์ ์ด์ ์์ฑ
๐ 2์ผ์ฐจ
1์ผ์ฐจ์ ์์ฑํ ์ ์ค์ผ์ด์ค๋ฅผ ํ ๋๋ก ์์ธ ์๊ตฌ์ฌํญ ๋ช ์ธ์ ๋ฐ ํ ์ด๋ธ ๋ช ์ธ์ ์์ฑ
์ญํ ๋ถ๋ด ์งํ
- ์ญํ ๋ถ๋ด ์งํ์ model + ๋ฐ์ดํฐ๋ฒ ์ด์ค (๋) / controller (ํ์3) / main (ํ์1) / ์์คํค ์ฝ๋(ํ์2)๋ก ๋ถ๋ด ์งํ
- ์์ ๊ฒ์์ ์๋จ์ด ๋ง์ถ๊ธฐ, ์ผ๊ตฌ๊ฒ์๋ณด๋ค ์ฌ๋ฏธ ์์๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ์์คํค ์ฝ๋ ์ํธ๋ฅผ ํ์ฉํ์ฌ ์๊ฐ์ ์ผ๋ก ์ฌ๋ฏธ๋ฅผ ์ฃผ๊ธฐ ์ํด ์์คํค ์ฝ๋ ํํธ๋ฅผ ๋ฐ๋ก ๋ถ๋ดํ์์
์์ฑํ ํ ์ด๋ธ ๋ช ์ธ์๋ฅผ ํ ๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ ํ MODEL ์ฝ๋ ์์ฑ
์๊ฐ์ด ๋จ์์ ํ์๊ฐ์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ CONTOROLEER ์ฝ๋ ์์ฑ (DB์ฐ๊ฒฐ , DB๋ซ๊ธฐ, ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ์ ์ฒด ํ์ ์กฐํ ๋ถ๋ถ)
โ๏ธ ๋ณ๋ ์งํ ์ฌํญ
์์ ๊ฐ์ด ์ฒซ๋ ํ์ ํ์ฌ ๊ฐ๋ฐ์ ์งํํด๋ณธ ๊ฒฐ๊ณผ ํ์๋ง๋ค ์ฝ๋ ์์ฑ ์๋์ ์ฐจ์ด๊ฐ ์์์ ํ์ธํ์๊ณ , ๊ตฌ์ฒด์ ์ธ ํ์ ๋ฐฉ์์ด ํ์ํ๋ค๋ ์๊ฐ์ด ๋ค์์
๋ฐ๋ผ์ ์ธ์ธํ๊ฒ ๊ธฐ๋ฅ์ ์ฌ์ ์ ๋ถ๋ฅํ๊ณ ํ์์ด ์ ํ ์๊ฐ ๋ด์ ์ฝ๋๋ก ๊ตฌํํ ์ ์์๋งํ ๊ธฐ๋ฅ๋ค๋ก ์ญํ ์ ์ฌ๋ถ๋ฐฐ
์์ ๋ก ํจํค์ง์ ํด๋์ค๋ฅผ ๊ตฌ๋ถํ๊ณ ๊ทธ ์์ ๋ค์ด๊ฐ์ผ ํ๋ ๋ฉ์๋๋ค์ ์์ฑํ ํ ์ญํ ์ฌ๋ถ๋ฐฐ ์งํ
์ฐ์ ํ๋์ ์๋ฐ ํ๋ก์ ํธ๋ 3๊ฐ์ ํจํค์ง๋ก ๋ถ๋ฅ - Controller, Model, View
Controller : ๊ธฐ๋ฅ ๊ด๋ จ
Model : ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด
View : ์ฌ์ฉ์์ ์ํธ์ํต
๊ฐ๊ฐ์ ํจํค์ง ๋ด์์ ์ฃผ์ ๋ณ๋ก ํด๋์ค๋ฅผ ๋ถ๋ฅ
1. BGM ๊ด๋ จ
2. ์ ์ ๊ด๋ จ (ํ์์ ๋ณด ๋ฑ)
3. ์บ๋ฆญํฐ ์์ฑ ๊ด๋ จ (exp, hp, stress)
4. ์ ์ ์บ๋ฆญํฐ ๊ด๋ จ (์บ๋ฆญํฐ ์์ฑ, ๋ญํน ๋ฑ)
์์ ๊ฐ์ด ํด๋์ค ๋ถ๋ฅ ํ ๊ฐ ํด๋์ค์์ ํ์๋ก ํ๋ ๊ธฐ๋ฅ ์ ์
๐ 3์ผ์ฐจ
์์ธํ๊ฒ ์ฌ๋ถ๋ฐฐ๋ ๋ด์ฉ์ ํ ๋๋ก ๊ฐ์ ํด๋นํ๋ ๋ถ๋ถ ๊ฐ๋ฐ ์์
์์ ์ฝ์ ์ ํตํด ๋ณด๋ค ์ญ๋์ ์ธ ๊ฒ์ ๊ตฌํ์ ํ๊ณ ์ bgm ๊ด๋ จ model, controller ๋ถ๋ถ ์์ฑ
→ ๋ด๊ฐ ์์ฑํ ๊ธฐ๋ณธ ์ฝ๋ ํ ๋๋ก ํ์ 2, ํ์ 3 ๊ฒ์์ ๋ง๊ฒ ์ฝ๋ ์์ ๋ฐ main์ ์ ์ฉ
controller ๋ฅผ ๊ฐ๋ฐํ๋ฉด์ ์ค์ ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด์๋ main๋ถ๋ถ์ด ๊ฐ๋ฐ๋์ด์ผ ํ์
๊ทธ๋ฌ๋ ์์ง ๊ฐ๋ฐ์ด ์งํ๋์ง ์์ ์๋์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ test main ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ ํ ์คํธ ๋ฐ ๊ฐ๋ฐ ์งํ
package VIEW;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Scanner;
import Controller.CharDAO;
import Controller.GameDAO;
import Controller.UserDAO;
import MODEL.CharVO;
public class GameMain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
UserDAO udao = new UserDAO();
int choice = 0;
while (true) {
System.out.println("==== ์ค์ธ์ฌ ๊ฐ๋ฐ์ ํค์ฐ๊ธฐ ====");
System.out.println("๋ฉ๋ด์ ํ [1]ํ์๊ฐ์
[2]๋ก๊ทธ์ธ [3]๊ฒ์์ค๋ช
[4]ํ์ํํด [5]๊ฒ์์ข
๋ฃ >> ");
choice = sc.nextInt();
if (choice == 1) {
System.out.println("=== ํ์๊ฐ์
===");
System.out.println("id์
๋ ฅ >> ");
String inputId = sc.next();
System.out.println("pw์
๋ ฅ >> ");
String inputPw = sc.next();
System.out.println("๋๋ค์ ์
๋ ฅ >> ");
String inputNick = sc.next();
udao.join(inputId, inputPw, inputNick);
System.out.println("ํ์๊ฐ์
์ฑ๊ณต!");
} else if (choice == 2) {
System.out.println("=== ๋ก๊ทธ์ธ ===");
System.out.println("id์
๋ ฅ >> ");
String inputId = sc.next();
System.out.println("pw์
๋ ฅ >> ");
String inputPw = sc.next();
udao.login(inputId, inputPw);
System.out.println("๋ก๊ทธ์ธ ์ฑ๊ณต!");
startGame(udao.login(inputId, inputPw));
} else if (choice == 3) {
System.out.println("=== ๊ฒ์ ์ค๋ช
===");
} else if (choice == 4) {
System.out.println("=== ํ์ํํด ===");
} else if (choice == 5) {
System.out.println("๊ฒ์์ข
๋ฃ");
break;
} else {
System.out.println("์ฌ๋ฐ๋ฅธ ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์.");
}
}
}
public static void startGame(String nick) {
GameDAO gdao = new GameDAO();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("๋ฉ๋ด ์ ํ >> [1] ์ค์ธ์ฌ ๊ฐ๋ฐ์ ํค์ฐ๊ธฐ [2] ๋ญํน ํ์ธ [3] ์บ๋ฆญํฐ ์ํ ํ์ธ [4] ๋๋ค์ ๋ณ๊ฒฝ [5] ์บ๋ฆญํฐ ์ญ์ [6] ๊ฒ์์ข
๋ฃ");
int choice = sc.nextInt();
if (choice == 1) {
System.out.println("====== ์ค์ธ์ฌ ๊ฐ๋ฐ์ ํค์ฐ๊ธฐ ======");
boolean sw = false;
System.out.println(gdao.userCharList());
if(gdao.userCharList().size()==0) {
makeChar(nick);
}
for (int i = 0; i < gdao.userCharList().size(); i++) {
if (gdao.userCharList().get(i).getNick().equals(nick)) {
System.out.println();
gdao.callChar(nick);
System.out.println("====== ์บ๋ฆญํฐ ์ํ ํ์ธ ======");
int userExp = gdao.charGauge(nick).get(0);
int userStress = gdao.charGauge(nick).get(1);
int userHp = gdao.charGauge(nick).get(2);
System.out.printf("EXP : %d STRESS : %d HP : %d\n", userExp, userStress, userHp);
break;
}else {
sw = true;
}
}
if(sw) {
makeChar(nick);
}
raise(nick);
} else if (choice == 2) {
System.out.println("====== ๋ญํน ํ์ธ ======");
for (int i = 0; i < gdao.rank().size(); i++) {
CharVO temp = gdao.rank().get(i);
String userNick = temp.getNick();
int userExp = temp.getExp();
int userStress = temp.getStress();
int userHp = temp.getHp();
System.out.printf("๋๋ค์ : %s EXP : %d STRESS : %d HP : %d\n", userNick, userExp, userStress,
userHp);
}
} else if (choice == 3) {
System.out.println("====== ์บ๋ฆญํฐ ์ํ ํ์ธ ======");
int userExp = gdao.charGauge(nick).get(0);
int userStress = gdao.charGauge(nick).get(1);
int userHp = gdao.charGauge(nick).get(2);
System.out.printf("EXP : %d STRESS : %d HP : %d\n", userExp, userStress, userHp);
} else if (choice == 4) {
System.out.println("====== ๋๋ค์ ๋ณ๊ฒฝ ======");
} else if (choice == 5) {
System.out.println("====== ์บ๋ฆญํฐ ์ญ์ ======");
} else if (choice == 6) {
System.out.println("๊ฒ์ ์ข
๋ฃ");
break;
} else {
System.out.println("์ฌ๋ฐ๋ฅธ ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์.");
}
}
}
public static void raise(String nick) {
CharDAO cdao = new CharDAO();
GameDAO gdao = new GameDAO();
Scanner sc = new Scanner(System.in);
int choice = 0;
while (true) {
System.out.println("==== ํ๋ ์ ํ ====");
System.out.println("[1]์ถ๊ทผํ๊ธฐ [2] ์์
๋ฃ๊ธฐ [3] ํํ๋ก์ ํธ ");
System.out.println("[4]์ฝ๋ฉํ
์คํธ [5] ์๊ฒฉ์ฆ๊ณต๋ถ [6] ์์ต ๋ณต์ต ");
System.out.println("[7]์ ์ฌ์๊ฐ [8] ์ง์๊ฐ๊ธฐ [9] ์์์ผ 5์ ํด๊ทผ ");
System.out.println("[10]์์
์๊ฐ์ ์กธ๊ธฐ [11] ์ฃผ๋ง์ ์ฌ๊ธฐ [12] ์ปคํผ๋ง์๊ธฐ [0] ๊ทธ๋งํ๊ธฐ ");
choice = sc.nextInt();
if (choice == 1) {
cdao.goSmhrd(nick);
} else if (choice == 0) {
break;
} else if (choice == 2) {
cdao.listeningClass(nick);
} else if (choice == 3) {
cdao.teamProject(nick);
} else if (choice == 4) {
cdao.codingTest(nick);
} else if (choice == 5) {
cdao.studyCertificate(nick);
} else if (choice == 6) {
cdao.selfEdu(nick);
} else if (choice == 7) {
cdao.lunchTime(nick);
} else if (choice == 8) {
cdao.goHome(nick);
} else if (choice == 9) {
cdao.monday(nick);
} else if (choice == 10) {
cdao.snooze(nick);
} else if (choice == 11) {
cdao.weekend(nick);
} else if (choice == 12) {
cdao.coffee(nick);
}
System.out.println("====== ์บ๋ฆญํฐ ์ํ ํ์ธ ======");
int userExp = gdao.charGauge(nick).get(0);
int userStress = gdao.charGauge(nick).get(1);
int userHp = gdao.charGauge(nick).get(2);
System.out.printf("EXP : %d STRESS : %d HP : %d\n", userExp, userStress, userHp);
}
}
public static void makeChar(String nick) {
Scanner sc = new Scanner(System.in);
GameDAO gdao = new GameDAO();
System.out.println("๊ฐ๋ฐ์ ์ ํ >> [1]ํ์คํ ๊ฐ๋ฐ์ [2]๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์ [3]์ธ๊ณต์ง๋ฅ ๊ฐ๋ฐ์");
int choice = sc.nextInt();
gdao.creationChar(nick, choice);
if (choice == 1) {
gdao.creationChar(nick, choice);
System.out.println("ํ์คํ๊ฐ๋ฐ์ ์์ฑ ์๋ฃ!");
} else if (choice == 2) {
gdao.creationChar(nick, choice);
System.out.println("๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์ ์์ฑ ์๋ฃ!");
} else if (choice == 3) {
gdao.creationChar(nick, choice);
System.out.println("์ธ๊ณต์ง๋ฅ ๊ฐ๋ฐ์ ์์ฑ ์๋ฃ!");
}
System.out.println("====== ์บ๋ฆญํฐ ์ํ ํ์ธ ======");
int userExp = gdao.charGauge(nick).get(0);
int userStress = gdao.charGauge(nick).get(1);
int userHp = gdao.charGauge(nick).get(2);
System.out.println(nick);
System.out.printf("EXP : %d STRESS : %d HP : %d\n", userExp, userStress, userHp);
}
}
๐ 4์ผ์ฐจ
main ๋ถ๋ถ์์ ์์ฑํด์ผํ๋ ๋ถ๋ถ์ด ๋ง์ 3์ผ์ฐจ์ ๋ด๊ฐ ๊ตฌํํ ๋ถ๋ถ์ ์ง์ main ๋ถ๋ถ ์์ฑ
๊ธฐ๋ฅ ํ๋ ํ๋์ฉ ์คํํ๋ฉด์ ์ค๋ฅ ํ์ธ ๋ฐ ํด๊ฒฐ ์งํ
์คํํ์ผ๋ก ์คํ์ ์์คํค์ฝ๋ ๋ฐฐ์น ์๋ง๋ ํ์์ด ์์ด ์ฝ๋ ์์ ํ์ฌ ์์๊ฒ ๋ณด์ด๊ฒ ์์
๋ฐํ์ค๋น
๋ฐ์ํ๋ ์ค๋ฅ
1. hp, exp ๊ฐ์ด ์๋ก ๋ฐ๋์ด์ ์ ์ฅ๋๋ ํ์ ๋ฐ์
์์ธ ๋ฐ ํด๊ฒฐ๋ฐฉ์ : model (charVO) ์์ฑ์ hp, exp ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ ์์ฑํ์์. main ํด๋์ค์์ charDAO ํด๋์ค์ ๋ฉ์๋๋ฅผ ๋์ด๋ค ์ฐ๊ณ , charDAO๋ charVO์ ๊ฐ์ฒด๋ฅผ ์์ฑํด ์ฐ๋ฉด์ ์ ์ด๋ฐ ํ์์ด ์ผ์ด๋ฌ๋์ง ์ฐพ๊ธฐ ์ฝ์ง ์์์. ํ๋ํ๋ ์ฒ์ฒํ ์ฝ๋๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด์ ์ค๋ฅ ํ์ธ
2. ๊ฒ์ ์คํ์ ํตํด ์บ๋ฆญํฐ hp, exp, stress ๋ณ๋์ ๋ก๊ทธ์ธํ ๋๋ค์ ์ธ ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์บ๋ฆญํฐ ๋ชจ๋์ hp, exp, stress ํจ๊ป ๋ณ๊ฒฝ
์์ธ ๋ฐ ํด๊ฒฐ๋ฐฉ์ : ์์ฑ ๋ณ๊ฒฝ ๊ด๋ จ ๋ฉ์๋์์ sql ๋ฌธ์ฅ ์์ฑ์ where ์กฐ๊ฑด ๋๋ฝ → where์ ์์ฑ ํ ์ ์ ์๋
3. ํ์ํํด ๊ธฐ๋ฅ ๊ตฌํ์ ์ญ์ ๊ฐ ์๋๋ ํ์ ๋ฐ์
์์ธ : ๋๋ค์์ user_info ํ ์ด๋ธ ์ธ ๋ค๋ฅธ 2๊ฐ์ ํ ์ด๋ธ์์ ์ธ๋ํค๋ก ์ฐธ์กฐํ๊ณ ์์์. ์ด๋ก์ธํด ์ญ์ ๋ถ๊ฐ
ํด๊ฒฐ ๋ฐฉ์ : ํ์3์๊ฒ ์ญํ ๋ถ๋ฐฐํ์๊ณ , ํด๊ฒฐ ์๋ฃ. ๊ธฐ์กด์ ๊ฑธ์ด๋์๋ ์ ์ฝ์กฐ๊ฑด์ ์ญ์ ํ๊ณ ์๋กญ๊ฒ ์ ์ฝ์กฐ๊ฑด ์์ฑ. ์ ์ฝ์กฐ๊ฑด ์์ฑ์ cascade on delete ์กฐ๊ฑด์ ์ฃผ์ด user_info ํ ์ด๋ธ์์ ๊ณ์ ์ ์ญ์ ํ ๋ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ ๋ณด๋ ํจ๊ป ์ญ์ ๋ ์ ์๋๋ก ์์
๐ 5์ผ์ฐจ
๋ฐํ ๋ฐ ์์ฐ
๐ ํ๋ก์ ํธ ํ๊ธฐ
1. ์ค๊ณ ๋จ์์ ์ถฉ๋ถํ ๊ณ ๋ฏผํ ํ ๊ฐ๋ฐ ํ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ์ค๊ณ์ ๋ง์ ๊ณ ๋ฏผ์ ํ์ง ์์๋๋ฐ, ๊ธฐ๋ณธํค ์ค์ ์ด๋ ์ ์ฝ์กฐ๊ฑด ์ค์ ์์ฑ์ ์ข๋ ์๊ฐํ์ผ๋ฉด ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์์ ๊ฒ
- ๋ํ, ํ์ฌ์ ํ ์ด๋ธ ๋์ ์๋์ ๊ฐ์ด ํ ์ด๋ธ์ ๊ตฌ์ฑํ๊ณ , ์ถ์/์์ ๊ฐ๋ ์ ํ์ฉํ๋ฉด ์บ๋ฆญํฐ๋ณ๋ก ๋ค๋ฅธ ์์ฑ, ๋ฉ์ธ์ง, ํ๋ ๋ฑ์ ํ ์ ์๋๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ์ ๊ฒ
2. ํ์๊ณผ์ ํ์ ์ ํตํด ์๊ฐ ๋จ์ถ ๋ฐ ํ๋ถํ ์์ด๋์ด ํจ๊ณผ ํ์ธ
- ํผ์ ํ ๋๋ณด๋ค ํ์๋ค๊ณผ ํจ๊ป ํ์ ๋ ์๊ฐ์ด ํจ์ฌ ๋จ์ถ๋์๊ณ , ์๋ก ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ๋์๊ฐ๋ฉฐ ๊ฐ๋ฐ์ ์งํํ ์ ์์ด์ ์ข์์
- ํนํ ์์ด๋์ด ๋์ถ ๋ถ๋ถ์์ ๋ด๊ฐ ์๊ฐํ ์ ์์๋ ๋ถ๋ถ๋ค์ ๋ง์ด ์๊ฐํด๋ด์ฃผ์ด ์ฌ๋ฏธ์๋ ๊ฒ์์ ๋ง๋ค ์ ์์์
- ๋จ, ํ์ ์ ํ์ ๊ฐ๊ฐ๊ธด์ ์ค๋ ฅ ๋ฐ ์ฅ๋จ์ ์ ์ด๋ ค ์ญํ ์ ๋ถ๋ฐฐํ๋๊ฒ ์ค์ํ๋ค๋ ์๊ฐ์ ํ์์
3. main ์ฝ๋ ์์ฑ์ ์ด๋ป๊ฒ ํ๋ฉด ๊น๋ํ๊ฒ ์์ฑํ ์ ์์์๊น...?
์ต์ข ์ฝ๋๋ ์๋ ๋งํฌ ์ฐธ์กฐ!
https://github.com/sin6338ki/fullStackCourse/commit/9c7dae0caeb3fbd1306172fcebb2e2438e0f551a
'project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git&GitHub] branch ๋ง๋ค๊ธฐ (0) | 2023.06.13 |
---|---|
[Git&GitHub] Git๊ณผ Git Hub ์ฌ์ฉ ๊ธฐ๋ณธ (0) | 2023.06.13 |
[์ด๋ ๊ธฐ๋ก ์นํ์ด์ง ๋ง๋ค๊ธฐ] css ์คํ์ผ์ํธ ์์ฑํ๊ธฐ (2023.03.04) (0) | 2023.03.04 |
[์ด๋ ๊ธฐ๋ก ์นํ์ด์ง ๋ง๋ค๊ธฐ] html ๊ธฐ๋ณธ ํ ์ฝ๋ ์์ฑํ๊ธฐ (2023.03.02) (0) | 2023.03.02 |
[์ด๋ ๊ธฐ๋ก ์นํ์ด์ง ๋ง๋ค๊ธฐ] ๊ธฐํ (2023.03.01) (1) | 2023.03.01 |