O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

IT 서비스 개발 15년 _ IT service 15 years

4.351 visualizações

Publicada em

IT 서비스 개발 15년에 대한, 연세대학교 강의 자료입니다. (3시간)
(자료에 적지 않은 내용이 많아서 자료만으로 이해가 안되는 부분이 있을 수 있습니다.)

Publicada em: Internet
  • Seja o primeiro a comentar

IT 서비스 개발 15년 _ IT service 15 years

  1. 1. For 연세대학교 IT 서비스개발, 15년 2015. 10. 6 다음커뮤니케이션, 카카오 김연지 docdo@hanmail.net
  2. 2. https://www.youtube.com/watch?v=uHCqm4HWWRU
  3. 3. 응답하라 2000
  4. 4. 응답하라 2000
  5. 5. 1900년대 서비스 구성 • Apache httpd / CGI • C library • Berkeley DB • shell(c shell, bash shell) / Perl • 기타 모듈들... Issue?
  6. 6. 2001, Java 의 사용 • J2SE 1.3 • Apache / Resin / Servlet • Oracle • IDE : VI + javac Issue?
  7. 7. 2002, M Step 2
  8. 8. 2002, 최초의 html 편집기
  9. 9. 편지지의 Standard (Animated GIF, flash) • 편지지 Frame
  10. 10. 포토메일 (full flash) • Flash 5, Action Script
  11. 11. 엔지니어의 가치 1 기술로부터 나오는 아이디어
  12. 12. 2004, SNS개발 2달의 기록
  13. 13. 2004, SNS개발 2달의 기록
  14. 14. • Httpd - Tomcat - Struts - Java / Velocity • Mysql, DB Middle Ware • Counter Server, Cache Server • Eclipse, CVS • Error Control : Uniq code Why? Apache Apache Apache Apache
  15. 15. Java Java JDK 1.0 (January 21, 1996) JDK 1.1 (February 19, 1997) J2SE 1.2 (December 8, 1998) J2SE 1.3 (May 8, 2000) J2SE 1.4 (February 6, 2002) J2SE 5.0 (September 30, 2004) Java SE 6 (December 11, 2006) Java SE 7 (July 28, 2011) Java SE 8 (March 18, 2014) Java SE 9 (July, 2016 (planned)) Eclipse - 3.0 (21 June 2004) - 3.1 (28 June 2005) Callisto 3.2 (30 June 2006) Europa 3.3 (29 June 2007) Ganymede 3.4 (25 June 2008) Galileo 3.5 (24 June 2009) Helios 3.6 (23 June 2010) Indigo 3.7 (22 June 2011) Juno 3.8/4.2 (27 June 2012) Kepler 4.3 (26 June 2013) Luna 4.4 (25 June 2014) Mars 4.5 (24 June 2015) Neon 4.6 (June 2016 (planned))
  16. 16. 낭만적인 엔지니어 ㅎ Android Apple pie 1.0 -> alpha (Sep 23, 2008) Banana bread 1.1 -> beta (Feb 9, 2009) Cupcake 1.5 (Apr 27, 2009) Donut 1.6 (Sep 15, 2009) Eclair 2.0~2.1 (Oct 26, 2009) Froyo 2.2~2.2.1 (May 20, 2010) Gingerbread 2.3~2.3.7 (Dec 6, 2010) Honeycomb 3.0/3.1/3.2 (Feb 22, 2011) Ice Cream Sandwich 4.0~4.0.4 (Oct 18, 2011) Jellybeans 4.1/4.1.1/4.1.2/4.2/4.2.1/4.2.2/4.3/4.3.1 (Jul 9, 2012) Kitkat 4.4~4.4.4 (Oct 31, 2013) Lollipop 5.0~5.1.1 (Nov 12, 2014) Marshmallow 6.0~ OS X Kodiak Public Beta (2000) Cheetah Mac OS X 10.0 (2001) Puma 10.1 Jaguar 10.2 (2002) Panther 10.3 (2003) Tiger 10.4 (2005) Leopard 10.5 (2007) Snow Leopard 10.6 (2009) Lion 10.7 (2011) Mountain Lion OS X 10.8 (2012) Mavericks 10.9 (2013) Yosemite 10.10 (2014) El Capitan 10.11 (2015)
  17. 17. 낭 만 적 인 엔 지 니 어
  18. 18. 2004, RSS웹리더 = 2*2
  19. 19. 2004, RSS웹리더 = 2*2 • XML (지금의 대세는 JSON) • 2명 2달 Why? 장애 페이지.JPG What?
  20. 20. 2005, M Step 3 • 확장성 : 개별홈 -> 일부 분리 • Berkeley DB -> Mysql • cgi -> java • Web - WAS Clustering / LB • MVC • 배포 : 무중단 & 순간롤백 & 유저별 순차배포 How?
  21. 21. 배포 • Version Control • Build • Deploy (opt:Reservation) • Rollback • Mornitoring/ Notification • Release Note • CI • CD • DevOps
  22. 22. Continuous Integration • 자동빌드 • 테스트 / 커버리지 • 품질 감시 • 배포 / 분산 빌드 • 리포팅 • DevOps
  23. 23. 2005, 파이 Flash 에디터 : 이미지 편집의 가이드가 됨
  24. 24. 2007, Roll (flex) 운명은? • https://www.youtube.com/watch?v=Iuw-LYK1IcI • RIA : Rich Internet Application • 웹이나 앱같은 사용성을 위한 • Flex, SilverLight, JavaFX
  25. 25. 2005 개발 프로젝트(파이) How to
  26. 26. 개발 프로젝트 How to For TEAM For Leader 먼저 보이고, 다음에 고쳐라 핵심을 봐라 매일 디플로이 하라 모든 것을 기록해라 완벽히 테스트하고, 평화를 얻어라 생각 먼저하고, 그 다음 행동해라 내가 유저고, 내가 책임자다 한 박자 숨을 돌려라 http://www.slideshare.net/docdo/2005-daum-devconfprojecthowtodocdo
  27. 27. 방법론 • Agile • XP : Pair Programming, TDD • Scrum, Sprint • LeanStartup : MVP, pivoting • Kanban • MoSCoW / DSDM • Prototyping
  28. 28. Easter Egg 낭만적인 엔지니어 http://pie.daum.net/p/flash/puzzle/mosaic.swf?puzzleId=13397
  29. 29. 요리하는 엔지니어 http://pie.daum.net/p/flash/puzzle/mosaic.swf?puzzleId=649398
  30. 30. 2006, QI / 모니터링 • 품질 관리 • 기준 : 응답속도 & 에러 페이지 뷰 • 모니터링 • 다수의 서버, 간편한 설치, 유연한 명령어 How? How? 그림/그래프가 아닌 지표/수치 리포팅은 안한 것과 같다
  31. 31. 에러관리(file server, 2010) 단 하나의 에러도 놓치지 않는다 Exception 을 ignore 하지 않는다 "Gardening" (에러 트래킹, 카운팅, 리포팅)
  32. 32. 2011, FrontErrorManager Fall in Love with Exceptions 텍스트 Logging Reporting Debugging http://devon.daum.net/2012/session/f3#.VhuUpBPtmko
  33. 33. FEM:Project 구성 Service Tool Tico.js DB Apache access log NOSQL data Mail Report Messenger Report PC / Mobile Debugging Tool Manual logging Try-Catch logging Event handler logging window.onerror logging
  34. 34. FEM:성과 100 75 50 25 150 200 250 1차배포 2차배포 3차배포 4차배포 5%
  35. 35. 엔지니어의 가치 2 문제를 발명하고 해결한다 발명 : 전에 없던 물건이나 방법 따위를 새로 생각하여 만들어 냄 정의 : 어떤 단어나 사물의 뜻을 명백히 밝혀 규정함 발견 : 미처 보지 못했던 사물이나 알려지지 않은 사실을 찾아냄
  36. 36. Web2.0 / Mobile Gmail AJAX 2004 2005 2007 2009 2010 2011 2012 Google Maps [국내최초] DaumMail AJAX ——- M Step 4 iPhone 미국출시 AJAX 용어등장 Gmail Mobile WebApp iPhone 한국출시 HTML5 발표 [국내최초] DaumMail Mobile WebApp KakaoTalk Mypeople Web2.0 용어등장 2008 Android 마켓오픈
  37. 37. 브라우저 위에서 Tool서비스 형태 구동위치 WebApp , HybridApp Web App Page Tool 브라우저 위에서 독립적 설치 디바이스 기능 사용 WebApp HybridApp Page Tool 독립적 설치 디바이스 기능 사용 Responsive Web 해상도
  38. 38. 2013, SolMail & SolCalendar • Global : 세계가 내 손 안에, 중국의 재빠름... • i18n • AWS, CDN • 에러 : 쌓았다가 리포팅, 스토어 모니터링
  39. 39. 2015, M Step 5 • Microservice Architecture
  40. 40. 엔지니어의 가치 3 계속 배운다=지치지 않는다 지치지 않으려면?
  41. 41. • Polyglot • Full Stack Engineer • Microservice Architecture • Cloud • Big Data / 분석 / 분산처리 • API / OpenSource • Storage / DB / 캐싱 / 큐 • 보안 • 성능 튜닝 / 트래픽 컨트롤 / LoadBalancing • 검색 • 아키텍쳐 • On Demand • O2O, IoT Tech 핫이슈 스테디셀러 IT 핫이슈
  42. 42. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Assembly, Ruby, Delphi, VB, Pascal, Swift, MATLAB, PL/SQL, R, COBOL, SAS, Fortran, Ada, Scratch, D, ABAP, Scala, Dart, Lisp, OpenEdge, Lua, F#, Prolog, Groovy, Logo, Transact-SQL, Erlang, Haskell, RPG, LabVIEW, Forth, FoxPro, Scheme, Go, ActionScript, Awk, ML, VHDL, Ladder Logic, Rust
  43. 43. • java : spring(spring boot 등) https://github.com/akullpp/awesome-java • python : django, flask https://github.com/vinta/awesome-python • php : nette, code igniter, zend • ruby : rails, sinatra • js : angular.js, backborn.js, react.js, ember.js, node.js, express.js • scalar : play, spray.io, lift • grooby : grails(jvm에서 구동)
  44. 44. Frontend Framework 검토이슈 backborn, angular, ember, react, knockout • MV* architecture: MV* architecture를 제공하는가? • routing: URL에 따른 Action 수행이 가능한가? • two-way bindings: 모델 <-> 뷰 양방향 데이터 바인딩 sync 기능을 제공하는가? • templating: 성능이 좋은 템플릿을 사용하는가? • history: 북마크, 뒤로/앞으로가기 가능한가? • learning curve: 배우기 쉬운가? • local storage: 로컬스토리지 API를 지원하는가? • documenting: 문서화가 잘 되어 있는가? • size: 프레임워크 파일 사이즈 • unit test: 테스트에 문제 없나? • lib dependency: 의존성 라이브러리가 얼마나 되나? • framework dependency: 반드시 규약에 따라 코드가 작성되어 하는등 프레임워크에 대한 의존도가 높은가? • cross browsing: 다양한 브라우저를 지원하는가? • 비젼: 인기도는? 앞으로 롱런할수 있나? 하위호환지원가 능할까? • co-working: 디자이너, 마크업, 개발자가 각각 작업하는 데 문제가 없나? • model collection api: Model을 정렬, 필터링할 수 있는 강력한 API를 제공하는가
  45. 45. 엔지니어의 가치 4 목적을 생각한다
  46. 46. 책 Clean Code Robert C. Martin Lean Startup Eric Ries 생각에 관한 생각 Daniel Kahneman
  47. 47. 숙제 • 요즘 사용하는 서비스 하나를 골라서, 아키텍쳐를 설계한다 • UML 시도 좋음
  48. 48.

×