
Code
package service;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import data.BoardData;
public class BoardService {
public static Scanner s = new Scanner(System.in);
public static final String BOARD_PATH = "files/board.dat";
public static List<BoardData> boardList = new ArrayList<BoardData>();
public static BoardData selectedpost = null;
public static Integer num = 1;
public static Integer view=0;
// 게시글 작성
public static void addBoard () {
System.out.println("========== 게시글 작성 =========");
System.out.println("작성자 : " + MemberService.loginMember.getId());
String writer = MemberService.loginMember.getId();
System.out.print("제목 : ");
String title = s.nextLine();
System.out.print("내용 : ");
String content = s.nextLine();
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date rDate = new Date();
String reg_date = f.format(rDate);
Date mDate = new Date();
String mod_date = f.format(mDate);
Integer view = 0;
Integer status = 0;
// boardList에 새로운 게시글 작성
BoardData b = new BoardData(num, writer, content, title, reg_date, mod_date, view, status);
boardList.add(b);
// boardnum 증가
num++;
System.out.println("게시글이 등록되었습니다.");
// list의 정보를 저장하는 작업을 list의 길이만큼 수행
List<BoardData> blist = new ArrayList<BoardData>();
for (BoardData bData : boardList) {
blist.add(bData);
}
// blist의 정보를 파일에 저장
try {
BoardService.BoardDataSave(BoardService.BOARD_PATH, blist);
// BoardService.BoardDataLoad(BoardService.BOARD_PATH);
}
catch (Exception e) {e.printStackTrace();}
}
// 게시물 목록 출력
public static void showBoardList () {
System.out.println("==================게시판===================");
if (boardList.size() == 0) {
System.out.println("등록된 게시물이 없습니다.");
return;
}
else {
for (BoardData b : boardList) {
// 게시글이 삭제되지 않았다면 출력
if(b.getStatus() == 0) {
System.out.println(b);
}
}
}
}
// 게시물 데이터 초기화
public static void BoardInfoInitialize() throws Exception {
BufferedReader reader = null;
try{
reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(BoardService.BOARD_PATH)
), "UTF-8"
)
);
while (true) {
String line = reader.readLine();
if(line == null) {break;}
String[] split = line.split(",");
Integer num = Integer.parseInt(split[0]);
String writer = split[1];
String title = split[2];
String content = split[3];
String reg_date = split[4];
String mod_date = split[5];
Integer view = Integer.parseInt(split[6]);
Integer status = Integer.parseInt(split[7]);
BoardData b = new BoardData (num, writer, content, title, reg_date, mod_date, view, status);
boardList.add(b);
}
// 만약 게시판에 글이 없다면, 게시글 번호는 1로 지정
if(boardList.size() == 0) {num =1;}
// 게시글이 있다면, 게시글 번호는
// 마지막 게시글 (인덱스는 게시글 갯수-1)의 번호 +1 로 설정한다.
else {num = boardList.get(boardList.size()-1).getNum() + 1;}
}
catch (Exception e) {
e.printStackTrace(); // 예외 정보 표시
}
}
// 게시판 데이터를 파일에 저장
public static void BoardDataSave(String filepath, List<BoardData> BoardList) throws Exception{
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(
new File(filepath)
),"UTF-8"
)
);
for (BoardData b :boardList) {
writer.write(b.makeDataString());
}
writer.close();
}
// 파일에 저장된 데이터를 list에 로드
public static List<String> BoardDataLoad (String filepath) throws Exception {
BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(filepath)
) , "UTF-8"
)
);
List<String> BoardDataList = new LinkedList<String>();
while(true) {
String line = reader.readLine();
if(line == null)break;
BoardDataList.add(line);
}
reader.close();
return BoardDataList;
}
// 선택된 게시글 수정
public static void updateBoard () throws Exception {
// 수정할 게시글 선택
BoardService.selectPost();
// 만약 게시글 작성자와 로그인한 사람 아이디가 같다면
if (selectedpost.getWriter().equals(MemberService.loginMember.getId())) {
BoardService.detailBoardInfo();
System.out.print("변경할 내용 : ");
String update_content = s.nextLine();
// 선택된 게시글의 내용을 수정
selectedpost.setContent(update_content);
// 선택된 게시글의 수정일자를 수정
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date mDate = new Date();
String mod_date = f.format(mDate);
selectedpost.setMod_date(mod_date);
List<BoardData> blist = new ArrayList<BoardData>();
for (BoardData bData : boardList) {
blist.add(bData);
}
// 게시판 데이터를 파일에 저장
BoardService.BoardDataSave(BoardService.BOARD_PATH, boardList);
}
else {System.out.println("작성자만 글을 수정할 수 있습니다.");}
}
// 게시글 삭제
public static void deleteBoard() throws Exception {
// 삭제할 게시글 선택
BoardService.selectPost();
// 만약 게시글 작성자와 로그인한 사람의 아이디가 같다면
if(selectedpost.getWriter().equals(MemberService.loginMember.getId())){
if (selectedpost != null) {
System.out.print("해당 글을 삭제하시겠습니까? (y / n) : ");
String confirm = s.nextLine();
if(confirm.equalsIgnoreCase("y")) {
// list에서 해당 글 삭제
BoardService.selectedpost.setStatus(1);
System.out.println("해당글을 삭제했습니다.");
List<BoardData> blist = new ArrayList<BoardData>();
for (BoardData bData : boardList) {
blist.add(bData);
}
BoardService.BoardDataSave(BoardService.BOARD_PATH, boardList);
}
else {System.out.println("해당글 삭제를 취소했습니다.");}}}
else {System.out.println("작성자만 글을 삭제할 수 있습니다.");}
return;
}
// id가 일치하는 게시글 출력
public static void searchBoard () {
// 로그인한 멤버의 아이디를 변수로 지정
String id = MemberService.loginMember.getId();
// 리스트에 있는 수많큼 실행
for(BoardData b : boardList ) {
// 리스트의 글에 writer와 id가 일치하면 출력
// 게시글이 삭제되지 않은 상태일때
if(b.writer.equals(id) && b.getStatus() == 0) {
System.out.println(b);
}
}
return;
}
// 게시글 선택하기
public static void selectPost() {
System.out.print("선택할 게시글 번호 : ");
Integer post = s.nextInt();
s.nextLine();
// 게시글의 수만큼 실행
for(BoardData b : boardList) {
// 게시글의 숫자와 선택한 수가 같으면, selectedpost에 글정보 저장
// 게시글이 삭제되지 않은 상태일때
if (b.getNum() == post && b.getStatus() == 0){
selectedpost = b;
System.out.println(b.getTitle() + " 게시물이 선택되었습니다.");
}
}
// 만약 게시글이 없다면 문장 출력
if(selectedpost == null) {
System.out.println("선택하신 게시글은 존재하지 않습니다.");
// return;
}
}
// 선택된 게시글 정보 출력
public static BoardData getSelectedPost() {
return selectedpost;
}
// 선택된 게시글 상세 정보 출력
public static void detailBoardInfo () {
// 선택한 게시글의 조회수 +1하기
selectedpost.setView(selectedpost.getView()+1);
System.out.println("제목 : "+selectedpost.title+" / 작성자 : "+selectedpost.writer+" / 등록일 : "+selectedpost.reg_date+" / 수정일 : "+selectedpost.mod_date +
" / 조회수 : " + selectedpost.view);
System.out.println("---------------------------- 내용 ---------------------------");
System.out.println(selectedpost.content);
System.out.println();
// 글 번호와 일치하는 댓글 보여주기
CommentService.showComment();
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Date;
import java.util.LinkedList;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import data.CommentData;
public class CommentService {
public static List<CommentData> commentList = new ArrayList<CommentData>();
public static Scanner s = new Scanner(System.in);
public static final String COMMENT_PATH = "files/comment.dat";
public static Integer cNum;
public static CommentData selectedComment = null;
// 댓글 입력
public static void addComment () {
System.out.println("========== 댓글 =========");
if(BoardService.selectedpost == null) {
return;
}
System.out.println("작성자 :" + MemberService.loginMember.getId());
String writer = MemberService.loginMember.getId();
System.out.print("내용 : ");
String content = s.nextLine();
Integer numOfNotice = BoardService.selectedpost.getNum();
SimpleDateFormat f = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
Date rDate = new Date();
String reg_date = f.format(rDate);
Integer status = 0;
// list에 새로운 comment추가
CommentData c = new CommentData(cNum, numOfNotice , writer, content, reg_date, status);
commentList.add(c);
System.out.println("댓글이 저장되었습니다.");
// list의 정보를 저장하는 작업을 수행
List<CommentData> clist = new ArrayList<CommentData>();
for (CommentData cData : commentList) {
clist.add(cData);
}
// commentlist의 글을 파일에 저장
try {
CommentService.CommentDataSave(CommentService.COMMENT_PATH, clist);
}
catch (Exception e) {e.printStackTrace();}
cNum++;
}
// 댓글 데이터 초기화
public static void commentDataInitialize(){
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(CommentService.COMMENT_PATH)
), "UTF-8"
)
);
while (true) {
String line = reader.readLine();
if(line == null) {
break;
}
String[] split = line.split(",");
Integer cNum = Integer.parseInt(split[0]);
Integer numOfNotice = Integer.parseInt(split[1]);
String writer = split[2];
String content = split[3];
String reg_date = split[4];
Integer status = Integer.parseInt(split[5]);
CommentData c = new CommentData(cNum, numOfNotice, writer, content, reg_date, status);
commentList.add(c);
}
// 만약 게시판에 글이 없다면, 게시글 번호는 1로 지정
if(commentList.size() == 0) {cNum =1;}
// 게시글이 있다면, 게시글 번호는
// 마지막 게시글 (인덱스는 게시글 갯수-1)의 번호 +1 로 설정한다.
else {cNum = commentList.get(commentList.size()-1).getCNum() + 1;}
}
catch (Exception e) {
e.printStackTrace(); // 예외 정보 표시
}
}
// 글 번호와 일치하는 댓글 보여주기
public static void showComment (){
Integer num = BoardService.selectedpost.getNum();
// commentdata를 전부 돌려서 게시글번호와 일치하는 댓글 찾아서
for (CommentData c :commentList) {
// status가 0인 댓글만 출력
if(c.getNumOfNotice() == num && c.getStatus()==0) {
// 출력
System.out.println(c);
}
}
}
// id가 일치하는 댓글 출력
public static void searchComment () {
// 로그인한 멤버의 아이디를 변수로 지정
String id = MemberService.loginMember.getId();
// 리스트에 있는 수많큼 실행
for(CommentData c : commentList ) {
// 리스트의 글에 writer와 id가 일치하면 출력
// status가 0이면 출력
if(c.writer.equals(id) && c.getStatus() == 0) {
System.out.println(c);
}
}
return;
}
// comment하나 선택
public static void selectComment () {
System.out.print("선택할 댓글 번호 : ");
Integer comment = s.nextInt();
s.nextLine();
// 댓글의 수만큼 실행
for(CommentData c : commentList) {
// 댓글의 숫자와 선택한 수가 같으면, selectedpost에 글정보 저장
if (c.getCNum() == comment){
selectedComment = c;
System.out.println( " 댓글이 선택되었습니다.");
}
}
// 만약 게시글이 없다면 문장 출력
if(selectedComment == null) {
System.out.println("선택하신 댓글은 존재하지 않습니다.");
return;
}
}
// 선택한 댓글의 정보를 가져오는 메서드
public static CommentData getselectedComment(){
return selectedComment;
}
// 선택한 댓글을 삭제하는 메서드
public static void deleteComment () throws Exception {
CommentService.selectComment();
// 만약 게시글 작성자와 로그인한 사람의 아이디가 같다면
if (selectedComment.getWriter().equals(MemberService.loginMember.getId())) {
// 선택된 댓글을 삭제
if (selectedComment != null) {
System.out.print("해당 글을 삭제하시겠습니까? (y / n) : ");
String confirm = s.nextLine();
if(confirm.equalsIgnoreCase("y")) {
// list에서 해당 댓글 삭제
CommentService.selectedComment.setStatus(1);
System.out.println("해당 댓글을 삭제했습니다.");
List<CommentData> clist = new ArrayList<CommentData>();
for (CommentData cData : commentList) {
clist.add(cData);
}
CommentService.CommentDataSave(CommentService.COMMENT_PATH, commentList);
}
else {System.out.println("해당글 삭제를 취소했습니다.");}}}
else {System.out.println("작성자만 글을 삭제할 수 있습니다.");}
return;
}
// 댓글 데이터 파일에 저장
public static void CommentDataSave(String filepath, List<CommentData> commentList) throws Exception{
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(
new File(filepath)
),"UTF-8"
)
);
for (CommentData c :commentList) {
writer.write(c.makeDataString());
}
writer.close();
}
// 파일에 저장된 댓글 데이터 읽어오기
public static List<String> CommentDataLoad (String filepath) throws Exception {
BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(filepath)
) , "UTF-8"
)
);
List<String> CommentDataList = new LinkedList<String>();
while(true) {
String line = reader.readLine();
if(line == null)break;
CommentDataList.add(line);
}
reader.close();
return CommentDataList;
}
}
package service;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import data.MemberData;
import util.AESAlgorithm;
public class MemberService {
public static Scanner s = new Scanner(System.in);
public static List<MemberData> memberList = new LinkedList<MemberData>();
public static MemberData loginMember = null; // 로그인한 사람 정보 가져오기위해 초기화.
public static final String MEMBER_PATH = "files/member.dat";
// 회원가입
public static void memberJoin() throws Exception {
System.out.println("========== 회원 가입 =========");
System.out.print("아이디 : ");
String id = s.nextLine();
// 아이디 길이 유효성 체크
if (id.length() < 6) {
System.out.println("아이디는 6자 이상 입력하세요.");
return;
}
// 아이디 중복확인
if(isDuplicatedId(id)) { // isDuplicatedId = true 이면, 중복된 아이디가 있음.
System.out.println(id + "은(는) 이미 가입된 아이디 입니다.");
return;
}
// isDuplicatedId = false 이면, 중복된 아이디가 없고, 다음과정으로 진행.
System.out.print("비밀번호 : ");
// 비밀번호 길이 유효성 체크
String pwd = s.nextLine();
if (pwd.length() < 6) {
System.out.println("비밀번호는 6자 이상 입력하세요.");
return;
}
String enc_pwd = AESAlgorithm.Encrypt(pwd);
System.out.print("가입자 명 : ");
String name = s.nextLine();
// 이름 유효성 체크
if (name.length() == 0 ) {
System.out.println("이름을 다시 입력해주세요.");
return;
}
System.out.print("생년월일(yyyy-MM-dd) : ");
String date = s.nextLine();
DateFormat f = new SimpleDateFormat("yyyy-MM-dd");
Date birth = (Date)f.parse(date);
// 이름과 생년월일이 같은지 체크해서, 동인인물 체크
if(isDuplicatedPerson(name, birth)) { // isDuplicatedPerson = true 이면, 이미 가입된 사람임.
System.out.println(name + "은(는) 이미 회원가입 되어 있습니다.");
return;
}
// 상태는 기본적으로 0
// isDuplicatedPerson = false 이면, 가입한 이력이 없고, 다음과정으로 진행.
Integer status = 0;
// memberList에 새로운 데이터 저장
MemberData m = new MemberData (id, enc_pwd, name, birth, status);
memberList.add(m);
// 새로운데이터가 저장된 리스트를 멤버 데이터...
List<MemberData> mlist = new ArrayList<MemberData>();
for (MemberData mData : memberList) {
mlist.add(mData);
}
System.out.println("회원 등록이 완료되었습니다.");
// 저장된 데이터를 파일에 저장
MemberService.MemberDataSave(MemberService.MEMBER_PATH, mlist);
MemberService.MemberDataLoad(MemberService.MEMBER_PATH);
}
// 멤버 데이터 초기화
public static void memberDataInitialize() {
BufferedReader reader = null;
try{
reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(MemberService.MEMBER_PATH)
), "UTF-8"
)
);
while (true) {
String line = reader.readLine();
if(line == null) {break;}
String[] split = line.split(",");
String id = split[0];
String pwd = split[1];
String name = split[2];
DateFormat f= new SimpleDateFormat("yyyy-MM-dd");
Date birth = (Date)f.parse(split[3]);
Integer status = Integer.parseInt(split[4]);
MemberData m = new MemberData(id, pwd, name, birth, status);
memberList.add(m);
}
}
catch (Exception e) {}
}
// 로그인한 사람의 정보 가져오기
public static MemberData getloginData () {
return loginMember;
}
// 로그인
public static void login() throws Exception {
System.out.println("========== 로그인 =========");
System.out.print("아이디 : ");
String id = s.nextLine();
System.out.print("비밀번호 : ");
String pwd = AESAlgorithm.Encrypt(s.nextLine());
// 멤버 리스트에서 아이디와 비밀번호가 동시에 일치하는 사람이 있다면
for(MemberData m : memberList) {
if (m.getId().equals(id) && m.getPwd().equals(pwd)){
// 멤버 상태가 1이면 탈퇴
if (m.getStatus() == 1) {
System.out.println("이미 탈퇴한 멤버입니다."); continue;}
// 로그인 멤버 변수에 그 데이터 저장
loginMember = m;
System.out.println(m.getId() + "님 로그인 되었습니다.");
}
}
// 멤버 변수가 비어있다면 일치하는 데이터 없으므로,
if(loginMember == null) {
System.out.println("아이디 또는 비밀번호가 잘못되거나 없는 회원입니다.");
}
return;
}
// 로그아웃
public static void logout(){
// 로그인된 멤버 정보를 null값으로 지정
loginMember = null;
System.out.println("로그아웃 되었습니다.");
}
// 회원 탈퇴
public static void deleteMember () throws Exception {
if (loginMember != null) {
for(MemberData m : memberList) {
if (m.id.equals(loginMember.id) && m.pwd.equals(loginMember.pwd)) {
loginMember = m;
// 탈퇴를 confirm받고
System.out.print(loginMember.id + "님 탈퇴하시겠습니까? (y / n) : ");
String confirm = s.nextLine();
if (confirm.equalsIgnoreCase("y")) {
loginMember.setStatus(1);
List<MemberData> mlist = new ArrayList<MemberData>();
for (MemberData mbData : memberList) {
mlist.add(mbData);
}
System.out.println("탈퇴 완료 했습니다.");
// 수정된 데이터를 파일에 다시 저장
MemberService.MemberDataSave(MemberService.MEMBER_PATH, memberList);
MemberService.logout();
break;
}
else {System.out.println("회원 탈퇴를 취소했습니다.");}
}
}
}
if(loginMember == null) {
System.out.println("아이디 또는 비밀번호가 잘못되거나 없는 회원입니다.");
}
}
// 로그인한 멤버의 정보 출력
public static void showLoginInfo(){
if (loginMember != null) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("아이디 :" + getloginData().id);
System.out.println("비밀번호 :" + getloginData().pwd);
System.out.println("이름 :" + getloginData().name);
System.out.println("생년월일 :" + f.format(getloginData().birth));
}
}
// 회원 정보 수정 (비밀번호)
public static void changeMemberInfo () throws Exception{
if (getloginData() != null) {
System.out.println("========== 회원정보 수정 =========");
System.out.print("변경할 비밀번호 : ");
String mod_pwd = AESAlgorithm.Encrypt(s.nextLine());
if (mod_pwd.length() < 6) {
System.out.println("비밀번호는 6자 이상 입력하세요.");
return;
}
loginMember.setPwd(mod_pwd);
List<MemberData> mlist = new ArrayList<MemberData>();
for (MemberData mbData : memberList) {
mlist.add(mbData);
}
MemberService.MemberDataSave(MemberService.MEMBER_PATH, memberList);
// MemberService.MemberDataLoad(MemberService.MEMBER_PATH);
}
}
// 멤버데이터를 파일에 저장
public static void MemberDataSave(String filepath, List<MemberData> MemberList) throws Exception{
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(
new File(filepath)
),"UTF-8"
)
);
for (MemberData m :memberList) {
writer.write(m.makeDataString());
}
writer.close();
}
// 파일에 저장된 멤버 데이터를 읽어오기
public static List<String> MemberDataLoad (String filepath) throws Exception {
BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(
new File(filepath)
) , "UTF-8"
)
);
List<String> memberDataList = new LinkedList<String>();
while(true) {
String line = reader.readLine();
if(line == null)break;
memberDataList.add(line);
}
reader.close();
return memberDataList;
}
// 회원 목록 출력
public static void showMemberList (){
if(memberList.size() == 0) {
System.out.println("등록된 회원이 없습니다.");
return;
}
else {
for(MemberData m :memberList) {
// status가 정상인 멤버들의 목록만 출력
if(m.getStatus() ==0 ) {
System.out.println(m);
}
}
}
}
// 아이디 중복 검사
public static Boolean isDuplicatedId (String id){
for (MemberData m : memberList) {
if(id.equals(m.id)) {
return true;
}
}
return false; // 중복아이디가 없으면 false
}
// 인물 중복 검사
public static Boolean isDuplicatedPerson (String name, Date birth){
for (int i=0; i<memberList.size(); i++) {
if((name.equals(memberList.get(i).name)) && (birth.equals(memberList.get(i).birth))) {
return true; //이름과 생일이 동시에 같다면 true
}
}
return false; // 이름과 생일이 동시에 같지 않아서 false
}
}
import java.util.Scanner;
import service.BoardService;
import service.CommentService;
import service.MemberService;
public class Main {
public static Scanner s = new Scanner(System.in);
public static void main(String[] args) throws Exception {
MemberService.memberDataInitialize();
BoardService.BoardInfoInitialize();
CommentService.commentDataInitialize();
while (true) {
System.out.print(" 1.게시판 / 2.로그인 / 3.회원가입 / 0.종료 : ");
int sel = s.nextInt();
s.nextLine();
if(sel == 0) {
break;
}
else if(sel ==1){
BoardService.showBoardList();
System.out.println("상세보기는 로그인 후 이용하실 수 있습니다.");
System.out.println("");
}
else if(sel == 2){
MemberService.login();
if (MemberService.getloginData() != null) {
LoginMode();
}
}
else if (sel == 3) {
try {MemberService.memberJoin();}
catch (Exception e) {}
}
else {
System.out.println("잘못된 메뉴번호입니다.");
}
}
}
public static void LoginMode() throws Exception {
while (true) {
System.out.print("1.게시판 / 2. 회원정보 / 0.로그아웃 : ");
int sel2 = s.nextInt();
s.nextLine();
// 종료, 로그아웃
if (sel2 == 0) {
MemberService.logout();
break;
}
// 게시글 관련
else if (sel2 == 1) {
while (true) {
System.out.println("================================ 게시판 ================================");
// 글 목록 보여주기
BoardService.showBoardList();
System.out.print("1.글 쓰기 / 2.글 상세보기 / 0.이전메뉴 : ");
int sel_note = s.nextInt();
s.nextLine();
// 종료
if(sel_note == 0) {
break;
}
// 글쓰기
else if (sel_note == 1) {
try {BoardService.addBoard(); }
catch(Exception e) {}
break;
}
// 글 상세보기, 댓글 달기
else if (sel_note == 2) {
// 상세히 볼 글 선택
BoardService.selectPost();
// 선택한 게시글의 상세정보(댓글 포함) 표시
BoardService.detailBoardInfo();
// 선택한 게시글에 댓글을 달 것인지 묻기
while(true) {
System.out.print("1.댓글 달기 / 0. 이전메뉴 : ");
int sel_com = s.nextInt();
s.nextLine();
if (sel_com == 0) {break;}
// 댓글 달기
else if(sel_com == 1) {
CommentService.addComment();
}
else {System.out.println("잘못된 메뉴 번호입니다.");}
}
}
// 잘못된 번호 입력 시 출력
else {
System.out.println("잘못된 메뉴 번호입니다.");
break;
}
}
}
// 회원정보관련 메뉴
else if(sel2 ==2){
while (true) {
System.out.println("===============================================================");
System.out.print("1.회원 정보 수정 / 2.내가 쓴 글 관리 / 0.이전메뉴 : ");
int sel_mem = s.nextInt();
s.nextLine();
// 종료
if(sel_mem== 0) {
break;
}
// 회원 정보 수정
else if (sel_mem == 1) {
// 로그인한 멤버가 있다면 (당연히 있음, 로그인 모드)
if (MemberService.getloginData() != null) {
// 메뉴명 출력
System.out.println("---------------- 회원정보 수정 ---------------");
// 로그인한 멤버의 정보 표시
MemberService.showLoginInfo();
// 메뉴 출력
System.out.print("1.비밀번호 수정 / 2.회원 탈퇴 / 0.이전메뉴 : ");
int sel_mem_mod = s.nextInt();
s.nextLine();
if (sel_mem_mod == 0) {break;}
// 로그인한 멤버의 비밀번호 수정
else if (sel_mem_mod == 1) {
MemberService.changeMemberInfo();
}
// 로그인한 멤버의 status 1로 변경 -탈퇴
else if (sel_mem_mod == 2) {
MemberService.deleteMember();
}
}
break;
}
// 내가 쓴 글 관리
else if(sel_mem == 2) {
// 내가 쓴 게시글 보여주기
System.out.println("-------------------- 회원님의 게시글 -------------------");
BoardService.searchBoard();
// 내가 쓴 댓글 보여주기
System.out.println("-------------------- 회원님의 댓글 -------------------");
CommentService.searchComment();
// 메뉴 출력
System.out.print(" 1.내 게시글 수정 / 2.내 게시글 삭제 / 3.내 댓글 삭제 / 0.이전 메뉴 : ");
int mod_sel = s.nextInt();
s.nextLine();
// 종료
if (mod_sel == 0) {break;}
// 글 수정
if (mod_sel == 1) {
// 내가 쓴 글 목록 보여주고,
System.out.println("");
BoardService.searchBoard();
// 글 수정
BoardService.updateBoard();
break;
}
// 글 삭제
else if (mod_sel == 2) {
// 내가 쓴 글 목록 보여주고,
System.out.println("");
BoardService.searchBoard();
// 글 삭제
BoardService.deleteBoard();
break;
}
// 댓글 삭제
else if (mod_sel == 3) {
// 내가 쓴 댓글 목록 보여주고
System.out.println("");
CommentService.searchComment();
// 선택한 댓글 삭제
CommentService.deleteComment();
}
// 잘못된 번호 입력 시 출력
else {
System.out.println("잘못된 메뉴 번호입니다.");
break;
}
}
// 잘못된 메뉴 번호
else {
System.out.println("잘못된 메뉴 번호입니다.");
break;
}
}
}
// 잘못된 메뉴번호
else {
System.out.println("잘못된 메뉴번호입니다.");
}
}
}
}