2. 발표자 소개
• 회원 13만명 자바스터디(www.javastudy.co.kr) 운영자.. (기억의 저편..)
• 천리안 자바 동호회 초대 시삽
• 벤처 개발자
• BEA 웹로직 기술 지원 엔지니어
• 오라클 장애 진단, 성능 튜닝
• NHN 잠깐
• 오라클 컨설턴트 (SOA,EAI,ALM,Enterprise 2.0)
• 오라클 아키텍트 (대용량 분산 시스템)
• MS APAC 클라우드 수석 아키텍트
• 프리렌서 (잘나가는 사장님)
• 지금은 Chief(Cheap?) 아키텍트 – 오픈 소스 기반 글로벌 분산 서버 구축
블로그 : http://bcho.tistory.com
이메일 : bw.cho@samsung.com
페이스북 ServerSideArchitectGroup
https://www.facebook.com/groups/serverside/
조대협 본명 조병욱
????
싸장님
8. 요즘 실리콘 밸리에서는…
잘하는 것 부터 시작해서 발전
대세는 스크립트 언어
스스로 공부,스스로 개발,내재화
소규모 조직 [10~20명]
대우 받는 개발자
클라우드 컴퓨팅
빠른 시장 진입,저비용,누구나 서비스
젊은 개발자 (한국은 접는 개발자)
협업
[SNS,오픈소스,GitHub]
CI to CD
유연한 고용 시장
메뚜기!!
3년 넘으면 바보
한국은 배신자
개발자의 변신은 무죄
새로운 능력..!! 잉여력STAR UP
12. 소프트웨어 개발 중심의 변화
시대별로 소프트웨어를 개발하는 이유가 어떻게 변화 했을까?
우리가 지금 쓰는 기술들은 왜?
인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대
서비스 사업자
대단한 님들!!
벤더
개발자!!
(스타트업,앱개발자)
당신도 할 수 있다
기술 변화의 주체
14. 시대별 기술의 변화
인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대
EJB, JAVA, SERVLET/JSP
들어는 보셨나요?
벤더 : “이게 최신 기술임!!.
교육 부터 다 해드림!!
나만 믿으세요” $$$
먹고 살 걱정 없음!!
Spring,Hibernate,MySQL
,Struts,Ruby On
Rails,PHP ..
서비스사 : 제품은 비쌈.
우리가 만든거 가져다 쓰
세요!! 대신 책임은 니꺼!
공부해야 함.. 압박!!
조금씩 먹고 살기 힘들어짐
(버틸만 함-그래도 대세는 있음)
JavaScript,
Cloud,node.js, Ruby
on Rails,NoSQL
개발자:어려워서 못 써
먹겠음. 차라리 만듬..!!
기술 변화도 심함
이제는 생존의 문제!!
명퇴가 눈앞에..
15. 시대별 기술 변화
인터넷,SNS의 시대엔터프라이즈 시대 모바일 시대
UNIX 서버
벤더 소프트웨어
X86 서버
오픈소스
클라우드
오픈소스
스크립트 언어!!
ORACLE MySQL NoSQL
API
HTML 5
안드로이드,IOS웹웹,4GL
쉽고 빠른 개발
기술의 홍수
대체제 성격
새로운 기술 흐름을
만드는 전환기
안정성,미션 크리티
컬 업무 위주
16. 시대별 기술자
• 왜 이런 현상이 생기는가? 쉬운 기술이 주목 받는 이유
스타트업. 앱 개발
조합 1.
기획자 창업
디자이너 - 기획자 여자 친구
개발자 – 기획자의 친구 (디자이너를 사랑함)
조합 2.
디자이너 창업
기획자 - 디자이너의 여자 친구
개발자 – 디자이너의 친구 (기획자를 사랑함)
개발자 1인 혼자 다 해야함 (클라이언트, 서버, 하드웨어 인프라)
배우기 쉬워야 함
돈 떨어지기전에 시장 출시해야함
빨리 배울 수 있어야함
18. 요구 되는 기술
빠른 출시, 빠른 업데이트가 필요
쉬운 기술 필요
낮은 비용
클라우드
컴퓨팅
스크립트
언어
운영 효율화
Devops
자동화
19. 클라우드 컴퓨팅
• 클라우드 컴퓨팅이 가져다준 변화
– 저비용으로 시작 가능
– 무제한적 리소스
– 지역/시간 제약에서 자유로워짐
– 쉽다. 하드웨어 인프라에 대한 작업이 없어짐
개발자가 인프라를 핸들링 가능
20. 클라우드 컴퓨팅
• IaaS (Infrastructure As A Service)도 어렵다.
• PaaS (Platform As A Service) 유행
• IaaS : VM (Linux, Windows box)를 만들어줌
• PaaS : 웹서버, DBMS를 깔아줌.
21. 클라우드 컴퓨팅
• 고려 사항
빠른 시장 진입
운영비 절감
초기 투자비 절감
유연한 자원 사용
(Auto Scale Out)
느려요
IO Performance
싸지 않아요
기존 솔루션이 안돌아요
장애가 납니다. 아주 잘!!
(멀티 데이타 센타 설계)
클라우드 컴퓨팅의 장점 설계시 고려 사항
22. Devops의 등장
Devops = Development + Operation (개발 + 운영)
개발과 운영 조직을 하나로 묶어서 원할한 의사 소통
빠른 반영, 빠른 피드백 반영 가능
23. 자동화
• 흔한(평범한) 개발 환경 시나리오
– 개발자가 아침에 출근해서
– 이클립스를 키고, 소스코드를 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 테스트까지 자동으로 완료
한다. 만약에 배포나 테스트가 실패하면, 이전 버전으로 자동 롤백한다.
24. 자동화
• 빌드 자동화, 테스트 자동화, 배포 자동화
DEV QA STAGE
테스트完
가상화 or 클라우드
필요할때만 전개
릴리즈
연계시스템
클라이언트
단말(모바일)
자동 빌드 배포 시스템
Python Fabric
Ruby Capistrano
mvn & RPM
리포지토리
rpm
28. 정보 습득 방식의 변화
벤더 교육 센터 제품 메뉴얼 책
책
온라인 메뉴얼
블로그
찾아보기
물어보기(영어로…)
중수
코드 까보기
고수
네이버?
29. 개발 방식의 변화
벤더가 시키는데로
솔루션에 포함된 예제 보고
책 예제 보고
진리를 깨우치고
물어보고
다른데 프로젝트 했던 SI 불러서
그럴 시간 없음….
Copy & Paste
Stack overflow
하는데 까정 해본다. 시간 없음
기술 검증 PoC,BMT
똑똑하면 소스 깐다.
Trial & Error
35. 개발 방법론
실용주의 방법론
구세주 등장!!
• 실용주의 방법론
• Erich Gamma, Joel Spolsky, Kent beck, Andrew Hunt
• Iterative & Incremental
• 애자일 기반
• 기존 방법론과 차이
• 요구 사항이 변화할 것을 가정
• 에러가 있을 것을 가정하여, 자주 테스트
• 협업과 커뮤니케이션
36. 개발 방법론
• 대표적인 개발 방법론
스크럼이 대세!!
관리자 입장에서는 예측 불가
조직에 맞게 바꿔서 쓰세요
http://agilescout.com/learn-more-agile-software-
development-methods-this-year/
41. 몇가지 팁
• 오픈소스는 혜택이 많습니다. (착한 분들이 많아서…)
Atlassian JIRA 무료 입니다 – 오픈소스는 (좋아요.. 꼭쓰세요)
클라우드가 필요하면 Microsoft에서 스타트업용으로 일정기간 무료 제
공 해준답니다. BizSpark 인가? (연락처 : TBD)
정부 단체를 잘 이용하세요.. (법무,세무 컨설팅…)