<p><span>장선진 Softwareinlife 팀장. 웹1.0과 웹2.0, 클라우드컴퓨팅 환경, 구글 앱 엔진의 이해와 장단점 및 개발환경과 활용(Google App Engine)에 대한 것으로 공개SW 역량프라자1차 정기 기술세미나 강연 내용입니다.</span></p>
<p><span>장선진 Softwareinlife 팀장. 웹1.0과 웹2.0, 클라우드컴퓨팅 환경, 구글 앱 엔진의 이해와 장단점 및 개발환경과 활용(Google App Engine)에 대한 것으로 공개SW 역량프라자1차 정기 기술세미나 강연 내용입니다.</span></p>
<p><span>장선진 Softwareinlife 팀장. 웹1.0과 웹2.0, 클라우드컴퓨팅 환경, 구글 앱 엔진의 이해와 장단점 및 개발환경과 활용(Google App Engine)에 대한 것으로 공개SW 역량프라자1차 정기 기술세미나 강연 내용입니다.</span></p>
<p><span>장선진 Softwareinlife 팀장. 웹1.0과 웹2.0, 클라우드컴퓨팅 환경, 구글 앱 엔진의 이해와 장단점 및 개발환경과 활용(Google App Engine)에 대한 것으로 공개SW 역량프라자1차 정기 기술세미나 강연 내용입니다.</span></p>
Thinkreals에서 앱개발을 담당하는 소프트웨어 엔지니어 @muik 입니다. 개발한 앱으로는 쿠폰모아, 포켓스타일 안드로이드앱이 있는데요. 지금까지 앱개발을 하며 하이브리드앱 필요성을 많이 느껴왔습니다. 아마 비슷한 분들이 많을꺼라 생각되어 이번에 하이브리드앱 도입 준비를 하며 경험한 것을 공유해보려 합니다.
Docswave는 구글계정만 있으면 누구나 바로 이용할 수 있는 무료 Workflow 시스템입니다. IT지식이 없더라도 쉽게 이용할 수 있으며 5분이면 전사도입이 가능합니다.
사용자는 구글계정으로 로그인해서 Google Docs 문서로 기안문서를 작성할 수 있고 승인자는 이메일로 알림을 받아 승인/반려를 할 수 있습니다. 그리고 최종승인 된 문서는 사용자의 구글드라이브에 자동으로저장이 됩니다.
Docswave는 전자결재 기능 외에 게시판, 연락처 관리, 조직원 관리, 문서양식 관리 등을 제공합니다.
Thinkreals에서 앱개발을 담당하는 소프트웨어 엔지니어 @muik 입니다. 개발한 앱으로는 쿠폰모아, 포켓스타일 안드로이드앱이 있는데요. 지금까지 앱개발을 하며 하이브리드앱 필요성을 많이 느껴왔습니다. 아마 비슷한 분들이 많을꺼라 생각되어 이번에 하이브리드앱 도입 준비를 하며 경험한 것을 공유해보려 합니다.
Docswave는 구글계정만 있으면 누구나 바로 이용할 수 있는 무료 Workflow 시스템입니다. IT지식이 없더라도 쉽게 이용할 수 있으며 5분이면 전사도입이 가능합니다.
사용자는 구글계정으로 로그인해서 Google Docs 문서로 기안문서를 작성할 수 있고 승인자는 이메일로 알림을 받아 승인/반려를 할 수 있습니다. 그리고 최종승인 된 문서는 사용자의 구글드라이브에 자동으로저장이 됩니다.
Docswave는 전자결재 기능 외에 게시판, 연락처 관리, 조직원 관리, 문서양식 관리 등을 제공합니다.
This document provides an overview of Undertow, an embeddable web server for Java applications. It discusses Undertow's lightweight and high performance architecture based on small reusable handlers. Key features mentioned include support for Servlet 3.1, web sockets, and acting as a reverse proxy. The document also briefly outlines Undertow's handler-based approach and some built-in handlers like path matching, virtual hosts, and error handling.
RESTful API를 제공 하면서 API 문서를 항상 만들었습니다.
시간이 지남에 따라 제공된 API의 기능들은 추가 되거나 변경/삭제 되어 갔지만, 그에 반해 API 문서는 관리 소홀로 결국에는 불일치(API!=DOC)되면서 겪게 되는 API 문서 관리의 어려움을 우리는 자주 만나고 있습니다.
현재 한참 개발이 진행중인 스프링 프로젝트 중 Spring REST Docs를 사용해 API 문서를 손쉽게 자동으로 생성하고, 테스트까지 함께 할 수 있는 지에 대한 경험을 공유하고자 합니다.
Swagger를 넘어 이제는 Spring REST Docs으로...
이 세션에서는 Spring REST Docs + MVC Test 두 마리 토끼를 한번에 잡을 수 있는 방법을 살펴보고자 합니다.
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었지만
많은 분들의 도움으로 좋은 결과를 얻을 수 있었답니다!
이에 다른 분들에게 조금이나마 도움이 되었으면 좋겠다는 마음으로 공유합니다 : )
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
협업기반의 업무혁신 Cloud Power
구글에 연동되는 자체 앱솔루션 개발: 전자결재, 조직도, 공용주소록
구글앱스 서비스의 한국적 운용경험: 포털/그룹웨어/사이트
DB Inc.는 구글의 공식 리셀러이며, 구글앱스 서비스 제공 및 구글플랫폼 기반에 자체 전전결재, 그룹웨어, 근태관리 솔루션서비스도 제공합니다.
문의 및 신청안내: 02-2136-6447, cloud@dbgroup.co.kr
홈페이지: http://cloud.dbinc.co.kr
『빠르게 훑어보는 구글 클라우드 플랫폼』 - 맛보기복연 이
조대협, 최명근, 최유석, 윤성재, 김영균 지음 | 한빛미디어 | 2016.09.10
구글 클라우드 플랫폼을 처음 사용하는 사람을 위한 실습형 입문서.
이 책은 구글 클라우드를 처음 사용하는 사람이 가상 머신(VM) 기반의 클라우드 서비스 기능들을 빠르게 사용할 수 있도록 도울 목적으로, 실습 위주로 속도감 있게 구성하였다.
구글 클라우드의 가상 머신 서비스인 컴퓨트 엔진을 사용하기 위해 가입부터 VM 설정, 네트워크 설정, 오토 스케일링(자동 확장)과 모니터링, 그리고 MySQL 매지니드 서비스인 Cloud SQL의 사용법을 소개한다. 마지막으로 구글 클라우드만의 장점인 빅데이터 서비스, 전 세계를 덮는 전용 네트워크망, 합리적인 가격 정책을 소개한다.
구글플랫폼 기반의 전자결재 서비스 입니다.
기존 그룹웨어 전자결재와 가장 유사한 앱 서비스로서
구글 앱 엔진 기반으로 개발된 전자결재 시스템
구글 클라우드에서 사용
기존 시스템(SAP, 인사 등)과 연동
자유로운 결재선 지정
고객사별 독립된 DB로 관리
문의 및 신청안내: 02-2136-6447, cloud@dbgroup.co.kr
홈페이지: http://cloud.dbinc.co.kr
[Gastudy.net] Google analytics platform principlesSeHeung Oh
GA스터디에서 진행한 기본요약 중 첫번째 문서 입니다.
- Google analytics platform principles
ps. 문서에 나온 내용과과 스터디 진행시 말로 설명해드린 내용이 반반 정도의 비율이라 문서만으로는 제가 전달하고자 한 내용은 충분하지 않을 수 있는 점 참고 부탁드립니다.
구글워크스페이스 기반 서비스 소개
- 구글워크스페이스 서비스
- 구글워크스페이스 기반 전자결재 서비스
- 구글워크스페이스 기반 근태관리 서비스
- 구글워크스페이스 기반 그룹웨어 포털 서비스
문의 및 신청안내: 02-2136-6447, office@dbinc.co.kr
홈페이지: https://cloud.dbinc.co.kr
아마존 웹서비스를 이용한 WebApp을 제작하였습니다.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot 등을 통해 만들었으며
https://github.com/Djunnni/Attendee/ 에서 코드를 공유합니다.
for description SpringBoot WebApp using Amazon Web Service.
ElasticBeanStalk,Simple Email Service,WorkMail, Nginx, SpringBoot and so on
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 호출에 일일 제한량 존재
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)
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 !!
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