테이블 한줄당 하나의 CURD가 가능한 게이트웨이 객체

row와 대응하는 객체를 생성해 줄 Finder 도 따로 만들어서 사용함 → 펙토리 패턴이 있는 이유랑 비슷한 느낌, 다형성을 위해서

Row Data Gateway

개요

Row Data Gateway는 데이터베이스의 한 행(row)을 객체로 표현하는 패턴입니다. 마치 데이터베이스 테이블의 행이 거울에 비친 것처럼 동작합니다.

핵심 개념

데이터베이스의 한 레코드를 표현하는 객체가 해당 데이터의 조회(finder), 삽입(insert), 수정(update), 삭제(delete) 메서드를 모두 포함합니다.

실생활 비유

식당의 주문서를 생각해보세요:

주요 특징

코드 예시

public class PersonGateway {
    private Long id;
    private String name;
    private int age;
    private String email;

    // finder 메서드
    public static PersonGateway findById(Long id) {
        String sql = "SELECT * FROM persons WHERE id = ?";
        // DB 조회 로직
        return new PersonGateway(/* 조회된 데이터 */);
    }

    // insert 메서드
    public void insert() {
        String sql = "INSERT INTO persons (name, age, email) VALUES (?, ?, ?)";
        // DB 삽입 로직
    }

    // update 메서드
    public void update() {
        String sql = "UPDATE persons SET name = ?, age = ?, email = ? WHERE id = ?";
        // DB 수정 로직
    }

    // delete 메서드
    public void delete() {
        String sql = "DELETE FROM persons WHERE id = ?";
        // DB 삭제 로직
    }
}

장점