본문 바로가기
멋쟁이사자처럼 동아리/공통피드백

5주차. 스프링 JDBC

by PlusUltraCode 2024. 6. 22.

공통 피드백

불변 객체 - Record 활용하기

불변 객체를 만들 때 Record를 사용하면 편리합니다. Record는 불변뿐만 아니라 getter, toString, equals, hashcode 등을 자동으로 구현해주므로 데이터 객체로서 명확한 의미를 가집니다.

예시:

public class ReservationRequest {
    private final String name;
    private final String date;
    private final String time;
}

// 또는

public record ReservationRequest(
    String name,
    String date,
    String time
) {}

Lombok 사용 고민하기

외부 라이브러리인 Lombok을 사용할 때는 충분한 고민 후 도입해야 합니다. 단순히 getter를 사용하기 위해 Lombok에 의존성을 추가하는 것이 적절한지 생각해보아야 합니다.

검증 위치

사용자 요청에 대한 검증이 어디서 이루어져야 하는지 고민해야 합니다.

예시:

  1. 존재하지 않는 예약에 대한 접근
  2. 예약 추가 시, 날짜 형식이 틀린 경우

(1) → DB 조회 후 알 수 있음
(2) → 단순 요청으로도 검증이 가능

Fail-fast 관점도 고려해보아야 합니다.

정적 팩토리 메서드

생성자에 많은 로직이 포함된다면, 의미를 부여하기 위해 정적 팩토리 메서드를 사용해보세요.

예시:

public class Reservation {
    private final String name;
    
    public Reservation(String name) {
        validateName(name);
        validateDuplication(name);
        this.name = name;
    }
}

new Reservation("kokodak");

// 또는

public class Reservation {
    private final String name;
    
    private Reservation(String name) {
        this.name = name;
    }
    
    public static Reservation withValidation(String name) {
        validateName(name);
        validateDuplication(name);
        return new Reservation(name);
    }
}

JDBC (Java Database Connectivity)

데이터베이스 접근을 위한 자바 표준 API입니다. 이를 통해 데이터베이스와 상호작용할 수 있습니다.

'멋쟁이사자처럼 동아리 > 공통피드백' 카테고리의 다른 글

7주차. 인증  (0) 2024.06.22
6주차 Spring core  (0) 2024.06.22
4주차. 스프링 MVC  (0) 2024.06.22
3주차. 클린코드  (0) 2024.06.22
2주차. 단위테스트  (0) 2024.06.22