2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

41
소소소소소 소소 소소소소 소소 Facebook Server Side Architect 소소 소소 소소소 소소소 http://bcho.tistory.com

Upload: terry-cho

Post on 04-Dec-2014

1.232 views

Category:

Technology


9 download

DESCRIPTION

2014년 Software develop trend 초보 개발자 또는 대학생 레벨

TRANSCRIPT

Page 1: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

소프트웨어 개발 트렌드의 변화

Facebook Server Side Architect 그룹 대표 운영자 조대협

http://bcho.tistory.com

Page 2: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

발표자 소개

• 회원 13 만명 자바스터디 (www.javastudy.co.kr) 운영자 .. ( 기억의 저편 ..)• 천리안 자바 동호회 초대 시삽• 벤처 개발자• BEA 웹로직 기술 지원 엔지니어• 오라클 장애 진단 , 성능 튜닝• NHN 잠깐• 오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0)• 오라클 아키텍트 ( 대용량 분산 시스템 )• MS APAC 클라우드 수석 아키텍트• 프리렌서 ( 잘나가는 사장님 )• 지금은 Chief(Cheap?) 아키텍트 – 오픈 소스 기반 글로벌 분산 서버 구축

블로그 : http://bcho.tistory.com이메일 : [email protected]

페이스북 ServerSideArchitectGrouphttps://www.facebook.com/groups/serverside

/

조대협 본명 조병욱

????

싸장님

Page 3: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

오늘 할 이야기는 ?

Page 4: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

Layer Component Product

Access Layer

Reverse Proxy apache httpd, nginx, haproxy

Enterprise Service Bus (ESB Approach)

mule, Oracle Service Bus

Enterprise Service Bus (API Platform Approach)

Apigee, Layer 7,Mashery,3scale

Identity ManagementShiboleth, SimpleSAML PHP,

OpenAM, CA Site MinderIntegration Layer Apache Camel, Spring Integration

Business Layer

Transaction processing(Sync)apache tomcat, jetty ,apache

mina ,apache netty ,redhat jboss ,oracle weblogic

Message Queue (Async) Rabbit MQ, Active MQ, Zero MQ

data gridMemcached,redis , oracle

coherence ,Infinispan ,Hazlecast

Persistent Layer

RDBMS mysql,maria db, postgres,MS SQL,Oraclemysql replication Ganglia , tungsten ,oracle golden gatefile system (NFS) glusterfs

file system (object store) openstack swift,S3,BlobStorage

NoSQLHbase , Cassandra , mongodb,

Riak, Couch Base

Analysis Layer

log gathering Flume , flumed, Logstash, GrayLog,Sentryanalysis service splunk

ETL Pentahomap & reduce Hadoop,pig,hive

cep esper

OAM

cmdb zookeepermonitoring Jennifer , ganglia , nagios

configuration management Puppet , chef,ancibleDeployment Fabric,RPM

오픈 소스 솔루션 스택 ?

최신 기술 동향 ?

대용량 분산 시스템아키텍쳐 ?

Page 5: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

그것 보다는 많은 사람들에게 도움이 되는 이야기 ..!!

Page 6: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

어떻게 개발 트랜드가 변하고 있는가 ?

Page 7: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

요즘 실리콘 밸리에서는…

개발자는 레티나 디스플레이 !!

Page 8: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

요즘 실리콘 밸리에서는…

잘하는 것 부터 시작해서 발전

대세는 스크립트 언어

스스로 공부 , 스스로 개발 , 내재화소규모 조직 [10~20 명 ]

대우 받는 개발자

클라우드 컴퓨팅 빠른 시장 진입 , 저비용 , 누구나 서비스

젊은 개발자 ( 한국은 접는 개발자 )

협업 [SNS, 오픈소스 ,GitHub]

CI to CD

유연한 고용 시장메뚜기 !!

3 년 넘으면 바보한국은 배신자

개발자의 변신은 무죄

새로운 능력 ..!! 잉여력STAR UP

Page 9: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

요즘 실리콘 밸리에서는…

대세는 수퍼 개발자 !!

Page 10: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

4 가지 관점에서개발 트렌드의 변화를 이해

이에 적절한 오픈소스 개발 전략 수립 !!

소프트웨어 개발 중심의 변화

시대별 기술의 변화

개발 방식의변화

오픈소스 개발 전략

Page 11: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

1. 소프트웨어 개발 중심의 변화

Page 12: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

소프트웨어 개발 중심의 변화 시대별로 소프트웨어를 개발하는 이유가 어떻게 변화 했을까 ?우리가 지금 쓰는 기술들은 왜 ?

인터넷 ,SNS 의 시대엔터프라이즈 시대 모바일 시대

서비스 사업자대단한 님들 !!

벤더 개발자 !!

( 스타트업 , 앱개발자 ) 당신도 할 수 있다

기술 변화의 주체

Page 13: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

2. 시대별 기술의 변화

Page 14: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

시대별 기술의 변화

인터넷 ,SNS 의 시대엔터프라이즈 시대 모바일 시대

EJB, JAVA, SERVLET/JSP

들어는 보셨나요 ?

벤더 : “ 이게 최신 기술임 !!. 교육 부터 다 해드림 !!

나만 믿으세요” $$$

먹고 살 걱정 없음 !!

Spring,Hibernate,MySQL,Struts,Ruby On

Rails,PHP ..

서비스사 : 제품은 비쌈 . 우리가 만든거 가져다

쓰세요 !! 대신 책임은 니꺼 !

공부해야 함 .. 압박 !!조금씩 먹고 살기 힘들어짐

( 버틸만 함 - 그래도 대세는 있음 )

JavaScript,Cloud,node.js,

Ruby on Rails,NoSQL

개발자 : 어려워서 못 써먹겠음 . 차라리 만

듬 ..!!

기술 변화도 심함이제는 생존의 문제 !!

명퇴가 눈앞에 ..

Page 15: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

시대별 기술 변화

인터넷 ,SNS 의 시대엔터프라이즈 시대 모바일 시대

UNIX 서버

벤더 소프트웨어

X86 서버

오픈소스

클라우드

오픈소스

스크립트 언어 !!

ORACLE MySQL NoSQL

API

HTML 5

안드로이드 ,IOS웹웹 ,4GL

쉽고 빠른 개발기술의 홍수

대체제 성격새로운 기술 흐름을

만드는 전환기안정성 , 미션

크리티컬 업무 위주

Page 16: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

시대별 기술자• 왜 이런 현상이 생기는가 ? 쉬운 기술이 주목 받는 이유

스타트업 . 앱 개발

조합 1. 기획자 창업디자이너 - 기획자 여자 친구개발자 – 기획자의 친구 ( 디자이너를 사랑함 )

조합 2. 디자이너 창업기획자 - 디자이너의 여자 친구개발자 – 디자이너의 친구 ( 기획자를 사랑함 )

개발자 1 인 혼자 다 해야함 ( 클라이언트 , 서버 , 하드웨어 인프라 )배우기 쉬워야 함

돈 떨어지기전에 시장 출시해야함빨리 배울 수 있어야함

Page 17: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

시장 상황수많은 앱들 / 치열한 경쟁

빠른 출시 , 빠른 업데이트가 필요

Page 18: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

요구 되는 기술

빠른 출시 , 빠른 업데이트가 필요

쉬운 기술 필요낮은 비용

클라우드 컴퓨팅

스크립트 언어

운영 효율화

Devops

자동화

Page 19: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

클라우드 컴퓨팅• 클라우드 컴퓨팅이 가져다준 변화

– 저비용으로 시작 가능– 무제한적 리소스– 지역 / 시간 제약에서 자유로워짐– 쉽다 . 하드웨어 인프라에 대한 작업이 없어짐

개발자가 인프라를 핸들링 가능

Page 20: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

클라우드 컴퓨팅• IaaS (Infrastructure As A Service) 도 어렵다 . • PaaS (Platform As A Service) 유행

• IaaS : VM (Linux, Windows box) 를 만들어줌• PaaS : 웹서버 , DBMS 를 깔아줌 .

Page 21: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

클라우드 컴퓨팅• 고려 사항

빠른 시장 진입

운영비 절감

초기 투자비 절감

유연한 자원 사용(Auto Scale Out)

느려요 IO Performance

싸지 않아요

기존 솔루션이 안돌아요

장애가 납니다 . 아주 잘 !!( 멀티 데이타 센타 설계 )

클라우드 컴퓨팅의 장점 설계시 고려 사항

Page 22: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

Devops 의 등장Devops = Development + Operation ( 개발 + 운영 )

개발과 운영 조직을 하나로 묶어서 원할한 의사 소통빠른 반영 , 빠른 피드백 반영 가능

Page 23: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

자동화• 흔한 ( 평범한 ) 개발 환경 시나리오

– 개발자가 아침에 출근해서– 이클립스를 키고 , 소스코드를 Git 에서 Check Out 한후– JIRA 를 통해서 오늘 할당된 작업을 확인 한후에 코딩을 하고– PC 에서 Junit 등을 이용하여 단위테스트등을 모두 끝 마치고– 코드를 Git 에 Commit 하면– Jekins 에서 코드 변경을 감지하여 , 자동으로 Check Out 해서 mvn 을

이용해서 컴파일 하고 , 테스트 서버에 배포해서 단위 테스트를 모두 수행하고 , 코드의 라인커버리지를 분석하여 리포팅 한다 .

– 팀장은 빌드가 완료되었음을 확인하고 , 단위 테스트 100% 완료 및 라인 커버리지 80% 완료를 확인한다 .

– 릴리즈 날짜가 오면 , 배포 엔지니어는 별도의 작업 없이 Jenkins 에서 빌드된 그날 WAR 를 확인하고 , Fabric 으로 된 배포 스크립트를 수행하면 , 자동으로 개발 ,QA 환경으로 배포가 되고 , 환경별로 필요한 resource 파일들이 자동으로 customization 해서 배포가 완료된 후 , Junit 기반의 단위 테스트 , SOAP UI 기반의 REST API 테스트 , Seleniuem 기반의 UI 테스트까지 자동으로 완료 한다 . 만약에 배포나 테스트가 실패하면 , 이전 버전으로 자동 롤백한다 .

Page 24: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

자동화• 빌드 자동화 , 테스트 자동화 , 배포 자동화

DEV QA STAGE

테스트完

가상화 or 클라우드필요할때만 전개

릴리즈

연계

시스

클라

이언

단말

(모바

일)

자동 빌드 배포 시스템

Python Fabric

Ruby Capistrano

mvn & RPM

리포지토리

rpm

Page 25: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

스크립트 언어Ruby on Rails, Python,PHP

대세는 node.js

Page 26: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

아키텍쳐 변화

중앙 집중형

고가용성 (HA)

분산형

Resilience

트랜젝션 보장 장애 허용

한정된 용량 대용량

목표 성능 한계 성능

엔터프라이즈 시대 모바일 시대

먹고 살기 좋던 시절 요즘

RMI,WebService REST OPEN API

Page 27: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

3. 개발 방식의 변화

Page 28: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

정보 습득 방식의 변화

벤더 교육 센터 제품 메뉴얼 책

온라인 메뉴얼

블로그찾아보기

물어보기 ( 영어로… )중수

코드 까보기고수

네이버 ?

Page 29: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방식의 변화

벤더가 시키는데로솔루션에 포함된 예제 보고

책 예제 보고진리를 깨우치고

물어보고

다른데 프로젝트 했던 SI 불러서

그럴 시간 없음… .Copy & Paste

Stack overflow

하는데 까정 해본다 . 시간 없음

기술 검증 PoC,BMT

똑똑하면 소스 깐다 .

Trial & Error

Page 30: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

단계별 개발 모델의 변화• 1 단계 스타트업 !!

스타트업

Page 31: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

단계별 개발 모델의 변화• 2 단계 펀딩 받았다 .

성숙된 개발 조직

Page 32: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

단계별 개발 모델의 변화• 3 단계 깨달았다 .

CD & DEVOPS

Page 33: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방법론

<Insert Picture Here>

그래서…

저명한 박사님들께서 .. 방법론을 만드시니 .. RUP,CBD,CMMI

Page 34: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방법론

But…

그러나 현실은 방법론은 방법론… 우리는 조금 더 현실적인 방법론이 필요합니다 .

Page 35: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방법론

실용주의 방법론구세주 등장 !!

• 실용주의 방법론• Erich Gamma, Joel Spolsky, Kent beck, Andrew

Hunt• Iterative & Incremental• 애자일 기반

• 기존 방법론과 차이• 요구 사항이 변화할 것을 가정• 에러가 있을 것을 가정하여 , 자주 테스트• 협업과 커뮤니케이션

Page 36: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방법론

• 대표적인 개발 방법론

스크럼이 대세 !!

관리자 입장에서는 예측 불가조직에 맞게 바꿔서 쓰세요

http://agilescout.com/learn-more-agile-software-development-methods-this-year/

Page 37: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방법론

http://bcho.tistory.com/

내용이 많아서 , 여기에 다 있습니다 .

아시는 분들은 이미 알고 , 자료도 많으니 모르시는 분들은이것만도 7 박 8 일은 이야기 할 수 있으니 , Scrum 만 기억해 가세요

Page 38: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

개발 방법론

• 이것만 기억하세요요구 사항은 변한다… 변하는게 나쁜게 아니라 고객이 원한다…

결국은 사람이 답이다 .커뮤니케이션을 원할하게 하는 방향으로 변화

역할과 원칙 , 프로세스를 잊지 마라안그러면 망한다 . 애자일은 무슨~~

Page 39: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

4. 오픈소스 개발 전략

Page 40: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

오픈소스 개발전략은

에코 시스템

영어… !! 13 년이나 배웠잖아요요즘 한국개발자들 많이함

해보면 됨 !!

라이센스 . 특허 !!개인 정보 보호법

블로그 .. 메뉴얼… 예제…( 공모전에는 필요 없을지도… )

Page 41: 2014 공개소프트웨어 대회 소프트웨어 개발 트렌드의 변화

몇가지 팁• 오픈소스는 혜택이 많습니다 . (착한 분들이 많아서… )

Atlassian JIRA 무료 입니다 – 오픈소스는 (좋아요 .. 꼭쓰세요 )

클라우드가 필요하면 Microsoft 에서 스타트업용으로 일정기간 무료 제공 해준답니다 . BizSpark 인가 ? ( 연락처 : TBD)

정부 단체를 잘 이용하세요 .. (법무 , 세무 컨설팅… )