카테고리 없음

[Java] 회원 가입 & 로그인, 게시판 글쓰기 자바 코드

회원 가입 & 로그인, 게시판 글쓰기 기능을 자바로 구현한 코드입니다.

다양한 상황을 대비한 예외처리에 대해서도 조금 더 공부해야 할 것 같습니다.

 

 

1. Main.java

public class Main {
    public static Boolean run = true;

    public static void main(String[] args) {
        while(run) {
            MemberServiceImpl memberService = new MemberServiceImpl();
            memberService.init();
        }
    }
}

 

2. Member.java

public class Member {
    private static int indexNo = 1;
    private int memberId;
    private String userName;
    private String password;

    public Member(String userName, String password) {
        this.memberId = indexNo;
        this.userName = userName;
        this.password = password;
        indexNo++;
    }

    @Override
    public String toString() {
        return "Member{" +
                "memberId=" + memberId +
                ", userName='" + userName + '\'' +
                '}';
    }

    public int getMemberId() {
        return memberId;
    }

    public void setMemberId(int memberId) {
        this.memberId = memberId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 

3. Board.java

public class Board {
    private static int indexNo = 1;
    private int boardID;
    private String title;
    private Member member;
    private String contents;

    public Board(String title, Member member, String contents) {
        this.boardID = indexNo;
        this.title = title;
        this.member = member;
        this.contents = contents;
        indexNo++;
    }

    @Override
    public String toString() {
        return "Board{" +
                "boardID=" + boardID +
                ", title='" + title + '\'' +
                ", member=" + member +
                ", contents='" + contents + '\'' +
                '}';
    }

    public int getBoardID() {
        return boardID;
    }

    public void setBoardID(int boardID) {
        this.boardID = boardID;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Member getMember() {
        return member;
    }

    public void setMember(Member member) {
        this.member = member;
    }

    public String getContents() {
        return contents;
    }

    public void setContents(String contents) {
        this.contents = contents;
    }
}

 

4. MemberService.java

public interface MemberService {
    void init();
    void signIn();
    void delMember();
    void showMember();
    void login();
    void logout();
    void newBoard();
    void searchBoard();
    Member findById(String id);
}

 

5. MemberServiceImpl.java

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

public class MemberServiceImpl implements MemberService {

    private static Member loginMember = null;
    private static final Scanner sc = new Scanner(System.in);
    private static final List<Member> memberList = new ArrayList<>();
    private static final List<Board> boardList = new ArrayList<>();

    @Override
    public void init() {
        System.out.print(
                "[1] Sign in    [2] Delete Member  [3] Show Member\n" +
                "[4] Login      [5] Logout\n" +
                "[6] New Board  [7] Show BoardList\n" +
                "[0] EXIT\n" +
                ">> ");
        String menu = sc.nextLine();

        if (menu.equals("1")) signIn();
        else if (menu.equals("2")) delMember();
        else if (menu.equals("3")) showMember();
        else if (menu.equals("4")) login();
        else if (menu.equals("5")) logout();
        else if (menu.equals("6")) newBoard();
        else if (menu.equals("7")) searchBoard();
        else if (menu.equals("0")) System.exit(0);
    }

    @Override
    public void signIn() {
        System.out.print("userName? ");
        String name = sc.nextLine();
        System.out.print("Password? ");
        String pwd = sc.nextLine();
        Member member = new Member(name, pwd);
        memberList.add(member);
        System.out.println(member.getMemberId() + "(" + member.getUserName() + ")가 생성되었습니다.");
    }

    @Override
    public void delMember() {
        System.out.print("userName? ");
        String id = sc.nextLine();
        System.out.print("password? ");
        String pwd = sc.nextLine();
        if (findById(id) == null) {
            System.out.println("존재하지 않는 아이디입니다.");
        } else {
            if (findById(id).getPassword().equals(pwd)) {
                memberList.remove(findById(id));
                System.out.println(findById(id)+ " 삭제 되었습니다.");
            } else {
                System.out.println("비밀번호를 확인해주세요.");
            }
        }
    }

    @Override
    public void showMember() {
        for (Member member : memberList) {
            System.out.println(member.toString());
        }
    }

    @Override
    public void login() {
        System.out.print("userName: ");
        String id = sc.nextLine();
        System.out.print("password: ");
        String pwd = sc.nextLine();
        if (findById(id) == null) {
            System.out.println("존재하지 않는 아이디입니다.");
        } else {
            if (findById(id).getPassword().equals(pwd)) {
                loginMember = findById(id);
                System.out.println(loginMember + "님, 환영합니다.");
            } else {
                System.out.println("비밀번호를 확인해주세요.");
            }
        }
    }

    @Override
    public void logout() {
        if (loginMember == null) {
            System.out.println("로그인 상태가 아닙니다.");
        } else {
            loginMember = null;
            System.out.println("로그아웃 되었습니다.");
        }
    }

    @Override
    public void newBoard() {
        if (loginMember == null) {
            System.out.println("로그인이 필요한 서비스입니다.");
        } else {
            System.out.print("title: ");
            String title = sc.nextLine();
            System.out.print("content: ");
            String content = sc.nextLine();
            Board board = new Board(title, loginMember, content);
            boardList.add(board);
            System.out.println(board.getBoardID() + "번 게시글이 생성되었습니다.");
        }
    }

    @Override
    public void searchBoard() {
        try {
            if (boardList.size() == 0) {
                System.out.println("게시글이 존재하지 않습니다.");
            } else {
                System.out.print("검색할 작성자 ID: ");
                int userId = sc.nextInt();
                for (Board i : boardList) {
                    if (i.getMember().getMemberId() == userId) {
                        System.out.println(i);
                    }
                }
            }
        } catch (InputMismatchException e) {
            System.out.println("작성자 ID는 숫자여야만 합니다.");
        }
    }

    @Override
    public Member findById(String id) {
        for (Member i : memberList) {
            if (i.getUserName().equals(id)) {
                return i;
            }
        }
        return null;
    }
}