2024. 9. 30. 17:55ㆍ내일배움캠프/Schedule Management
Lv.3 요구사항을 반영해 프로젝트에 '일정 수정', '일정 삭제' 기능을 추가하였다. 추가한 기능이 제대로 동작하는지 확인하기 위해 진행한 API 테스트 결과들을 남겨본다. 이번에 기능을 추가하며 작성한 코드는 여기에서 확인할 수 있다.
1. 일정 수정
요구사항에서의 포인트는 사용자가 입력한 '비밀번호' 와 DB 에 저장된 일정의 '비밀번호' 가 같을 때만 수정이 되어야 하는 것이다. 물론 사용자가 지정한 'id' 에 해당하는 일정이 DB 에도 존재해야 한다.
일정 수정전의 schedule 테이블의 상태이다. '일정 수정' 후의 변화를 확인하고자 남겨두었다.
먼저 사용자가 정확한 '비밀번호' 를 입력했을 때이다.
수정할 내용이 잘 반영되었으며, 추가적으로 '수정' 작업을 진행했기에 'updateAt' 이 수정된 시간으로 변경되었다(일정은 생성시에 작성일과 수정일이 같다).
다음은 사용자가 다른(틀린) '비밀번호' 를 입력했을 때이다.
비밀번호가 달라 수정내용이 전혀 반영되지 않았으며, 수정 내용이 반영되지 않았기 때문에 'updateAt' 또한 이전과 같이 'createAt' 과 같은 값을 가지고 있는 것을 확인할 수 있다.
물론 API 테스트 결과에 노출되는 것 만으로는 수정이 DB 에 제대로 반영됬는지 확신하긴 어려움으로 현재(일정 수정 후) 'schedule' 테이블의 상태도 확인해 보자. 위의 결과라면 'id = 1' 인 레코드는 수정이 되었을 것이고, 'id=2' 인 레코드는 수정이 되지 않았을 것이다.
위에서 말한대로 'id=1' 인 레코드의 경우 일정 정보가 수정되었고, 'id=2' 인 레코드의 경우에는 일정 정보가 수정되지 않은 것을 확인할 수 있다.
2. 일정 삭제
'일정 수정' 과 마찬가지로 Lv.3 요구사항에서의 포인트는 사용자가 입력한 '비밀번호' 와 DB 에 저장된 일정의 '비밀번호' 의 '일치 여부' 이다. 일치 되었을 때만 일정이 삭제가 되어야 한다. 일정 삭제전 'schedule' 테이블의 상태는 바로 위에 있는 '일정 수정후 schedule 테이블' 이미지를 참고하면 된다.
사용자가 비밀번호를 올바르게 입력해 기존에 존재했던 '일정' 이 삭제되어 기본 값으로 초기화 된 값들이 반환된 것을 확인할 수 있다. 현재 테이블에 존재하지 않는 레코드를 조회시 기본 생성자로 생성된 DTO 객체를 반환하도록 작성했기 때문이다.
다음은 사용자가 다른(틀린) 비밀번호를 입력할 경우이다.
사용자가 올바르지 않은 비밀번호를 입력했기에 '일정 삭제' 가 수행되지 않아 삭제 대상이었던 일정의 정보가 반환된 것을 확인할 수 있다.
이번에도 현재(일정 삭제 테스트 후) 'schedule' 테이블의 상태를 확인해 보자.
API 테스트 결과처럼 'id=5' 인 레코드는 테이블에서 삭제가 되었고, 'id=6' 인 레코드는 삭제되지 않은 것을 확인할 수 있다.
'내일배움캠프 > Schedule Management' 카테고리의 다른 글
[일정 관리 앱] 일정 생성, 조회 API 테스트 (0) | 2024.10.08 |
---|---|
[일정 관리 앱] JPA 를 사용한 일정 관리 앱 구현시작 (0) | 2024.10.07 |
[일정 관리 앱] 요구사항 반영 후 API 테스트 (0) | 2024.10.04 |
[일정 관리 앱] Level 4 요구사항 정리, DB 세팅 (0) | 2024.10.02 |
[일정 관리 앱] Spring Framework 파라미터 인식 오류 (0) | 2024.09.30 |