패스트캠퍼스 챌린지

패스트캠퍼스 환급 챌린지 7일차 : 9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online 강의 후기

ssoonearth 2025. 4. 7. 21:42

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

 

 

 

 

패스트캠퍼스의 '9개 도메인 프로젝트로 끝내는 백엔드 웹 개발 (Java/Spring) 초격차 패키지 Online' 강의 수강 7일차!
오늘은 커뮤니티 피드 서비스의 유저 서비스를 구현하고 유저 서비스 테스트 코드를 작성하는 실습을 진행하였다.

 

Controller에서 Service로 요청 데이터를 넘길 때 사용할 DTO 객체를 네이밍 규칙에 맟추어 생성한다.
여기서는 1. 행동, 2. 변경/생성할 객체 이름, 3. request/response, 4. dto 순서대로 지어보았다. (e.g. CreateUserRequestDto)

이번 강의를 통해 레코드(record)라는 것을 처음 알게 되었는데, 흥미롭게 느껴졌다.
레코드는 Java 14부터 지원되는 기능으로, final 키워드가 붙은 변수(불변 변수)로만 구성되어 있고, getter만 가진 객체(== 데이터 클래스)를 레코드 형식으로 변경할 수 있다.
toString(), equals(), hashCode() 메소드가 자동으로 생성이 된다.

public class CreateUserRequestDto {

    private final String name;

    private final String profileImageUrl;

    public CreateUserRequestDto(String name, String profileImageUrl) {
        this.name = name;
        this.profileImageUrl = profileImageUrl;
    }

    public String getName() {
        return name;
    }

    public String getProfileImageUrl() {
        return profileImageUrl;
    }
}

 

이렇게 작성했던 DTO 객체가

public record CreateUserRequestDto(String name, String profileImageUrl) {
}

 

이렇게 간결하게 바뀐다!

 

 

 

repository 메소드의 파라미터로 해당 객체의 id값만이 아닌, 도메인 객체의 전체를 넘기는 것이 좋다.

트랜잭션 단위로 변경이 일어나야 하는 것들은 하나의 메소드로 묶어주면 유지보수 측면에서 이점이 있다.