[spring] 객체의 종류

김지훈·2023년 4월 20일
0

spring

목록 보기
3/3

컨트롤러 객체(Controller object)

비즈니스 로직 객체(Business logic object)

  • 도메인 객체(Domain object)라고도 한다.
  • 비즈니스 로직을 구현하는 객체로, 비즈니스 로직에 대한 코드를 캡슐화하고, 비즈니스 로직을 수행하는 메서드들을 제공합니다.

서비스 객체(Service object)

  • 애플리케이션의 다양한 계층 간의 연결을 담당하는 객체입니다. 여러 개의 비즈니스 로직 객체를 조합하여 하나의 기능을 수행하는 경우가 많습니다.

엔티티 객체(Entity object)

  • 엔티티 객체는 일반적으로 데이터베이스의 테이블과 매핑되며, 데이터베이스의 데이터를 객체로 표현한 것이다.

데이터 가공 객체(Data processing object, DPO)

  • 데이터를 처리하거나 가공하는 객체입니다. 예를 들어, 데이터를 파싱하거나, 데이터를 정규화하는 등의 역할을 수행할 수 있습니다.

데이터 전송 객체(Data Transfer Object. DTO)

  • 주로 데이터베이스에서 조회된 데이터나 외부 시스템에서 받아온 데이터를 비즈니스 로직에서 사용하기 적합한 형태로 가공하여 전달하기 위해 사용된다.

데이터베이스 연동 객체 (Database access object, DAO)

  • 데이터베이스와 연동하여 데이터를 처리하는 객체입니다. 데이터베이스와의 연동을 담당하며, 데이터베이스에서 데이터를 조회하거나, 삽입, 갱신, 삭제하는 등의 역할을 수행합니다.

모델 객체 (Model Object)

  • 데이터베이스나 파일, 외부 API 등에서 데이터를 가져와 프로그램 내에서 사용하기 쉽게 포맷팅하는 객체입니다.
  • 모델 객체는 뷰에서 사용되는 데이터 전달용 객체로서, 뷰에서 필요한 데이터를 담고 있는 객체이다.

    💡 일반적으로 REST API에서는 클라이언트로 응답할 데이터를 JSON 또는 XML 형식으로 변환하여 ResponseEntity 객체에 담아서 반환한다.
    💡 ResponseEntity 객체는 HTTP 응답 코드, 응답 헤더, 응답 바디 등을 포함하고 있다.

팩토리 객체 (Factory Object)

  • 다른 객체를 생성하고 초기화하는 객체이다.
  • 객체 생성과 관련된 로직을 모듈화하고 중앙 집중적으로 관리한다.
  • 일반적으로 인터페이스를 구현하는 여러 클래스들을 생성하기 위해서는 팩토리 객체를 사용한다

// Animal 인터페이스
public interface Animal {
    void makeSound();
}

// Cat 클래스, Animal 인터페이스를 구현
public class Cat implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}

// Dog 클래스, Animal 인터페이스를 구현
public class Dog implements Animal {
    @Override
    public void makeSound() {
        System.out.println("Woof");
    }
}

// AnimalFactory 클래스, Animal 객체를 생성하여 반환하는 팩토리 클래스
public class AnimalFactory {
    public static Animal getAnimal(String animalType) {
        if (animalType == null) {
            return null;
        }
        if (animalType.equalsIgnoreCase("CAT")) {
            return new Cat();
        } else if (animalType.equalsIgnoreCase("DOG")) {
            return new Dog();
        }
        return null;
    }
}

// Main 클래스
public class Main {
    public static void main(String[] args) {
        // 팩토리를 사용하여 Animal 객체 생성
        Animal cat = AnimalFactory.getAnimal("cat");
        Animal dog = AnimalFactory.getAnimal("dog");

        // Animal 객체의 메서드 호출
        cat.makeSound(); // 출력: Meow
        dog.makeSound(); // 출력: Woof
    }
}

리포지토리 객체 (Repository Object)

  • 데이터를 저장하고 조회하는 인터페이스를 제공하는 객체입니다.

클래스 다이어그램

@startuml
title Class Diagram for User Management

class UserController {
  + createUser()
  + getUser()
  + updateUser()
  + deleteUser()
}

class UserService {
  - userRepository: UserRepository
  + createUser()
  + getUser()
  + updateUser()
  + deleteUser()
}

interface UserRepository {
  + createUser()
  + getUser()
  + updateUser()
  + deleteUser()
}

class UserEntity {
  - id: Long
  - name: String
  - email: String
  - password: String
  + getId()
  + getName()
  + getEmail()
  + getPassword()
  + setId()
  + setName()
  + setEmail()
  + setPassword()
}

class UserDto {
  - id: Long
  - name: String
  - email: String
  + getId()
  + getName()
  + getEmail()
  + setId()
  + setName()
  + setEmail()
}

UserController -> UserService
UserService -> UserRepository
UserService -> UserEntity
UserController -> UserDto
UserService -> UserDto
UserRepository -> UserEntity
UserRepository -> UserDto
@enduml


그외 객체..

GUI 컴포넌트 객체(GUI component object)

  • 그래픽 사용자 인터페이스(GUI)를 구현하는 데에 사용되는 객체입니다. 예를 들어, 버튼, 텍스트필드, 레이블, 리스트 등의 컴포넌트가 있습니다.

이벤트 리스너 객체 (Event listener object)

  • GUI 컴포넌트에서 발생하는 이벤트를 처리하는 객체입니다. 예를 들어, 버튼 클릭, 마우스 움직임, 키보드 입력 등의 이벤트를 처리할 수 있습니다.
profile
IT 개발자

0개의 댓글