[Spring Boots] Calendar 앱 만들기

김현정·2025년 3월 24일
0

이번에는 Spring boots를 활용하여 일정 관리 앱 만들어보았습니다.

프로젝트 개요


Controller, Service, Repository로 분류를 하여 역할을 나누었습니다.

  1. Controller
  • 일정의 생성(Create), 조회(Read), 수정(Update), 삭제(Delete) 기능을 처리하는 API 엔드포인트를 제공
  1. Service
  • 비즈니스 로직을 담당하며, 일정 저장, 수정, 삭제 등의 핵심 기능을 구현
  1. Repository
  • 데이터베이스와 직접 연결되어 CRUD 작업 수행

문제 1 : password가 null로 저장되는 문제

선택한 일정을 수정하는 부분에서 password가 null로 발생되어 수정이 되지않고 400오류가 발생함.

오류 발생한 원인 (조건문에서 오타발생)

if(author == null || todo != null ) {
    throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "작성자 그리고 할 일 내용이 없습니다.");
}

해결방법

if (author == null || todo == null ) {
    throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "작성자 또는 할 일 내용이 없습니다.");
}

오류 발생한 원인 (calendarRowMapperV2에서 password를 받지 못함)

    private RowMapper<Calendar> calendarRowMapperV2() {
        return new RowMapper<Calendar>() {
            @Override
            public Calendar mapRow(ResultSet rs, int rowNum) throws SQLException {
                return new Calendar(
                        rs.getLong("id"),
                        rs.getString("author"),
                        rs.getString("todo")
                );
            }
        };
    }

해결방법

    private RowMapper<Calendar> calendarRowMapperV2() {
        return new RowMapper<Calendar>() {
            @Override
            public Calendar mapRow(ResultSet rs, int rowNum) throws SQLException {
                return new Calendar(
                        rs.getLong("id"),
                        rs.getString("author"),
                        rs.getString("todo"),
                        rs.getString("password")
                );
            }
        };
    }

RowMapperV2에서 password를 받지 못하여 계속해서 null이 반환이 되어 수정이 이루어지지 못함.
코드에서 하나라도 오타가 난다면 실행이 안되기에 잘못 된 코드를 찾는 것이 가장 힘들었습니다.
하나하나 확인하면서 꼼꼼하게 코드구현을 해야하는 것을 다시 한번 깨달았습니다.

0개의 댓글