1\. 종료 입력시 종료2\. 등록 입력시 명언 등록3\. 등록시 생성된 명언 번호 출력4\. 등록할 때마다 명언번호 증가5\. 목록 입력시 현재까지 생성된 명언 목록 출력6\. 명언번호로 명언 삭제7\. 존재하지 않는 번호로 삭제 시도시 예외 처리8\. 명언 수정9\
종료 입력시 종료등록 입력시 명언 등록등록시 생성된 명언 번호 출력등록할 때마다 명언번호 증가목록 입력시 현재까지 생성된 명언 목록 출력명언번호로 명언 삭제존재하지 않는 번호로 삭제 시도시 예외 처리명언 수정파일을 통한 영속성json 파일 빌드
요구사항 종료 입력시 종료 등록 입력시 명언 등록 등록시 생성된 명언 번호 출력 등록할 때마다 명언번호 증가 목록 입력시 현재까지 생성된 명언 목록 출력 명언번호로 명언 삭제 존재하지 않는 번호로 삭제 시도시 예외 처리 명언 수정 파일을 통한 영속성 json 파일 빌
요구사항 종료 입력시 종료 등록 입력시 명언 등록 등록시 생성된 명언 번호 출력 등록할 때마다 명언번호 증가 목록 입력시 현재까지 생성된 명언 목록 출력 명언번호로 명언 삭제 존재하지 않는 번호로 삭제 시도시 예외 처리 명언 수정 파일을 통한 영속성 json 파일 빌
종료 입력시 종료등록 입력시 명언 등록등록시 생성된 명언 번호 출력등록할 때마다 명언번호 증가목록 입력시 현재까지 생성된 명언 목록 출력명언번호로 명언 삭제존재하지 않는 번호로 삭제 시도시 예외 처리명언 수정파일을 통한 영속성json 파일 빌드객체 여러개를 유지하기 위
요구사항 종료 입력시 종료 등록 입력시 명언 등록 등록시 생성된 명언 번호 출력 등록할 때마다 명언번호 증가 목록 입력시 현재까지 생성된 명언 목록 출력 명언번호로 명언 삭제 존재하지 않는 번호로 삭제 시도시 예외 처리 명언 수정 파일을 통한 영속성 json 파일 빌
종료 입력시 종료등록 입력시 명언 등록등록시 생성된 명언 번호 출력등록할 때마다 명언번호 증가목록 입력시 현재까지 생성된 명언 목록 출력 명언번호로 명언 삭제존재하지 않는 번호로 삭제 시도시 예외 처리명언 수정파일을 통한 영속성json 파일 빌드함수는 기억력이 없기 때
종료 입력시 종료등록 입력시 명언 등록등록시 생성된 명언 번호 출력등록할 때마다 명언번호 증가목록 입력시 현재까지 생성된 명언 목록 출력명언번호로 명언 삭제존재하지 않는 번호로 삭제 시도시 예외 처리명언 수정파일을 통한 영속성json 파일 빌드입력이 "수정?id=1"일
종료 입력시 종료등록 입력시 명언 등록등록시 생성된 명언 번호 출력등록할 때마다 명언번호 증가목록 입력시 현재까지 생성된 명언 목록 출력명언번호로 명언 삭제존재하지 않는 번호로 삭제 시도시 예외 처리명언 수정파일을 통한 영속성json 파일 빌드추출한 id로 quotat
종료 입력시 종료등록 입력시 명언 등록등록시 생성된 명언 번호 출력등록할 때마다 명언번호 증가목록 입력시 현재까지 생성된 명언 목록 출력명언번호로 명언 삭제존재하지 않는 번호로 삭제 시도시 예외 처리명언 수정파일을 통한 영속성json 파일 빌드
클래스의 필드들이 public이라 외부에서 마음대로 변경할 수 있다.웬만하면 클래스의 필드는 private 접근 제한자를 써서 클래스 내부에서의 접근을 제한한다.Getter : 객체의 필드 값을 읽어올 때 사용Setter : 객체의 필드 값을 변경할 때 사용
Getter Setter 메소드들을 하나하나 만들어줘야 했기 때문에 귀찮고 코드가 길어진다.Lombok 플러그인을 사용하면 자동으로 만들어준다.Lombok 설치 후 dependencies에 아래 코드를 추가해줘야 사용할 수 있다.@Getter : Getter를 생성해준
사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.프로젝트의 핵심 부분, 주로 서비스와 리포지터리로 구성된다.리포지터리는 저장과 조회를 담당하는데, 서비스의 하청을 받아서 일을 한다.서비스는 실제로 데이터가 어디에 저장되는지
App.java에 몰려있는 기능들 중 Quotation과 관련된 기능들을 컨트롤러로 분리
new App(scanner).run() : 스캐너를 키보드로 입력받는 스캐너 말고 만들어서 집어넣는 방식으로 바꾼다.ByteArrayOutputStream byteArrayOutputStream = TestUtil.setOutToByteArray(); : 출력 값
기존 코드의 문제점 명언을 추가, 수정, 삭제하고 목록을 보는 등의 비지니스 로직이 컨트롤러에서 직접 처리되고 있다. 일반적으로 MVC 아키텍처에서는 비즈니스 로직은 서비스(Service) 계층에서 처리되어야 한다. Service 분리 컨트롤러 -> 사용자의 입력을 처리 서비스 -> 해당 입력에 대한 비즈니스 로직을 수행 QuotationControll...
저장소에 접근하여 객체를 저장/수정/삭제 하는 일까지 서비스가 하고있다.Repository : 데이터베이스와 관련된 작업을 처리하며 데이터에 대한 접근을 캡슐화한다.Service : 비즈니스 로직을 처리하고 애플리케이션의 핵심 기능을 제공한다.영속 저장에 대한 역할은