til : CRUD

원녕·2024년 1월 31일
0

TIL

목록 보기
6/21

1. 리턴 타입 매칭의 중요성

public Todo updateTodo(Long todoid, TodoRequestDto requestDto) {
        Todo todo = checkPWAndGetTodo(todoid, requestDto.getUserpassword());

        todo.update(requestDto);
        return todoRepository.save(todo);
    }
public TodoResponseDto updateTodo(Long todoid, TodoRequestDto requestDto) {
        Todo todo = checkPWAndGetTodo(todoid, requestDto.getUserpassword());

        todo.update(requestDto);
        return todoRepository.save(todo);
    }

return 타입을 고려하지않고 코드를 작성하면 내가 보내야하는 데이터의 타입이 무엇인지 헷갈려서 코드에 에러가 떠서 확인할때조차
무엇이 잘못된지 인지하기 힘든경우가 있었다. 타입을 잘 확인하자

2.최대한 메서드들로만 구성하도록하자

코딩을 하다보면 어쩔수 없이 하드코딩 해야 할때가 생기는데 사전에 그런일이 벌어지지않도록 적절히 메서드화 해서 분리작업을 거친후에
코드를 한줄한줄 작성해나가자

    private Todo checkPWAndGetTodo(Long todoid, String userpassword){
        Todo todo = getTodo(todoid);
        if(todo.getUserpassword() != null && !Objects.equals(todo.getUserpassword(),userpassword))
        {
            throw new IllegalArgumentException();
        }
        return todo;
    }

예시로 위처럼 메서드를 따로 분리하지 않았다면
데이터를 보내는 메서드 안에 하드코딩해서 작성해야 하는 수밖에 없다. 하지만 그렇게 작성할 경우 수정도 어렵고 오히려 작성하기 까다로울 수도 있다.

3. 역할 분리를 잘해놓자

controller는 메서드 단위만을 가지고 메서드를 호출해서 실행하는 방식으로만 사용하고, service는 controller에서 호출되는 방식으로 서비스로직만을 작성하도록 하자. repository는 아직 크게 다뤄본적이 없어서 잘 모르겠다.

profile
메타인지하는 개발자

0개의 댓글