#17 Java 콘솔 메모장 시작하기

2026. 6. 20. 13:07·Project/Memo Evolution

 

React로 메모장 기능을 다시 구현한 뒤, 다음 단계로 Java 콘솔 메모장을 시작했다.

지금까지는 브라우저 안에서 메모장을 만들었다.

JavaScript
→ 브라우저 안에서 배열로 메모 관리

React
→ state로 메모 배열 관리

이번에는 같은 메모장 기능을 Java 코드로 다시 구현해보려고 한다.

목표는 웹 화면을 만드는 것이 아니라, Java에서 메모 데이터를 어떻게 다룰 수 있는지 연습하는 것이다.

 

왜 Java 콘솔부터 시작했나

바로 Servlet/JSP나 Spring으로 넘어가면 한 번에 봐야 할 개념이 너무 많아진다.

HTTP 요청
Servlet
JSP
Tomcat
DB
Controller
Service
DAO

그래서 먼저 콘솔 환경에서 Java 문법과 CRUD 흐름을 잡아보기로 했다.

콘솔 메모장은 화면은 단순하지만, 나중에 서버로 넘어가기 전 기본 로직을 연습하기에 좋다.

이번에 먼저 만들고 싶은 흐름은 다음과 같다.

메뉴 출력
→ 사용자 입력
→ 선택한 기능 실행
→ 다시 메뉴 출력
→ 종료 선택 시 프로그램 종료

이 흐름은 나중에 웹으로 넘어가도 비슷하게 이어질 수 있다.

브라우저 요청
→ Controller 또는 Servlet
→ Service
→ 결과 응답

그래서 이번 단계에서는 기능을 바로 완성하기보다, Java 콘솔 프로그램의 기본 뼈대를 먼저 만들었다.

 

프로젝트 구조

Java 콘솔 메모장은 React 프로젝트와 분리해서 새 폴더로 만들었다.

Memo Evolution/
├─ react-memo/
└─ java-console-memo/
   └─ src/
      └─ Main.java

Main.java는 Java 프로그램의 시작점이다.

Java에서는 main 메서드가 프로그램 실행의 출발점이 된다.

public static void main(String[] args) {
}

이번 단계에서는 이 Main.java 안에서 메뉴 출력과 입력 처리를 먼저 작성했다.

 

처음 작성한 Main.java

처음부터 메모 작성, 수정, 삭제 기능을 모두 만들지는 않았다.

먼저 사용자가 메뉴를 선택할 수 있는 구조부터 만들었다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        boolean running = true;

        while (running) {
            System.out.println("===== 메모장 =====");
            System.out.println("1. 메모 작성");
            System.out.println("2. 메모 목록 보기");
            System.out.println("3. 메모 수정");
            System.out.println("4. 메모 삭제");
            System.out.println("0. 종료");
            System.out.print("메뉴 선택: ");

            int menu = scanner.nextInt();

            if (menu == 1) {
                System.out.println("메모 작성 기능은 아직 구현되지 않았습니다.");
            } else if (menu == 2) {
                System.out.println("메모 목록 보기 기능은 아직 구현되지 않았습니다.");
            } else if (menu == 3) {
                System.out.println("메모 수정 기능은 아직 구현되지 않았습니다.");
            } else if (menu == 4) {
                System.out.println("메모 삭제 기능은 아직 구현되지 않았습니다.");
            } else if (menu == 0) {
                running = false;
                System.out.println("프로그램을 종료합니다.");
            } else {
                System.out.println("올바른 메뉴 번호를 입력하세요.");
            }

            System.out.println();
        }

        scanner.close();
    }
}

아직 실제 메모 데이터는 없다.

현재는 사용자가 메뉴를 선택하면 해당 기능이 아직 구현되지 않았다는 문구만 출력된다.

 

입력을 받기 위해 Scanner 사용

콘솔에서 사용자의 입력을 받기 위해 Scanner를 사용했다.

Scanner scanner = new Scanner(System.in);

여기서는 사용자가 메뉴 번호를 입력하면 그 값을 읽는다.

int menu = scanner.nextInt();

예를 들어 사용자가 1을 입력하면 menu 변수에는 1이 들어간다.

사용자 입력: 1
menu = 1

이 값을 기준으로 어떤 기능을 실행할지 나누었다.

 

while문으로 메뉴 반복하기

메모장 프로그램은 메뉴를 한 번 보여주고 끝나면 안 된다.

사용자가 종료를 선택할 때까지 계속 메뉴가 나와야 한다.

그래서 while문을 사용했다.

boolean running = true;

while (running) {
    ...
}

처음에는 running 값이 true이기 때문에 반복문이 계속 실행된다.

사용자가 0을 입력하면 running을 false로 바꾼다.

running = false;

그러면 while (running) 조건이 더 이상 참이 아니게 되고, 프로그램이 종료된다.

 

메뉴 번호에 따라 기능 나누기

사용자가 입력한 번호에 따라 다른 동작을 해야 하므로 if / else if / else를 사용했다.

if (menu == 1) {
    System.out.println("메모 작성 기능은 아직 구현되지 않았습니다.");
} else if (menu == 2) {
    System.out.println("메모 목록 보기 기능은 아직 구현되지 않았습니다.");
}

아직 실제 기능은 구현하지 않았기 때문에, 지금은 각 메뉴마다 안내 문구만 출력했다.

이번 단계의 목표는 메모 기능 자체가 아니라 프로그램의 흐름을 만드는 것이다.

 

0을 입력하면 종료

사용자가 0을 입력하면 프로그램이 종료되도록 했다.

} else if (menu == 0) {
    running = false;
    System.out.println("프로그램을 종료합니다.");
}

running이 false가 되면 반복문이 끝난다.

즉, 현재 프로그램은 사용자가 직접 종료를 선택하기 전까지 계속 메뉴를 보여준다.

 

잘못된 번호 처리

사용자가 1, 2, 3, 4, 0이 아닌 숫자를 입력할 수도 있다.

그 경우에는 안내 문구를 출력하도록 했다.

} else {
    System.out.println("올바른 메뉴 번호를 입력하세요.");
}

아직 복잡한 예외 처리는 하지 않았지만, 최소한 잘못된 번호를 입력했을 때 프로그램 흐름이 이상해지지 않도록 했다.

 

메모 작성
메모 목록 저장
메모 수정
메모 삭제
파일 저장
DB 저장

이번 단계는 기능 구현보다 Java 콘솔 프로그램의 기본 흐름을 만드는 데 집중했다.

'Project > Memo Evolution' 카테고리의 다른 글

#19 Java 콘솔 메모장: CRUD기능 구현하기  (0) 2026.06.20
#18 Java 콘솔 메모장 시작 중 만난 IntelliJ 설정 문제  (0) 2026.06.20
#16 HTML/CSS/JS 메모장을 React로 고도화 정리  (0) 2026.06.20
#15 컴포넌트 분리와 props 이해하기  (0) 2026.06.20
#14 React에서 localStorage로 메모 저장하기  (0) 2026.06.19
'Project/Memo Evolution' 카테고리의 다른 글
  • #19 Java 콘솔 메모장: CRUD기능 구현하기
  • #18 Java 콘솔 메모장 시작 중 만난 IntelliJ 설정 문제
  • #16 HTML/CSS/JS 메모장을 React로 고도화 정리
  • #15 컴포넌트 분리와 props 이해하기
sqaxe1
sqaxe1
woojoo-devlog 님의 블로그 입니다.
  • sqaxe1
    Woojoo's Devlog
    sqaxe1
  • 전체
    오늘
    어제
    • 분류 전체보기 (148)
      • Backend (9)
        • Servlet (7)
        • Spring (2)
      • Frontend (1)
      • CS (0)
      • Book (33)
        • 자바 웹 프로그래밍 Next Step (30)
        • 테스트 주도 개발: 고품질 쾌속개발을 위한 TDD.. (1)
        • 성공과 실패를 결정하는 1%의 네트워크 원리 (2)
      • Engineering (0)
        • Testing (0)
      • Infra (6)
        • AWS (6)
      • Java (4)
      • Network (1)
      • 김영한 (28)
        • 자바 입문 (8)
        • 실전 자바 - 기본편 (6)
        • 실전 자바 - 중급편 (10)
        • 실전 자바 - 고급편 (4)
      • Web (39)
        • Web Basics (39)
      • Project (24)
        • NeoSquare (0)
        • Memo Evolution (24)
      • 정보처리기사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    aws
    개발서적
    java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
sqaxe1
#17 Java 콘솔 메모장 시작하기
상단으로

티스토리툴바