1. ACTION / CONDITION 차이..
비즈니스 로직을 처리하는 방식에서 조건과 동작을 나누는 개념
① CONDITION (조건) : 어떤 동작(ACTION)이 실행될지 결정하는 논리적 조건
- 사용자의 입력이나 특정 상태(로그인 여부, 권한 체크 등)를 확인해서 특정 분기를 결정함
- if문 등으로 작성되며, 어떤 ACTION이 수행될지 판단하는데 사용
if(memberDTO.getCondition().equals("LOGIN")) {
pstmt=conn.prepareStatement(SELECTONE);
pstmt.setString(1, memberDTO.getMid());
pstmt.setString(2, memberDTO.getPassword());
}
else if(memberDTO.getCondition().equals("MYPAGE")) {
pstmt=conn.prepareStatement(SELECTONE_MID);
pstmt.setString(1, memberDTO.getMid());
}
만약 CONDITION이 로그인이면 SELECTONE 쿼리문을 수행하고, CONDITION이 MYPAGE이면 SELECTONE_MID를 수행함
if(user != null) { // 로그인 상태라면
view.printMenuLogin();
}
else {
view.printMenuLogout();
}
이 코드도 CONDITION 이란 단어는 없지만 CONDITION에 해당한다.
M,V,C 모두 사용
==> CONDITION은 특정 상태(예: 로그인 상태, 유저 역할)에 따라 어떤 ACTION이 실행될지를 결정하는 역할.
" 이 상태일 때 이렇게 처리해야 한다~" 하고 논리를 결정하는 역할.
② ACTION(동작) : 특정 CONDITION이 충족되었을 때 실제 수행되는 동작.
- 데이터 조회, 추가, 수정, 삭제 등의 기능을 하거나 특정 페이지로 이동하는 역할
- 주로 컨트롤러에서 실행되며 비즈니스 로직과 연결됨
int action=view.inputAction();
if(action==1) { // 사용자가 선택한 동작(1번)
if(user == null) {
continue;
}
String name=view.inputName();
MemberDTO dto=new MemberDTO();
dto.setMember_name(name); // 사용자가 입력한 이름 정보
dto.setMember_id(user.getMember_id()); // 현재 로그인한 아이디 정보
boolean flag=memberDAO.update(dto);
if(flag) {
user=null; // 로그아웃 강제
}
view.printResult(flag);
}
CONDITION에서 어떤 동작을 실행할지 결정한 후, 실제로 실행되는 로직을 말한다.
즉, 여기서는 사용자가 입력한 숫자(ACTION)을 기준으로 실행할 동작을 결정하고 있다.
컨트롤러에서만 쓰임.
CONDITION이 ACTION을 결정하고, ACTION이 실행된다.
CONDITION = 무슨 동작을 실행할지 결정하고
ACTION = 동작을 실행한다.
MVC 프로젝트를 진행하면 먼저 CONDITION 확인 후 ACTION을 실행한다.