SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
GAE와 CloudSQL을 이용한
전자결재 시스템 개발
2014.7.5. 선지헌
1. GAE(Google App Engine)
2. CloudSQL
3. 전자결재 시스템 개발
4. 운영
목차
sunjeehun@gmail.com
Who Am I
sunjeehun@gmail.com
이름 : 선지헌 (sunjeehun@gmail.com)
경력
- SI 프로젝트 10년
- 시스템 운영 3년
- 솔루션 개발 1년 반
좋아하는 것 : 밀리터리, 애니메이션, 만화, 자동차 etc
1. GAE (Google App Engine) - 정의
sunjeehun@gmail.com
Google의 인프라 스트럭쳐를 이용하여 원하는 웹 애플리케
이션을 개발 / 배포 / 관리 할 수 있는 Cloud Computing 플
랫폼
H/W + WAS,WebServer + Storage =
1. GAE (Google App Engine) - 지원 언어 및 위치
sunjeehun@gmail.com
1. 지원언어
Python, Java, PHP, Go
2. Position
IaaS (Infrastructure-as-a-Service)
PaaS (Platform-as-a-Service)
SaaS (Software-as-a-Service)
ex) Google Compute Engine
ex) Salesforce
ex) Google App Engine
1. GAE (Google App Engine) - 특/장점
sunjeehun@gmail.com
1. Platform
- 애플리케이션(SaaS) 및 H/W(IaaS)를 대신하는 개발/운영 플랫폼 제공(PaaS)
- 개발자 및 운영자는 H/W의 구성과 설정에서 해방됨
2. 지원 언어
- Java, Python, PHP, Go에 대한 환경 제공
- 개발자가 Local 환경에서 테스트 가능 (일부 제한 있음)
3. 배포의 간소화
- GAE에 배포(Deploy) 하는 것으로 모든 배포가 완료
1. GAE (Google App Engine) - 특장점
sunjeehun@gmail.com
4. 능동적인 트래픽 대응 (Auto Scaling)
- 어플리케이션에 대한 요청(Request)에 대응해
GAE가 자동으로 instance(CPU 자원) 추가 및 회수 함
Application
Instance Instance ….
1. GAE (Google App Engine) - 특/장점
sunjeehun@gmail.com
5. Sandbox
- 어플리케이션 코드 및 데이터에 대해 외부 어플리케이션 / 사용자 접근 금지
(GAE 어플리케이션은 Sandbox 환경에서 실행됨 - 보안)
- Sandbox 환경에서 실행됨에 따라 일부 작업에 제한 발생
-> 로컬파일 열어서 쓰기, 소켓 연결 열기, 멀티 스레드 불가
6. Cloud Datastore 제공 (= BigTable)
- 무료 제공 (일정 용량(1GB) 이상부터 과금, $0.006/ GByte-day)
- 구글이 자신들의 서비스에 사용하는 NoSQL
- RDBMS를 대체하기 위한 개념은 아님 (용도가 다름)
- RDBMS와 유사한 쿼리문 지원 (제약있음)
1. GAE (Google App Engine) - 특/장점
sunjeehun@gmail.com
7. Quota 존재
- Request, Mail, URLFetch 등의 기능 및 API 호출에 일일 제한량 존재
1. GAE (Google App Engine) - 관리콘솔
sunjeehun@gmail.com
https://appengine.google.com/
1. GAE (Google App Engine) - 개발시작
sunjeehun@gmail.com
이클립스설치
GAE플러그인설치
※ 최신 GAE SDK ver : 1.9.6 (JDK 1.7 필요)
GAE프로젝트생성
GAE 배포
2. CloudSQL - 정의
sunjeehun@gmail.com
1. Google이 제공하는 Cloud MySQL Instance 로서 MySQL 5.5와 동일한 (일
부 제한 있음) 기능을 제공함.(현재 5.6 beta 지원)
2. Google의 인프라 스트럭쳐를 사용하므로 DB를 위한 서버H/W가 필요 없음.
3. 2013년 6월 1일 공식 Release
2. CloudSQL - 특징
sunjeehun@gmail.com
1. Google Cloud 환경에서 MySQL 5.5 Instance 호스팅
2. DB Instance 최대 크기는 250GB
3. 동기 / 비동기 복제 기능 제공
- 동기 복제 : (비동기복제에 비해) 느린 쓰기 속도, 빠른 데이터 정합성
- 비동기 복제 : (동기복제에 비해) 빠른 쓰기 속도, 느린 데이터 정합성
4. MySQL dump를 이용한 데이터베이스 import / export 제공
2. CloudSQL - 특징
sunjeehun@gmail.com
5. 콘솔 사이트 제공 (https://console.developers.google.com)
- MySQL 클라이언트 프로그램을 사용하기 위한 IP 할당 가능
6. 유료 서비스
- D1 레벨 (512MB RAM) : 0.1 USD / hour (DB Up Time 기준)
- D0 ~ D32 레벨 제공
7. 매일 일백업 자동 지원
- 추가 비용 없음
- 특정 일을 선택하여 리스토어 가능 (약 10분 소요)
- 백업 시간 설정 가능
2. CloudSQL - 제약
sunjeehun@gmail.com
1. 사용자 정의 함수 미지원 (?)
2. LOAD DATA INFILE 문 미지원
3. SELECT…. INTO OUTFILE 문 미지원
4. SELECT…. INTO DUMPFILE 문 미지원
5. INSTALL PLUGIN 문 미지원
6. UNINSTALL PLUGIN 문 미지원
7. CREATE FUNCTION 문 미지원 (?)
8. LOAD_FILE() 함수 미지원
3. 전자결재 시스템 개발 - 상황(Me)
sunjeehun@gmail.com
프로젝트,
시스템 운영 etc
2013년 1월
프로젝트는 끝나고 시스템도
안정화 되고… 뭐 재미난 거 없
나...
3. 전자결재 시스템 개발 - 상황(회사)
sunjeehun@gmail.com
한국에선 결재가
필요한데...
구글 앱스 좀 팔려고 하니 고객사들이 하나같이 “전자결재는 있나요?” 라고 물어봄
3. 전자결재 시스템 개발 - 만들자!
sunjeehun@gmail.com
잼있겠다
만들자!
3. 전자결재 시스템 개발 - 고민
sunjeehun@gmail.com
개발기간
필요 H/W
스펙
팔리긴
할까
개발인원
가능한
짧게
알수없음
것두 모
르지
Only MeAPP
서버관리
하기싫다
DB 서버
관리
이것두
하기싫음
3. 전자결재 시스템 개발 - 환경결정
sunjeehun@gmail.com
앱엔진으로 GO!
3. 전자결재 시스템 개발 - 이득
sunjeehun@gmail.com
개발기간
필요
H/W스펙
팔리긴
할까
개발인원APP
서버관리
DB 서버
관리
3. 전자결재 시스템 개발 - Why GAE?
sunjeehun@gmail.com
GAE On Premise
내 책임 애플리케이션
애플리케이션, 데이터베이스,
운영체제, 웹서버,
WAS서버, 로드밸런싱,
보안(서버해킹)
Auto Scaling 자동 제공 일반적으로 불가능
인프라 Google이 제공(GAE)
- WAS, DB 서버 필요
- 개발, 운영 서버 필요
배포
GAE에 한번 배포하는
것으로 완료
- 서버 병렬화 된 경우 서버별로 배포 필요
- 서버 위치에 따라 제약이 있을 수 있음
비용 싸다 비싸다 (H/W 비용, DC이용 비용 etc)
3. 전자결재 시스템 개발 - 결재프로세스
sunjeehun@gmail.com
3. 전자결재 시스템 개발 - 서비스구조
sunjeehun@gmail.com
구글 클라우드 플랫폼
Cloud Datastore
(NoSQL)
CloudSQL
(Cloud RDBMS)
Cloud Data
Storage
(첨부파일)
구글 앱 엔진 (GAE)
Java
Jetty (Web / WAS 서버)
전자 결재
JQuery JQuery Mobile
3. 전자결재 시스템 개발 - 사용기술
sunjeehun@gmail.com
전자결재 시스템
JAVA
Mail API
URLFetch
API
Google
Drive API
CloudSQL
Cloud
Stroage
JQuery
3. 전자결재 시스템 개발 - 팁
sunjeehun@gmail.com
1. API 호출은 BackOff 방식으로
- API 호출이 언제나 100% 성공한다는 보장은 없음
- 따라서 오류가 났을 경우를 대비해 재시도 하는 로직이 포함되어야 함.
3. 전자결재 시스템 개발 - 팁
sunjeehun@gmail.com
2. GAE Quota
- GAE는 Request와 각종 API에 대해 Quota가 존재함. (Quota 이상 사용시 과금)
- 운영시에는 GAE 애플리케이션을 유료 전환하고 Mail API에 대해 미리 Quota 추가 요청을 해야
함.
3. 전자결재 시스템 개발 - 팁
sunjeehun@gmail.com
3. Maximum Daily Budget 조정 (필수)
- 하루 과금 한계 등록
- Maximum Daily Budget을 등록하지 않는 경우 유료화 하더라도 Over Quota 에러가 발생할 수
있음
3. 전자결재 시스템 개발 - 팁
sunjeehun@gmail.com
4. 배포 버전 관리
- 여러 개의 버전을 올리고 그 중 하나를 Default로 지정할 수 있음.
- 새 버전 배포 -> 테스트 -> Default 변경
3. 전자결재 시스템 개발 - 팁
sunjeehun@gmail.com
5. 여러 명의 개발자가 개발하는 경우
- 각 개발자 별로 개발용 GAE 애플리케이션 생성하여 작업
- 이 경우 애플리케이션의 URL이 서로 상이하므로 URL값을 애플리케이션에서 사용하는 경우 프
로퍼티화 하여 관리하는 것이 좋음
3. 전자결재 시스템 개발 - 팁
sunjeehun@gmail.com
6. CloudSQL 편하게 사용하기
- MySQL 워크벤치 사용 (다른 MySQL 클라이언트 사용 가능)
- 구글 디벨로퍼 콘솔에서 CloudSQL 인스턴스의 설정 변경 필요
: IP할당, root password 설정, 인가된 접근 IP 등록
4. 운영
sunjeehun@gmail.com
※D 사의 경우 (2013년 9월 1일 오픈)
1. 사용인원 : 약 400명
2. 월 결재 문서 생성 건 수 : 약 8,000 ~ 10,000 건
3. 외부 기간계 연동 : SAP, 자체 인사시스템
4. 사용 패턴 : 매월 마지막 주 사용량 집중 (월 마감)
Auto Scaling !!
4. 운영
sunjeehun@gmail.com
※D 사 월 운영 비용
1. GAE 운영 비용 : 70 ~ 90 USD
2. CloudSQL 운영 비용 : 70 ~ 90 USD
-> 월 약 200 USD 소요
4. 운영
sunjeehun@gmail.com
※ GAE 시스템 상태 콘솔
4. 운영
sunjeehun@gmail.com
※ DB의 백업 및 복구
- 구글 디벨로퍼 콘솔을 통해 백업
상황 확인 및 복구 가능 ( https:
//console.developers.google.com )
- 백업은 설정에 따라 자동으로 매
일 이루어 짐.
- 복구는 Restore 링크를 클릭하
면 되며 약 10~15분 소요됨.
4. 운영
sunjeehun@gmail.com
※ 참고URL
GAE Down Time 알람 그룹스
> https://groups.google.com/forum/#!forum/google-appengine-downtime-notify
토론
> https://groups.google.com/forum/#!forum/google-appengine
sunjeehun@gmail.com
감사합니다.
Q&A는 메일로...

Mais conteúdo relacionado

Mais procurados

프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)Woncheol Lee
 
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012Daum DNA
 
프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web AppsGihyo Joshua Jang
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, VueGunhee Lee
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드Tai Hoon KIM
 
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민NAVER D2
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁WebFrameworks
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)강 민우
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Sang Seok Lim
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5Taegon Kim
 
[Koss Con 2016] CloudBread Tutorial PT
[Koss Con 2016] CloudBread Tutorial PT[Koss Con 2016] CloudBread Tutorial PT
[Koss Con 2016] CloudBread Tutorial PT윤석 홍
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍Lee Ji Eun
 
하이브리드앱 성능 극복
하이브리드앱 성능 극복하이브리드앱 성능 극복
하이브리드앱 성능 극복sung hwan Park
 

Mais procurados (20)

프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
 
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
캠프앱 개발 사례를 통해 본 하이브리드앱 어디까지 | Devon 2012
 
프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps
 
iOS9 소개
iOS9 소개iOS9 소개
iOS9 소개
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue
 
2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
 
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
[125]react로개발자2명이플랫폼4개를서비스하는이야기 심상민
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
[IGC 2016] 아마존 구승모 - 게임 제작을 위한 Amazon의 편리한 도구들 (게임리프트와 럼버야드)
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
 
[Koss Con 2016] CloudBread Tutorial PT
[Koss Con 2016] CloudBread Tutorial PT[Koss Con 2016] CloudBread Tutorial PT
[Koss Con 2016] CloudBread Tutorial PT
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍
 
하이브리드앱 성능 극복
하이브리드앱 성능 극복하이브리드앱 성능 극복
하이브리드앱 성능 극복
 

Destaque

무료 전자결재 시스템, Docswave
무료 전자결재 시스템, Docswave무료 전자결재 시스템, Docswave
무료 전자결재 시스템, DocswaveDocswave
 
(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)
(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)
(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)Charly Choi
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기jbugkorea
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertowjbugkorea
 
Making your API easy to document with Spring REST Docs
Making your API easy to document with Spring REST DocsMaking your API easy to document with Spring REST Docs
Making your API easy to document with Spring REST DocsNAVER / MusicPlatform
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기라한사 아
 
Network 초보자를 위한 Netty
Network 초보자를 위한 NettyNetwork 초보자를 위한 Netty
Network 초보자를 위한 NettyChoulhyouc Lee
 
Xem2014 발표자료
Xem2014 발표자료Xem2014 발표자료
Xem2014 발표자료devxinics
 
매닛컬쳐 사업계획서
매닛컬쳐 사업계획서매닛컬쳐 사업계획서
매닛컬쳐 사업계획서Sangwon Lee
 
[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"oeclab
 
무지개 프로젝트 Final
무지개 프로젝트 Final무지개 프로젝트 Final
무지개 프로젝트 Final다운 이
 
Presentation Skill
Presentation SkillPresentation Skill
Presentation SkillManyong Han
 
퍼블릭랩 착수발표
퍼블릭랩 착수발표퍼블릭랩 착수발표
퍼블릭랩 착수발표peptres
 
클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트licubeclub
 
큐스 사업계획서
큐스 사업계획서큐스 사업계획서
큐스 사업계획서만수 신
 
[E조] 미디어프로젝트
[E조] 미디어프로젝트[E조] 미디어프로젝트
[E조] 미디어프로젝트heeyoungkimlisa
 
Sns workshop 02
Sns workshop 02Sns workshop 02
Sns workshop 02창열 이
 
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013Hyunsik Choi
 

Destaque (20)

무료 전자결재 시스템, Docswave
무료 전자결재 시스템, Docswave무료 전자결재 시스템, Docswave
무료 전자결재 시스템, Docswave
 
(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)
(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)
(G Suite )클라우드 전자결재 GDriveFlow (Google App Engine 기반)
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기
 
맛만 보자 Undertow
맛만 보자 Undertow맛만 보자 Undertow
맛만 보자 Undertow
 
Making your API easy to document with Spring REST Docs
Making your API easy to document with Spring REST DocsMaking your API easy to document with Spring REST Docs
Making your API easy to document with Spring REST Docs
 
스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기스프링 REST DOCS 따라해보기
스프링 REST DOCS 따라해보기
 
Network 초보자를 위한 Netty
Network 초보자를 위한 NettyNetwork 초보자를 위한 Netty
Network 초보자를 위한 Netty
 
Xem2014 발표자료
Xem2014 발표자료Xem2014 발표자료
Xem2014 발표자료
 
매닛컬쳐 사업계획서
매닛컬쳐 사업계획서매닛컬쳐 사업계획서
매닛컬쳐 사업계획서
 
[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"[앙트십 프로젝트] 양정여고 "마켓인유"
[앙트십 프로젝트] 양정여고 "마켓인유"
 
무지개 프로젝트 Final
무지개 프로젝트 Final무지개 프로젝트 Final
무지개 프로젝트 Final
 
Presentation Skill
Presentation SkillPresentation Skill
Presentation Skill
 
퍼블릭랩 착수발표
퍼블릭랩 착수발표퍼블릭랩 착수발표
퍼블릭랩 착수발표
 
Lazybuster
LazybusterLazybuster
Lazybuster
 
클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트클라우드 스토리지 프로젝트
클라우드 스토리지 프로젝트
 
큐스 사업계획서
큐스 사업계획서큐스 사업계획서
큐스 사업계획서
 
[E조] 미디어프로젝트
[E조] 미디어프로젝트[E조] 미디어프로젝트
[E조] 미디어프로젝트
 
Sns workshop 02
Sns workshop 02Sns workshop 02
Sns workshop 02
 
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
SQL-on-Hadoop 그리고 Tajo - Tech Planet 2013
 
Google3
Google3Google3
Google3
 

Semelhante a Gae와cloud sql을이용한 전자결재 개발

[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?Sang-ho Choi
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?주식회사 내일비
 
구글앱스(Google apps) 소개서
구글앱스(Google apps) 소개서 구글앱스(Google apps) 소개서
구글앱스(Google apps) 소개서 Spike Nam
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
구글앱스 및 전자결재 서비스 소개
구글앱스 및 전자결재 서비스 소개구글앱스 및 전자결재 서비스 소개
구글앱스 및 전자결재 서비스 소개은진 양
 
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
 
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기복연 이
 
구글앱스기반 전자결재 앱 서비스 소개
구글앱스기반 전자결재 앱 서비스 소개구글앱스기반 전자결재 앱 서비스 소개
구글앱스기반 전자결재 앱 서비스 소개은진 양
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminarSun-Jin Jang
 
[Gastudy.net] Google analytics platform principles
[Gastudy.net] Google analytics platform principles[Gastudy.net] Google analytics platform principles
[Gastudy.net] Google analytics platform principlesSeHeung Oh
 
구글워크스페이스 전자결재, 그룹웨어, 근태관리 서비스 소개
구글워크스페이스  전자결재, 그룹웨어, 근태관리 서비스 소개구글워크스페이스  전자결재, 그룹웨어, 근태관리 서비스 소개
구글워크스페이스 전자결재, 그룹웨어, 근태관리 서비스 소개은진 양
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세규동 최규동
 
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebHanboramRobinJang
 
Cms All 091103
Cms All 091103Cms All 091103
Cms All 091103wiim
 
아마존 웹서비스를 이용한 WebApp 제작 Attendee
아마존 웹서비스를 이용한 WebApp 제작 Attendee아마존 웹서비스를 이용한 WebApp 제작 Attendee
아마존 웹서비스를 이용한 WebApp 제작 AttendeeLEEDONGJOON1
 
Cms All 091104
Cms All 091104Cms All 091104
Cms All 091104wiim
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
 

Semelhante a Gae와cloud sql을이용한 전자결재 개발 (20)

[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
구글앱스(Google apps) 소개서
구글앱스(Google apps) 소개서 구글앱스(Google apps) 소개서
구글앱스(Google apps) 소개서
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
구글앱스 및 전자결재 서비스 소개
구글앱스 및 전자결재 서비스 소개구글앱스 및 전자결재 서비스 소개
구글앱스 및 전자결재 서비스 소개
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기
 
구글앱스기반 전자결재 앱 서비스 소개
구글앱스기반 전자결재 앱 서비스 소개구글앱스기반 전자결재 앱 서비스 소개
구글앱스기반 전자결재 앱 서비스 소개
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminar
 
N02 gae v1.1_20110220
N02 gae v1.1_20110220N02 gae v1.1_20110220
N02 gae v1.1_20110220
 
[Gastudy.net] Google analytics platform principles
[Gastudy.net] Google analytics platform principles[Gastudy.net] Google analytics platform principles
[Gastudy.net] Google analytics platform principles
 
구글워크스페이스 전자결재, 그룹웨어, 근태관리 서비스 소개
구글워크스페이스  전자결재, 그룹웨어, 근태관리 서비스 소개구글워크스페이스  전자결재, 그룹웨어, 근태관리 서비스 소개
구글워크스페이스 전자결재, 그룹웨어, 근태관리 서비스 소개
 
Parallel diary
Parallel diaryParallel diary
Parallel diary
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세
 
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in Web
 
Cms All 091103
Cms All 091103Cms All 091103
Cms All 091103
 
아마존 웹서비스를 이용한 WebApp 제작 Attendee
아마존 웹서비스를 이용한 WebApp 제작 Attendee아마존 웹서비스를 이용한 WebApp 제작 Attendee
아마존 웹서비스를 이용한 WebApp 제작 Attendee
 
Cms All 091104
Cms All 091104Cms All 091104
Cms All 091104
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 

Gae와cloud sql을이용한 전자결재 개발

  • 1. GAE와 CloudSQL을 이용한 전자결재 시스템 개발 2014.7.5. 선지헌
  • 2. 1. GAE(Google App Engine) 2. CloudSQL 3. 전자결재 시스템 개발 4. 운영 목차 sunjeehun@gmail.com
  • 3. Who Am I sunjeehun@gmail.com 이름 : 선지헌 (sunjeehun@gmail.com) 경력 - SI 프로젝트 10년 - 시스템 운영 3년 - 솔루션 개발 1년 반 좋아하는 것 : 밀리터리, 애니메이션, 만화, 자동차 etc
  • 4. 1. GAE (Google App Engine) - 정의 sunjeehun@gmail.com Google의 인프라 스트럭쳐를 이용하여 원하는 웹 애플리케 이션을 개발 / 배포 / 관리 할 수 있는 Cloud Computing 플 랫폼 H/W + WAS,WebServer + Storage =
  • 5. 1. GAE (Google App Engine) - 지원 언어 및 위치 sunjeehun@gmail.com 1. 지원언어 Python, Java, PHP, Go 2. Position IaaS (Infrastructure-as-a-Service) PaaS (Platform-as-a-Service) SaaS (Software-as-a-Service) ex) Google Compute Engine ex) Salesforce ex) Google App Engine
  • 6. 1. GAE (Google App Engine) - 특/장점 sunjeehun@gmail.com 1. Platform - 애플리케이션(SaaS) 및 H/W(IaaS)를 대신하는 개발/운영 플랫폼 제공(PaaS) - 개발자 및 운영자는 H/W의 구성과 설정에서 해방됨 2. 지원 언어 - Java, Python, PHP, Go에 대한 환경 제공 - 개발자가 Local 환경에서 테스트 가능 (일부 제한 있음) 3. 배포의 간소화 - GAE에 배포(Deploy) 하는 것으로 모든 배포가 완료
  • 7. 1. GAE (Google App Engine) - 특장점 sunjeehun@gmail.com 4. 능동적인 트래픽 대응 (Auto Scaling) - 어플리케이션에 대한 요청(Request)에 대응해 GAE가 자동으로 instance(CPU 자원) 추가 및 회수 함 Application Instance Instance ….
  • 8. 1. GAE (Google App Engine) - 특/장점 sunjeehun@gmail.com 5. Sandbox - 어플리케이션 코드 및 데이터에 대해 외부 어플리케이션 / 사용자 접근 금지 (GAE 어플리케이션은 Sandbox 환경에서 실행됨 - 보안) - Sandbox 환경에서 실행됨에 따라 일부 작업에 제한 발생 -> 로컬파일 열어서 쓰기, 소켓 연결 열기, 멀티 스레드 불가 6. Cloud Datastore 제공 (= BigTable) - 무료 제공 (일정 용량(1GB) 이상부터 과금, $0.006/ GByte-day) - 구글이 자신들의 서비스에 사용하는 NoSQL - RDBMS를 대체하기 위한 개념은 아님 (용도가 다름) - RDBMS와 유사한 쿼리문 지원 (제약있음)
  • 9. 1. GAE (Google App Engine) - 특/장점 sunjeehun@gmail.com 7. Quota 존재 - Request, Mail, URLFetch 등의 기능 및 API 호출에 일일 제한량 존재
  • 10. 1. GAE (Google App Engine) - 관리콘솔 sunjeehun@gmail.com https://appengine.google.com/
  • 11. 1. GAE (Google App Engine) - 개발시작 sunjeehun@gmail.com 이클립스설치 GAE플러그인설치 ※ 최신 GAE SDK ver : 1.9.6 (JDK 1.7 필요) GAE프로젝트생성 GAE 배포
  • 12. 2. CloudSQL - 정의 sunjeehun@gmail.com 1. Google이 제공하는 Cloud MySQL Instance 로서 MySQL 5.5와 동일한 (일 부 제한 있음) 기능을 제공함.(현재 5.6 beta 지원) 2. Google의 인프라 스트럭쳐를 사용하므로 DB를 위한 서버H/W가 필요 없음. 3. 2013년 6월 1일 공식 Release
  • 13. 2. CloudSQL - 특징 sunjeehun@gmail.com 1. Google Cloud 환경에서 MySQL 5.5 Instance 호스팅 2. DB Instance 최대 크기는 250GB 3. 동기 / 비동기 복제 기능 제공 - 동기 복제 : (비동기복제에 비해) 느린 쓰기 속도, 빠른 데이터 정합성 - 비동기 복제 : (동기복제에 비해) 빠른 쓰기 속도, 느린 데이터 정합성 4. MySQL dump를 이용한 데이터베이스 import / export 제공
  • 14. 2. CloudSQL - 특징 sunjeehun@gmail.com 5. 콘솔 사이트 제공 (https://console.developers.google.com) - MySQL 클라이언트 프로그램을 사용하기 위한 IP 할당 가능 6. 유료 서비스 - D1 레벨 (512MB RAM) : 0.1 USD / hour (DB Up Time 기준) - D0 ~ D32 레벨 제공 7. 매일 일백업 자동 지원 - 추가 비용 없음 - 특정 일을 선택하여 리스토어 가능 (약 10분 소요) - 백업 시간 설정 가능
  • 15. 2. CloudSQL - 제약 sunjeehun@gmail.com 1. 사용자 정의 함수 미지원 (?) 2. LOAD DATA INFILE 문 미지원 3. SELECT…. INTO OUTFILE 문 미지원 4. SELECT…. INTO DUMPFILE 문 미지원 5. INSTALL PLUGIN 문 미지원 6. UNINSTALL PLUGIN 문 미지원 7. CREATE FUNCTION 문 미지원 (?) 8. LOAD_FILE() 함수 미지원
  • 16. 3. 전자결재 시스템 개발 - 상황(Me) sunjeehun@gmail.com 프로젝트, 시스템 운영 etc 2013년 1월 프로젝트는 끝나고 시스템도 안정화 되고… 뭐 재미난 거 없 나...
  • 17. 3. 전자결재 시스템 개발 - 상황(회사) sunjeehun@gmail.com 한국에선 결재가 필요한데... 구글 앱스 좀 팔려고 하니 고객사들이 하나같이 “전자결재는 있나요?” 라고 물어봄
  • 18. 3. 전자결재 시스템 개발 - 만들자! sunjeehun@gmail.com 잼있겠다 만들자!
  • 19. 3. 전자결재 시스템 개발 - 고민 sunjeehun@gmail.com 개발기간 필요 H/W 스펙 팔리긴 할까 개발인원 가능한 짧게 알수없음 것두 모 르지 Only MeAPP 서버관리 하기싫다 DB 서버 관리 이것두 하기싫음
  • 20. 3. 전자결재 시스템 개발 - 환경결정 sunjeehun@gmail.com 앱엔진으로 GO!
  • 21. 3. 전자결재 시스템 개발 - 이득 sunjeehun@gmail.com 개발기간 필요 H/W스펙 팔리긴 할까 개발인원APP 서버관리 DB 서버 관리
  • 22. 3. 전자결재 시스템 개발 - Why GAE? sunjeehun@gmail.com GAE On Premise 내 책임 애플리케이션 애플리케이션, 데이터베이스, 운영체제, 웹서버, WAS서버, 로드밸런싱, 보안(서버해킹) Auto Scaling 자동 제공 일반적으로 불가능 인프라 Google이 제공(GAE) - WAS, DB 서버 필요 - 개발, 운영 서버 필요 배포 GAE에 한번 배포하는 것으로 완료 - 서버 병렬화 된 경우 서버별로 배포 필요 - 서버 위치에 따라 제약이 있을 수 있음 비용 싸다 비싸다 (H/W 비용, DC이용 비용 etc)
  • 23. 3. 전자결재 시스템 개발 - 결재프로세스 sunjeehun@gmail.com
  • 24. 3. 전자결재 시스템 개발 - 서비스구조 sunjeehun@gmail.com 구글 클라우드 플랫폼 Cloud Datastore (NoSQL) CloudSQL (Cloud RDBMS) Cloud Data Storage (첨부파일) 구글 앱 엔진 (GAE) Java Jetty (Web / WAS 서버) 전자 결재 JQuery JQuery Mobile
  • 25. 3. 전자결재 시스템 개발 - 사용기술 sunjeehun@gmail.com 전자결재 시스템 JAVA Mail API URLFetch API Google Drive API CloudSQL Cloud Stroage JQuery
  • 26. 3. 전자결재 시스템 개발 - 팁 sunjeehun@gmail.com 1. API 호출은 BackOff 방식으로 - API 호출이 언제나 100% 성공한다는 보장은 없음 - 따라서 오류가 났을 경우를 대비해 재시도 하는 로직이 포함되어야 함.
  • 27. 3. 전자결재 시스템 개발 - 팁 sunjeehun@gmail.com 2. GAE Quota - GAE는 Request와 각종 API에 대해 Quota가 존재함. (Quota 이상 사용시 과금) - 운영시에는 GAE 애플리케이션을 유료 전환하고 Mail API에 대해 미리 Quota 추가 요청을 해야 함.
  • 28. 3. 전자결재 시스템 개발 - 팁 sunjeehun@gmail.com 3. Maximum Daily Budget 조정 (필수) - 하루 과금 한계 등록 - Maximum Daily Budget을 등록하지 않는 경우 유료화 하더라도 Over Quota 에러가 발생할 수 있음
  • 29. 3. 전자결재 시스템 개발 - 팁 sunjeehun@gmail.com 4. 배포 버전 관리 - 여러 개의 버전을 올리고 그 중 하나를 Default로 지정할 수 있음. - 새 버전 배포 -> 테스트 -> Default 변경
  • 30. 3. 전자결재 시스템 개발 - 팁 sunjeehun@gmail.com 5. 여러 명의 개발자가 개발하는 경우 - 각 개발자 별로 개발용 GAE 애플리케이션 생성하여 작업 - 이 경우 애플리케이션의 URL이 서로 상이하므로 URL값을 애플리케이션에서 사용하는 경우 프 로퍼티화 하여 관리하는 것이 좋음
  • 31. 3. 전자결재 시스템 개발 - 팁 sunjeehun@gmail.com 6. CloudSQL 편하게 사용하기 - MySQL 워크벤치 사용 (다른 MySQL 클라이언트 사용 가능) - 구글 디벨로퍼 콘솔에서 CloudSQL 인스턴스의 설정 변경 필요 : IP할당, root password 설정, 인가된 접근 IP 등록
  • 32. 4. 운영 sunjeehun@gmail.com ※D 사의 경우 (2013년 9월 1일 오픈) 1. 사용인원 : 약 400명 2. 월 결재 문서 생성 건 수 : 약 8,000 ~ 10,000 건 3. 외부 기간계 연동 : SAP, 자체 인사시스템 4. 사용 패턴 : 매월 마지막 주 사용량 집중 (월 마감) Auto Scaling !!
  • 33. 4. 운영 sunjeehun@gmail.com ※D 사 월 운영 비용 1. GAE 운영 비용 : 70 ~ 90 USD 2. CloudSQL 운영 비용 : 70 ~ 90 USD -> 월 약 200 USD 소요
  • 34. 4. 운영 sunjeehun@gmail.com ※ GAE 시스템 상태 콘솔
  • 35. 4. 운영 sunjeehun@gmail.com ※ DB의 백업 및 복구 - 구글 디벨로퍼 콘솔을 통해 백업 상황 확인 및 복구 가능 ( https: //console.developers.google.com ) - 백업은 설정에 따라 자동으로 매 일 이루어 짐. - 복구는 Restore 링크를 클릭하 면 되며 약 10~15분 소요됨.
  • 36. 4. 운영 sunjeehun@gmail.com ※ 참고URL GAE Down Time 알람 그룹스 > https://groups.google.com/forum/#!forum/google-appengine-downtime-notify 토론 > https://groups.google.com/forum/#!forum/google-appengine