[java] MVC
MVC ν¨ν΄μ΄λ?
backendμμ μ€κ³λ₯Ό ν λ λ§μ΄ μ¬μ©λλ λμμΈ ν¨ν΄μ€μ νλλ‘ Model, View, Controllerλ‘ μΈ κ°μ§ μν λ‘ λΆλ¦¬νμ¬ κ΄λ¦¬νλ λμμΈ ν¨ν΄μ΄λΌκ³ νλ€.
- Model : λ°μ΄ν°μ λ°μ΄ν° μ²λ¦¬ λ‘μ§μ λ΄λΉνκ³ , λ°μ΄ν°λ² μ΄μ€μ μνΈμμ© λ°μ΄ν° μ²λ¦¬ λ° κ²μ¦κ³Ό κ°μ μμ λ€μ μ§ννλ ννΈ μ€μ§μ μΌλ‘ λ΄λΆμμ μ°μ°λ±μ μ§ννλ©° λ°μ΄ν°λ₯Ό λΆλ¬μ¨λ€λμ§, λ°μ΄ν°κ° μ ν¨νμ§ κ²μ¦νλ€λμ§ λ±μ μμ μ νλ Model ννΈμμ μμ±μ νλ€.
- View : μ¬μ©μμκ² μ 보λ₯Ό 보μ¬μ£Όλ μν μ νλ ννΈ μ¬μ©μμκ² μ 보λ₯Ό λ°νν΄μ£Όλ λ‘μ§λ€μ Viewμμ λ³΄ν΅ κ΅¬μ±μ ν©λλ€. νμκ° μ€κ³νλλ‘ λ°μ΄ν°λ₯Ό 보μ¬μ€λ€λκ°, λ°μ΄ν°λ€μ λ°μμ μ μ₯νλ€λκ° λ±μ λν μ½λλ₯Ό View ννΈμμ μμ±μ νλ€.
- Controller : μ¬μ©μμ μ λ ₯μ λ°μ μ²λ¦¬νκ³ μ¬μ©μκ° μΉνμ΄μ§μμ λ²νΌμ λλ₯΄κ±°λ λ§ν¬λ₯Ό ν΄λ¦ν λ μ μ ν μ²λ¦¬λ₯Ό νλ ννΈλ₯Ό μ΄μΌκΈ°νλ€. Modelκ³Ό View μμ μμ±μ νλ μ½λλ€μ μ μ ν μ μ‘°ν©ν΄μ μ¬μ©μμ μ λ ₯μ λ°λΌ Modelμ μ λ°μ΄νΈνκΈ°λ νκ³ , μ¬μ©μκ° μνλ λ°μ΄ν°μ μ΄λ€κ²λ€μ μ‘°ν©ν΄μ 보μ¬μ€κ²μΈμ§λ₯Ό μ νλ κ²μ Controller ννΈμμ μμ±μ νλ€.
java μμ μ½λ
Model
public class UserModel {
private String username;
private String email;
public UserModel(String username, String email) {
this.username = username;
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
View
import java.util.Scanner;
public class UserView {
private Scanner scanner;
public UserView() {
this.scanner = new Scanner(System.in);
}
public String getUsernameInput() {
System.out.print("μ¬μ©μ μ΄λ¦μ μ
λ ₯νμΈμ: ");
return scanner.nextLine();
}
public String getEmailInput() {
System.out.print("μ΄λ©μΌμ μ
λ ₯νμΈμ: ");
return scanner.nextLine();
}
public void closeScanner() {
scanner.close();
}
public void displayUserDetails(String username, String email) {
System.out.println("Username: " + username);
System.out.println("Email: " + email);
}
}
Controller
public class UserController {
private UserModel model;
private UserView view;
public UserController(UserModel model, UserView view) {
this.model = model;
this.view = view;
}
public void setUserInput() {
String username = view.getUsernameInput();
String email = view.getEmailInput();
model.setUsername(username);
model.setEmail(email);
}
public void displayUserDetails() {
String username = model.getUsername();
String email = model.getEmail();
view.displayUserDetails(username, email);
}
public void closeScanner() {
view.closeScanner();
}
}
main
public class Main {
public static void main(String[] args) {
UserModel user = new UserModel();
UserView view = new UserView();
UserController controller = new UserController(user, view);
controller.setUserInput();
controller.displayUserDetails();
controller.closeScanner();
}
}
μμ μ½λλ₯Ό λΆμμ ν΄λ³΄λ©΄ Model ννΈμμλ usernameκ³Ό emailλ€μ μ μ₯νκ³ λ°νν μ μλλ‘ getterμ setterλ€μ ꡬμ±νκ³ μκ³ ,
View ννΈμμλ μ¬μ©μμ usernameκ³Ό emailμ λ°λ λΆλΆκ³Ό λ°νν΄μ£Όλ κ²λ€λ‘ ꡬμ±μ΄ λμ΄μκ³ ,
Controller ννΈμμλ μμμ μμ±ν Modelκ³Ό Viewλ₯Ό μ μ ν μ μ‘°ν©ν΄μ Viewλ₯Ό ν΅ν΄ μ¬μ©μμ μ λ ₯μ λ°μ Modelμ ν΅ν΄ λ°μ΄ν°λ₯Ό μΆκ°νλ setUserInputμ μ μ₯ν λ°μ΄ν°λ₯Ό 보μ¬μ€ μ μλ displayUserDetailsκ° κ΅¬μ±μ΄ λμ΄μλ€.
https://velog.io/@hwsa1004/Java-MVC-ν¨ν΄