본문 바로가기
  • Let's study
알고리즘/Java

[Java] 명언 게시판 만들기(1~5단계)

by 코딩고수이고파 2026. 7. 16.

요구사항

1단계 - 종료
2단계 - 등록
3단계 - 등록시 생성된 명언번호 노출
4단계 - 등록할때 마다 생성되는 명언번호가 증가
5단계 - 목록
6단계 - 1번 명언삭제
7단계 - 존재하지 않는 명언삭제에 대한 예외처리
8단계 - 명언수정

1단계 - 종료

== 명언 앱 ==
명령) 종료

가장 먼저 Scanner를 이용하여 명령어를 입력받고 "종료"를 입력하면 프로그램이 종료되도록 구현하였다.

핵심 코드

Scanner sc = new Scanner(System.in);

System.out.println("== 명언 앱 ==");

String cmd = "";

while (!cmd.equals("종료")) {
    System.out.print("명령) ");
    cmd = sc.nextLine();
}

sc.close();

2단계 - 등록

== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
명령) 종료

등록 명령을 입력하면 명언과 작가를 입력받도록 구현하였다.

핵심 코드

if(cmd.equals("등록")) {
    System.out.print("명언 : ");
    String content = sc.nextLine();

    System.out.print("작가 : ");
    String author = sc.nextLine();
}

3단계 - 등록시 생성된 명언번호 노출

== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
1번 명언이 등록되었습니다.
명령) 종료

등록이 완료되면 등록된 번호를 출력하도록 수정하고 처음에는 번호를 고정값으로 출력하였다.

 

System.out.println("1번 명언이 등록되었습니다.");

4단계 - 등록할때 마다 생성되는 명언번호가 증가

== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
1번 명언이 등록되었습니다.
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
2번 명언이 등록되었습니다.
명령) 종료

등록할 때마다 번호가 1씩 증가하도록 lastNo 변수를 추가하였다.

핵심 코드

int lastNo = 0;

System.out.println("%d번 명언이 등록되었습니다." .formatted(++lastNo));

5단계 - 목록

== 명언 앱 ==
명령) 등록
명언 : 현재를 사랑하라.
작가 : 작자미상
1번 명언이 등록되었습니다.
명령) 등록
명언 : 과거에 집착하지 마라.
작가 : 작자미상
2번 명언이 등록되었습니다.
명령) 목록
번호 / 작가 / 명언
----------------------
2 / 작자미상 / 과거에 집착하지 마라.
1 / 작자미상 / 현재를 사랑하라.
명령) 종료

등록한 명언을 저장하기 위해 WiseSaying 클래스를 만들고 객체 배열을 사용하였다.

WiseSaying 클래스

class WiseSaying {
    int no;
    String content;
    String author;
}
 

명언 하나를 객체 하나로 관리하도록 구성하였다.

명언 저장

명언 객체를 생성하여 배열에 저장한다.

 

WiseSaying wiseSaying = new WiseSaying();

wiseSayings[lastNo] = wiseSaying;

wiseSaying.no = ++lastNo;
wiseSaying.content = content;
wiseSaying.author = author;

목록 출력

가장 최근에 등록한 명언이 위에 오도록 역순으로 출력하였다.

 
for (int i = lastNo - 1; i >= 0; i--) {
    WiseSaying target = wiseSayings[i];

    System.out.println("%d / %s / %s" .formatted(target.no, target.author, target.content));
}

전체 코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        WiseSaying[] wiseSayings= new WiseSaying[10];
        String cmd = "";
        int lastNo = 0; // 가장 최근 생성된 명언 번호

        System.out.println("== 명언 앱 ==");

        while (!cmd.equals("종료")) {

            System.out.print("명령) ");
            cmd = sc.nextLine();

            if (cmd.equals("등록")) {
                WiseSaying wiseSaying=new WiseSaying();
                wiseSayings[lastNo]=wiseSaying;

                System.out.print("명언: ");
                String content = sc.nextLine();

                System.out.print("작가: ");
                String author = sc.nextLine();

                wiseSaying.no=++lastNo;
                wiseSaying.content=content;
                wiseSaying.author=author;

                System.out.println("%d번 명언이 등록되었습니다.".formatted(wiseSaying.no));
            } else if (cmd.equals("목록")) {
                System.out.println("번호 / 작가 / 명언");
                System.out.println("----------------------");

                for (int i = lastNo-1; i >= 0; i--) {
                    WiseSaying target=wiseSayings[i];

                    System.out.println("%d / %s / %s".formatted(target.no, target.author, target.content));
                }
            } 
        }
    }
}
 

 

 

'알고리즘 > Java' 카테고리의 다른 글

[Java] 명언 게시판 만들기(1~5단계) - 리팩토링  (0) 2026.07.16
[Java] 캡슐화(Encapsulation)  (0) 2026.07.15
[Java] 추상 클래스 / 추상 메서드  (0) 2026.07.15
[Java] 구성  (0) 2026.07.15
[Java] 상속  (0) 2026.07.14

댓글