CLI 자바 서비스 만들기 - 이민서#2
Conversation
Added project overview, features, and class structure to README.
- App에서 사용하기위해
- App을 실행
- 뷰를 분리할 예정
- static 변수는 프로그램이 시작될 때 메모리에 올라가서 종료될 때까지 남아있다. ArticleRepository나 ArticleService 인스턴스는 어차피 ArticleController가 생성될 때 내부 필드로 주입되어 계속 참조되고 있으므로, Container가 굳이 중복해서 들고 있을 필요가 없다. - 외부에서 Container.getArticleService()를 호출할 일이 없다.
- 기존 : case "list" -> articleController.showList(); - 이후 : case "list" -> articleController.showList(rq);
- 유틸클래스에 들어가기엔 page,pageable,Rq 셋다 안어울린다고 생각하였기에
| return this.count; | ||
| } | ||
|
|
||
| public void setId(int id) { |
There was a problem hiding this comment.
id는 최초에 생성될때 할당되고 그뒤로 바뀔일이 없으니 setId는 노출 안시키는게 좋을거같아요
|
|
||
| // 전체 게시글 목록을 반환합니다. | ||
| public List<Article> findAll() { | ||
| return List.copyOf(postList); |
| } | ||
|
|
||
| // 명령어(actionName)에 따라 기능을 분기 실행하고, 종료 명령이면 true를 반환합니다. | ||
| private boolean handleCommand(Rq rq) { |
|
|
||
| return false; | ||
| } | ||
|
|
There was a problem hiding this comment.
여유가 되신다면 화면에 보여주는 부분(View)과 명령을 전달하는 부분(Controller)을 조금씩 나누어보는 건 어떨까요? 지금 당장 바꾸지 않더라도, 나중에 기능이 더 늘어날 때를 대비해 역할을 나누는 연습을 해보시면 큰 도움이 될 것 같아 조심스럽게 의견 남겨봅니다!
| @Nested | ||
| @DisplayName("게시글 목록 출력(listArticles) 테스트") | ||
| class ListArticlesTest { | ||
|
|
There was a problem hiding this comment.
테스트 사항들을 구체적으로 나누면서 작성하신게 인상적이었습니다! 고생하셨습니다!
| printArticleRow(articles.get(i)); | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
reversed()를 쓰지 않으신 건 목록 출력할 때마다 정렬하는 오버헤드를 고려하신 건가요 아니면 다른 이유가 있으신가요?
There was a problem hiding this comment.
reversed()를 안 쓴 건 보통 매번 복사/정렬하는 비용과 원본 순서 변경 위험을 피하기 위해서 입니다!
list 출력은 원본은 그대로 두고, 인덱스를 뒤에서부터 순회하는 방식이 가장 단순하고 안정적이라고 해서 사용해봤습니다.
kjh3165
left a comment
There was a problem hiding this comment.
조회수, 검색 기능 추가하시고 예외처리도 적절하게 하시고 TDD도 적용하셨네요. 고생하셨습니다~
|
추가 기능과 TDD까지 구현하신 점이 좋아 보입니다! 또 주석을 함께 작성해주셔서 코드 흐름을 이해하는 데 도움이 되었습니다 |
m1nhy2uk
left a comment
There was a problem hiding this comment.
주석이 잘 달려있어 읽는데 수월했습니다.
테스트코드짜시는데 고생하신게 엿보입니다.
고생많으셨습니다.
There was a problem hiding this comment.
작은 동작들을 메서드로 잘 분리된거같아요.
App이 Controller + Service 역할을 동시에 하고 있어 분리가 되도 좋을 것 같습니다!
CLI 자바 서비스 만들기
Java 콘솔 기반 텍스트 게시판 프로젝트입니다.
개요
구현 기능
writelistdetail [id]update [id]delete [id]search [keyword]exit게시글 데이터 구조
프로젝트 구조
실행 방법
Windows PowerShell:
.\gradlew.bat run실행 예시
테스트
./gradlew testWindows PowerShell:
.\gradlew.bat testassertThat) 스타일을 사용합니다.개발 포인트
Scanner기반 입력 처리ArrayList<Article>기반 목록 관리LocalDate.now()기반 등록일 관리App/ArticleService/Article/Rq책임 분리추가 기능 체크리스트
count)search [keyword])