Table Module 패턴

개념

Table Module은 데이터베이스의 한 테이블의 모든 로직을 하나의 클래스에서 처리하는 패턴입니다. 테이블의 모든 레코드를 한 번에 다루는 것이 특징입니다.

실생활 비유

학급 담임 선생님과 비슷합니다:

코드 예시

// 일반적인 구현
public class StudentModule {
    private DataTable studentTable;  // 학생 테이블 전체 데이터

    public StudentModule(DataTable studentTable) {
        this.studentTable = studentTable;
    }

    // 전체 학생의 평균 성적 계산
    public double calculateAverageGrade() {
        double total = 0;
        for (DataRow row : studentTable.Rows) {
            total += (double) row["grade"];
        }
        return total / studentTable.Rows.Count;
    }

    // 특정 학년의 모든 학생 진급 처리
    public void promoteStudents(int grade) {
        for (DataRow row : studentTable.Rows) {
            if ((int) row["grade"] == grade) {
                row["grade"] = grade + 1;
            }
        }
    }

    // 전체 학생 통계 생성
    public Statistics generateStatistics() {
        // 전체 학생 데이터를 기반으로 통계 생성
        return new Statistics(studentTable);
    }
}

// 사용 예시
DataTable studentData = database.getTable("students");
StudentModule students = new StudentModule(studentData);

// 전체 학생 평균 계산
double avgGrade = students.calculateAverageGrade();

// 3학년 학생들 진급 처리
students.promoteStudents(3);

장점

  1. 단순한 구조
  2. 대량 데이터 처리에 효율적
  3. 데이터 일관성

단점

  1. 객체지향적이지 않음
  2. 복잡한 비즈니스 로직에 부적합

적합한 상황

  1. 단순한 데이터 구조
  2. 대량 데이터 처리
  3. 간단한 비즈니스 로직