MySQL(52)
-
[일정 관리 앱] 예외 처리 적용 및 API 테스트
일단 '필수 기능' 에 대한 요구사항을 모두 반영해 구현을 하였지만 아직 해결해야 할 것이 있다. 바로 'Exception Handling(예외 처리)' 에 대한 부분인데, 요구사항에는 명시되어있지 않지만 프로젝트를 구현하면서 필요하다 생각하는 예외에 대한 부분을 처리해볼 생각이다. 이번 내용을 구현한 코드는 여기서 확인할 수 있다. 1. 요청 값이 유효하지 않은 경우 요구사항에는 '할 일' 에 몇 글자를 적을 수 있게 혹은 '작성자 이름' 은 몇 글자까지 입력 받을 수 있도록 같은 내용이 명시 되어있지 않다. 하지만 나의 경우 테이블 생성시 적절한 크기를 할당하고자 'text' 타입이 아닌 'varChar' 타입을 사용해 컬럼을 생성했다. 'varChar' 타입을 사용하다보니 자연스레 '최대 크기' 에..
2024.10.01 -
[일정 관리 앱] 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 -
[내일배움캠프] 일정 관리 앱 - DB 연동 및 API 테스트
다행이(?) JDBC 를 적용한 개발이 잘 풀려 '일정 생성(CRUD 中 - create)' 에 대한 구현을 마칠 수 있었다. 그래서 이전에 못한 Spring 과 DB 의 연결이 잘 되었는지 확인할 수 있었는데, 이번 게시글에는 어떻게 DB 를 Spring 과 연동했고 구현한 ' 일정 생성' 기능이 어떻게 동작되는지 작성할 생각이다. 이번에 작성된 프로젝트 내용은 여기서 확인 할 수 있다. 1. application.properties# MySQL 설정spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# DB Source URLspring.datasource.url=jdbc:mysql://localhost:3306/schedule_managemen..
2024.09.27 -
[내일배움캠프] 일정 관리 앱 - DB 세팅
어제 미리 세팅해둔 '일정 관리 앱(Schedule Management)' 프로젝트에 사용될 'DB(데이터베이스, 스키마)' 와 'Table(테이블)' 을 생성해 보자! 0. ERD 'Lv.1 ~ 3' 에 해당 하는 요구사항을 반영했을 때 필요로하는 DB Table 에 대한 'ERD(Entity Relationship Diagram, 객체 관계도)' 를 아래와 같이 작성해 두었다. 1. DB(= schema) 생성 평소에는 'MySQL Workbench' 를 통해서 DB(schema) 만을 생성해두고 Spring Data JPA 를 통해 Entity 에 해당하는 테이블을 생성했었다. 하지만 이번 과제는 'JDBC' 를 사용해야 하기에 DB 연결전에 DB 와 Table 을 모두 미리 생성해두기로 하였고,..
2024.09.27 -
[SQL] 시간차 구하기 - TIMEDIFF
두 시간의 시간차를 구할 때 사용되는 'TIMEDIFF' 함수에 대해 알아보자. 1. 기본 문법SELECT TIMEDIFF(시간 데이터1, 시간 데이터2) AS 별명FROM 테이블명 TIMEDIFF 첫 번째 시간에서 두 번째 시간을 뺄셈 연산하는 함수결과적으로 '두 시간의 뺄셈 연산' 을 하는 함수라 이해하면 편하다. 시간 데이터의 경우 단일 값이 아닌 여러 값이 합쳐진 형태의 값이므로 일반적인 '-' 연산자를 통해 값을 얻기 어렵기 때문에 해당 함수를 통해 시간차를 구하는 것이 좋다.연산 차가 '1시간(60분)' 미만일 경우 파라미터 위치에 상관 없이 양의 값을 반환하며, 연산 결과가 '1시간(60분)' 이상이 될 경우 'DATEDIFF' 함수처럼 파라미터 위치에 따라 양 또는 음의 값을 반환한다. 해..
2024.09.24