Skip to content

seung-in-Yoo/Java-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java-CLI

✅ CLI 자바 서비스 만들기 (콘솔 기반)

🎯 개요

이 과제는 Java 콘솔 프로그램으로 간단한 텍스트 게시판을 구현하는 프로젝트입니다.

Java 기본 문법, 클래스 및 객체지향 설계, 사용자 입력 처리, 그리고 데이터 저장 구조(ArrayList 등)를 연습합니다.


🧩 전체 기능 예시

기능 설명
게시글 작성 write 명령어 입력 시 제목/내용을 받아 새 게시글 생성
게시글 목록 list 명령어 입력 시 모든 게시글을 번호순으로 출력
게시글 상세보기 detail [id] 명령어로 특정 게시글 내용을 전체 확인
게시글 수정 update [id] 명령어로 제목/내용을 수정
게시글 삭제 delete [id] 명령어로 해당 글 삭제
종료 exit 명령어로 프로그램 종료

✅ 게시글 데이터 구조 예시

class Article {
    int id;
    String title;
    String content;
    String regDate;
}

⚙️ 주요 클래스 및 파일 구조 예시

src/
├─ Main.java         ← 진입점
├─ App.java     ← 프로그램 실행 로직
├─ Article.java      ← 게시글 데이터 클래스
└─ Rq.java         ← 커맨드 명령어 요청 유틸 클래스

🧠 메서드 설계 예시

메서드명 설명
run() 앱 실행 루프 (입력 대기 및 명령어 처리)
writeArticle() 게시글 작성 처리
listArticles() 게시글 목록 출력
showDetail(int id) 특정 글 상세 내용 출력
updateArticle(int id) 게시글 수정 처리
deleteArticle(int id) 게시글 삭제 처리
getCurrentDate() 현재 날짜 리턴 (yyyy-MM-dd 형식)

💬 실행 예시

명령어: write
제목: 자바 공부
내용: 자바 텍스트 게시판 만들기
=> 게시글이 등록되었습니다.

명령어: list
번호 | 제목       | 등록일
-----------------------------
1    | 자바 공부  | 2025-08-03

명령어: detail 1
번호: 1
제목: 자바 공부
내용: 자바 텍스트 게시판 만들기
등록일: 2025-08-03

명령어: update 1
제목 (현재: 자바 공부): Java 게시판
내용 (현재: 자바 텍스트 게시판 만들기): 콘솔 기반으로 구현
=> 게시글이 수정되었습니다.

명령어: delete 1
=> 게시글이 삭제되었습니다.

명령어: exit
프로그램을 종료합니다.


🎯 개발 포인트 요약

기술 요소 적용
입력 처리 Scanner 활용하여 명령어/데이터 입력 받기
리스트 관리 ArrayList<Article>로 게시글 목록 관리
날짜 처리 LocalDate.now() 또는 SimpleDateFormat 활용
정렬 최신글이 위로 오도록 list() 역순 출력
객체지향 설계 게시글 클래스 분리, 메서드 역할 분리

✅ 추가 기능 구현 예시

  • 게시글 조회수 기능 (count 필드 추가)
  • 게시글 검색 기능 (search [keyword])
  • 파일 저장/불러오기 (BufferedWriter, BufferedReader 등 활용)
  • 게시글 정렬 옵션 (날짜순, 번호순 등)

✅ 과제 제출 방법

  • GitHub 저장소에 프로젝트 업로드(개인 레포 가능)
  • README.md에 기능 설명, 실행 예시, 명령어 요약 포함
  • 폴더 구조 정리 및 주석 또는 문서화 권장

팀 컨벤션

🔖 브랜치 컨벤션

  • main - 제품 출시 브랜치
  • develop - 출시를 위해 개발하는 브랜치
  • feature/본인이름 - 각자 개발하는 기능 단위로 독립적인 개발 환경을 위해 작성
  • refactor/xx - 개발된 기능을 리팩토링 하기 위해 작성
  • hotfix/xx - 출시 버전에서 발생한 버그를 수정하는 브랜치
  • chore/xx - 빌드 작업, 패키지 매니저 설정 등
  • design/xx - 디자인 변경
  • bugfix/xx - 버그 수정

📑 커밋 컨벤션

🏷️ 커밋 태그 가이드

태그 설명
[Feat] 새로운 기능 추가
[Fix] 버그 수정
[Refactor] 코드 리팩토링 (기능 변경 없이 구조 개선)
[Style] 코드 포맷팅, 세미콜론 누락, 들여쓰기 수정 등
[Docs] README, 문서 수정
[Test] 테스트 코드 추가 및 수정
[Chore] 패키지 매니저 설정, 빌드 설정 등 기타 작업
[Design] UI, CSS, 레이아웃 등 디자인 관련 수정
[Hotfix] 운영 중 긴급 수정이 필요한 버그 대응
[CI/CD] 배포 관련 설정, 워크플로우 구성 등

✅ 커밋 예시 모음 (해당 프로젝트에서는 이모지 사용 X)

🎉 [Chore] 프로젝트 초기 세팅
✨ [Feat] 프로필 화면 UI 구현
🐛 [Fix] iOS 17에서 버튼 클릭 오류 수정
💄 [Design] 로그인 화면 레이아웃 조정
📝 [Docs] README에 프로젝트 소개 추가

📁 PR 컨벤션

  • PR 시, 템플릿이 등장한다. 해당 템플릿에서 작성해야할 부분은 아래와 같다
    1. PR 유형 작성, 어떤 변경 사항이 있었는지 [] 괄호 사이에 x를 입력하여 체크할 수 있도록 한다.
    2. 작업 내용 작성, 작업 내용에 대해 자세하게 작성을 한다.
    3. 추후 진행할 작업, PR 이후 작업할 내용에 대해 작성한다
    4. 리뷰 포인트, 본인 PR에서 꼭 확인해야 할 부분을 작성한다.
    5. PR 태그 종류, PR 제목의 태그는 아래 형식을 따른다.

🌟 태그 종류 (커밋 컨벤션과 동일)

태그 설명
[Feat] 새로운 기능 추가
[Fix] 버그 수정
[Refactor] 코드 리팩토링 (기능 변경 없이 구조 개선)
[Style] 코드 포맷팅, 들여쓰기 수정 등
[Docs] 문서 관련 수정
[Test] 테스트 코드 추가 또는 수정
[Chore] 빌드/설정 관련 작업
[Design] UI 디자인 수정
[Hotfix] 운영 중 긴급 수정
[CI/CD] 배포 및 워크플로우 관련 작업

✅ PR 예시 모음 (해당 프로젝트에서는 이모지 사용 X)

🎉 [Chore] 프로젝트 초기 세팅
✨ [Feat] 프로필 화면 UI 구현
🐛 [Fix] iOS 17에서 버튼 클릭 오류 수정
💄 [Design] 로그인 화면 레이아웃 조정
📝 [Docs] README에 프로젝트 소개 추가

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages