본문 바로가기
  • Let's study

BackEnd/Java6

[Java] 명언 게시판 만들기 - 리팩토링, Rq 클래스 이번 리팩토링에서는 중복 제거, Rq 클래스 도입을 통해 컨트롤러의 역할을 단순화하는 과정을 진행하였다.1. findIndexById 메서드로 중복 제거삭제와 수정 기능에서는 모두 ID에 해당하는 명언의 위치를 찾는 코드가 중복되어 있었다. int targetIdx = -1;for (int i = 0; i 이 코드는 어디서든 재사용 가능한 기능이므로 findIndexById() 메서드로 분리하였다. private int findIndexById(int id) { for (int i = 0; i 반면, "명언이 존재하지 않습니다" 같은 출력문은 삭제와 수정에서 사용하는 메시지이므로 재사용성이 낮아 별도의 메서드로 분리하지 않았다. git: findIndexById로 중복 제거2. Stream 적용.. 2026. 7. 21.
[Java] 명언 게시판(1~8단계) - 리스트 버전 [Java] 명언 게시판 만들기(6~8단계) - 리팩토링[Java] 명언 게시판 만들기(6~8단계)[Java] 명언 게시판 만들기(1~5단계) - 리팩토링[Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록hyemzzi.tistory.com이번 리팩토링에서는 명언을 저장하는 자료구조를 배열(Array) 에서 ArrayList로 변경하였다.배열은 크기가 고정되어 있어 삭제나 추가 시 직접 인덱스를 관리해야 했지만, ArrayList를 사용하면 이러한 작업을 컬렉션이 대신 처리해준다.1. 배열을 ArrayList로 변경기존에는 고정 크기의 배열을 사용하였다. WiseSaying[] wiseSayings = new WiseSayin.. 2026. 7. 20.
[Java] 명언 게시판 만들기(6~8단계) - 리팩토링 [Java] 명언 게시판 만들기(6~8단계)[Java] 명언 게시판 만들기(1~5단계) - 리팩토링[Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가hyemzzi.tistory.com이번 리팩토링에서는 객체지향적인 방식으로 WiseSaying 클래스를 개선하였다.1. Getter와 Setter 사용기존에는 App 클래스에서 WiseSaying의 인스턴스 변수에 직접 접근하였다. target.idtarget.contenttarget.author 객체의 데이터를 보호하기 위해 인스턴스 변수를 private으로 변경하고, getter와 setter를 사용하도록 수정하였다.예를 들어, 목록 출력은 다음과.. 2026. 7. 20.
[Java] 명언 게시판 만들기(6~8단계) [Java] 명언 게시판 만들기(1~5단계) - 리팩토링[Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가 증가5단계 - 목록6단계 - 1번 명언삭제7단계 -hyemzzi.tistory.com요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가 증가5단계 - 목록6단계 - 1번 명언삭제7단계 - 존재하지 않는 명언삭제에 대한 예외처리8단계 - 명언수정이번 단계에서는 삭제, 예외 처리, 수정 기능을 구현하였다.삭제 기능이 추가되면서 기존의 lastNo만으로는 배열을 관리하기 어려워졌기 때문에 lastIndex 변수를 새로 추가하였다.l.. 2026. 7. 20.
[Java] 명언 게시판 만들기(1~5단계) - 리팩토링 [Java] 명언 게시판 만들기(1~5단계)요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가 증가5단계 - 목록6단계 - 1번 명언삭제7단계 - 존재하지 않는 명언삭제에 대한hyemzzi.tistory.com이번 단계에서는 명언 게시판의 기능은 변경하지 않고, 책임을 분리하여 가독성과 유지보수성을 높이는 방향으로 리팩토링을 진행했다.1. Main 클래스에서 로직 분리기존에는 Main 클래스가 프로그램의 모든 로직을 담당했다.하지만 Main은 프로그램을 시작하는 역할만 담당하고, 실제 기능은 App 클래스에서 처리하도록 변경했다.변경 전Main ├─ 등록 ├─ 목록 └─ 종료변경 후Main └─ App.run()public class Ma.. 2026. 7. 16.
[Java] 명언 게시판 만들기(1~5단계) 요구사항1단계 - 종료2단계 - 등록3단계 - 등록시 생성된 명언번호 노출4단계 - 등록할때 마다 생성되는 명언번호가 증가5단계 - 목록6단계 - 1번 명언삭제7단계 - 존재하지 않는 명언삭제에 대한 예외처리8단계 - 명언수정1단계 - 종료== 명언 앱 == 명령) 종료가장 먼저 Scanner를 이용하여 명령어를 입력받고 "종료"를 입력하면 프로그램이 종료되도록 구현하였다.핵심 코드Scanner sc = new Scanner(System.in);System.out.println("== 명언 앱 ==");String cmd = "";while (!cmd.equals("종료")) { System.out.print("명령) "); cmd = sc.nextLine();}sc.close();2단계 - .. 2026. 7. 16.