SlideShare uma empresa Scribd logo
1 de 21
전자정부 프레임워크
대시 보드 – JSON View 예제.
EMS 2 Team
진형은 사원
1. 패키지 구성도 소개(java, resource, webapp).
2. JSON View 관련 예제 소개.
3. 상세 설명.
3-1. Controller, Service, DAO 관련.
3-2. Sql 관련(Ibatis) 관련.
1-1. 패키지 구성도(Src/main/java)
com.nkia.dashboard.sample.service
• Sample 패키지 관련 Service Interface.
• Sample 패키지 관련 VO 객체.
com.nkia.dashboard.sample.service.impl
• Sample 패키지 관련 Service Interface 구현.
• Sample 패키지 관련 DAO 객체.
Com.nkia.dashboard.sample.web
• Sample 패키지 관련 Controller 구현.
1-2. 패키지 구성도 (Src/main/resources) (1)
1
Egovframework.egovProps
• 전자정부 프레임워크가 사용하는
구성 리소스 모음입니다.
Ex) DB 계정정보, File Upload경로 등.
Egovframework.message
• 전자정부 프레임워크가 사용하는
메시지, 리소스 모음입니다.
Ex) 버튼 문자열, 알림 문자열 리소스 관리.(국제화)
Egovframework.spring
• Spring 관련 설정 파일. 각 종류 별로 분류.
• JSON 한글 View처리를 위해 context-common.xml 하단
AnnotationMethodHandlerAdaptor 설정이 추가되었습니
(UTF-8지정).
Ex) 그외 AOP 관련 설정 파일(context-aspect.xml)
Ibatis SqlMap 관련(Context-sqlMap.xml)
1-2. 패키지 구성도 (Src/main/resources) (2)
Egovframework.sqlmap.config
• DB 종류 별로 sqlMapConfig 파일 지정.
• Ex) 현재 예제 파일
(sql-map-config-oracle-sample.xml) 추가하였습니다.
Egovframework.sqlmap.com
• 실제 ibatis가 사용하는 DB종류별 Query가
들어있는 XML 경로입니다.
• Ex) nkia.sample경로에 예제 파일
(Sample_SQL_Oracle.xml)을 추가하였습니다.
Egovframework.validator
• 전자정부 프레임워크가 사용하는
검증처리(Validation) 관련 설정 파일.
1-3. 패키지 구성도 (Src/main/webapp)
Css , images, js
• 사용하는 기본 CSS, Image파일 및 javascript 파일 경로.
WEB-INF/jsp/egovframework
• 전자정부 프레임워크가 사용하는 공통 컴포넌트 관련 J
WEB-INF/jsp/nkia
• 엔키아가 사용하는 Dashboard관련 JSP 경로.
1. 패키지 구성도 소개(java, resource, webapp).
2. JSON View 관련 예제 소개.
3. 상세 설명.
3-1. Controller, Service, DAO 관련.
3-2. Sql 관련(Ibatis) 관련.
2. JSON View 관련 예제 소개.
예제 메인 화면 입니다.
1. DB에서 가져와서(Select) 객체(VO)를 JSON으로 변환하는 방법.
2. DB에서 가져와서(Select) Map을 JSON으로 변환하는 방법.
JSON 뷰 화면을 제공하는 방법 2가지로 예제를 만들었습니다.
2. JSON View 관련 예제 소개.
예제 메인 화면 입니다.
각 화면 조회 시 JSON 뷰 화면을 제공하는 것을 보실 수 있습니다.
Query 조회:
SELECT
'HELLO WORLD' AS MESSAGE
,'한글지원여부' AS MESSAGE_KO
,10 AS NUMBERS
FROM DUAL
JSON 결과:
message : String.
message_ko : String.
number : Integer.
2. JSON View 관련 예제 소개.
예제 메인 화면에 대한 HTTP Header 입니다. (Chrome 개발자도구)
아래 보이는 결과와 같이, JSON(application/json)이며, UTF-8로
제공하는 것을 볼 수 있습니다.
1. 패키지 구성도 소개(java, resource, webapp).
2. JSON View 관련 예제 소개.
3. 상세 설명.
3-1. Controller, Service, DAO 관련.
3-2. Sql 관련(Ibatis) 관련.
3-1. Controller, Service, DAO 상세 설명.
앞서 패키지 구성도에서 말씀 드렸지만,
Controller, Service, DAO에 대한 진행 순서 및 관계 설명입니다.
Controller
View
(ex JSP, JSON)
Service
DAO DB
사용자
(브라우저)
URL
사
용
사
용
조
회
1. 2.
3.
4.
5.
사용자에게 결과 반환(view)
1. 사용자가 URL을 통해 정보 요청
(ex http://localhost:7070/dashboard/nkia/sampleview.do)
2. Controller에서는 URL에 매핑 된 메소드가 실행 후
(@RequestMapping), 서비스를 통해 정보 검색 서비스 요청.
3. Service는 DB와 통신역할을 하는
DAO에게 정보 검색 요청.
4. DAO는 ibatis를 통해 DB Query 조회 – 결과 반환.
5. Controller는 받은 결과를 사용자에게 전달하기 위한
View를 지정하여(JSP 또는 JSON형태) 결과를
사용자에게 전달합니다.
3-1. Controller, Service, DAO 상세 설명.
,Controller, Service, DAO에 대한 진행 순서도 및 패키지 구성 현황입니다.
Controller
View
(ex JSP, JSON)
Service
DAO DB
사용자
(브라우저)
URL
사
용
사
용
조
회
1. 2.
3.
4.
5.
사용자에게 결과 반환(view)
3-1-1. Controller 상세 설명.
• @Controller
: Controller 선언은 최상 단 @Controller로 지정합니다.
• @Autowired
: Service를 사용하고 싶은 경우, 해당 객체를 자동 주입 해줍
(단, 해당 @Autowired할 Type의 객체는 Bean 등록 설정이 되
• @RequestMapping(“URL경로”)
: URL과 실행 될 메소드를 연결해주는 역할.(매핑 할 메소드
• 반환객체(String)
: String으로 반환할 경우, src/main/webapp/WEB-INF/jsp부터
String으로 지정한 view 경로의 jsp를 찾습니다.
• 반환객체(ResponseEntity)
: JSON으로 반환하고 싶은 경우, 반환 객체를 ResonseEntity
JSONResponseUtil.getJSONResponse(변환 시킬 객체) 메소드
또는 @ReponseBody를 추가하고 반환할 객체를 지정하면,
자동으로 JSON으로 변환 됩니다. 자세한 설명은 뒤에서 추
Ex)
Public @ResponseBody Map sampleRetrunMapToJSON(){
//생략
3-1-2. Service 상세 설명.
• 인터페이스(..service 패키지)를 만든 후, 구현
(..service.impl 패키지)하는 방식입니다.
• @Service(“ 서비스명”)
: 서비스 선언의 경우(빈 등록) @Service(“서비스명”)을 사용합
• @Resource(name=“DAO명”)
DAO 사용에 대한 선언은 @Resource(name=“DAO명”)을 통해
지정합니다.
• extends AbstractServiceImpl
: 전자정부프레임워크에서 예외 처리, 로그 관리에 대해 도움
하는 서비스 관련 추상 객체입니다.
3-1-3. DAO 상세 설명.
• @Repository(“DAO명”)
: DAO선언의 경우 @Repository(“DAO명”)을 지정합니다.
• EgovComAbstractDAO
: EgovComAbstractDAO는 ibatis기능을 좀 더 편리하게 제공해주는 추상객체입니다.
: 전자정부프레임워크가 제공하는 EgovComAbstractDAO 객체를 상속받아 구현합니다.
• Ibatis를 통해 쿼리를 실행할 Key값을 지정합니다.
3-1-3. SQLMap(ibatis) 상세 설명.
• Src/main/resource/sqlmap/config
- SQL Map Config는 실제 쿼리를 실하는 SQL관련 XML을 관리하
-즉, 실제 Query를 사용하는 XML의 상위 관리 개념으로 이해하
- 실제 Query가 있는 SQL XML을 관리용으로 사용.
- 실제 Query가 있는 SQL XML의 위치를 지정.
*위의 파일은
Src/main/resource/sqlmap/config/oracle/sql-map-config-oracle-sample.xml 입니다.
3-1-3. SQLMap(ibatis) 상세 설명.
• Src/main/resource/sqlmap/com
- 실제 Query 관련 XML.
- DB Query결과를 가져올 경우 반환될 객체 지정.
- 그외 Insert/Update/delete 일 경우, 각 태그 바뀜.
ex) insert일 경우 <insert id=“SampleDAO.insert..”>
3-1-4. JSONResponseUtil 상세 설명.
• Controller에서 JSON 결과로 반환하고자 할때에는
ResponseEntity<String> 객체로 반환해주면 됩니다.
• 해당 유틸의 진행방식은
1. 공통적으로 지정하는 JSON형태의 String객체로 변환.
2. Response Header의 Content-Type을 JSON으로 지정.
3. 한글 깨짐에 의한 UTF-8 지정하여 반환.
• 단순히 JSON형태의 문자열이 필요한 경우는
아래 메소드를 사용하시면 됩니다.
ETC. Maven설정.
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
JSON 관련 패키지 추가했으나,
국방 메가센터의 경우, 인트라넷이라 Maven Repository설정을
어떻게 하는지 문의 해봐야할 듯 합니다.
일단 추가한 Library 목록 입니다.
PS. JSON View 생성 방법 추가..
• 앞서 설명해드린 방식(ResponseEntity)보
• 편한 방식이 있어 말씀 드립니다.
• JSON View로 만들 필요가 있을 경우,
• 반환 객체에 @ResponseBody만 붙이면
• JSON View로 자동 변환됩니다.
• 따라서 좀더 유연한 개발이 가능합니다.
• 결론)
• ResponseEntity 방식과, 지금 방식의 결과
• 동일하지만, 때문에 둘 중에 좀더 편하신
• 개발하시면 될 듯합니다.

Mais conteúdo relacionado

Mais procurados

RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Sungjoon Yoon
 
SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기Myung Woon Oh
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC Ji-Woong Choi
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장JeongBong Kim
 
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
JSP 프로그래밍 #05 HTML과 JSP
JSP 프로그래밍 #05 HTML과 JSPJSP 프로그래밍 #05 HTML과 JSP
JSP 프로그래밍 #05 HTML과 JSPMyungjin Lee
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summaryHoChul Shin
 
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿Myungjin Lee
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)sung yong jung
 
5-5. html5 connectivity
5-5. html5 connectivity5-5. html5 connectivity
5-5. html5 connectivityJinKyoungHeo
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Mais procurados (20)

RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)
 
SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기
 
Html5 performance
Html5 performanceHtml5 performance
Html5 performance
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장
 
Express 프레임워크
Express 프레임워크Express 프레임워크
Express 프레임워크
 
스프링 3.0 & RESTful
스프링 3.0 & RESTful스프링 3.0 & RESTful
스프링 3.0 & RESTful
 
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(자바교육/스프링교육/스프링프레임워크교육/마이바티스교육추천)#2.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
JSP 프로그래밍 #05 HTML과 JSP
JSP 프로그래밍 #05 HTML과 JSPJSP 프로그래밍 #05 HTML과 JSP
JSP 프로그래밍 #05 HTML과 JSP
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summary
 
4-2. ajax
4-2. ajax4-2. ajax
4-2. ajax
 
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿
 
RESTful Java
RESTful JavaRESTful Java
RESTful Java
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)
 
5-5. html5 connectivity
5-5. html5 connectivity5-5. html5 connectivity
5-5. html5 connectivity
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
 

Destaque

GFW-official-list-cashed in Google
GFW-official-list-cashed in GoogleGFW-official-list-cashed in Google
GFW-official-list-cashed in GoogleAkkad
 
전자정부표준프레임워크=오픈소스+Alpha
전자정부표준프레임워크=오픈소스+Alpha전자정부표준프레임워크=오픈소스+Alpha
전자정부표준프레임워크=오픈소스+AlphaKenu, GwangNam Heo
 
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS동수 장
 
Victoria's Secret Angels Campaign
Victoria's Secret Angels CampaignVictoria's Secret Angels Campaign
Victoria's Secret Angels CampaignJohn White
 
Gov3.0 자료집 제1회_스마트_전자정부_추진계획
Gov3.0 자료집 제1회_스마트_전자정부_추진계획Gov3.0 자료집 제1회_스마트_전자정부_추진계획
Gov3.0 자료집 제1회_스마트_전자정부_추진계획Gori Communication
 
[웹기반시스템 3조]e govframe
[웹기반시스템 3조]e govframe[웹기반시스템 3조]e govframe
[웹기반시스템 3조]e govframe구 봉
 
표준프레임워크와 이클립스
표준프레임워크와 이클립스표준프레임워크와 이클립스
표준프레임워크와 이클립스Kenu, GwangNam Heo
 
2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안
2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안
2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안Suji Lee
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석Saltlux Inc.
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴Sanghyuk Jung
 
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅Jade Jongdae Lee
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료neuroassociates
 
Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2중선 곽
 
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기NAVER D2
 

Destaque (20)

GFW-official-list-cashed in Google
GFW-official-list-cashed in GoogleGFW-official-list-cashed in Google
GFW-official-list-cashed in Google
 
전자정부표준프레임워크=오픈소스+Alpha
전자정부표준프레임워크=오픈소스+Alpha전자정부표준프레임워크=오픈소스+Alpha
전자정부표준프레임워크=오픈소스+Alpha
 
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
 
Victoria's Secret Angels Campaign
Victoria's Secret Angels CampaignVictoria's Secret Angels Campaign
Victoria's Secret Angels Campaign
 
Gov3.0 자료집 제1회_스마트_전자정부_추진계획
Gov3.0 자료집 제1회_스마트_전자정부_추진계획Gov3.0 자료집 제1회_스마트_전자정부_추진계획
Gov3.0 자료집 제1회_스마트_전자정부_추진계획
 
오픈소스의 이해
오픈소스의 이해오픈소스의 이해
오픈소스의 이해
 
[웹기반시스템 3조]e govframe
[웹기반시스템 3조]e govframe[웹기반시스템 3조]e govframe
[웹기반시스템 3조]e govframe
 
표준프레임워크와 이클립스
표준프레임워크와 이클립스표준프레임워크와 이클립스
표준프레임워크와 이클립스
 
2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안
2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안
2015 SINVAS USER CONFERENCE - MDD/MDA 개발방법론을 통한 정보시스템 개발방안
 
3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석3 빅데이터기반비정형데이터의실시간처리방법 원종석
3 빅데이터기반비정형데이터의실시간처리방법 원종석
 
스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴스프링 어플리케이션의 문제해결사례와 안티패턴
스프링 어플리케이션의 문제해결사례와 안티패턴
 
Social Dev Trend
Social Dev TrendSocial Dev Trend
Social Dev Trend
 
Eclipse web
Eclipse webEclipse web
Eclipse web
 
Java start01 in 2hours
Java start01 in 2hoursJava start01 in 2hours
Java start01 in 2hours
 
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
140430 마케팅 3.0: 빅데이터, 소셜, IOT, 마이크로타게팅
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료
 
Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2Web service performance_test_using_jmeter_ver1.2
Web service performance_test_using_jmeter_ver1.2
 
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
[D2대학생세미나] frontend개발자가 들려주는 개발 이야기
 
[Week5]R_scraping
[Week5]R_scraping[Week5]R_scraping
[Week5]R_scraping
 
Elastic stack
Elastic stackElastic stack
Elastic stack
 

Semelhante a Json view 예제 설명

Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin GuideJEONGPHIL HAN
 
overview of spring4
overview of spring4overview of spring4
overview of spring4Arawn Park
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Gruter
 
REST Ovewview
REST OvewviewREST Ovewview
REST OvewviewTerry Cho
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
ibatis_khhan
ibatis_khhanibatis_khhan
ibatis_khhanohgamja3
 
Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축JoongSeob Kim
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10hungrok
 
Jstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNGJstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNGJung Han
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Gruter
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Web Services Korea
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Hyosang Hong
 

Semelhante a Json view 예제 설명 (20)

Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin Guide
 
Spring portfolio2
Spring portfolio2Spring portfolio2
Spring portfolio2
 
overview of spring4
overview of spring4overview of spring4
overview of spring4
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
REST Ovewview
REST OvewviewREST Ovewview
REST Ovewview
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
테스트
테스트테스트
테스트
 
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
Ibatis
IbatisIbatis
Ibatis
 
ibatis_khhan
ibatis_khhanibatis_khhan
ibatis_khhan
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
Web server page_ed10
Web server page_ed10Web server page_ed10
Web server page_ed10
 
Jstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNGJstl_GETCHA_HANJUNG
Jstl_GETCHA_HANJUNG
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
 
Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료Jpa 쿼리 포함 자료
Jpa 쿼리 포함 자료
 

Json view 예제 설명

  • 1. 전자정부 프레임워크 대시 보드 – JSON View 예제. EMS 2 Team 진형은 사원
  • 2. 1. 패키지 구성도 소개(java, resource, webapp). 2. JSON View 관련 예제 소개. 3. 상세 설명. 3-1. Controller, Service, DAO 관련. 3-2. Sql 관련(Ibatis) 관련.
  • 3. 1-1. 패키지 구성도(Src/main/java) com.nkia.dashboard.sample.service • Sample 패키지 관련 Service Interface. • Sample 패키지 관련 VO 객체. com.nkia.dashboard.sample.service.impl • Sample 패키지 관련 Service Interface 구현. • Sample 패키지 관련 DAO 객체. Com.nkia.dashboard.sample.web • Sample 패키지 관련 Controller 구현.
  • 4. 1-2. 패키지 구성도 (Src/main/resources) (1) 1 Egovframework.egovProps • 전자정부 프레임워크가 사용하는 구성 리소스 모음입니다. Ex) DB 계정정보, File Upload경로 등. Egovframework.message • 전자정부 프레임워크가 사용하는 메시지, 리소스 모음입니다. Ex) 버튼 문자열, 알림 문자열 리소스 관리.(국제화) Egovframework.spring • Spring 관련 설정 파일. 각 종류 별로 분류. • JSON 한글 View처리를 위해 context-common.xml 하단 AnnotationMethodHandlerAdaptor 설정이 추가되었습니 (UTF-8지정). Ex) 그외 AOP 관련 설정 파일(context-aspect.xml) Ibatis SqlMap 관련(Context-sqlMap.xml)
  • 5. 1-2. 패키지 구성도 (Src/main/resources) (2) Egovframework.sqlmap.config • DB 종류 별로 sqlMapConfig 파일 지정. • Ex) 현재 예제 파일 (sql-map-config-oracle-sample.xml) 추가하였습니다. Egovframework.sqlmap.com • 실제 ibatis가 사용하는 DB종류별 Query가 들어있는 XML 경로입니다. • Ex) nkia.sample경로에 예제 파일 (Sample_SQL_Oracle.xml)을 추가하였습니다. Egovframework.validator • 전자정부 프레임워크가 사용하는 검증처리(Validation) 관련 설정 파일.
  • 6. 1-3. 패키지 구성도 (Src/main/webapp) Css , images, js • 사용하는 기본 CSS, Image파일 및 javascript 파일 경로. WEB-INF/jsp/egovframework • 전자정부 프레임워크가 사용하는 공통 컴포넌트 관련 J WEB-INF/jsp/nkia • 엔키아가 사용하는 Dashboard관련 JSP 경로.
  • 7. 1. 패키지 구성도 소개(java, resource, webapp). 2. JSON View 관련 예제 소개. 3. 상세 설명. 3-1. Controller, Service, DAO 관련. 3-2. Sql 관련(Ibatis) 관련.
  • 8. 2. JSON View 관련 예제 소개. 예제 메인 화면 입니다. 1. DB에서 가져와서(Select) 객체(VO)를 JSON으로 변환하는 방법. 2. DB에서 가져와서(Select) Map을 JSON으로 변환하는 방법. JSON 뷰 화면을 제공하는 방법 2가지로 예제를 만들었습니다.
  • 9. 2. JSON View 관련 예제 소개. 예제 메인 화면 입니다. 각 화면 조회 시 JSON 뷰 화면을 제공하는 것을 보실 수 있습니다. Query 조회: SELECT 'HELLO WORLD' AS MESSAGE ,'한글지원여부' AS MESSAGE_KO ,10 AS NUMBERS FROM DUAL JSON 결과: message : String. message_ko : String. number : Integer.
  • 10. 2. JSON View 관련 예제 소개. 예제 메인 화면에 대한 HTTP Header 입니다. (Chrome 개발자도구) 아래 보이는 결과와 같이, JSON(application/json)이며, UTF-8로 제공하는 것을 볼 수 있습니다.
  • 11. 1. 패키지 구성도 소개(java, resource, webapp). 2. JSON View 관련 예제 소개. 3. 상세 설명. 3-1. Controller, Service, DAO 관련. 3-2. Sql 관련(Ibatis) 관련.
  • 12. 3-1. Controller, Service, DAO 상세 설명. 앞서 패키지 구성도에서 말씀 드렸지만, Controller, Service, DAO에 대한 진행 순서 및 관계 설명입니다. Controller View (ex JSP, JSON) Service DAO DB 사용자 (브라우저) URL 사 용 사 용 조 회 1. 2. 3. 4. 5. 사용자에게 결과 반환(view) 1. 사용자가 URL을 통해 정보 요청 (ex http://localhost:7070/dashboard/nkia/sampleview.do) 2. Controller에서는 URL에 매핑 된 메소드가 실행 후 (@RequestMapping), 서비스를 통해 정보 검색 서비스 요청. 3. Service는 DB와 통신역할을 하는 DAO에게 정보 검색 요청. 4. DAO는 ibatis를 통해 DB Query 조회 – 결과 반환. 5. Controller는 받은 결과를 사용자에게 전달하기 위한 View를 지정하여(JSP 또는 JSON형태) 결과를 사용자에게 전달합니다.
  • 13. 3-1. Controller, Service, DAO 상세 설명. ,Controller, Service, DAO에 대한 진행 순서도 및 패키지 구성 현황입니다. Controller View (ex JSP, JSON) Service DAO DB 사용자 (브라우저) URL 사 용 사 용 조 회 1. 2. 3. 4. 5. 사용자에게 결과 반환(view)
  • 14. 3-1-1. Controller 상세 설명. • @Controller : Controller 선언은 최상 단 @Controller로 지정합니다. • @Autowired : Service를 사용하고 싶은 경우, 해당 객체를 자동 주입 해줍 (단, 해당 @Autowired할 Type의 객체는 Bean 등록 설정이 되 • @RequestMapping(“URL경로”) : URL과 실행 될 메소드를 연결해주는 역할.(매핑 할 메소드 • 반환객체(String) : String으로 반환할 경우, src/main/webapp/WEB-INF/jsp부터 String으로 지정한 view 경로의 jsp를 찾습니다. • 반환객체(ResponseEntity) : JSON으로 반환하고 싶은 경우, 반환 객체를 ResonseEntity JSONResponseUtil.getJSONResponse(변환 시킬 객체) 메소드 또는 @ReponseBody를 추가하고 반환할 객체를 지정하면, 자동으로 JSON으로 변환 됩니다. 자세한 설명은 뒤에서 추 Ex) Public @ResponseBody Map sampleRetrunMapToJSON(){ //생략
  • 15. 3-1-2. Service 상세 설명. • 인터페이스(..service 패키지)를 만든 후, 구현 (..service.impl 패키지)하는 방식입니다. • @Service(“ 서비스명”) : 서비스 선언의 경우(빈 등록) @Service(“서비스명”)을 사용합 • @Resource(name=“DAO명”) DAO 사용에 대한 선언은 @Resource(name=“DAO명”)을 통해 지정합니다. • extends AbstractServiceImpl : 전자정부프레임워크에서 예외 처리, 로그 관리에 대해 도움 하는 서비스 관련 추상 객체입니다.
  • 16. 3-1-3. DAO 상세 설명. • @Repository(“DAO명”) : DAO선언의 경우 @Repository(“DAO명”)을 지정합니다. • EgovComAbstractDAO : EgovComAbstractDAO는 ibatis기능을 좀 더 편리하게 제공해주는 추상객체입니다. : 전자정부프레임워크가 제공하는 EgovComAbstractDAO 객체를 상속받아 구현합니다. • Ibatis를 통해 쿼리를 실행할 Key값을 지정합니다.
  • 17. 3-1-3. SQLMap(ibatis) 상세 설명. • Src/main/resource/sqlmap/config - SQL Map Config는 실제 쿼리를 실하는 SQL관련 XML을 관리하 -즉, 실제 Query를 사용하는 XML의 상위 관리 개념으로 이해하 - 실제 Query가 있는 SQL XML을 관리용으로 사용. - 실제 Query가 있는 SQL XML의 위치를 지정. *위의 파일은 Src/main/resource/sqlmap/config/oracle/sql-map-config-oracle-sample.xml 입니다.
  • 18. 3-1-3. SQLMap(ibatis) 상세 설명. • Src/main/resource/sqlmap/com - 실제 Query 관련 XML. - DB Query결과를 가져올 경우 반환될 객체 지정. - 그외 Insert/Update/delete 일 경우, 각 태그 바뀜. ex) insert일 경우 <insert id=“SampleDAO.insert..”>
  • 19. 3-1-4. JSONResponseUtil 상세 설명. • Controller에서 JSON 결과로 반환하고자 할때에는 ResponseEntity<String> 객체로 반환해주면 됩니다. • 해당 유틸의 진행방식은 1. 공통적으로 지정하는 JSON형태의 String객체로 변환. 2. Response Header의 Content-Type을 JSON으로 지정. 3. 한글 깨짐에 의한 UTF-8 지정하여 반환. • 단순히 JSON형태의 문자열이 필요한 경우는 아래 메소드를 사용하시면 됩니다.
  • 21. PS. JSON View 생성 방법 추가.. • 앞서 설명해드린 방식(ResponseEntity)보 • 편한 방식이 있어 말씀 드립니다. • JSON View로 만들 필요가 있을 경우, • 반환 객체에 @ResponseBody만 붙이면 • JSON View로 자동 변환됩니다. • 따라서 좀더 유연한 개발이 가능합니다. • 결론) • ResponseEntity 방식과, 지금 방식의 결과 • 동일하지만, 때문에 둘 중에 좀더 편하신 • 개발하시면 될 듯합니다.