사이먼's 코딩노트
[Java] Scanner / 게시판 제작(1) 본문
[게시판 제작]
- 앞으로 Java를 통해 게시판을 만들어 볼 예정이고 해당 소스는 Github로 관리해 볼 예정입니다.
- 작성된 모든 코드는 저의 깃허브 리포지터리에서 확인하실 수 있습니다.
- 리포지터리 주소 URL : https://github.com/psm817/full_stack_proj_2024_03
[게시판 작성]
- 오늘은 게시판 제작 1차 작업으로 사용자 지정의 명령어를 생성하여 게시판의 제목과 내용을 작성하고 해당 게시글의 고유번호를 매기는 작업까지 해 볼 예정이다.
- 아래 코드는 위에서 설명한 조건을 만족한 1차 작업이 완성된 코드이다.
package org.example;
import java.util.Scanner;
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {
System.out.println("== 프로그램 시작 ==");
Scanner sc = new Scanner(System.in);
int lastArticleId = 0;
while(true) {
System.out.printf("명령어) ");
String cmd = sc.nextLine();
cmd = cmd.trim();
if(cmd.length() == 0) {
continue;
}
if(cmd.equals("system exit")) {
break;
}
else if(cmd.equals("article list")) {
System.out.println("게시물이 없습니다.");
}
else if(cmd.equals("article write")) {
int id = lastArticleId + 1;
System.out.printf("제목 : ");
String title = sc.nextLine();
System.out.printf("내용 : ");
String body = sc.nextLine();
lastArticleId = id;
System.out.printf("%d번 글이 작성되었습니다.\n", id);
}
else {
System.out.printf("%s(은)는 존재하지 않는 명령어입니다.\n", cmd);
}
}
sc.close();
System.out.println("== 프로그램 끝 ==");
}
}
- Main 메서드를 살펴보면 Scanner 클래스를 사용하여 키보드 입력을 받도록 되어있고, 우리가 흔히 알고있는 커맨드창 처럼 계속해서 명령어를 입력할 수 있도록 while(true) 무한 루프를 사용하였다.
- cmd라는 변수에 nextLine() 메서드를 통해 문자열을 입력받아 리턴하도록 하였다.
- cmd = cmd.trim(); 은 양옆에 있는 공백을 없애주는 역할이다. trim을 적용하게 되면 사소한 공백 하나 때문에 에러가 발생하는 상황을 막을 수 있다.
- 명령어를 아무것도 작성하지 않아도 계속 반복될 수 있도록 cmd.length() == 0 일 때, 반복문에 계속 실행될 수 있도록 continue;를 실행한다.
- 만약 명령어에 'system exit'라고 입력하면 break와 함께 무한 루프가 종료하게 된다.
- 만약 명령어에 'article list'라고 입력하면 현재는 저장된 게시물이 없기 때문에 "게시물이 없습니다."라고 출력하게 된다.
- 만약 명령어에 'article write'라고 입력하면 게시물의 고유 번호인 id라는 변수를 만들어 주고 차례대로 제목과 내용을 입력한다.
- 무한 루프안에 생성된 id는 지역변수로서 반복문이 끝남과 동시에 효력을 상실한다. 그렇기 때문에 고유 번호를 lastArticleId로 전역변수로 따로 생성해주고 무한 루프 안의 조건문에서 게시물을 하나씩 작성할 때마다 int id = lastArticleId + 1;을 해주고 id 값을 lastArticleId에 갱신해준다.
- 현재까지 작성된 코드를 실행하면 다음과 같이 게시판이 동작한다.
반응형
'프로젝트 > [Java] 게시판 제작' 카테고리의 다른 글
[Java] 게시판 제작(6) (0) | 2024.02.23 |
---|---|
[Java] 게시판 제작(5) (0) | 2024.02.22 |
[Java] 게시판 제작(4) (0) | 2024.02.21 |
[Java] 게시판 제작(3) (0) | 2024.02.21 |
[Java] 게시판 제작(2) (0) | 2024.02.21 |