1. 문제 요약
일정 생성 api를 만들고 실행했지만 500서버오류가 발생

2. 기대 동작
- 사용자가 JSON 형식으로 일정을 등록 요청하면
- 서버에서 해당 일정을 DB에 저장하고, 생성된 결과를 반환해야 함
3. 실제 동작
업로드 시 "500 Internal Server Error" 발생
4. 원인 분석
“error code [0]; Column 'created_at' not found.]”
- DB에는 created_at 컬럼이 존재하지 않음
- 하지만 코드 상에서 해당 컬럼에 값을 삽입하거나 매핑하려고 시도함
- 즉, Entity 클래스의 필드명(createdAt)과 DB 컬럼명(created_at)이 매핑되지 않아서 발생한 오류

1. 문제 요약
실행해서 생성 했지만 비밀번호에 널값이 들어감.

2. 기대 동작
- 사용자가 JSON 형식으로 일정을 등록 요청하면
- 서버에서 해당 일정을 DB에 저장하고, 생성된 결과를 반환해야 함
3. 실제 동작
데이터베이스에 일정이 저장될 때, 비밀번호(password) 필드가 NULL 값으로 저장됨.
4. 원인 분석
- 서비스 메서드 또는 DTO에서 비밀번호 필드가 주석 처리되어 파라미터로 전달되지 않음
- 이로 인해 비밀번호 값이 null로 넘어가고, 그대로 DB에 저장됨
@Override
public ResponseDto saveTodo(ToDoList toDoList) {
// 요청 말고 응답할땐 날짜도 함께 내보내야 해서 값 설정을 해줌 NOW로
LocalDateTime now = LocalDateTime.now();
toDoList.setCreatedAt(now);
toDoList.setUpdatedAt(now);
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
jdbcInsert.withTableName("todolist").usingGeneratedKeyColumns("id");
Map<String,Object> parameters = new HashMap<>();
parameters.put("contents",toDoList.getContents());
parameters.put("user",toDoList.getUser());
//parameters.put("password",toDoList.getPassword());
parameters.put("create_at", Timestamp.valueOf(toDoList.getCreatedAt()));

1. 문제 요약
단건 조회 메서드를 실행했더니 404 not found 오류가 발생.

2. 기대 동작
입력한 ID(식별자)에 해당하는 일정 정보를 정상적으로 조회하여, 화면에 출력되어야 함.
3. 실제 동작
※ 해당 ID로 요청을 보냈을 때, 다음과 같은 오류 발생:
404 Not Found
※ 요청한 일정 데이터가 화면에 출력되지 않음
4. 원인 분석
@GetMapping("/{id}")
public ResponseEntity<ResponseDto> findTodoById(Long id){
return new ResponseEntity<>(toDoService.findTodoById(id),HttpStatus.OK);
}
그러던중 아이디를 매핑받는 곳에 @PathVariable 이 빠져 있다는 걸 확인.
이 어노테이션은 postman에 식별자를 부여 받으면 그값을 데이터베이스에서 매핑해주는 역할을 하고있기 때문에 식별자 별로의 검색에 필수.
이걸 고쳐서 실행 했지만 이번엔 500 오류 메세지 발생.
500 Internal Server Error
원인 분석.

확인 했더니 컬럼명 실수.
title이 아니라 user인데 잘못 입력해서 오류가 발생. 고쳐주고 실행 했더니 정삭 작동.
1. 원인분석
patch매핑하고 프로그램 실행을 돌렸더니 이런 오류가 발생
"Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)"
이 메세지를 찾아보니 비밀번호가 설정되어진거랑 application.property 비밀번호랑 다르게 입력됬다는 거였다.
변경되어있어서 원래 비밀번호로 다시 변경.
하지만 다시 실행해도 오류. 널엑셉션 오류 발생.
2. 기대 동작
원래 있던 목록에 수정 값을 넣으면 그 값들이 변경되어서 화면에 출력이 되어야 함.
3. 실제 동작
널 오류가 발생.

4. 원인 분석

리스트를 생성하는 과정에서 잘못 생성해서 데이터들에 널값이 입력되어버렸다. if문으로 null을 잡는 오류를 넣어주긴 했지만 이걸로는 해결이 안되어서 그냥 데이터를 삭제하는 방법으로 진행.
DELETE FROM todolist
WHERE password IS NULL;
delete from todolist
where CREATE_AT is null and MODIFIED_AT is null ;
수정해서 진행 했지만 그래도 오류가 났다. 아마 비밀번호 데이터 타입을 int형으로 진해하다가 String 으로 바꿨는데 이걸 sql 에 아직 적용하지 않아서 발생하는 오류라고 생각.
Cannot convert class java.lang.String to SQL type requested due to java.lang.NumberFormatException - For input string: "aa123"] with root cause
ALTER TABLE todolist
MODIFY COLUMN password VARCHAR(255);
비밀번호에 데이터 타입을 변경했더니 잘 작동이 되었다.