DTO 란?

FrameWork 2015. 12. 10. 00:47



애플리케이션의 각 계층간의 데이터 교환을 위해 사용되는 개체 DTO(Data Transfer Object) 이라고 한다. DTO는 각 계층간 데이터 전송을 위해 아무런 로직을 갖지 않고, 오직 데이터를 담기 위해 사용되는 필드와 Getter/Setter 메서드만 가지는 POJO(Plain Old Java Object). POJO는 특정 인터페이스 또는 클래스를 상속하지 않는 일반 자바 개체를 말한다.

 DTO는 원격 객체의 비즈니스 로직을 표현하지만 같은 비즈니스 로직 안에 포함될 필요는 없다. 단지 클라이언트가 데이터를 요구할때 원격 객체의 데이터를 표현할 뿐이다. 또한 DTO는 비즈니스 객체를 갱신하는 데도 사용된다. 

DTO는 네트워크 부하를 줄이고 응답 시간을 향상시킨다.

'FrameWork' 카테고리의 다른 글

스트럿츠(Struts) 소개  (0) 2018.10.20
MVC 디자인 패턴  (0) 2018.10.20
프레임워크(Framework)와 라이브러리  (0) 2015.12.10
Spring 이란 ?  (0) 2015.12.10
Spring에서 HSQLDB 설정하기  (0) 2015.12.09
블로그 이미지

클라인STR

,





프레임워크의 사전적 의미는 무엇인가를 이루는 뼈대나 기반구조를 말한다. 소프트웨어에서 프레임워크란
소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합이다.
프레임워크는 완성된 애플리케이션이 아니며, 개발자는 프레임워크를 바탕으로 비즈니스 요구사항을 만족시키는 완전한 애플리케이션 소프트웨어를 완성시키는 작업을 해야한다.

 

 


프레임워크의 특징을 정리하자면 다음과 같다.

★ 프레임워크는 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성된다.
★ 프레임워크는 이러한 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.
★ 프레임워크의 컴포넌트들은 재사용이 가능하다.
★ 프레임워크는 좀더 높은 수준에서 패턴들을 조직화한다.

프레임워크와 라이브러리에 차이점에 대해서
자바에서 클래스나 인터페이스가 프레임워크라고 생각할수 있으나, 이는 라이브러리에 해당된다.
라이브러리와 프레임워크의 가장 큰차이점은 라이브러리는 소프트웨어에서 호출할수 있는 함수와 루틴으로 구성된다. 하지만 프레임워크는 특정애플리케이션에서 사용할수 있는 상호협력적인 컴포넌트들을 제공한다. 확장 포인트가 존재한다는 점이다.

'FrameWork' 카테고리의 다른 글

스트럿츠(Struts) 소개  (0) 2018.10.20
MVC 디자인 패턴  (0) 2018.10.20
DTO 란?  (0) 2015.12.10
Spring 이란 ?  (0) 2015.12.10
Spring에서 HSQLDB 설정하기  (0) 2015.12.09
블로그 이미지

클라인STR

,

Spring 이란 ?

FrameWork 2015. 12. 10. 00:39





1. Spring 이란?
■ Rod Johnso이 만든 오픈소스 프레임워크
■ 복잡한 엔터프라이즈 애플리케이션 개발을 겨냥
■ 자바빈즈를 사용하지만 EJB에서 할 수 있었던 작업을 가능하게 해줌
■ 간소함, 테스트의 용이성, 느슨한 결합성의 측면에서 스프링의 이점을 얻을수 있음.

 


2. Spring 구성모듈

 

 


Core
프레임워크의 가장 기본적인 부분이고 IoC와 의존성 삽입(Dependency Injuection-DI)기능을 제공한다.
BeanFactory는 IOC를 적용하여 애플리케이션의 설정과 의존성에 대한 명세를 실페 애플리케이션 코드로 부터 분리하는 팩토리 패턴의 구현체

DAO(Data Access Object)
JDBC로 작업할때의 반복적인 연결생성, 명령실행, ResultSet 처리, 연결끊기등의 일을 추상화하여 데이터베이스 연결 코드를 간결하도록 구성. 끔찍한 JDBC코딩과 데이터베이스 업체 특정 에러코드의 파싱을 할 필요를 제거하는 JDBC추상화 레이어를 제공한다. 또한 JDBC패키지는 특정 인터페이스를 구현하는 클래스를 위해서 뿐 아니라 모든 POJO를 위해서도 선언적인 트랜잭션 관리만큼 프로그램에 따른 방식으로 할수 있는 방법을 제공한다.

ORM(Object Relational Mapping)

JDO, Hibernate, 그리고 iBatis를 포함하는 인기있는 객체-관계 맵핑 API를 위한 통합 레이어를 제공한다. ORM패키지를 사용하여 앞에서 언급된 간단한 선언적인 트랜잭션 관리와 같은 Spring이 제공하는 다른 모든 기능을 사용해서 혼합하여 모든 O/R 매퍼를 사용할 수 있다.

AOP(Aspect Oriented Programming)

관점지향 프로그래밍에 대한 풍부한 자원을 제공하며 스프링 애플리케이션을 위한 Aspect를 개발하는 토대역할을 함.

Spring Web
멀티파트 파일업로드기능, 서블릿 리스너를 사용한 IoC컨테이너의 초기화 그리고 웹-기반 애플리케이션 컨텍스트와같은 기본적인 웹-기반 통합 기능들을 제공한다. WebWork나 Struts와 함께 Spring을 사용할때 이것은 그것들과 통합할 패키지이다.

Spring MVC
웹 애플리케이션을 위한 Model-View-Controller(MVC)구현물을 제공한다. Spring의 MVC구현물은 어떤 오래된 구현물이 아니다. 이것은 도메인 모델 코드와 웹폼(Web forms)사이의 분명한 구분을 제공하고 유효성체크와 같은 Spring프레임워크의 다른 모든 기능을 사용하도록 허용한다

'FrameWork' 카테고리의 다른 글

스트럿츠(Struts) 소개  (0) 2018.10.20
MVC 디자인 패턴  (0) 2018.10.20
DTO 란?  (0) 2015.12.10
프레임워크(Framework)와 라이브러리  (0) 2015.12.10
Spring에서 HSQLDB 설정하기  (0) 2015.12.09
블로그 이미지

클라인STR

,

SUBSTR 함수

DataBase 2015. 12. 9. 22:34
1
SELECT SUBSTR(DEPT_CODE,1,3), DEPT_CODE FROM TDEPT;
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
SUBSTR(DEPT_CODE,1,3) DEPT_CODE
--------------------- ---------
000                   000000    
AA0                   AA0001    
AB0                   AB0001    
AC0                   AC0001    
BA0                   BA0001    
BB0                   BB0001    
BC0                   BC0001    
CA0                   CA0001    
CB0                   CB0001    
CC0                   CC0001    
CD0                   CD0001    
cs

 

SUBSTR(컬럼 또는 문자열, 숫자1, 숫자2)

컬럼 또는 문자열에서 첫번째 지정된 숫자에 해당하는 자리부터, 두번째 지정된 숫자에 해당하는 만큼의 문자열을 돌려준다.

숫자2가 생략되면 마지막 문자까지 돌려주게된다.

시작인덱스는 1부터 시작한다.

 

1
SELECT SUBSTR(DEPT_CODE,3), DEPT_CODE FROM TDEPT;
cs

 

1
2
3
4
5
6
7
8
9
10
11
0000    000000
0001    AA0001
0001    AB0001
0001    AC0001
0001    BA0001
0001    BB0001
0001    BC0001
0001    CA0001
0001    CB0001
0001    CC0001
0001    CD0001
cs

'DataBase' 카테고리의 다른 글

소계와 합계 구하는 방법 (1)  (0) 2015.12.17
프로시져란 (PROCEDURE) ?  (0) 2015.12.16
COPY_T 테이블이란?  (0) 2015.12.16
누계를 구하는 방법에 대하여 (2)  (0) 2015.12.14
누계를 구하는 방법에 대하여 (1)  (0) 2015.12.10
블로그 이미지

클라인STR

,

 

스프링 설정파일에서 xml을 다음과 같이설정한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jd="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/jdbc
      http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> 
 
<jdbc:embedded-database id="dataSourceSpied" type="HSQL" /> 
      
     <jdbc:initialize-database data-source="dataSourceSpied" ignore-failures="DROPS">
        <jdbc:script location="classpath:database/hsqldb/schema.sql" />
        <jdbc:script location="classpath:database/hsqldb/data.sql" />
    </jdbc:initialize-database>
cs

 

schema.sql

1
2
3
4
5
6
7
create table t_sample (
    sample_no   int           not null,
    title       varchar(500)  not null,
    description varchar(1000not null,
    primary key (sample_no)
);
 
cs

data.sql

1
2
3
4
insert into t_sample (sample_no, title, description) values (1'타이틀 1''설명 1');
insert into t_sample (sample_no, title, description) values (2'타이틀 2''설명 2');
insert into t_sample (sample_no, title, description) values (3'타이틀 3''설명 3');
commit;
cs

'FrameWork' 카테고리의 다른 글

스트럿츠(Struts) 소개  (0) 2018.10.20
MVC 디자인 패턴  (0) 2018.10.20
DTO 란?  (0) 2015.12.10
프레임워크(Framework)와 라이브러리  (0) 2015.12.10
Spring 이란 ?  (0) 2015.12.10
블로그 이미지

클라인STR

,

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

   /** 

     *  분할 집합 

     *  @param <T> 

     *  @param resList 꼭 분할 집합 

     *  @param count 모든 집합 요소 개수 

     *  @return 복귀 분할 후 각 집합 

     **/

    public static <T> List<List<T>> split(List<T> resList, int count) {

        if (resList == null || count <1)

            return null;

        List<List<T>> ret = new ArrayList<List<T>>();

        int size = resList.size();

        if (size <= count) {

            // 데이터 부족 count 지정 크기

            ret.add(resList);

        } else {

            int pre = size / count;

            int last = size % count;

            // 앞 pre 개 집합, 모든 크기 다 count 가지 요소

            for (int i = 0; i <pre; i++) {

                List<T> itemList = new ArrayList<T>();

                for (int j = 0; j <count; j++) {

                    itemList.add(resList.get(i * count + j));

                }

                ret.add(itemList);

            }

            // last 진행이 처리

            if (last > 0) {

                List<T> itemList = new ArrayList<T>();

                for (int i = 0; i <last; i++) {

                    itemList.add(resList.get(pre * count + i));

                }

                ret.add(itemList);

            }

        }

        return ret;

    }

 

 

                         Colored by Color Scripter
cs

 

출처 : http://www.programkr.com/blog/MYTMyEDMwYTx.html






블로그 이미지

클라인STR

,

jqGrid 설정 후 실행시 다음과같은 오류가 발생하였다.

해결방법은 2가지 인데..그리드에서 로케일을 설정하거나, 그리드 소스를 수정하는 방법이 있다.

1. 그리드 정의시 선언하는 경우

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

var grid = jQuery("#grid1");

        grid.jqGrid({

            url: '/sample/openSampleBoardList.do',

            mtype: "POST",

            datatype: "local",

            postData : JSON.stringify(  jQuery("#frm01").serialize() ),

            editUrl : 'clientArray',

            cellSubmit: 'clientArray',

            colNames: ['글번호''제목''설명'],                    

            colModel:[

                      {  name'SAMPLE_NO'    , width:30  , align:'center'   },

                      {  name'TITLE'        , width:30  , align:'left'     },   

                      {  name'DESCRIPTION'  , width:30  , align:'left'     }                      

            ],

            loadtext : "<img src='/images/loading.gif' />",            

            width:1145,                

            height :540,

            regional : 'kr',

            viewrecords: true,                        

            pager: "#pager1",

            page:1,

            pgbuttons:true,

            rowNum:500,

cs
 

regional : "kr"  로케일 속성

2. jqGrid.src 소스를 수정하는 경우

1
2
3
4
5
6
7
8
9
10

var p = $.extend(true,{

            url: "",

            height150,

            page: 1,

            rowNum: 20,

            rowTotal : null,

            ......            

            regional :  "kr"                                                                        

        }, $.jgrid.defaults , pin );

    

cs

 






블로그 이미지

클라인STR

,

이클립스 실행시 JVM을 찾지 못하면 다음과 같은 오류 메세지가 뜬다.

검색을 해보니 환경변수를 추가하지 않으면 생기는 오류로 인해 이클립스 설정파일에 JVM 경로를 추가해주면 해결된다.

-startup

plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.300.v20150602-1417

-product

org.eclipse.epp.package.jee.product

--launcher.defaultAction

openFile

--launcher.XXMaxPermSize

256M

-vm

C:/workspace/bin/jdk1.7.0_79/bin

-showsplash

org.eclipse.platform

--launcher.XXMaxPermSize

256m

--launcher.defaultAction

openFile

--launcher.appendVmargs

-vmargs

-Dosgi.requiredJavaVersion=1.7

-Xms256m

-Xmx1024m


 






블로그 이미지

클라인STR

,