Skip to content

CLI 자바 서비스 만들기 - 송민혁#6

Open
m1nhy2uk wants to merge 71 commits into
hoehoeabi:mainfrom
m1nhy2uk:m1nhy2uk-cli
Open

CLI 자바 서비스 만들기 - 송민혁#6
m1nhy2uk wants to merge 71 commits into
hoehoeabi:mainfrom
m1nhy2uk:m1nhy2uk-cli

Conversation

@m1nhy2uk
Copy link
Copy Markdown

@m1nhy2uk m1nhy2uk commented Apr 17, 2026

📋 Java CLI 게시판

Java 콘솔 기반의 텍스트 게시판 프로그램입니다.

📁 폴더 구조

src/
├─ main/java/com/
│   ├─ Main.java          # 진입점
│   ├─ App.java           # UI 및 입출력 처리
│   ├─ ArticleService.java # 게시글 비즈니스 로직
│   ├─ Article.java       # 게시글 데이터 클래스
│   └─ Rq.java            # 명령어 파싱 유틸
└─ test/java/com/
    └─ ArticleTest.java # 테스트 코드
    └─ AppTest.java # 테스트 코드

📌 명령어 요약

명령어 설명
write 새 게시글 작성
list 게시글 목록 출력
view 조회수순 정렬
detail [id] 특정 게시글 상세 보기
update [id] 특정 게시글 수정
delete [id] 특정 게시글 삭제
exit 프로그램 종료

💬 실행 예시

게시글 작성

명령어) write
제목 : 자바 공부
내용 : 콘솔 게시판 만들기
게시글이 작성되었습니다.

게시글 목록

명령어) list
번호 / 제목 / 작성일 | 조회수
---------------------
1 / 자바 공부 / 2025-08-03 10:30 | 0

조회수순 게시글 목록

명령어) view
번호 / 제목 / 작성일 | 조회수
---------------------
2 / 게시판 만들기 / 2025-08-03 10:35 | 2
1 / 자바 공부 / 2025-08-03 10:30 | 1

게시글 상세보기

명령어) detail 1
번호 : 1
제목 : 자바 공부
내용 : 콘솔 게시판 만들기
작성일 : 2025-08-03 10:30
조회수 : 1

게시글 수정

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

게시글 삭제

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

프로그램 종료

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

hoehoeabi and others added 30 commits April 7, 2026 17:08
Added project overview, features, and class structure to README.
- App을 실행
- 뷰를 분리할 예정
hoehoeabi and others added 22 commits April 15, 2026 12:09
- 유틸클래스에 들어가기엔 page,pageable,Rq 셋다 안어울린다고 생각하였기에
- 명령어가 많아지니 switch문은 가독성이 떨어진다고 판단
- 하여 initCommandMap으로 미리 명령어와 해당 실행 구문을 map에 담고 꺼내오는 방식으로 변경
- ArticleView 분리를 통한 UI 로직 캡슐화
- ArticleController에서 executeWithId를 사용하여 중복로직 제거
- 컨테이너에서 의존성 주입 수정 -> 컨트롤러에 뷰 주 주입
- 테스트 코드 수정
- Msg 클래스를 도입하여 한곳에서 관리하도록 함

- 하드코딩된 문자열을 상수로 대체하여 유지보수성 향상
CLI 자바 서비스 만들기 - 정용현
@p7548296-afk
Copy link
Copy Markdown

전체적으로 코드가 굉장히 간결하고 읽기 쉽게 잘 작성된 것 같습니다!
명령어를 공백 기준으로 파싱하는 방식이 직관적이라 흐름을 따라가기 쉬웠습니다.

@woo0218
Copy link
Copy Markdown

woo0218 commented Apr 17, 2026

과제에서 제시한 예시 내용을 활용해 잘 구현하신것 같습니다. 고생하셨습니다!

Copy link
Copy Markdown

@kjh3165 kjh3165 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TDD도 적용하셨네요 고생하셨습니다~

private void doDetail(int id) {
articleService.increaseCount(id);
Article article = articleService.showDetail(id);
if (article != null) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

increaseCount 메소드도 이 블럭에 넣는게 좋지 않을까 하는 생각이 듭니다.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그렇네요!! 좋은 지적 감사합니다!

}
}
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필드에 접근할때 getter 로 값을 받아오는게 좋을 것 같습니다.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재 switch문은 break가 반복되고 있어서 (->) 문법을 사용하면 더 간결하게 표현할 수 있을 것 같습니다!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

필드에 직접 접근하는 방식보다는 article.getId()처럼 getter를 활용해 캡슐화하면 더 좋은 구조가 될 것 같습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants