본문 바로가기

카테고리 없음

예제코드

아이디와 패스워드가 존재.

기존에 패스워드와 신규 패스워드가 일치하면 변경

public class User {
        private String id;
        private String password;
}

// 1번
public void changePassword(String id, String oldPassword, String newPassword) {
        User user = userRepository.findById(id);
        String password = user.getPassword();

        if (oldPassword.equals(password)) {
            user.setPassword(newPassword);
        }
    }

// 2번
    public void changePassword(User user, String newPassword) throws Exception {
        User u = userRepository.findById(user.getId());
        if (u == null) {
            throw new NoUserException();
        }

        if (u.isMatchedPassword(newPassword)) {
            u.changePassword(newPassword);
        }
    }

너무 구현에 치우치지 말자.

이전에는 1번처럼 했음.

2번처럼 구현해야겠음

자꾸 null 체크하는걸 잊어버림.. 그래서 nullPointException 팡팡

Repository에 저장되는 단위는 엔티티 루트의 단위여야 한다.

조회 객체 단위와 저장 객체 단위는 달라야 한다.

이걸 CQRS