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