본문 바로가기

국비지원_핀테크

11일차_ [java] DTO ( Data Transfer Object )

 

 

 

 

 

DTO ( Data Transfer Object )

- DTO 는 생성자 또는 getter / setter 를 통해 각 프로세스 간에 데이터를 전달하는 객체를 의미한다.

- 다른 메소드는 가지지 않으며 오로지 데이터 전달용도로만 사용되는 객체이다

데이터를 생성하여 전달하는 역할을 하는 DTO 객체

 

 

 

 

 

 

 

 

 

 

실습 예제

 

 

예제 풀이

package constructor;

public class MainClass03 {
	public static void main(String[] args) {
		LoginService03 login = new LoginService03();
		login.display();
	}
}

MainClass03 클래스

package constructor;

import java.util.Scanner;

public class LoginService03 {
	// 전역에서 DTO 를 사용해야하기 때문에 선언해둔 뒤 각 메소드에서
	// DTO 를 객체화하여 전역에서 사용
	private LoginDTO03 d;
	private Scanner sc = new Scanner(System.in);
	
	public void display() {
		
		d = new LoginDTO03();
		
		while(true) {
			System.out.println("1. 로그인");
			System.out.println("2. 회원가입");
			System.out.println("3. 탈퇴");
			System.out.print(">>> ");
			int choice = sc.nextInt();
			
			switch(choice) {
				case 1 : logIn(); break;
				case 2 : createId(); break;
				case 3 : deleteId(); break;
				default : System.out.println("다시 선택하세요."); break;
			}
			
		}
	}
	
	public void logIn() {
		String id, pwd;
		if(d.getId()==null)
			System.out.println("회원가입 먼저 하세요!!!");
		else {
			System.out.print("아이디 입력 : ");
			id = sc.next();
			System.out.print("비밀번호 입력 : ");
			pwd = sc.next();
			idCheck(id, pwd);
		}
	}
	
	public void idCheck(String id, String pwd) {
		if(!id.equals(d.getId()) && pwd.equals(d.getPwd()) == true)
			System.out.println("존재하지 않는 id입니다.");
		else if(id.equals(d.getId()) && !pwd.equals(d.getPwd()))
			System.out.println("비밀번호가 틀렸습니다!!!");
		else if(id.equals(d.getId()) && pwd.equals(d.getPwd()))
			System.out.println(id + "님 로그인 되었습니다!!!");
	}
	
	public void createId() {
		String id, pwd;
		if(d.getId()!=null) 
			System.out.println("사용자가 존재합니다. 탈퇴 후 진행하세요!!!");
		else {
			sc = new Scanner(System.in);
			System.out.print("생성할 아이디를 입력하세요 : ");
			id = sc.next();
			if(d.getId() == null) {
				System.out.print("비밀번호를 입력하세요 : ");
				pwd = sc.next();
				d = new LoginDTO03(id, pwd);
				System.out.println(id + "님 회원가입 성공!!!");
			}
		}
	}
		
	
	public void deleteId() {
		if(d.getId() == null)
			System.out.println("회원가입 먼저 진행하세요!!!");
		else {
			d = new LoginDTO03();
			System.out.println("회원 탈퇴 완료!!");
		}
	}
}

LoginService03 클래스

package constructor;

public class LoginDTO03 {
	// 멤버변수 선언
	private String id, pwd;
	// 생성자 선언 및 멤버변수 초기화
	public LoginDTO03(String id, String pwd) {
		this.id = id;
		this.pwd = pwd;
	}
	
	// 기본 생성자 선언
	public LoginDTO03() {}
	
	// getter / setter 생성
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
}

LoginDTO03 클래스

 

( 문자열은 .equals() 메소드로 비교해야 하는데,,,, 비교연산자(==) 로 비교하는 실수를 했음,,,, 다음엔 꼭 기억하기 )

728x90