한국 표준(?) 자바셋(Java 1.6+Spring 3.x+MyBatis)과 Monolithic 아키텍처를 사용하고 있었던 제 조직 내에서 기술적 변화를 이끌어가는 것에 관련된 내용입니다.
변화를 유도하기 위해서 어떻게 해야 하는지가 핵심이며,
Architecture, Frontend, Backend, 방법론/프로세스의 영역을 각각의 단계로 나누어서 Phase1을 수행한 것과 Phase2를 수행 중인 내용에 대해서도 다룹니다.
Phase1
- Architecture : Frontend / Backend 명시적 분리
- Frontend : Angular.js, Grunt, Bower 도입
- Backend : Java 1.7/Spring4, ORM 도입
- 방법론/프로세스 : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- 방법론/프로세스 : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
오늘날, 모든 기업활동에 있어서 IT는 코어 비즈니스를 보조하는 보조적인 역할에서 벗어나 코어 비즈니스 그 차제가 되는 경우를 쉽게 찾아볼 수 있다. 이러한 엔터프라이즈 어플리케이션 개발에 있어서 기존의 프로젝트 중심 패러다임에서 프로덕트 중심 패러다임으로 전환에 성공한 국내외의 사례를 살펴보고 이들 사례로 부터 Best Practice를 정제하여 보고자 한다.
<1탄>왜 마이크로 서비스인가 - 마이크로서비스로 구성된 애플리케이션 소개
Session abstract:
이번 세션에서는 무엇이 마이크로 서비스고, 어떤 철학과 사상을 가지고 있는지 알아봅니다. 세션이 종료되면 참석하신 분들은 마이크로 서비스의 구성에서 어떤 내용이 중요한지 알게 됩니다. 전체 시리즈로 진행되는 첫 세션 입니다.
Session agenda:
-실 서비스용 데이터베이스를 종료한다면 어떤 일이 벌어질까
-마이크로서비스와 마이크로서비스가 아닌것
-어떻게 시작해야 하나
-마이크로서비스 애플리케이션 소개
-클라우드 네이티브(클라우드 최적화란)
한국 표준(?) 자바셋(Java 1.6+Spring 3.x+MyBatis)과 Monolithic 아키텍처를 사용하고 있었던 제 조직 내에서 기술적 변화를 이끌어가는 것에 관련된 내용입니다.
변화를 유도하기 위해서 어떻게 해야 하는지가 핵심이며,
Architecture, Frontend, Backend, 방법론/프로세스의 영역을 각각의 단계로 나누어서 Phase1을 수행한 것과 Phase2를 수행 중인 내용에 대해서도 다룹니다.
Phase1
- Architecture : Frontend / Backend 명시적 분리
- Frontend : Angular.js, Grunt, Bower 도입
- Backend : Java 1.7/Spring4, ORM 도입
- 방법론/프로세스 : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- 방법론/프로세스 : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
오늘날, 모든 기업활동에 있어서 IT는 코어 비즈니스를 보조하는 보조적인 역할에서 벗어나 코어 비즈니스 그 차제가 되는 경우를 쉽게 찾아볼 수 있다. 이러한 엔터프라이즈 어플리케이션 개발에 있어서 기존의 프로젝트 중심 패러다임에서 프로덕트 중심 패러다임으로 전환에 성공한 국내외의 사례를 살펴보고 이들 사례로 부터 Best Practice를 정제하여 보고자 한다.
<1탄>왜 마이크로 서비스인가 - 마이크로서비스로 구성된 애플리케이션 소개
Session abstract:
이번 세션에서는 무엇이 마이크로 서비스고, 어떤 철학과 사상을 가지고 있는지 알아봅니다. 세션이 종료되면 참석하신 분들은 마이크로 서비스의 구성에서 어떤 내용이 중요한지 알게 됩니다. 전체 시리즈로 진행되는 첫 세션 입니다.
Session agenda:
-실 서비스용 데이터베이스를 종료한다면 어떤 일이 벌어질까
-마이크로서비스와 마이크로서비스가 아닌것
-어떻게 시작해야 하나
-마이크로서비스 애플리케이션 소개
-클라우드 네이티브(클라우드 최적화란)
CNA(Cloud Native Architecture)
MSA(Micro Service Architecture)
Service Mesh
MDA(Micro Data Architecture)
Data Mesh
MIA(Micro Inference Architecture)
Inference Mesh
Kpmg ideation challenge: ING team (korean)JihyunSon2
안녕하세요, 전처리 담당 AI 프로젝트의 발표를 맡게 된 ING 팀의 손지현이라고 합니다. 우선 발표로 들어가기 전, 팀원 소개를 하고자 하는데요, 저희는 개발자 3명, 기획자 한 명으로 이루어졌습니다. 여기서 개발자이자 팀장님이신 심승철님께서 기술 Q&A를 맡기 위해, 저는 전반적인 발표를 맡기 위해 이 자리에 섰습니다.
우선 발표 콘텐츠를 설명 드리자면, 저희는 문제진단, 해결방안, 결과소개, 그리고 사업화, 이 네 가지로 발표를 나눴습니다. 하지만 문제진단을 하기 앞서, 간단하게 배경 설명을 해야 할 것 같은데요,
요즘 digital transformation이란 말이 뜨면서 사람들은 여러 분야에 관심을 가지게 되었는데, 여기서 저희가 집중하고자 하는 부분은
Big Data, 또는 데이터 산업입니다. 특히 AI의 학습에 쓰이는 데이터의 역할에 관심을 가지게 되었는데, 저희는 AI와 자동화 시스템을 통해 어떻게 이 분야를 더욱 효율적으로 바꿔나갈지를 고민하게 되었습니다.
AI의 학습과정을 보자면 이렇게 정리가 되는데요, 여기서 시간 소모가 가장 큰 과정이 바로 여기 pre-processing, 혹은 데이터 전처리라고 합니다. 데이터 전처리 과정을 설명 드리자면, AI가 학습과정에 많은 데이터가 필요한데, AI가 이해할 수 있는 형식으로 데이터를 가공하고 정제하는 과정이 바로 데이터 전처리입니다. 현재 대부분 수작업으로 진행되기 때문에 가장 많은 시간과 인력을 소모하고 있죠.
그렇다면 이 부분에다가 RPA에 적용한다면 어떨까? 저희 프로젝트의 주제를 간단히 말씀 드리자면, AI를 학습시키는데 AI를 사용하자는 결론에 도달하는 거죠.
데이터 전처리 시장을 조사한 바, 현재 amazon mechanical turk와 crowdworks라는 두 기업이 자리잡고 있는데, 이 두 기업은 전처리 된 데이터가 필요한 기업과 전처리를 하고자 하는 일반인 아르바이트를 연결시켜주는 플랫폼이라 생각하시면 됩니다. 하지만 여기서 세가지 문제를 발견했는데, 이것은 한정된 유저 인터페이스, 데이트의 신뢰성 부족, 그리고 수작업으로 인한 비효율적 시스템입니다.
예시를 보여드리자면, 이게 AMT의 인터페이스인데요, 보시다시피 영수증 내용을 AI가 이해하도록 바꾸기 위해 일일이 내용을 옮겨 적어야 하는 형식입니다. 인터페이스도 웹으로만 접근 가능한거라 접근성도 안 좋고 상당히 번거롭죠.
그렇다면 저희가 생각해낸 솔루션들은? 첫째, 간편한 안드로이드 유저인터페이스를 만들고 UI/UX를 고칠 것, 둘째, 교차 인증 및 게이미피케이션 기능을 추가해서 정확도를 높일 것, 그리고 마지막으로 데이터전처리에 딥러닝 AI를 기반해서 사용자의 효율 및 정확성을 확보하는 것입니다. 특히 세번째가 중요한데, 제가 앞서 말씀 드린 AI를 이용해서 AI를 학습시킨다 개념에 들어간다고 생각하시면 됩니다.
앞에 두 솔루션을 설명 드리자면, UI/UX를 기존의 상품에 비해 사용자가 사용하기 편하게 고치고자 노력했습니다. 곧 제품시연 때 직접 체감하실 수 있을 것이라 믿고 다음 솔루션으로 넘어가겠습니다. 기존의 상품들의 경우, 본인의 성과를 체크하는 기능은 있어도 본인의 성과를 다른 작업자들과 비교하는 기능이 없었으며, 그나마 crowdworks에는 소수의 상위랭커 리스트만 있었습니다. 저희는 상대적 위치, 예를 들어 여기 상위 13%다, 등을 알려주며 사람들이 더욱 열심히 작업을 하도록 자극시키는 게이미피케이션 요소를 추가하고자 했습니다.
자, 마지막으로 가장 중요한 RPA의 응용으로 넘어갈텐데, 제품 시연이랑 함께 설명을 드리겠습니다. 저희 제품은 이미지 라벨링 자동화, 문자 라벨링 자동화, 그리고 음성 라벨링 자동화 이렇게 세 가지로 구성되어됩니다. 이미지 라벨링 자동화의 경우를 확인한다면 AI가 미리 이미지를 분석하고 확인한 다음, 세 가지 가능성을 제안한다면 사용자는 단순히 저 중 하나를 고르는 형식입니다. 다음 문자 라벨링의 경우, 아까 AMT 사진이랑 상당히 비교가 되는데, AI가 미리 문자를 인식해서 적어놓은 상태로 사용자는 단순히 맞는지 틀린지만 확인하고, 틀린 것들만 수정하는 형식입니다. 세번째도 두번째와 비슷한데, 이렇게 영상이 나왔을 때 AI가 인식하고 적어내린 것들을 작업자가 수정하는 형식입니다. 제품 시연을 넘어가기 전에 마지막으로 한 부분으로 보여드릴텐데요, 여기서 보시는 점수와 활동 내역은 사용자가 자신이 했던 것 일의 내역을 보고 자극될 수 있도록 시각화되어있는, 앞서 말씀드린 게이미피케이션의 일부라고 보시면 됩니다. 이 차트는 사용자가 했던 활동을 실시간 반영하며, 본인이 했던 것을 좀 더 예쁘게 볼 수 있도록 디자인되어있습니다.
이제 사업화를 할 시에 고려해야 할 것들을 몇 가지 제시하겠습니다. 제일 중요하다고 여긴 것들 은 시스템의 간편화, 경쟁업체의 고객화, 그리고 홍보였습니다. 간편화의 경우 특히 급여지급의 간편화가 필요한데, 복잡한 payment system을 가져 작업자의 의욕을 꺾었던 이전 서비스에 비해 저희는 카카오페이 등의 금융앱과의 제휴를 통해 인센티브 비용을 쉽게 제공하고자 합니다. 또, 이미 자리잡아있는 경쟁업체와 경쟁을 하기보다는 저희 RPA 솔루션을 제공하는 등의 협업을 생각했습니다. 마지막으로 홍보가 가장 중요한데, 일반인들도 작업자로써 활동할 수 있도록 데이터 전처리 플랫폼을 게임 광고, 가상화폐 대체 광고 등으로 가시화하는 것이 중요하다 생각합니다.
그렇다면 마지막으로 몇 가지 참고 장표들을 보여드릴 텐데요, 이 장표의 내용들은 안타깝게도 시간제한상 설명을 드리기 어렵지만 혹시나 저희 프로젝트에 대해서 궁금하실 분들을 위해 따로 마련해드렸습니다. 혹시 Q&A 때 알고 싶으신 점들이 있다면 언제든지 질문하시길 바랍니다.
이로써 발표를 마치겠습니다.
감사합니다.
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea
최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
Kubernetes advanced sheduling
- Taint and tolerant
- Affinity (Node & inter pod)
Learn how to place Pod like (same or different) node, rack, zone, region
2. 발표자 소개
조 대 협 본명: 조병욱
회원 13만명 온라인 개발자 커뮤니티 자바스터디(www.javastudy.co.kr) 운영자.. (기억의 저편..)
한국 자바 개발자 협회 부회장,서버사이드 아키텍트 그룹 운영자
벤쳐 개발자
BEA 웹로직 기술 지원 엔지니어
장애 진단, 성능 튜닝
NHN 잠깐
오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0,대용량 분산 시스템)
MS APAC 클라우드 수석 아키텍트
프리렌서 (잘나가는 사장님)
삼성전자 무선 사업부 B2B팀 Chief Architect
현 피키캐스트 CTO로.. 열심히 세상을 즐겁게 만드는 중….
4. 시장 환경
• 내년에도 혁신적인 변화는 없음
• 스타트업 중심의 모바일 서비스 생태계가
기술 생태계를 주도
• 여전히 모바일 중심
• 빅데이타 활용의 가속화
• 지켜볼만한 변화의 요소
• 동영상 중심의 MCN 비지니스
• O2O 서비스 활성화
• 핀태크 서비스
기술적인 패러다임 변화 보다는
모바일 연장선에서 활용과 효율 강화
시장이 열리는 중
지켜볼 필요
5. 시장의 요구 사항
• 스타트업 중심의 모바일 앱 시장의 니즈
“ 적은 인원으로, 최신 기술들을 사용하여 빠르게 세계를 대상으로 제품을 출시하고,
저비용으로 실험과 분석을 통해서
고객의 요구에 맞는 서비스로 개선해 나가야 한다. “
6. “적은 인원으로 최신 기술들을 사용하여 “
• 빠르고 쉽게 취하고 적용할 수 있는 기술이 필요 스크립트 언어, PaaS (Platform as a Service)
• 적은 인원으로 개발과 운영을 통합할 필요 풀스택, Devops
7. “빠르게 세계를 대상으로 제품을 출시 하고“
• 기동성 높은 팀 모델 필요 애자일 , Feature Team Model (기능 단위 팀 모델)
• 글로벌 스케일의 인프라 (클라우드) 필요 클라우드 컴퓨팅
• 로컬라이제이션 (푸쉬,계정 통합) 필요 PaaS
8. “저비용으로 실험과 분석을 통해서 “
• 사용자 사용 패턴 분석 필요 빅데이타
• 사용자 테스팅을 통한 반응 분석 필요 AB 테스팅
12. 플랫폼 서비스 클라우드
• 클라우드에 깔아 쓰기 보다는 깔려있는 “메니지드(managed)” 서비스 활용
• 운영 부담 분산
• Redis.io , Compose.io, IBM Bluemix
• 플랫폼 기능을 제공하는 서비스 활용
• 푸쉬 서비스 – iOS,안드로이드,중국 바이두 푸쉬
• 계정 연동 서비스
• Onesignal.com , Stormpath.com , Onelogin.com
13. 무료 빅데이타 분석 서비스
• 빅데이타 분석의 문제 비싸고 어렵다
• Hadoop, Spark, Kafka … ??
• TB 를 저장하려면 서버댓수와 용량은?
• 데이타 분석은 누가 하지?
• 문제의 재정의
• 분석플랫폼을 리포트를 얻기위해서다.
• 결과만 얻으면 된다.
• 무료 빅데이타 분석 서비스
• 광고 서비스 업체들이 개발자 지원 및 데이타 수집 차원에서 무료 제공
• Yahoo Flurry, Twitter Fabric, Google Analytics
• DAU ,MAU ,Session ,Session Time, Retension Rate etc.
14. AB 테스팅 서비스
• AB 테스팅 정의
• 사용자를 A/B/N 군으로 분리한 후 각각 다른 기능을 제공한 후, 사용자 반응이 좋은 기능을
선택하는 기법
• 페이스북이 airlock이라는 오프소스를 이용하여 사용자 반응을 기반으로 서비스 개선
• AB 테스팅 활용
• UI 변경
• 기능 테스트
• 인스턴트 업데이트
• AB 테스팅 인프라를 구축하려면
• 리모트로 A/B 사용자 군을 나눠서 기능을 적용
• 통계 결과를 모니터링
• 최종 배포
15. AB 테스팅 서비스
• AB 테스팅 서비스
• Amazon AB Testing Beta (무료)
• Optimizely.com (50,000 MAU 까지 무료), taplytics.com , apptimize.com
16. 머신 러닝 서비스
• 머신 러닝
• 기계 학습
• 사용자 추천, 스팸 필터링 등 사용자 개인화등에 널리 사용
• 문제는
• 대부분 수학 (이미 대표적인 알고리즘은 많이 나와 있음)
• 알고리즘을 알더라도 구현에 많은 공이 들어감
• 답은
• 나와 있는 클라우드 서비스를 사용하자
• 근래에 벤더들이 자사의 ML 알고리즘을 오픈하고 있음
• Microsoft Azure ML, Google Cloud Prediction API, IBM Watson etc
17. 풀스택 개발자 & DEVOPS
• 풀스택 개발
• 한명의 개발자 := 인프라 + 서버 백앤드 + 웹 프론트 + 앱 개발
• 한때 된다 안된다. 개발자의 꿈등으로 화제
• DEVOPS
• 개발과 운영을 통합하여, 속도를 내는 모델
• 화두는 가능할까 ? 해야 하는가?
• 예전 보다 기술이 쉬워 졌다.
• 클라우드로 인하여 개발자가 인프라를 손댈 수 있다.
• 결론은 할 수 밖에 없다
• 소규모 인원 기반의 앱 스타트업
• 백앤드, 인프라 엔지니어를 따로 뽑을 여유가 없다. 할 수 밖에 없다
18. 풀스택 개발자 & DEVOPS
• 내가 만난 스타트업 개발자들
다. 하더라.. 자연 스럽게
19. 기능 위주 개발팀
• Feature team
• 기능단위로 팀을 묶는 애자일 방법론
• 기획 + 디자인 + 개발 + 운영 을 하나의 팀에 넣어서 기동성 있게 움직임
Cross functional team
• CF. Funtional team, Product Team , Feature Team
20. 스크립트 언어
• 스크립트 언어
• 빠른 습득 시간 및 개발 시간
• node.js , Ruby on rails, Python
• REST API 2시간 vs 20분?