[패스트캠퍼스] [ 만들어보는 클래스의 종류 ] 나도 할 수 있는 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