<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
    <persistence-unit name="Hello">
        <class><!-- Entity Manager Class Name --></class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@//localhost:1522/xe" />
            <property name="javax.persistence.jdbc.user" value="hr" />
            <property name="javax.persistence.jdbc.password" value="1234" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
            
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.use_sql_comments" value="true"/>           
        </properties>
    </persistence-unit>
</persistence>

'[웹셋팅]' 카테고리의 다른 글

[웹셋팅] 제이쿼리 연결  (0) 2020.01.31
[웹셋팅] jstl 셋팅  (0) 2020.01.29
[웹셋팅] MyBatis.xml 기본 셋팅  (0) 2019.12.20
[웹셋팅] properties 양식  (0) 2019.12.20
[웹셋팅] dependencies(프로젝트 셋팅)  (0) 2019.12.19
1. VO와 DTO의 현재 상황
2. VO란 무엇인가
3. DTO란 무엇인가
4. VO와 DTO의 사용방법

1. VO와 DTO의 현재 상황

현재 필자를 포함한 일부 개발자는 VO와 DTO의 정확한 개념 구분이 안되는 경우가 많다.

필자 역시 VO와 DTO를 동일한 개념으로 생각하고 지냈었으며,

VO를 마치 DTO와 같이 사용했었다.

 

이는 아마 일부 또는 많은 개발자가 그렇게 사용하고 있다는 생각이 든다.

필자가 봐았던 일부 국내 스프링 서적 역시 VO를 DTO로 사용하고 있었기 때문에 이 기회에 VO와 DTO에 대해 알아보고 정확하게 쓰고자 이 포스팅을 작성하게 되었다.

2. VO란 무엇인가

VO(Value Object)란 (Value Object)의 약자로 값 객체를 의미한다.

오직 read만 가능하며 Getter만 가능해야 한다.

 

DTO(Data Transfer Object)와 달리 데이터 이전이 아닌 그저 단순히 저장된 값을 의미한다.

그렇기 때문에 데이터 불변 조건이 성립되어야 하므로 Setter 존재하면 안된다.

 

그럼 어떠한 경우에 사용하여야 할까?

- 데이터 불변이어야하고

- 저장된 값을 불러와야하는 경우

 

위와 같은 상황일 떄 사용하면된다.

그럼 그러한 상황은 어떤 경우인지 알아보도록하자.

 

예를 들어 서울의 지역번호를 저장하고자한다.

서울의 지역번호는 누구나 다 알듯이 02이다.

그리고 핸드폰 번호처럼 변하는게 아닌 고정된 값이다.

그렇기 때문에 위와 같이 고정된 값은 VO로 저장 후 Getter 호출 할수 있다.

 

다만, Setter를 사용하여 값을 수정하면 안된다는 것이다.

위와 같이 고정된 값을 사용하고 호출할 때는 VO를 사용해야한다.

 

3. DTO란 무엇인가

자 이제, VO를 알아봤으니 DTO를 알아보도록하자.

DTO(Data Transfer Object)란 영어 의미 그대로 데이터 이전 객체이다.

그렇기 때문에 Getter 뿐만 아니라 Setter를 사용하여 Data 이전을 할 수가 있다.

 

예를 들어 회원정보 객체를 만들 경우에는 DTO로 명시해야한다.

회원의 정보(이름, 휴대폰 번호, 주소 등)은 언제든지 변할 수 있기 때문에

불변의 조건이 있으면 안된다.

 

그렇기 때문에 Getter와 Setter 둘다 사용하여 데이터 이전이 가능하도록 구성해야 한다.

그리고 위와 같은 기능을 담당하는 객체이기 때문에 우리는 DTO로 명시하여야 한다.

 

4. VO와 DTO의 사용방법

지금까지 VO와 DTO에 대한 차이에 대하여 설명하였다.

그렇기 때문에 앞으로는 더 이상 VO를 DTO와 같이 사용하지말고 VO 기능 그대로 사용하고

DTO 역시 DTO 기능 그대로 사용하는 코더가 되도록하자.

 

 

의존성 추가시 현재 스프링 부트에 맞는 의존성 버전 확인방법은 다음과 같다.

1. 스프링 부트 프로젝트의 pom.xml에서 버전 확인
2. 스프링 홈페이지에서 Docs 확인
3. 버전에 맞는 의존성 MVN에서 확인 후 추가
1. 스프링 부트 프로젝트의 pom.xml에서 버전 확인

2. 스프링 홈페이지에서 Docs 확인

다음과 같이 확인 후 본인에게 맞는 스프링 부트 버전의 Reference Doc으로 이동한다.

하단에 Dependency Versions 클릭

필자는 hibernate를 추가할 것이기 때문에 다음과 같이 버전을 확인한다.

hibernate-entitymanager를 추가해보도록하자.

3. 버전에 맞는 의존성 MVN에서 확인 후 추가

작업제목 : 스프링(부트 포함) 배치 프로그램(SELECT 후 INSERT DB)
작업순서 : 
1. 스프링 부트 pom.xml 설정
2. BatchVO.class, BatchConfiguration.class, BatchJob.class, BatchApplication.class 생성
3. BatchConfiguration.class 작성
4. BatchVO.class 작성
5. BatchJob.class 작성
6. BatchApplication.class 작성
7. 기타 설정 확인

8. 정상 작동되는지 테스트 및 확인
9. jar 파일로 생성
10. bat 파일 생성 후 bat 파일로 실행
11. 윈도우 스케줄러에 등록하여 특정 시간에 bat 파일이 작동되도록 구성
스케줄러에서 bat 파일 실행하기

윈도우 스케줄러로 bat 파일을 실행하는 방법은 어렵지않다.

아래와 같이 사진을 참고하여 진행하면된다.

 

현재 시간으로부터 4시 7분에 작동되도록 설정하였다.

포스팅 중 4시 7분이 지나 4시 15분으로 변경하였다.
정해진 시간에 맞춰서 bat 파일이 실행된 것을 확인할 수 있다.

데이터 역시 잘 들어온 것을 확인할 수 있다.

작업제목 : 스프링(부트 포함) 배치 프로그램(SELECT 후 INSERT DB)
작업순서 : 
1. 스프링 부트 pom.xml 설정
2. BatchVO.class, BatchConfiguration.class, BatchJob.class, BatchApplication.class 생성
3. BatchConfiguration.class 작성
4. BatchVO.class 작성
5. BatchJob.class 작성
6. BatchApplication.class 작성
7. 기타 설정 확인

8. 정상 작동되는지 테스트 및 확인
9. jar 파일로 생성
10. bat 파일 생성 후 bat 파일로 실행
11. 윈도우 스케줄러에 등록하여 특정 시간에 bat 파일이 작동되도록 구성

윈도우 스케줄러에 등록하여 특정 시간에 실행하려면 bat 파일로 만들어야 한다.

batch에 약자로 batch는 일괄이라는 뜻이다.

일괄처리하는 파일로 필자의 경우 jar 파일 실행을 위하여 다음과 같이 작성하였다.

 

.bat으로 저장하면 아래와 같은 파일을 확인할 수 있다.

+ Recent posts