SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
For 연세대학교
IT 서비스개발, 15년
2015. 10. 6
다음커뮤니케이션, 카카오
김연지
docdo@hanmail.net
https://www.youtube.com/watch?v=uHCqm4HWWRU
응답하라 2000
응답하라 2000
1900년대 서비스 구성
• Apache httpd / CGI
• C library
• Berkeley DB
• shell(c shell, bash shell) / Perl
• 기타 모듈들...
Issue?
2001, Java 의 사용
• J2SE 1.3
• Apache / Resin / Servlet
• Oracle
• IDE : VI + javac
Issue?
2002,
M Step 2
2002, 최초의 html 편집기
편지지의 Standard
(Animated GIF, flash)
• 편지지 Frame
IT 서비스 개발 15년 _ IT service 15 years
포토메일 (full flash)
• Flash 5, Action Script
IT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 years
엔지니어의 가치 1
기술로부터 나오는 아이디어
2004, SNS개발 2달의 기록
2004, SNS개발 2달의 기록
• Httpd - Tomcat - Struts - Java / Velocity
• Mysql, DB Middle Ware
• Counter Server, Cache Server
• Eclipse, CVS
• Error Control : Uniq code Why?
Apache Apache Apache Apache
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))
낭만적인 엔지니어 ㅎ
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)
낭
만
적
인
엔
지
니
어
IT 서비스 개발 15년 _ IT service 15 years
2004, RSS웹리더 = 2*2
2004, RSS웹리더 = 2*2
• XML (지금의 대세는 JSON)
• 2명 2달
Why?
장애 페이지.JPG
What?
2005, M Step 3
• 확장성 : 개별홈 -> 일부 분리
• Berkeley DB -> Mysql
• cgi -> java
• Web - WAS Clustering / LB
• MVC
• 배포 : 무중단 & 순간롤백 & 유저별 순차배포
How?
배포
• Version Control
• Build
• Deploy (opt:Reservation)
• Rollback
• Mornitoring/ Notification
• Release Note
• CI
• CD
• DevOps
Continuous Integration
• 자동빌드
• 테스트 / 커버리지
• 품질 감시
• 배포 / 분산 빌드
• 리포팅
• DevOps
2005, 파이
Flash 에디터 : 이미지 편집의 가이드가 됨
2007, Roll (flex)
운명은?
• https://www.youtube.com/watch?v=Iuw-LYK1IcI
• RIA : Rich Internet Application
• 웹이나 앱같은 사용성을 위한
• Flex, SilverLight, JavaFX
2005
개발 프로젝트(파이) How to
개발 프로젝트 How to
For TEAM For Leader
먼저 보이고, 다음에 고쳐라 핵심을 봐라
매일 디플로이 하라 모든 것을 기록해라
완벽히 테스트하고, 평화를 얻어라 생각 먼저하고, 그 다음 행동해라
내가 유저고, 내가 책임자다 한 박자 숨을 돌려라
http://www.slideshare.net/docdo/2005-daum-devconfprojecthowtodocdo
방법론
• Agile
• XP : Pair Programming, TDD
• Scrum, Sprint
• LeanStartup : MVP, pivoting
• Kanban
• MoSCoW / DSDM
• Prototyping
Easter Egg
낭만적인
엔지니어
http://pie.daum.net/p/flash/puzzle/mosaic.swf?puzzleId=13397
요리하는
엔지니어
http://pie.daum.net/p/flash/puzzle/mosaic.swf?puzzleId=649398
2006, QI / 모니터링
• 품질 관리
• 기준 : 응답속도 & 에러 페이지 뷰
• 모니터링
• 다수의 서버, 간편한 설치, 유연한 명령어
How?
How?
그림/그래프가 아닌 지표/수치 리포팅은 안한 것과 같다
에러관리(file server, 2010)
단 하나의 에러도 놓치지 않는다
Exception 을 ignore 하지 않는다
"Gardening"
(에러 트래킹, 카운팅, 리포팅)
2011, FrontErrorManager
Fall in Love with Exceptions
텍스트
Logging Reporting Debugging
http://devon.daum.net/2012/session/f3#.VhuUpBPtmko
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
FEM:성과
100
75
50
25
150
200
250
1차배포
2차배포
3차배포
4차배포
5%
엔지니어의 가치 2
문제를 발명하고 해결한다
발명 : 전에 없던 물건이나 방법 따위를 새로 생각하여 만들어 냄
정의 : 어떤 단어나 사물의 뜻을 명백히 밝혀 규정함
발견 : 미처 보지 못했던 사물이나 알려지지 않은 사실을 찾아냄
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
마켓오픈
브라우저 위에서
Tool서비스 형태
구동위치
WebApp , HybridApp
Web App
Page Tool
브라우저 위에서 독립적 설치
디바이스 기능 사용
WebApp HybridApp
Page
Tool
독립적 설치
디바이스 기능 사용
Responsive Web 해상도
2013, SolMail & SolCalendar
• Global : 세계가 내 손 안에, 중국의 재빠름...
• i18n
• AWS, CDN
• 에러 : 쌓았다가 리포팅, 스토어 모니터링
2015, M Step 5
• Microservice Architecture
엔지니어의 가치 3
계속 배운다=지치지 않는다
지치지 않으려면?
• Polyglot
• Full Stack Engineer
• Microservice Architecture
• Cloud
• Big Data / 분석 / 분산처리
• API / OpenSource
• Storage / DB / 캐싱 / 큐
• 보안
• 성능 튜닝 / 트래픽 컨트롤 / LoadBalancing
• 검색
• 아키텍쳐
• On Demand
• O2O, IoT
Tech 핫이슈 스테디셀러 IT 핫이슈
IT 서비스 개발 15년 _ IT service 15 years
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
• 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에서 구동)
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를 제공하는가
엔지니어의 가치 4
목적을 생각한다
책
Clean Code
Robert C. Martin
Lean Startup
Eric Ries
생각에 관한 생각
Daniel Kahneman
숙제
• 요즘 사용하는 서비스 하나를 골라서, 아키텍쳐를 설계한다
• UML 시도 좋음
끝

Contenu connexe

Tendances

주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기sung yong jung
 
Swift package manager
Swift package managerSwift package manager
Swift package manager성관 윤
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기Jay Park
 
자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능Dexter Jung
 
2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기Jay Park
 
[C5]deview 2012 nodejs
[C5]deview 2012 nodejs[C5]deview 2012 nodejs
[C5]deview 2012 nodejsNAVER D2
 
2020년 11월 28일 개발자 이야기
2020년 11월 28일 개발자 이야기2020년 11월 28일 개발자 이야기
2020년 11월 28일 개발자 이야기Jay Park
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 

Tendances (8)

주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기주니어 개발자의 개인프로젝트 개발기
주니어 개발자의 개인프로젝트 개발기
 
Swift package manager
Swift package managerSwift package manager
Swift package manager
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기
 
자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능자바_웹_개발자를_위한_c#_핵심_기능
자바_웹_개발자를_위한_c#_핵심_기능
 
2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기2020년 10월 17일 개발자 이야기
2020년 10월 17일 개발자 이야기
 
[C5]deview 2012 nodejs
[C5]deview 2012 nodejs[C5]deview 2012 nodejs
[C5]deview 2012 nodejs
 
2020년 11월 28일 개발자 이야기
2020년 11월 28일 개발자 이야기2020년 11월 28일 개발자 이야기
2020년 11월 28일 개발자 이야기
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 

En vedette

(194)(long) nuevo análisis de ‘la gran recesión’
(194)(long) nuevo análisis de ‘la gran recesión’(194)(long) nuevo análisis de ‘la gran recesión’
(194)(long) nuevo análisis de ‘la gran recesión’ManfredNolte
 
En defensa del acusado
En defensa del acusadoEn defensa del acusado
En defensa del acusadoManfredNolte
 
Deflación encubierta(1590)
Deflación encubierta(1590)Deflación encubierta(1590)
Deflación encubierta(1590)ManfredNolte
 
Performance & Evaluation Service
Performance & Evaluation ServicePerformance & Evaluation Service
Performance & Evaluation ServiceFizran Mashoor
 
Grafico semanal del ibex 35 para el 04 07 2013
Grafico semanal del ibex 35 para el 04 07 2013Grafico semanal del ibex 35 para el 04 07 2013
Grafico semanal del ibex 35 para el 04 07 2013Experiencia Trading
 
(154)(long) democracia
(154)(long) democracia(154)(long) democracia
(154)(long) democraciaManfredNolte
 
(197)long la cumbre de bilbao
(197)long la  cumbre de bilbao(197)long la  cumbre de bilbao
(197)long la cumbre de bilbaoManfredNolte
 
Utviklingstøttende behandlingsmetoder, metaforer og narrativer
Utviklingstøttende behandlingsmetoder, metaforer og narrativerUtviklingstøttende behandlingsmetoder, metaforer og narrativer
Utviklingstøttende behandlingsmetoder, metaforer og narrativerSvein Øverland
 
Desahucios y regulación bancaria
Desahucios y regulación bancariaDesahucios y regulación bancaria
Desahucios y regulación bancariaManfredNolte
 

En vedette (18)

(194)(long) nuevo análisis de ‘la gran recesión’
(194)(long) nuevo análisis de ‘la gran recesión’(194)(long) nuevo análisis de ‘la gran recesión’
(194)(long) nuevo análisis de ‘la gran recesión’
 
En defensa del acusado
En defensa del acusadoEn defensa del acusado
En defensa del acusado
 
Deflación encubierta(1590)
Deflación encubierta(1590)Deflación encubierta(1590)
Deflación encubierta(1590)
 
Performance & Evaluation Service
Performance & Evaluation ServicePerformance & Evaluation Service
Performance & Evaluation Service
 
Oque é blog?
Oque é blog?Oque é blog?
Oque é blog?
 
Grafico semanal del ibex 35 para el 04 07 2013
Grafico semanal del ibex 35 para el 04 07 2013Grafico semanal del ibex 35 para el 04 07 2013
Grafico semanal del ibex 35 para el 04 07 2013
 
(154)(long) democracia
(154)(long) democracia(154)(long) democracia
(154)(long) democracia
 
(197)long la cumbre de bilbao
(197)long la  cumbre de bilbao(197)long la  cumbre de bilbao
(197)long la cumbre de bilbao
 
Caso Scorpion
Caso ScorpionCaso Scorpion
Caso Scorpion
 
Utviklingstøttende behandlingsmetoder, metaforer og narrativer
Utviklingstøttende behandlingsmetoder, metaforer og narrativerUtviklingstøttende behandlingsmetoder, metaforer og narrativer
Utviklingstøttende behandlingsmetoder, metaforer og narrativer
 
Bsc it sem 2
Bsc it sem 2Bsc it sem 2
Bsc it sem 2
 
Desahucios y regulación bancaria
Desahucios y regulación bancariaDesahucios y regulación bancaria
Desahucios y regulación bancaria
 
PGGM hall presentation
PGGM hall presentationPGGM hall presentation
PGGM hall presentation
 
Selvskading hos gutter
Selvskading hos gutterSelvskading hos gutter
Selvskading hos gutter
 
Radar Econômico - Semana 38
Radar Econômico - Semana 38Radar Econômico - Semana 38
Radar Econômico - Semana 38
 
Expectativas de Mercado - Semana 34
Expectativas de Mercado - Semana 34Expectativas de Mercado - Semana 34
Expectativas de Mercado - Semana 34
 
Expectativas de Mercado - Semana 37
Expectativas de Mercado - Semana 37Expectativas de Mercado - Semana 37
Expectativas de Mercado - Semana 37
 
Embraer - 2016
Embraer - 2016Embraer - 2016
Embraer - 2016
 

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

AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리Jay Park
 
올챙이로 살펴보는 개발툴과 Cloud
올챙이로 살펴보는 개발툴과 Cloud올챙이로 살펴보는 개발툴과 Cloud
올챙이로 살펴보는 개발툴과 Cloudcho hyun jong
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토Goonoo Kim
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼Kenu, GwangNam Heo
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래cho hyun jong
 
2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기Jay Park
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack CommunityOpen Source Consulting
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
2020년 11월 14일 개발자 이야기
2020년 11월 14일 개발자 이야기2020년 11월 14일 개발자 이야기
2020년 11월 14일 개발자 이야기Jay Park
 
Introduction to Golang v2
Introduction to Golang v2Introduction to Golang v2
Introduction to Golang v2Hyejong
 
Golang Restful 서버 개발기
Golang Restful 서버 개발기Golang Restful 서버 개발기
Golang Restful 서버 개발기Hyejong
 
Java 8 & Beyond
Java 8 & BeyondJava 8 & Beyond
Java 8 & BeyondJay Lee
 
2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기Jay Park
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
2020년 8월 1일 개발 이야기 정리
 2020년 8월 1일 개발 이야기 정리 2020년 8월 1일 개발 이야기 정리
2020년 8월 1일 개발 이야기 정리Jay Park
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기John Kim
 

Similaire à IT 서비스 개발 15년 _ IT service 15 years (20)

AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리2020년 5월 16일 개발 이야기 정리
2020년 5월 16일 개발 이야기 정리
 
올챙이로 살펴보는 개발툴과 Cloud
올챙이로 살펴보는 개발툴과 Cloud올챙이로 살펴보는 개발툴과 Cloud
올챙이로 살펴보는 개발툴과 Cloud
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 
2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기2021년 3월 20일 개발자 이야기
2021년 3월 20일 개발자 이야기
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
2020년 11월 14일 개발자 이야기
2020년 11월 14일 개발자 이야기2020년 11월 14일 개발자 이야기
2020년 11월 14일 개발자 이야기
 
Introduction to Golang v2
Introduction to Golang v2Introduction to Golang v2
Introduction to Golang v2
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
Golang Restful 서버 개발기
Golang Restful 서버 개발기Golang Restful 서버 개발기
Golang Restful 서버 개발기
 
Java 8 & Beyond
Java 8 & BeyondJava 8 & Beyond
Java 8 & Beyond
 
2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기2021년 3월 27일 개발자 이야기
2021년 3월 27일 개발자 이야기
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
2020년 8월 1일 개발 이야기 정리
 2020년 8월 1일 개발 이야기 정리 2020년 8월 1일 개발 이야기 정리
2020년 8월 1일 개발 이야기 정리
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
 

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

  • 1. For 연세대학교 IT 서비스개발, 15년 2015. 10. 6 다음커뮤니케이션, 카카오 김연지 docdo@hanmail.net
  • 5. 1900년대 서비스 구성 • Apache httpd / CGI • C library • Berkeley DB • shell(c shell, bash shell) / Perl • 기타 모듈들... Issue?
  • 6. 2001, Java 의 사용 • J2SE 1.3 • Apache / Resin / Servlet • Oracle • IDE : VI + javac Issue?
  • 9. 편지지의 Standard (Animated GIF, flash) • 편지지 Frame
  • 11. 포토메일 (full flash) • Flash 5, Action Script
  • 17. • Httpd - Tomcat - Struts - Java / Velocity • Mysql, DB Middle Ware • Counter Server, Cache Server • Eclipse, CVS • Error Control : Uniq code Why? Apache Apache Apache Apache
  • 18. 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))
  • 19. 낭만적인 엔지니어 ㅎ 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)
  • 23. 2004, RSS웹리더 = 2*2 • XML (지금의 대세는 JSON) • 2명 2달 Why? 장애 페이지.JPG What?
  • 24. 2005, M Step 3 • 확장성 : 개별홈 -> 일부 분리 • Berkeley DB -> Mysql • cgi -> java • Web - WAS Clustering / LB • MVC • 배포 : 무중단 & 순간롤백 & 유저별 순차배포 How?
  • 25. 배포 • Version Control • Build • Deploy (opt:Reservation) • Rollback • Mornitoring/ Notification • Release Note • CI • CD • DevOps
  • 26. Continuous Integration • 자동빌드 • 테스트 / 커버리지 • 품질 감시 • 배포 / 분산 빌드 • 리포팅 • DevOps
  • 27. 2005, 파이 Flash 에디터 : 이미지 편집의 가이드가 됨
  • 28. 2007, Roll (flex) 운명은? • https://www.youtube.com/watch?v=Iuw-LYK1IcI • RIA : Rich Internet Application • 웹이나 앱같은 사용성을 위한 • Flex, SilverLight, JavaFX
  • 30. 개발 프로젝트 How to For TEAM For Leader 먼저 보이고, 다음에 고쳐라 핵심을 봐라 매일 디플로이 하라 모든 것을 기록해라 완벽히 테스트하고, 평화를 얻어라 생각 먼저하고, 그 다음 행동해라 내가 유저고, 내가 책임자다 한 박자 숨을 돌려라 http://www.slideshare.net/docdo/2005-daum-devconfprojecthowtodocdo
  • 31. 방법론 • Agile • XP : Pair Programming, TDD • Scrum, Sprint • LeanStartup : MVP, pivoting • Kanban • MoSCoW / DSDM • Prototyping
  • 34. 2006, QI / 모니터링 • 품질 관리 • 기준 : 응답속도 & 에러 페이지 뷰 • 모니터링 • 다수의 서버, 간편한 설치, 유연한 명령어 How? How? 그림/그래프가 아닌 지표/수치 리포팅은 안한 것과 같다
  • 35. 에러관리(file server, 2010) 단 하나의 에러도 놓치지 않는다 Exception 을 ignore 하지 않는다 "Gardening" (에러 트래킹, 카운팅, 리포팅)
  • 36. 2011, FrontErrorManager Fall in Love with Exceptions 텍스트 Logging Reporting Debugging http://devon.daum.net/2012/session/f3#.VhuUpBPtmko
  • 37. 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
  • 39. 엔지니어의 가치 2 문제를 발명하고 해결한다 발명 : 전에 없던 물건이나 방법 따위를 새로 생각하여 만들어 냄 정의 : 어떤 단어나 사물의 뜻을 명백히 밝혀 규정함 발견 : 미처 보지 못했던 사물이나 알려지지 않은 사실을 찾아냄
  • 40. 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 마켓오픈
  • 41. 브라우저 위에서 Tool서비스 형태 구동위치 WebApp , HybridApp Web App Page Tool 브라우저 위에서 독립적 설치 디바이스 기능 사용 WebApp HybridApp Page Tool 독립적 설치 디바이스 기능 사용 Responsive Web 해상도
  • 42. 2013, SolMail & SolCalendar • Global : 세계가 내 손 안에, 중국의 재빠름... • i18n • AWS, CDN • 에러 : 쌓았다가 리포팅, 스토어 모니터링
  • 43. 2015, M Step 5 • Microservice Architecture
  • 44. 엔지니어의 가치 3 계속 배운다=지치지 않는다 지치지 않으려면?
  • 45. • Polyglot • Full Stack Engineer • Microservice Architecture • Cloud • Big Data / 분석 / 분산처리 • API / OpenSource • Storage / DB / 캐싱 / 큐 • 보안 • 성능 튜닝 / 트래픽 컨트롤 / LoadBalancing • 검색 • 아키텍쳐 • On Demand • O2O, IoT Tech 핫이슈 스테디셀러 IT 핫이슈
  • 47. 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
  • 48. • 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에서 구동)
  • 49. 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를 제공하는가
  • 51. 책 Clean Code Robert C. Martin Lean Startup Eric Ries 생각에 관한 생각 Daniel Kahneman
  • 52. 숙제 • 요즘 사용하는 서비스 하나를 골라서, 아키텍쳐를 설계한다 • UML 시도 좋음
  • 53.