내일배움캠프/Schedule Management(18)
-
[일정 관리 앱] 일정 생성, 조회 API 테스트
'일정 생성' 과 '일정 조회(단건)', '일정 목록 조회' 에 대한 구현을 진행하고 진행한 API 테스트를 남겨본다. 무작정 남기는 것은 아니고 이후 신경써야 할 부분을 기록할 필요를 느껴 작성하게 되었다. 이번에 작성한 코드는 여기서 확인이 가능하다. 1. 일정 생성 일정을 정상 요청하게 될 경우 생성된 Entity 의 정보를 'ResponseSchedule(DTO)' 에 담아 반환한다. 하지만 예외를 해결하려 작성한 '예외 처리' 과정에서 오히려 문제가 생겼다. 요청 값에 대한 '유효성' 검증의 경우 'validation' 을 사용했는데, 어째서 인지 'title' 필드에 대한 예외가 응답에 표기되지 않았다. 아래는 '일정 생성' 에 대한 요청 파라미터를 담는 'AddSchedule(DTO)' 로 ..
2024.10.08 -
[일정 관리 앱] JPA 를 사용한 일정 관리 앱 구현시작
'Spring 숙련 주차' 의 개인과제는 'JPA' 를 사용한 '일정 관리 앱' 구현이다. 이전 프로젝트를 확장해 진행해도 되지만, 아직 Spring 을 다루는 것이 완벽하다고 할 수 없기에 연습을 위해 새로운 프로젝트를 생성해 이번 과제를 진행하기로 결정했다. 이번 과제는 'JPA' 로 기본적인 CRUD 를 구현하고, 'JWT(JSON Web Token)' 을 활용해 '인증/인가' 에 대한 부분까지 구현하는 것이 목표이다. 요구사항을 확인하고 정리해 보니 저번 과제와는 다르게 각 레벨별로 요구사항을 프로젝트에 반영하기로 하였다. 요구사항이 늘어남에 따라 기존에 작성한 코드가 확장을 잘 받아낼 수 있는지(?) 를 확인하고 싶기도 하고 아직 미숙하기에 요구사항을 하나하나 따라가며 구현을 하고자하는 생각도 ..
2024.10.07 -
[일정 관리 앱] 요구사항 반영 후 API 테스트
과제에 명시된 모든 요구사항을 반영 후 아래와 같이 구현한 기능에 대한 API 테스트를 진행해 보았다. 1. 일정 생성 '일정 생성' 요청 시 일정 생성에 필요한 '할 일(본문)', '작성자 이름', '작성자 이메일', '비밀번호' 정보들을 Http 메세지 본문(Request boy) 에 담아 요청을 하도록 구현했다. '유효한 요청 값' 들이 전달될 경우 일정을 DB 에 저장하며, 저장(생성)한 일정의 '아이디(id), 할 일(body), 작성자 이름(authorName), 일정 작성일(createAt), 일정 수정일(updateAt)' 정보를 반환해 준다. 이 때의 HttpStatus 는 '201 Created' 이다. '유효하지 않은 요청 값(들)' 이 전달될 경우는 아래와 같다. 'body, pas..
2024.10.04 -
[일정 관리 앱] Level 4 요구사항 정리, DB 세팅
'필수 기능' 에 대한 예외를 처리했으니 이번에는 '도전 기능' 의 'Lv.4 요구사항' 을 반영해보려 한다. 해당 요구사항은 이미 정리를 한 번 했지만 생각할 것이 많아 해당 게시글에서 다시 한 번 정리한 뒤 요구사항을 프로젝트에 반영해 보고자 작성하게 되었다. 1. 요구사항 정리 현재 '필수 기능' 요구사항을 반영한 프로젝트의 경우 'schedule' 테이블에서 '작성자명(author)' 만으로는 이게 누가 작성한 것인지 명확하게 확인을 할 수 없다. 요구사항에서는 '동명인' 문제를 예시로 들어주었는데, 다른 사용자가 같은 작성자명을 사용할 경우 앞서 말한 문제가 발생한다. 물론 이런 문제를 해결하기 위해서는 각 사용자별로 '사용자 정보(우리가 흔히 말하는 계정)' 를 저장해두고 사용자 정보와 요청 ..
2024.10.02 -
[일정 관리 앱] API 테스트 - 일정 수정 및 삭제
Lv.3 요구사항을 반영해 프로젝트에 '일정 수정', '일정 삭제' 기능을 추가하였다. 추가한 기능이 제대로 동작하는지 확인하기 위해 진행한 API 테스트 결과들을 남겨본다. 이번에 기능을 추가하며 작성한 코드는 여기에서 확인할 수 있다. 1. 일정 수정 요구사항에서의 포인트는 사용자가 입력한 '비밀번호' 와 DB 에 저장된 일정의 '비밀번호' 가 같을 때만 수정이 되어야 하는 것이다. 물론 사용자가 지정한 'id' 에 해당하는 일정이 DB 에도 존재해야 한다. 일정 수정전의 schedule 테이블의 상태이다. '일정 수정' 후의 변화를 확인하고자 남겨두었다. 먼저 사용자가 정확한 '비밀번호' 를 입력했을 때이다. 수정할 내용이 잘 반영되었으며, 추가적으로 '수정' 작업을 진행했기에 'updateAt' ..
2024.09.30 -
[일정 관리 앱] Spring Framework 파라미터 인식 오류
생성한 '일정' 을 조회하는 기능을 프로젝트에 추가한 후 'Postman' 을 통해 '특정 일정 조회' 에 대한 API 테스트를 진행하던 도중 아래와 같은 에러가 발생했다(이미지를 클릭하면 크게 볼 수 있다). '일정' 을 조회하는 기능을 추가한 코드는 여기서 확인할 수 있다. 간략하게 말하면 파라미터를 식별(인식)할 수 없다는 내용의 에러이다. 분명 방금 '전체 일정 조회' 에 대한 API 테스트는 정상적으로 완료했는데, 왜 '특정 일정 조회' 에 대한 API 테스트에선 이러한 문제가 발생했을까? 0. '전체 일정 조회' 와 '특정 일정 조회' 의 차이 현재 'ScheduleController' 클래스에는 일정을 조회하기 위한 메서드가 2개 존재한다.findAllSchedule(RequestFindA..
2024.09.30