Java - ArrayList를 이용한 회원가입 프로그램

반응형

회원가입 프로그램

콘솔화면에서 사용되는 회원가입 프로그램을 만들어 보았습니다.

 

기능 

  1. 로그인
  2. 회원가입
  3. 전체 회원 출력
  4. ID중복체크
  5. 비밀번호와 비밀 번화 확인 동일 체크

위의 5가지 기능이 들어간 회원 가입 프로그램을 만들었습니다. 기본적인 컬렉션을 ArrayList를 사용하였습니다.

실행결과

 

반응형

Program.java

public class Program {
    public static void main(String[] args) {
        MemberJoinDAO memberJoinDAO = new MemberJoinDAO();
        memberJoinDAO.run();
    }
}

프로그램을 실행시키는 main 메서드가 있는 클래스입니다.

MemberJoinDAO.java

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

import com.douzone.day09.MemberJoin.HashMap.MemberDTO;

public class MemberJoinDAO {

    Scanner sc = new Scanner(System.in);
    List<MemberDTO> members = new ArrayList<>();
    
    public MemberJoinDAO() {
        members.add(new MemberDTO("Superman", "1234", "New York"));
        members.add(new MemberDTO("Batman", "1234", "Boston"));
        members.add(new MemberDTO("Pororo", "1234", "Seoul"));
    }

    public void run() {
        
        int key = 0;
        while ((key = menu()) != 0) {
            switch (key) {
                case 1:
                    Login();
                    break;
                case 2:
                    MemberJoin();
                    break;
                case 3:
                    SelectMember();
            }
        }
    }

    private void SelectMember() {
        Iterator<MemberDTO> ite = members.iterator();
        
        while(ite.hasNext()) {
            System.out.println(ite.next() + " ");
        }
        
    }

    private void MemberJoin() {
        sc.nextLine();
        String id = getStrInput("               ID : ");
        String pw = getStrInput("         PassWord : ");
        String pw2 = getStrInput("Password Confirm : ");
        String name = getStrInput("           Name : ");
        
        if(idCheck(id)) {
            System.out.println("중복된 ID입니다.");
        }else if(pw.equals(pw2)) {
            members.add(new MemberDTO(id, pw, name));
            System.out.println(id + "님 가입을 축하드립니다.");
        }else {
            System.out.println("비밀번호를 확인해주세요.");
        }
        
    }

    private boolean idCheck(String id) {
        boolean check = true;
        MemberDTO member = FindById(id);
        if(member == null)
            check = false;
        return check;
    }

    private void Login() {
        sc.nextLine();
        String id = getStrInput("      ID : ");
        String pw = getStrInput("PassWord : ");
        
        MemberDTO member = FindById(id);
        if(member == null){
            System.out.println("등록되지 않은 ID입니다.");
        }else if(member.getPW().equals(pw)) {
            System.out.println("[" + member.getID() + "]님께서 로그인 하셨습니다.");
        }else {
            System.out.println("비밀번호가 틀렸습니다.");
        }
    }

    private MemberDTO FindById(String id) {
        for(MemberDTO memberDTO : members) {
            if(memberDTO.getID().equals(id)) {
                return memberDTO;
            }
        }
        return null;
    }

    private String getStrInput(String msg) {
        System.out.println(msg);
        return sc.nextLine();        
    }

    private int menu() {
        System.out.println("Welcome YouTube");
        return getNumInput("[1]로그인 [2]회원가입 [3]전체 회원 보기 [0]종료");
    }

    private int getNumInput(String msg) {
        System.out.println(msg);
        return sc.nextInt();
    }

}

사실 DAO는 데이터베이스와 접근을 이용하여야 하는 객체지만 이번 프로그램에서는 데이터베이스를 사용하지 않고

ArrayList만을 이용하여 프로그램을 만들어 보았습니다.

 

MemberDTO.java

public class MemberDTO {
    private String ID;
    private String PW;
    private String Name;
    
    public MemberDTO(String iD, String pW, String name) {
        ID = iD;
        PW = pW;
        Name = name;
    }

    public String getID() {
        return ID;
    }

    public String getPW() {
        return PW;
    }

    public String getName() {
        return Name;
    }

    public void setID(String iD) {
        ID = iD;
    }

    public void setPW(String pW) {
        PW = pW;
    }

    public void setName(String name) {
        Name = name;
    }

    @Override
    public String toString() {
        return "ID : " + ID + " PW : " + PW + " Name : " + Name;
    }
}

회원가입에 필요한 DTO입니다.

728x90
반응형