๋ฅ๋ ฅ ๋จ์ ํ๊ฐ
๊ตญ๋น์์ 10์ผ ์ฐจ์๋ ๋ฅ๋ ฅ ๋จ์ ํ๊ฐ๋ผ๋ ์ํ์ ๋ณด์์ต๋๋ค.
์ํ์ด๋ผ๊ณ ํ์ง๋ง ์ฌ์ค ํ ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ์ฌ๋ฆฌ๋ ๊ฒ ์ํ๋ฌธ์ ์์ต๋๋ค.
์ฝ๋๋ฆฌ๋ทฐ
์ค์ ์๋ ์ฝ๋์ ๋ ธ์ ์ ์์ฌ์ด ๋ถ๋ถ์ ์์ ํ์๊ณ ์คํ๊ฐ ๋๊ธฐ ์ 12์๋ถํฐ ๊ฐ์ฌ๋๊ป ํ ํ๋ก์ ํธ๋ฅผ ํ๋ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ ํ์๋ถ๋ค๊ณผ ํจ๊ป ์ฝ๋ ๋ฆฌ๋ทฐ๋๋์ผ๋ก ๊ฐ๋จํ ํ๊ฐ๋ฅผ ์งํํ์์ต๋๋ค.
๊ฐ์ ๋งก์ ๋ถ๋ถ์ ์ค๋ช ํ๋ฉฐ ๊ฐ์ฌ๋๊ป ์ค๋ช ์ ๋๋ฆฌ๋ฉด ๊ฐ์ฌ๋์ด ์ง๋ฌธ์ ํ๋ ํ์์ผ๋ก ์งํ๋์์ต๋๋ค.
์์ฒญ ๊ธด์ฅ๋์์ง๋ง ๊ธด์ฅ๋๋ ๋ง์์ ์ฐธ์ผ๋ฉฐ ์ ๊ฐ ๋งก์ ๋ถ๋ถ์ ์ค๋ช ํ์์ต๋๋ค.
๋ฌด์ฌํ ์ฝ๋๋ฆฌ๋ทฐ๊ฐ ๋ง๋ฌด๋ฆฌ ๋์๊ณ ๊ฐ๋จํ ํผ๋๋ฐฑ๋ฐ์ ๋ถ๋ถ์ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
ํ ํ๋ก์ ํธ ์ฝ๋
package test03;
import java.util.Random;
import java.util.Scanner;
class Pokemon {
static final Random rand = new Random(); // ๊ฐ์์ฑ์ ๋์ด๊ธฐ ์ํ ์์ ๋ณ๊ฒฝ
static final int MAX_LEVEL = 50; // ์ต๋ ๋ ๋ฒจ 50
int num; // ๊ณ ์ ๊ฐ PK
int level; // 1~5 ๋๋ค๊ฐ
int exp; // ํ์ฌ(๊ธฐ์กด)๊ฒฝํ์น 0
String type; // ๋ฐ๋์ ์)๋ฌผ, ์์คํผ, ...
String name; // ๋ฐ๋์
Pokemon(int num, String type, String name) {
this.num = num; //PK๊ฐ
this.type = type;
this.name = name;
this.level = rand.nextInt(5) + 1; // ์ด๊ธฐํ
// nextInt๋ก ๋ ๋ฒจ ์ค์
this.exp = 0;
}
void attack() {
System.out.println("");
int cntAttack = 0; // attack()์์๋ง ์ฌ์ฉ๋๋ ๋ณ์
// 3๋ฒ์ ๊ณต๊ฒฉ์๋
for (int i = 0; i < 3; i++) {
int newExp; // ํ๋๊ฒฝํ์น 50~500 ๋จ๋ค์ซ์
int randAttack; // ๊ณต๊ฒฉ ๋์ 0~1
randAttack = rand.nextInt(2); // ์ฑ๊ณต50%๊ณผ ์คํจ50%์ ํ๋ฅ ์ ๋ด๋ ๋์
if (randAttack == 1) {
newExp = rand.nextInt(451) + 50; // ๊ฒฝํ์น 50~500์ ๋ด๋ ๋์
System.out.println("===============");
System.out.println("ํจ๊ณผ๊ฐ ๊ต์ฅํ๋ค. ์๋ ํธ๋ ์ด๋์ ํฌ์ผ๋ชฌ์ด ์ฐ๋ฌ์ก์ต๋๋ค.");
System.out.println(newExp + "์ ๊ฒฝํ์น๋ฅผ ์ป์์ต๋๋ค.");
System.out.println("ํฌ์ผ๋ชฌ ํธ๋ ์ด๋ ๋ ๋์์ ์น๋ถ์์ ์ด๊ฒผ๋ค!");
this.levelUp(newExp);
break;
}
else {
System.out.println("===============");
System.out.println((i + 1) + "๋ฒ์งธ ๊ณต๊ฒฉ์ ์คํจํ์์ต๋๋ค.");
System.out.println((2 - i) + "๋ฒ์ ๊ณต๊ฒฉ์๋๊ฐ ๋จ์์ต๋๋ค.");
System.out.println("๋ค์ ๊ณต๊ฒฉ์ ์๋ํฉ๋๋ค.");
cntAttack++; // ๊ณต๊ฒฉํ์ + 1
if (cntAttack == 2) {
System.out.println("===============");
System.out.println("๋ง์ง๋ง ๊ณต๊ฒฉ๋ง์ ์คํจํ์์ต๋๋ค.");
System.out.println("ํฌ์ผ๋ชฌ ํธ๋ ์ด๋ ๋ ๋์์ ์น๋ถ์์ ํจ๋ฐฐํ์์ต๋๋ค...");
System.out.println("ํ๋ํ ๊ฒฝํ์น๊ฐ ์์ต๋๋ค.");
break;
}
}
}
}
void hello() {
// ํผ์นด์ธ๋ ์๊น์๊น, ๊ผฌ๋ถ๊ธฐ๋ ๊ผฌ๋ถ๊ผฌ๋ถ ๋ฑ์ ์ธ์์๋ฆฌ๋ฅผ ์ถ๋ ฅ
System.out.println("Pokemon์์์ hello๋ฉ์๋ ์ฌ์ฉ");
}
void levelUp(int newExp) {
if (this.level >= MAX_LEVEL) { // ์ต๊ณ ๋ ๋ฒจ 50์ผ ๋,๊ฒฝํ์น 0์ผ๋ก ๊ณ ์
System.out.println("์ต๊ณ ๋ ๋ฒจ 50");
this.level = MAX_LEVEL;
this.exp = 0;
}
// ๊ฒฝํ์น๊ฐ 100์ ์ฑ์ธ๋๋ง๋ค ๋ ๋ฒจ์ +1
this.level = newExp / 100 + this.level;
this.exp = newExp % 100 + this.exp;
if (this.exp >= 100) { // ๊ฒฝํ์น๊ฐ 100 ๋์ผ๋ฉด +1 ๋ ๋ฒจ์
this.exp = this.exp - 100;
this.level++;
}
}
@Override
public String toString() {
return "[" + this.name + " " + this.type + " lv." + this.level + " exp." + this.exp + "]";
}
}
class Lucky extends Pokemon { // ๋ญํค
Lucky(int num, String name) {
super(num, "๋
ธ๋ง", name);
}
Lucky(int num) {
this(num, "๋ญํค");
}
@Override
void hello() {
System.out.println("[ " + this.name + " : ๋ญํค! ]");
}
@Override
void attack() {
System.out.println("๋ชธํต๋ฐ์น๊ธฐ!");
super.attack();
}
}
class Pangdori extends Pokemon { // ํฝ๋๋ฆฌ
Pangdori(int num, String name) {
super(num, "๋ฌผ", name);
}
Pangdori(int num) {
this(num, "ํฝ๋๋ฆฌ");
}
@Override
void hello() {
System.out.println("[ " + this.name + " : ํฝํฝ! ]");
}
@Override
void attack() {
System.out.println("๋ฌผ๋ํฌ!");
super.attack();
}
}
class Natu extends Pokemon { // ๋ค์ดํฐ์ค
Natu(int num) {
this(num, "๋ค์ดํฐ์ค");
}
Natu(int num, String name) {
super(num, "์์คํผ", name);
}
@Override
void hello() {
System.out.println("[ " + this.name + " : ๋ค์ค~ํฐ์ค! ]");
}
@Override
void attack() {
System.out.println("์ผ๋๋ ฅ!");
super.attack();
}
}
class Rizarmong extends Pokemon { // ๋ฆฌ์๋ชฝ
Rizarmong(int num, String name) {
super(num, "๋ถ", name);
}
Rizarmong(int num) {
this(num, "๋ฆฌ์๋ชฝ");
}
@Override
void hello() {
System.out.println("[ " + this.name + " : ๋ฆฌ์์! ]");
}
@Override
void attack() {
System.out.println("ํ์ผ๋ฐฉ์ฌ!");
super.attack();
}
}
class Mew extends Pokemon { // ๋ฎค
Mew(int num) {
this(num, "๋ฎค");
}
Mew(int num, String name) {
super(num, "์์คํผ", name);
}
@Override
void hello() {
System.out.println("[ " + this.name + " : ๋ฎค์ฐ๋ฎค์ฐ! ]");
}
@Override
void attack() {
System.out.println("์ผ๋๋ ฅ!");
super.attack();
}
}
class Houdin extends Pokemon { // ํ๋
Houdin(int num) {
this(num, "ํ๋");
}
Houdin(int num, String name) {
super(num, "์์คํผ", name);
}
@Override
void hello() {
System.out.println("[ " + this.name + " : ํ๋๋! ]");
}
@Override
void attack() {
System.out.println("์ผ๋๋ ฅ!");
super.attack();
}
}
public class Test03 {
public static boolean isEmpty(int cnt) {
if(cnt <= 0) {
System.out.println("์ฌ์ฉํ ์ ์๋ ํฌ์ผ๋ชฌ์ด ์์ต๋๋ค");
return true;
}
return false;
}
public static boolean isFull(int cnt) { //ํฌ์ผ๋ชฌ์ด ์์ ๋
if(cnt >= 6) {
System.out.println("ํฌ์ผ๋ชฌ์ด ๊ฐ๋ ์ฐผ์ต๋๋ค");
return true;
}
return false;
}
//ํฌ์ผ๋ชฌ์ด ๊ฐ๋ ์ฐผ์ ๋
public static void printList(Pokemon[] datas, int cnt) {
System.out.println("\n=== ๋์ ํฌ์ผ๋ชฌ ===");
for (int i = 0; i < cnt; i++) {
System.out.println((i+1) + "๋ฒ ํฌ์ผ๋ชฌ " + datas[i]);
}
System.out.println("===============");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int PK = 1;
String[] pokemon = {"๋ญํค", "๋ฆฌ์๋ชฝ", "ํ๋", "ํฝ๋๋ฆฌ", "๋ค์ดํฐ์ค", "๋ฎค"}; //ํฌ์ผ๋ชฌ ์ข
์ ๋ฐฐ์ด
Pokemon[] caughtPokemon = new Pokemon[6]; //์ก์ ํฌ์ผ๋ชฌ์ ๋ฐฐ์ด
caughtPokemon[0] = new Lucky(PK++);
caughtPokemon[0].level = 5; // ์์ ํ๊ณ ์๋ ๋ญํค์ ๋ ๋ฒจ์ 5๋ก ๊ณ ์ !
int cnt = 1;
// ์์์ ์:๋ฉ๋ด ๋ฒํธ
final int EXIT = 0, PLAY = 1, INFO = 2, HOWLING = 3, CATCH = 4; //๋ฐฐ์ด ํ์ฉ ์์ํํด์ ์ ์ง๋ณด์ ์ฉ์ดํ๊ฒ ๋ง๋ฌ
//๋ฉ๋ด ํญ๋ชฉ ๋ฐฐ์ด
String[] menus = new String[] {"[๊ฒ์์ข
๋ฃ]", "[๊ฒ์ํ๊ธฐ]", "[์ ์ฒด์ํ์ถ๋ ฅ]", "[์ธ์์๋ฆฌ๋ฃ๊ธฐ]", "[ํฌ์ผ๋ชฌ์ก๊ธฐ]"};
//๋ฉ๋ด ํ
์คํธ ์์ฑ
String menuText = "๋ฉ๋ด์ถ๋ ฅ \n";
for (int i = 0; i < menus.length; i++) {
menuText += i + ". " + menus[i] + "\n";
}
while (true) {
// System.out.println("๋ฉ๋ด์ถ๋ ฅ \n0. ๊ฒ์์ข
๋ฃ\n1. ๊ฒ์ํ๊ธฐ\n2. ์ ์ฒด์ํ์ถ๋ ฅ\n3. ์ธ์์๋ฆฌ๋ฃ๊ธฐ\n4. ํฌ์ผ๋ชฌ์ก๊ธฐ");
System.out.println(menuText);
System.out.print("๋ฒํธ๋ฅผ ์ ํํ์ธ์ : ");
int menu = sc.nextInt();
if (menu == EXIT) {
System.out.println("๊ฒ์ ์ข
๋ฃ");
break;
} else if (menu == PLAY) { // 1. ๊ฒ์ํ๊ธฐ
if(isEmpty(cnt)) {
continue;
}
int selecNum = 0; // ๋ฉ๋ด๋ฅผ ๋ฒํธ๋ก ์ ํ
System.out.println("\nํฌ์ผ๋ชฌ ํธ๋ ์ด๋ ๋ ๋๊ฐ ์น๋ถ๋ฅผ ๊ฑธ์ด์๋ค!");
System.out.print("๋ช ๋ฒ์งธ ํฌ์ผ๋ชฌ์ ๋ด๋ณด๋ผ์ง ์ ํํด์ฃผ์ธ์! (1 ~ "+ cnt+")" );
while(true) {
printList(caughtPokemon, cnt);
selecNum = sc.nextInt(); //์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํฌ์ผ๋ชฌ
if(0 < selecNum && selecNum <= cnt) {
System.out.println(caughtPokemon[selecNum-1].name + " ๋๋ก ์ ํ๋ค!");
System.out.println(caughtPokemon[selecNum-1].name+ "์(๋) ๋ฌด์์ ํ ๊น?");
caughtPokemon[selecNum-1].attack();
printList(caughtPokemon, cnt);
break;
}
System.out.println("โปโปโปโปโป ํ์ฌ ๊ฐ์ง๊ณ ์์ง ์์ ํฌ์ผ๋ชฌ์
๋๋ค.โปโปโปโปโป\n๋ค์ ์
๋ ฅํด์ฃผ์ธ์ ");
// ์๋ ํฌ์ผ๋ชฌ์ ์ ํํ ๊ฒฝ์ฐ
}
}else if (menu == INFO) { // 2. ์ ์ฒด์ํ์ถ๋ ฅ
if(isEmpty(cnt)) {
continue;
}
printList(caughtPokemon, cnt);
} else if (menu== HOWLING) { // 3. ์ธ์์๋ฆฌ๋ฃ๊ธฐ
if(isEmpty(cnt)) {
continue;
}
int selecNum; // ์ฌ์ฉ์๊ฐ ์ ํํ ์ซ์
while(true) {
printList(caughtPokemon, cnt);
System.out.println("๋ฃ๊ณ ์ถ์ ํฌ์ผ๋ชฌ๋ฒํธ ์ ํ >>");
sc.nextLine(); // ๋ฒํผ๋ซ๊ธฐ
if(sc.hasNextInt()) { // ์ซ์์ธ์ง ์๋์ง
selecNum = sc.nextInt();
if(0<selecNum && selecNum <= cnt) { // ์ ํจ์ฑ ๊ฒ์ฌ
caughtPokemon[selecNum-1].hello();
break;
}
else {
System.out.println("โปโปโปโปโป ์ ํจํ ์ซ์๋ง ์
๋ ฅํ์ธ์. โปโปโปโปโป");
}
}
else {
System.out.println("โปโปโปโปโป ์ซ์๋ง ์
๋ ฅํด์ฃผ์ธ์. โปโปโปโปโป");
continue;
}
}
} else if (menu == CATCH) { // 4. ํฌ์ผ๋ชฌ์ก๊ธฐ
if(isFull(cnt)) {
continue;
}
int selecMenu;//์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋ฉ๋ด
String pokemonName;
while(true) {
if(isFull(cnt)) {
break;
}
System.out.println("ํฌํํ ํฌ์ผ๋ชฌ์ ์
๋ ฅํด์ฃผ์ธ์");
//๋ญํค, ๋ฆฌ์๋ชฝ, ํ๋, ํฝ๋๋ฆฌ, ๋ค์ดํฐ์ค, ๋ฎค ์ค์์ ์ ํ!
System.out.println("[1. ๋ญํค 2. ๋ฆฌ์๋ชฝ 3. ํ๋ 4. ํฝ๋๋ฆฌ 5. ๋ค์ดํฐ์ค 6. ๋ฎค ]");
selecMenu = sc.nextInt();//์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํฌ์ผ๋ชฌ
//์ ํจ๊ฐ ์ธก์
if(selecMenu<1 || selecMenu>pokemon.length) {
System.out.println("โปโปโปโปโป ์๋ ๋ฒํธ์
๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์ โปโปโปโปโปโป");
continue;
}
while(true) {
System.out.println(pokemon[selecMenu-1]+"์ ์ด๋ฆ์ ์
๋ ฅํด์ฃผ์ธ์");
pokemonName = sc.nextLine(); // ๋ฒํผ๋น์ฐ๊ธฐ
pokemonName = sc.nextLine();
//์ฌ์ฉ์๊ฐ ์์ฑํ ์ด๋ฆ์ ํ๋ฒ๋ ํ์ธ
System.out.print(pokemonName + "(์ผ)๋ก ํ์๊ฒ ์ต๋๊น? (Y/N) : ");
String answer = sc.next();//์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋๋ต
if(answer.equalsIgnoreCase("Y") || answer.equalsIgnoreCase("YES")) {
break;
}
System.out.print("๋ค์ ์
๋ ฅํด์ฃผ์ธ์ : ");
}
// ์ด๋ฆ์ ์
๋ ฅํ์ง ์์ ๊ฒฝ์ฐ ํฌ์ผ๋ชฌ์ ์ด๋ฆ์ ์ข
๋ช
if(pokemonName.isEmpty()) {
pokemonName = pokemon[selecMenu-1];
}
if(selecMenu == 1) {
caughtPokemon[cnt] = new Lucky(PK++, pokemonName);
}
else if(selecMenu == 2) {
caughtPokemon[cnt] = new Rizarmong(PK++, pokemonName);
}
else if(selecMenu == 3) {
caughtPokemon[cnt] = new Houdin(PK++, pokemonName);
}
else if(selecMenu == 4) {
caughtPokemon[cnt] = new Pangdori(PK++, pokemonName);
}
else if(selecMenu == 5) {
caughtPokemon[cnt] = new Natu(PK++, pokemonName);
}
else{
caughtPokemon[cnt] = new Mew(PK++, pokemonName);
} // ํฌ์ผ๋ชฌ์ ์ด๋ฆ์ ์ง์ ํ, ํฌ์ผ๋ชฌ ์ข
์ ๋ฐ๋ฅธ ๊ฐ์ฒด ์์ฑ
System.out.println(pokemonName + "์(๋ฅผ) ํฌํํ์ต๋๋ค");
printList(caughtPokemon, ++cnt);
break;
}
} else {
System.out.println("โปโปโปโปโปโป ์๋ชป๋ ์
๋ ฅ์
๋๋ค. โปโปโปโปโปโป");
}
}
}
}
ํผ๋๋ฐฑ
1. ํฌ์ผ๋ชฌ์ ๋ ๋ฒจ์ ํ๋ ๊ณผ์ ์์ ํ๋ฒ์ +5๊ฐ ๋๋ ๊ฒ์ด ์๋๋ผ ์ค์ ๊ฒ์์ฒ๋ผ +1, +1, +1, +1, +1 ์ด ๋๋ ํ์์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ ๊ฒ์ด ์ข์์ ๊ฑฐ ๊ฐ๋ค.
--> ํ๊ฒ,๋ชฉํ,์๋ฃ,์์ฅ,๊ฒฝ์์๋ ์กฐ์ฌ๊ฐ ๋ถ์กฑํ๋ค
2. levelUp() ๋ฉ์๋์์๋ this.level๊ณผ this.exp๊ฐ ์ฌ์ฉ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ์๋ก ๋ฐ์ ํ์๊ฐ ์๊ณ ํ์์ ์ค๋ช ์ด ํ์ํ ์ฝ๋์ด๋ค.
--> ๋ฉ์๋ ์ฌ์ฉํ ๋ ์ธ์์ฌ๋ถ/์ธ์์ ๋ํ ์ค๋ช ์ฃผ์๋ ๋ถ์กฑ
3. ๋ง๋ค์ด๋ ์์ฑ์๊ฐ 1๊ฐ ๋ ์ฌ์ฉ๋๊ณ ์์๋ค.
--> ๋ญํค ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ๋ฐ๋ก ๋ถ๋ชจ์์ฑ์๋ฅผ ํธ์ถ
4. ๋ด๊ฐ ์์ฑํ ์ฝ๋์ ์ฃผ์์ด ์์
--> ์์ ์ด ์์ฑํ ์ฝ๋์ ๋ค๋ฅธ ์ฌ๋์ด ๋ดค์ ๋ ์ด๊ฒ ๋ญ์ง ์ดํดํ ์ ์๋๋ก ์ฃผ์์ ์์ฑ
์ข์๋ ๋ถ๋ถ
1. UI/UX ์ฌ์ฉ์ ์นํ์ ์ด๋ค.
--> attack() ๋ฉ์๋์์์ main()์ ๊ฒ์ํ๊ธฐ ๋ฑ์์ ์ถ๋ ฅ๋๋ ๋ฉํธ, ์ฌ์ฉ์์ ํฌ์ผ๋ชฌ ์ ๋ณด ์๋ฃ์กฐ์ฌ, ์ค์ ํฌ์ผ๋ชฌ ๊ฒ์ ๊ฒฝํ ๋ฑ์ ํตํ ๋ฉํธ ์ค์ ์ด ์ข์๋ค.
2. ์ฝ๋๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๊ธฐ ํธํ๊ฒ ์์ฑํ์๋ค.
// ์์์ ์:๋ฉ๋ด ๋ฒํธ
final int EXIT = 0, PLAY = 1, INFO = 2, HOWLING = 3, CATCH = 4; //๋ฐฐ์ด ํ์ฉ ์์ํํด์ ์ ์ง๋ณด์ ์ฉ์ดํ๊ฒ ๋ง๋ฌ
//๋ฉ๋ด ํญ๋ชฉ ๋ฐฐ์ด
String[] menus = new String[] {"[๊ฒ์์ข
๋ฃ]", "[๊ฒ์ํ๊ธฐ]", "[์ ์ฒด์ํ์ถ๋ ฅ]", "[์ธ์์๋ฆฌ๋ฃ๊ธฐ]", "[ํฌ์ผ๋ชฌ์ก๊ธฐ]"};
//๋ฉ๋ด ํ
์คํธ ์์ฑ
String menuText = "๋ฉ๋ด์ถ๋ ฅ \n";
for (int i = 0; i < menus.length; i++) {
menuText += i + ". " + menus[i] + "\n";
}
System.out.println(menuText);
--> ์์ ์ฝ๋์ฒ๋ผ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๊ธฐ ํธํ๋๋ก ์ฝ๋๋ฅผ ์์ฑํ ๋ถ๋ถ์ด ์ข์์ต๋๋ค.
๋ง๋ฌด๋ฆฌ
์ด๋ ๊ฒ ์ค๋ ๋ฅ๋ ฅ ๋จ์ ํ๊ฐ๋ฅผ ๋ณด์์ต๋๋ค. ํผ๋๋ฐฑ๋ฐ์ ๋ถ๋ถ์ ๊ธฐ์ตํ๋ฉฐ ๋ค์์๋ ์ ๋ฐ ๋ฌธ์ ์ ๋ค์ ๊ณ ์น ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ฑํด ๋ณด๋ ๊ฒ ์ค์ ํ ๊ฑฐ ๊ฐ์ต๋๋ค.
์ ๋ ๋ค์ ๊ธ๋ก ์ฐพ์์ค๊ฒ ์ต๋๋ค.
๋ด์ฃผ์ ๋ถ๋ค ๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค.
'ํ์คํ ๊ฐ๋ฐ์ ์์ฑ๊ณผ์ ๐ชซ > ใ Java ใ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ฐฐ์ด๋ฆฌ์คํธ์ ๋งต (0) | 2024.07.16 |
---|---|
[Java] MVC ํจํด์ผ๋ก ์ฝ๋ ์์ฑํ๊ธฐ (0) | 2024.07.16 |
[Java] ์๋ฐ ์ฉ์ด ์ ๋ฆฌ (0) | 2024.07.10 |
[Java] ๋๋ฌผ์ ์ฒ ์ฝ๋ ์์ฑ (0) | 2024.07.10 |
[Java] ๊ฐ์ฒด ์ฌํ (0) | 2024.07.10 |