[패스트캠퍼스] [ 만들어보는 클래스의 종류 ] 나도 할 수 있는 Java&Spring 웹 개발 종합반 60 ~ 64강

2024. 5. 17. 16:21나도 할 수 있는 Java&Spring 웹 개발 종합반

728x90
반응형

 

클래스 -> 모델의 종류라고도 한다

 

1. 모델이란 무엇인가

객체_Object (현실적) = 클래스_class (프로그래밍적) = 모델_Model (소프트웨어공학적)

객체지향프로그래밍에서 클래스의 역할에 따라 부르는 이름을 모델이라고 부른다

역할에 따라 다양한 모델을 만들어 사용할 수 있다

 

우리가 클래스로 만들어 사용하게 될 모델의 종류

 [ 시작 클래스(메인) : 시작 클래스 모델 ] <- 비포함
- DTO, VO : 데이터를 담는(이동) 모델 // Data Transfer Object, Value Object
- DAO : 데이터를 처리(DB) 하는 모델 // Data Access Object, Create + Read + Update + Delete를 하는 모델
- Utility : 도움을 주는 모델 // Helper Object

 

2. DTO, VO 클래스가 왜 필요할까

DTO, VO 클래스의 필요 : 데이터를 하나로 묶어야 될 경우(바구니가 필요, 데이터를 하나로 수집 하는 역할)

 

3. DAO 클래스가 왜 필요할까

데이터베이스에 데이터(VO, DTO)르루 저장, 수정 하거나 검색, 삭제를 하기 위해서 만들어지는 모델(클래스)

(CRUD 동작을 가지고있는 클래스, 비지니스 로직을 처리하는 클래스)

 

CRUD SQL
Create insert
Read select
Update update
Delete delete

 

- carDTO.java

package fc.java.model;

public class CarDTO {
    public int carSn;
    public String carName;
    public int carPrice;
    public String carOwner;
    public int carYear;
    public String carType;
}

 

- carTest.java

 

package fc.java.part3;

import fc.java.model.CarDTO;

import java.util.Scanner;

public class CarTest {
    public static void main(String[] args) {
        //Q. 자동차 정보를 키보드로부터 입력받아 다른 메서드로 이동해야 되는 경우
        Scanner scan = new Scanner(System.in);
        System.out.println("자동차 일련번호를 입력하시오.");
        int carSn = scan.nextInt();

        scan.nextLine();

        System.out.println("자동차 이름을 입력하시오.");
        String carName = scan.nextLine();

        System.out.println("자동차 가격을 입력하시오.");
        int carPrice = scan.nextInt();

        scan.nextLine();

        System.out.println("자동차 소유자를 입력하시오.");
        String carOwner = scan.nextLine();

        System.out.println("자동차 년식을 입력하시오.");
        int carYear = scan.nextInt();

        scan.nextLine();

        System.out.println("자동차 타입을 입력하시오.");
        String carType = scan.nextLine();

        CarDTO car = new CarDTO();
        car.carSn = carSn;
        car.carName = carName;
        car.carPrice = carPrice;
        car.carOwner = carOwner;
        car.carYear = carYear;
        car.carType = carType;
        // 데이터를 하나로 묶는 작업
        carInfoPrint(car);
    }

    // Q. 매개변수로 자동차 정보를 받아서 출력하시는 메서드를 정의하세요.
    // 자동차 데이터를 이동하기 위한 바구니가 필요하다 (DTO, VO)
    // 클래스로 carDTO, carVO 모델 설계
    public static void carInfoPrint(CarDTO car) {
        System.out.println(car.carSn +"\t"+ car.carName +"\t"+ car.carPrice +"\t"+ car.carOwner +"\t"+ car.carYear +"\t"+ car.carType);
    }
}

자동차 일련번호를 입력하시오.
1234
자동차 이름을 입력하시오.
FC-CAR
자동차 가격을 입력하시오.
300,000
자동차 소유자를 입력하시오.
Owner
자동차 년식을 입력하시오.
2024
자동차 타입을 입력하시오.
Gas
1234 FC-CAR 300000 Owner 2024 Gas

 

4. Utility 클래스가 왜 필요할

반복적으로 사용해야 할 동작(기능)을 별도의 클래스로 만들어 놓고 필요할 때 사용하는 클래스

꼭 필요한 것은 아니고, 필요시 만들어 사용

자바에도 java.util 패키지에 이러한 Utility 클래스가 많이 있다

Utility, Helper, Facade (도움을 주는 클래스들):

1. 날짜, 시간, 통화 정보 획득 가능 (동작)
2. 인코딩 (한글 깨짐) 기능 (동작)
3. DAO 이외의 별도 기능 (동작)
 -> main 메서드에서 분리해서 코딩
728x90
반응형