SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
No part of this document may be circulated, quoted, or reproduced for distribution outside the client organization without prior written approval from UWS
Eureka Moment for Digital Transformation
- 엔터프라이즈 어플리케이션 아키텍처
2017. 11. 16
이 현 주 대표이사
- 1 -
- 2 -
1. 엔터프라이즈 어플리케이션 Enterprise Application
“엔터프라이즈 어플리케이션은 막대한 규모의 복잡한 데이터를 표시, 관리,
저장하고, 이러한 데이터를 이용한 비즈니스 프로세스를 지원하거나 자동화하는
애플리케이션을 말한다.”
- Martin Fowler, Patterns of Enterprise Application Architecture
이 슈
 각 시스템은 각기 다른 시기에 다른 기술을
바탕으로 구축되며, 공동 작업 메커니즘 (데이터
포맷, 메세징 시스템 등)이 상이하 경우가 많음
 동시에 여러 다른 통합 체계가 존재함
 비즈니스 프로세스의 차이와 데이터에 대한
개념 불일치로 인한 문제
 비즈니스 논리가 예외적인 상황이 많음
특 징
 지속적 데이터 처리
 막대한 양의 데이터 처리
 여러 사람이 동시에 데이터를 처리함
 많은 데이터를 처리하기 위한 사용자
인터페이스 화면의 수가 많음
 단독으로 운영되는 경우가 없음
- 3 -
2. 아키텍처 Enterprise Application
“아키텍처는 프로젝트에 참여하는 전문 개발자의 시스템 설계에 대한 공유된
이해를 반영하는 주관적 개념이다. 이 공유된 이해는 일반적으로 시스템의 중요
컴포넌트, 그리고 이러한 컴포넌트 간의 상호작용 방법에 대한 것이다.”
- Ralph Johnson
이 슈
 계층형 아키텍처 (프레젠테이션, 도메인, 데이터
원본)
 파이프 아키텍처
 필터 아키텍처
 모놀리식 아키텍처
 마이크로 서비스 아키텍처
 서버리스 아키텍처
특 징
 공유된 이해를 반영하는 주관적 개념
 시스템의 중요한 컴포넌트 그리고 컴포넌트
간의 상호작용 방법
 올바른 의사결정에 대한 것이며 여전히 주관적
- 4 -
1. Java 플랫폼 모듈 시스템 Java 9 updated
Jigsaw(직소) 프로젝트 기반하에 개발된 Java9 Module 시스템은 안정적인 구성과 유연한 캡슐화를 제공하여
개발자(라이브러리, 응용, Java SE)는 확장 가능한 플랫폼을 만들고 무결성을 높이며 성능을 향상 시킬 수 있습니다.
Java 9
 모듈을 만들고 모듈에 명시적으로 외부에서 호출할 수
있는 API와 연계할 다른 모듈을 선언, API 캡슐화 구성
이 슈
 기존 Java 패키징 매커니즘의 문제
 캡슐화 지원 부족
 가시성 한정자 (visibility modifier)가 클래스까지만
유화하고 패키징에서 부족함
 JAR로 제공된 패키지의 클래스를 보면 어느 클래스를
써야하는지 알 수 없으므로 API 설계자가 의도하지 않은
호출이 발생할 수 있음
 유연한 런타임 이미지를 만들 수 있도록 Java 플랫폼을
모듈화
 필요한 모듈만으로 경량화된 이미지를 만들 수 있음
 어플리케이션이 사용하는 런타임 환경(이미지)를 만들
수 있음
 Java에서 사용하는 표준 API뿐만 아니라 3rd party
라이브러리도 필요한 것만 배포 가능
 소형 디바이스 – IoT
 서버 아키텍처 – 애플리케이션의 컨테이너화(도커),
마이크로 서비스, 클라우드
 스타트업의 시간과 성능 – 필요한 모듈만 구동
- 5 -
2. 대화식 REPL 도구 제공 Java 9 updated
Java 9는 테스트 프로젝트 없이 코드 셋을 신속하게 테스트할 수 있는 대화식 REPL(Read-Eval-Print-Loop) 도구
제공하여 Java 기능을 쉽게 배우거나 평가할 수 있습니다.
 파이썬과 같은 Intepretor 언어 만큼은 아니지만 이제 codecademy 와 같은 코드 학습 웹 서비스에서
Java를 배울 수 있을지도…..곧….
- 6 -
3. HTML5 Javadoc Java 9 updated
Javadoc은 HTML형식의 API문서를 생성할 수 있는 도구이며 이전 JDK에서는 HTML 4.01 형식을 사용했지만 JDK9
Javadoc은 HTML5 markup을 생성하고 검색 기능 및 Doclint를 향상시켰습니다.
 HTML5를 지원하는 JDK9에서는 -html5 parameter를 추가함
- 7 -
4. 기타 Java 9 updated
 try-with-resources 향상 – 코드를 깔끔하게 유지할 수 있음
 Private 인터페이스 메소드 – 중복 코드를 피하고 인터페이스를 캡슐화할 수 있음
 다이아몬드 연산자 – 익명클래스에 대한 <> 추가
구 분 내 용
Languate update
 프로세스 API – 모든 프로세스, 현재/하위/종료된 프로세스 정보 확인할 수 있음
 플랫폼 로깅 API 및 서비스 – 로깅 API 메시지 사용자를 위한 서비스 인터페이스
 CompletableFuture API 강화 – 지연 시간 초과 지원하는 부분 개선함
 Reactive Streams – Flow API
New code Libraries
“우여 곡절끝에 공식 릴리즈된 Java9에 대해 빠르게 훑어 보았다. 개인적으로 Java9에 신규로 도입되어진
직소(Jigsaw)에 대해 공식 릴리즈 이전부터 관심을 가지고 있었고 Java9에서 가장 관심갖고 지켜봐야할
부분이 아닌가 생각한다. 직소를 보면 Java 라는 언어가 전통적으로 강세를 보여왔던 Enterprise
Application에서 좀 더 Small size Application 지원을 위한 또 하나의 초석을 닦았다는 생각이 든다.
혹자들은 Java는 죽었다고들 하지만 본인은 직소같은 메커니즘의 도입이 Java의 생명을 계속해서
연장해줄거라고 판단한다. ”
- 8 -
1. 개념 마이크로 서비스 아키텍처
- 9 -
2. 컨셉 마이크로 서비스 아키텍처
- 10 -
3. SOA, MSA? 마이크로 서비스 아키텍처
- 11 -
4. Why MSA? 마이크로 서비스 아키텍처
- 12 -
5. 마이크로 서비스 아키텍처! 마이크로 서비스 아키텍처
- 13 -
6. 단점 마이크로 서비스 아키텍처
- 14 -
7. 사례 마이크로 서비스 아키텍처
- 15 -
1. 배경 Spring
“EJB를 사용하면 어플리케이션 작성을 쉽게 할 수 있다. 저수즌의 트랜잭션이나 상태관리, 멀티 쓰레딩,
리소스 풀링과 같은 복잡한 저수준의 API 를 이해하지 못하더라도 아무 문제없이 어플리케이션을 개발할
수 있다.”
- Enterprise JavaBean 1.0 Specification, Chater 2 Goals
자바 엔터프라이즈 어플리케이션 개발 표준 EJB
EJB의 대안, 스프링 프레임워크
그러나 현실은 너무 어려웠다.
 Rod Johnson은 자신의 저서에서 EJB를 사용하지 않고 엔터프라이즈 어플리케이션을 개발하는 방법을
소개하였고, 이것이 스프링 프레임워크의 모태가 되었다.
 2003년 Juergen Hoeller의 팀이 스프링 프레임워크를 만듬  EJB는 겨울 같아서
스프링이라 명칭 정함
- 16 -
2. POJO+Framework Spring
점차 POJO + 경량 프레임워크를 사용하기 시작
POJO (Plain Old Java Object)
- 특정 프레임워크나 기술에 의존적이지 않은 자바 개체
- 특정 기술에 얽매이지 않기 때문에 생산성, 이식성 향상
경량 프레임워크
- EJB가 제공하는 서비스를 지원해 줄 수 있는 프레임워크 등장
- Hibernate, JDO, iBatis, Spring
- 17 -
3. 스프링 프레임워크 Spring
스프링프레임워크란?
- 자바로 엔터프라이즈 어플리케이션을 만들 때 사용할 수 있는 Programming 및 Configuration 모델을
제공해주는 프레임워크
- 주로 하는 일이 바로 어플리케이션 수준에 인프라스트럭처를 제공하는 일이고…
- 쉽게 말하면, 개발자가 비즈니스 로직 개발에만 전념할 수 있게 해준다.
2003년 6월 아파치 2.0 라이선스로 공개
- 1.0 : 2004년 4월
- 3.0 : 2009년 12월
- 4.0.1 : 2014년 1월
- 5.0 : 2017년 10월
- 현재 Java 9 지원
- 18 -
전자정부프레임워크 & AXBoot Framework
전자정부프레임워크 소개
P4, 16, 18 19
AXBoot Fullstack Framework 소개
우리는 다른 방식으로 시장을 바라보고 파괴적인 혁신을 준비하고 있습니다.

Más contenido relacionado

La actualidad más candente

JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개jbugkorea
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화Terry Cho
 
Os gi 기술교육
Os gi 기술교육Os gi 기술교육
Os gi 기술교육ymtech
 
ESB의 이해와 기술 동향
ESB의 이해와 기술 동향ESB의 이해와 기술 동향
ESB의 이해와 기술 동향shiptaek
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)Opennaru, inc.
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해Terry Cho
 
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례미래웹기술연구소 (MIRAE WEB)
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐Terry Cho
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKEROpennaru, inc.
 
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성KwangSeob Jeong
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발Terry Cho
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스DoHyun Jung
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐Terry Cho
 
제품소개서 (Pastel editor)
제품소개서 (Pastel editor)제품소개서 (Pastel editor)
제품소개서 (Pastel editor)Kevin Hyun
 
기술적 변화를 이끌어가기
기술적 변화를 이끌어가기기술적 변화를 이끌어가기
기술적 변화를 이끌어가기Jaewoo Ahn
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기Lee Ji Eun
 

La actualidad más candente (20)

JBUG Korea 소개
JBUG Korea 소개JBUG Korea 소개
JBUG Korea 소개
 
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화
 
Os gi 기술교육
Os gi 기술교육Os gi 기술교육
Os gi 기술교육
 
ESB의 이해와 기술 동향
ESB의 이해와 기술 동향ESB의 이해와 기술 동향
ESB의 이해와 기술 동향
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
 
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
Sencha ExtJS 5 와 Sencha Architect 3 를 활용한 엔터프라이즈 솔루션 개발사례
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐3. 마이크로 서비스 아키텍쳐
3. 마이크로 서비스 아키텍쳐
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER01.WEB SYSTEM BASED ON DOCKER
01.WEB SYSTEM BASED ON DOCKER
 
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
Atlassian confluence WIKI를 활용한 공유와 협업 환경 구성
 
제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발제13회컨퍼런스 조대협 서버사이드개발
제13회컨퍼런스 조대협 서버사이드개발
 
MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스MSA를 이용해 구현하는 고가용/고확장성 서비스
MSA를 이용해 구현하는 고가용/고확장성 서비스
 
Wso2 api manager 특징 slide share
Wso2 api manager 특징   slide shareWso2 api manager 특징   slide share
Wso2 api manager 특징 slide share
 
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐
 
제품소개서 (Pastel editor)
제품소개서 (Pastel editor)제품소개서 (Pastel editor)
제품소개서 (Pastel editor)
 
hexa core
hexa corehexa core
hexa core
 
기술적 변화를 이끌어가기
기술적 변화를 이끌어가기기술적 변화를 이끌어가기
기술적 변화를 이끌어가기
 
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기SK플래닛_README_마이크로서비스 아키텍처로 개발하기
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
 

Similar a [Uws] enterprise application architecture, msa, java9, spring 소개

테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)SangIn Choung
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena DollyJi-Woong Choi
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oceuEngine Solutions
 
Spring vs. spring boot
Spring vs. spring bootSpring vs. spring boot
Spring vs. spring bootChloeChoi23
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Yeon Soo Kim
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.효근 박
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1Ji-Woong Choi
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core Ji-Woong Choi
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술중선 곽
 
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03Devgear
 
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3Heejong Lee
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장Seongchan Kang
 

Similar a [Uws] enterprise application architecture, msa, java9, spring 소개 (20)

테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
테스터도 알아야 할 웹 개발(테스트 교육 3장 1절 부분발췌)
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
 
Spring vs. spring boot
Spring vs. spring bootSpring vs. spring boot
Spring vs. spring boot
 
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례 Sencha ExtJS를 활용한 Big Data Platform 개발 사례
Sencha ExtJS를 활용한 Big Data Platform 개발 사례
 
Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수Spring3 발표자료 - 김연수
Spring3 발표자료 - 김연수
 
Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.Big Data platform을 위한 Sencha Ext JS 사례.
Big Data platform을 위한 Sencha Ext JS 사례.
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
[오픈소스컨설팅]오픈소스 클라우드 개발플랫폼_및_Docker의_이해_v1
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core
 
개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술개발 방식을 바꾸는 15가지 기술
개발 방식을 바꾸는 15가지 기술
 
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어  2015.12.03
엔터프라이즈 환경의 데이터모델 관리 방안 By 엠바카데로 데브기어 2015.12.03
 
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
오라클 클라우드와 함께 떠나는 마이크로서비스 아키텍처로의 여행 V3
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
스프링 스터디 1장
스프링 스터디 1장스프링 스터디 1장
스프링 스터디 1장
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 

[Uws] enterprise application architecture, msa, java9, spring 소개

  • 1. No part of this document may be circulated, quoted, or reproduced for distribution outside the client organization without prior written approval from UWS Eureka Moment for Digital Transformation - 엔터프라이즈 어플리케이션 아키텍처 2017. 11. 16 이 현 주 대표이사
  • 3. - 2 - 1. 엔터프라이즈 어플리케이션 Enterprise Application “엔터프라이즈 어플리케이션은 막대한 규모의 복잡한 데이터를 표시, 관리, 저장하고, 이러한 데이터를 이용한 비즈니스 프로세스를 지원하거나 자동화하는 애플리케이션을 말한다.” - Martin Fowler, Patterns of Enterprise Application Architecture 이 슈  각 시스템은 각기 다른 시기에 다른 기술을 바탕으로 구축되며, 공동 작업 메커니즘 (데이터 포맷, 메세징 시스템 등)이 상이하 경우가 많음  동시에 여러 다른 통합 체계가 존재함  비즈니스 프로세스의 차이와 데이터에 대한 개념 불일치로 인한 문제  비즈니스 논리가 예외적인 상황이 많음 특 징  지속적 데이터 처리  막대한 양의 데이터 처리  여러 사람이 동시에 데이터를 처리함  많은 데이터를 처리하기 위한 사용자 인터페이스 화면의 수가 많음  단독으로 운영되는 경우가 없음
  • 4. - 3 - 2. 아키텍처 Enterprise Application “아키텍처는 프로젝트에 참여하는 전문 개발자의 시스템 설계에 대한 공유된 이해를 반영하는 주관적 개념이다. 이 공유된 이해는 일반적으로 시스템의 중요 컴포넌트, 그리고 이러한 컴포넌트 간의 상호작용 방법에 대한 것이다.” - Ralph Johnson 이 슈  계층형 아키텍처 (프레젠테이션, 도메인, 데이터 원본)  파이프 아키텍처  필터 아키텍처  모놀리식 아키텍처  마이크로 서비스 아키텍처  서버리스 아키텍처 특 징  공유된 이해를 반영하는 주관적 개념  시스템의 중요한 컴포넌트 그리고 컴포넌트 간의 상호작용 방법  올바른 의사결정에 대한 것이며 여전히 주관적
  • 5. - 4 - 1. Java 플랫폼 모듈 시스템 Java 9 updated Jigsaw(직소) 프로젝트 기반하에 개발된 Java9 Module 시스템은 안정적인 구성과 유연한 캡슐화를 제공하여 개발자(라이브러리, 응용, Java SE)는 확장 가능한 플랫폼을 만들고 무결성을 높이며 성능을 향상 시킬 수 있습니다. Java 9  모듈을 만들고 모듈에 명시적으로 외부에서 호출할 수 있는 API와 연계할 다른 모듈을 선언, API 캡슐화 구성 이 슈  기존 Java 패키징 매커니즘의 문제  캡슐화 지원 부족  가시성 한정자 (visibility modifier)가 클래스까지만 유화하고 패키징에서 부족함  JAR로 제공된 패키지의 클래스를 보면 어느 클래스를 써야하는지 알 수 없으므로 API 설계자가 의도하지 않은 호출이 발생할 수 있음  유연한 런타임 이미지를 만들 수 있도록 Java 플랫폼을 모듈화  필요한 모듈만으로 경량화된 이미지를 만들 수 있음  어플리케이션이 사용하는 런타임 환경(이미지)를 만들 수 있음  Java에서 사용하는 표준 API뿐만 아니라 3rd party 라이브러리도 필요한 것만 배포 가능  소형 디바이스 – IoT  서버 아키텍처 – 애플리케이션의 컨테이너화(도커), 마이크로 서비스, 클라우드  스타트업의 시간과 성능 – 필요한 모듈만 구동
  • 6. - 5 - 2. 대화식 REPL 도구 제공 Java 9 updated Java 9는 테스트 프로젝트 없이 코드 셋을 신속하게 테스트할 수 있는 대화식 REPL(Read-Eval-Print-Loop) 도구 제공하여 Java 기능을 쉽게 배우거나 평가할 수 있습니다.  파이썬과 같은 Intepretor 언어 만큼은 아니지만 이제 codecademy 와 같은 코드 학습 웹 서비스에서 Java를 배울 수 있을지도…..곧….
  • 7. - 6 - 3. HTML5 Javadoc Java 9 updated Javadoc은 HTML형식의 API문서를 생성할 수 있는 도구이며 이전 JDK에서는 HTML 4.01 형식을 사용했지만 JDK9 Javadoc은 HTML5 markup을 생성하고 검색 기능 및 Doclint를 향상시켰습니다.  HTML5를 지원하는 JDK9에서는 -html5 parameter를 추가함
  • 8. - 7 - 4. 기타 Java 9 updated  try-with-resources 향상 – 코드를 깔끔하게 유지할 수 있음  Private 인터페이스 메소드 – 중복 코드를 피하고 인터페이스를 캡슐화할 수 있음  다이아몬드 연산자 – 익명클래스에 대한 <> 추가 구 분 내 용 Languate update  프로세스 API – 모든 프로세스, 현재/하위/종료된 프로세스 정보 확인할 수 있음  플랫폼 로깅 API 및 서비스 – 로깅 API 메시지 사용자를 위한 서비스 인터페이스  CompletableFuture API 강화 – 지연 시간 초과 지원하는 부분 개선함  Reactive Streams – Flow API New code Libraries “우여 곡절끝에 공식 릴리즈된 Java9에 대해 빠르게 훑어 보았다. 개인적으로 Java9에 신규로 도입되어진 직소(Jigsaw)에 대해 공식 릴리즈 이전부터 관심을 가지고 있었고 Java9에서 가장 관심갖고 지켜봐야할 부분이 아닌가 생각한다. 직소를 보면 Java 라는 언어가 전통적으로 강세를 보여왔던 Enterprise Application에서 좀 더 Small size Application 지원을 위한 또 하나의 초석을 닦았다는 생각이 든다. 혹자들은 Java는 죽었다고들 하지만 본인은 직소같은 메커니즘의 도입이 Java의 생명을 계속해서 연장해줄거라고 판단한다. ”
  • 9. - 8 - 1. 개념 마이크로 서비스 아키텍처
  • 10. - 9 - 2. 컨셉 마이크로 서비스 아키텍처
  • 11. - 10 - 3. SOA, MSA? 마이크로 서비스 아키텍처
  • 12. - 11 - 4. Why MSA? 마이크로 서비스 아키텍처
  • 13. - 12 - 5. 마이크로 서비스 아키텍처! 마이크로 서비스 아키텍처
  • 14. - 13 - 6. 단점 마이크로 서비스 아키텍처
  • 15. - 14 - 7. 사례 마이크로 서비스 아키텍처
  • 16. - 15 - 1. 배경 Spring “EJB를 사용하면 어플리케이션 작성을 쉽게 할 수 있다. 저수즌의 트랜잭션이나 상태관리, 멀티 쓰레딩, 리소스 풀링과 같은 복잡한 저수준의 API 를 이해하지 못하더라도 아무 문제없이 어플리케이션을 개발할 수 있다.” - Enterprise JavaBean 1.0 Specification, Chater 2 Goals 자바 엔터프라이즈 어플리케이션 개발 표준 EJB EJB의 대안, 스프링 프레임워크 그러나 현실은 너무 어려웠다.  Rod Johnson은 자신의 저서에서 EJB를 사용하지 않고 엔터프라이즈 어플리케이션을 개발하는 방법을 소개하였고, 이것이 스프링 프레임워크의 모태가 되었다.  2003년 Juergen Hoeller의 팀이 스프링 프레임워크를 만듬  EJB는 겨울 같아서 스프링이라 명칭 정함
  • 17. - 16 - 2. POJO+Framework Spring 점차 POJO + 경량 프레임워크를 사용하기 시작 POJO (Plain Old Java Object) - 특정 프레임워크나 기술에 의존적이지 않은 자바 개체 - 특정 기술에 얽매이지 않기 때문에 생산성, 이식성 향상 경량 프레임워크 - EJB가 제공하는 서비스를 지원해 줄 수 있는 프레임워크 등장 - Hibernate, JDO, iBatis, Spring
  • 18. - 17 - 3. 스프링 프레임워크 Spring 스프링프레임워크란? - 자바로 엔터프라이즈 어플리케이션을 만들 때 사용할 수 있는 Programming 및 Configuration 모델을 제공해주는 프레임워크 - 주로 하는 일이 바로 어플리케이션 수준에 인프라스트럭처를 제공하는 일이고… - 쉽게 말하면, 개발자가 비즈니스 로직 개발에만 전념할 수 있게 해준다. 2003년 6월 아파치 2.0 라이선스로 공개 - 1.0 : 2004년 4월 - 3.0 : 2009년 12월 - 4.0.1 : 2014년 1월 - 5.0 : 2017년 10월 - 현재 Java 9 지원
  • 19. - 18 - 전자정부프레임워크 & AXBoot Framework 전자정부프레임워크 소개 P4, 16, 18 19 AXBoot Fullstack Framework 소개
  • 20. 우리는 다른 방식으로 시장을 바라보고 파괴적인 혁신을 준비하고 있습니다.