Tiny Star

📌TIL [Today I Learn]

[TIL] 23년 6월 07일 수요일

청크 2023. 6. 8. 13:03

23년 6월 07일 수요일

오늘의 목표 : 팀 과제 - 메모장 시스템 만들기

 

오늘 공부한 내용🤓

개인과제였던 키오스크 시스템 만들기가 끝나자마자 2개의 팀과제가 주어졌다.

워밍업으로 키오스크 시스템에서 조금 더 발전된 메모장 시스템 만들기와 개인과제로 만들었던 키오스크 시스템에서 기능 추가하기

 

팀의 진도는 이미 앞서나가있지만 나는 내 힘으로 메모장 시스템을 구현하고 싶어서 혼자 메모장 시스템을 만들어보고 있다.

어떻게 보면 개인과제 때 작성한 코드를 응용할 수 있지만 그래도 계속 막히는 부분이 생긴다.

이번 메모장 시스템은 그 누구의 도움도 받지 않고 혼자 100% 구현해 볼 생각이다.

 

아직 완성된 코드는 아니지만, Main class에서 전체적인 틀과 MemoVO class에서 getter,setter까지

작성을 해봤다.

[내가 작성한 코드]

Main class

package Memo;

import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer, String> memoMain = new HashMap<Integer, String>();
        memoMain.put(1, "1. 메모 입력");
        memoMain.put(2, "2. 메모 목록 조회");
        memoMain.put(3, "3. 메모 수정");
        memoMain.put(4, "4. 메모 삭제");
        memoMain.put(5, "5. 메모장 종료");

        Scanner sc = new Scanner(System.in); // 입력 받을 값
        MemoList memoList = new MemoList(); // 메모리스트 저장 할 변수 생성

        while (true) {
            System.out.println("===[선택하세요]===");
            System.out.println(memoMain.get(1));
            System.out.println(memoMain.get(2));
            System.out.println(memoMain.get(3));
            System.out.println(memoMain.get(4));
            System.out.println(memoMain.get(5));
            int select = sc.nextInt(); // 입력값을 int select로 받음

            switch (select) {
                //메모 입력
                case 1:
                    System.out.println("===[메모 입력]===");
                    System.out.println("작성자의 이름을 입력하세요.");
                    String writer = sc.next();
                    System.out.println("수정/삭제 시 사용할 비밀번호를 입력하세요.");
                    int password = sc.nextInt();
                    System.out.println("메모 내용을 입력하세요.");
                    String memoContent = sc.next();

                    MemoVO memo = new MemoVO(); //입력된 메모를 담을 변수

                    memo.setWriter(writer);
                    memo.setPassword(password);
                    memo.setContent(memoContent);

                    memoList.addMemo(memo); // 메모를 담을 메서드
                    break;

                //메모 목록 조회
                case 2:
                    System.out.println("===[메모 목록 조회]===");
                    memoList.memoDisplay(); // memoDisplay 메서드 호출
                    break;

                //메모 수정
                case 3:
                    System.out.println("===[메모 수정]===");
                    System.out.println("수정할 메모의 번호를 입력하세요.");
                    System.out.println("작성 시 설정한 메모의 비밀번호를 입력하세요.");
                    System.out.println("수정할 메모의 내용을 입력하세요.");

                    break;

                //메모 삭제
                case 4:
                    System.out.println("===[메모 삭제]===");
                    System.out.println("삭제할 글 번호를 입력해주세요.");

                    break;

                //메모장 종료
                case 5:
                    System.out.println("===[메모장 종료]===");

                break;

                default:
            }
        }
    }
}

MemoVO

package Memo;

import java.util.Date;

public class MemoVO {
    int Id; // 글 번호
    String writer; // 작성자
    int password; // 비밀번호
    String content; // 작성 내용
    Date createdDate; // 작성 날짜
    Date modifiedDate;// 수정 날짜

    public MemoVO() {
        // 기본 생성자
    }

    public MemoVO(int Id, String writer, int password, String content, Date createdDate, Date modifiedDate){
        this.Id = Id;
        this.writer = writer;
        this.password = password;
        this.content = content;
        this.createdDate = createdDate;
        this.modifiedDate = modifiedDate;
    }
//게터, 세터
    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public int getPassword() {
        return password;
    }

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

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getModifiedDate() {
        return modifiedDate;
    }

    public void setModifiedDate(Date modifiedDate) {
        this.modifiedDate = modifiedDate;
    }
}

MemoList

package Memo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class MemoList {

    private List<MemoVO> memoList; //memoList
    private int count; // count

    public MemoList() {
        memoList = new ArrayList<>();
        count = 1; // 메모리스트 카운트
    }

    public void addMemo(MemoVO content) { //메모 추가 메서드
        content.setId(count++); // 메모 추가 시 번호 ++
        content.setCreatedDate(new Date()); // 메모 추가 시 현재 시간 출력
        memoList.add(content); // 메모리스트에 content 추가
        System.out.println("새로운 메모가 추가되었습니다.");
    }

    public void memoDisplay() {
        if(memoList.isEmpty()) { //메모리스트에 메모가 비어있다면
            System.out.println("메모가 존재하지 않습니다.");
            return;
        }

        for (MemoVO memo : memoList) { // for문으로 모든 메모리스트 출력
            System.out.println("글 번호 : " + memo.getId());
            System.out.println("작성자 : " + memo.getWriter());
            System.out.println("작성일 : " + memo.getCreatedDate());
            System.out.println("작성 내용 : " + memo.getContent());
        }
    }
}
어려웠던 내용😵‍💫

메서드 작성하고 불러오는 곳에서 자꾸 오류가 나는데, 어떤 문제인지 파악하는게 어렵다.

 

궁금&부족한 내용❓

삭제&수정 메서드에서 계속 오류가 발생한다.

if 조건에 작성한 equals가 문제다. password를 boolean타입으로 지정하면 오류가 해결되는데,

실제 유저가 설정하는 비밀번호는 int타입으로 지정해놨기 때문에 오류가 발생하는 것 같다.. 이것에 대해서는 아직 해결하지 못했다.

if (!memo.getPassword().equals(password)) {
            System.out.println("비밀번호가 일치하지 않습니다.");
            return;
        }
느낀 점💡

팀 내에 코드를 굉장히 수월하게 작성하시는 분이 계시다.

그 분덕에 팀과제를 밀리지 않고 전부 완성해서 제출할 수 있었다.

 

그러나 나와 남은 팀원분들은 메모장 시스템조차도 다 이해를 하지 못한 상황인데, 눈 깜짝할 새에 두 가지 과제가 끝나버렸다.

팀회의를 하지않고 혼자 짜오신 두 개의 코드에 무임승차하면서 이끌려가고싶지 않아서 혼자 공부하는 방법을 선택했다.

 

이번에 바뀐 팀에서는 팀 협업이 많이 안 되는 것 같아서 아쉽고,

나 또한 이렇게 공부하는 것이 개인 행동인 것 같은 생각에 자책을 하게 되지만 이렇게 하지 않으면 나의 실력은 제자리걸음일 것 같다는 생각이 든다.

 

나라도 빨리 실력을 쌓아서  나처럼 이해가 어려운 팀원분들께 차근차근 설명하고 알려드리면서 나도 복습하는 시간을 가지고 싶다.

 

 

 

 

 

'📌TIL [Today I Learn]' 카테고리의 다른 글

[TIL] 23년 6월 09일 금요일  (0) 2023.06.09
[TIL] 23년 6월 08일 목요일  (0) 2023.06.08
[TIL] 23년 6월 01일 목요일  (0) 2023.06.01
[TIL] 23년 5월 31일 수요일  (0) 2023.05.31
[TIL] 23년 5월 30일 화요일  (0) 2023.05.30