SlideShare uma empresa Scribd logo
1 de 12
레인 시간 구분 강사 제목 19:00  ~ 21:00 UI 김정범 대리 웹표준이냐 속도냐 (UI 개발자의 고뇌 ) RIA 오창훈 대리 GS 이숍만의  RIA  개발활용팁과 노하우 프로젝트 김현 과장 효율적인 유지보수를 위한 개발 및 관리 프레임워크 추경돈 대리 Spring Framework  도입 사례 SE 김풍주 대리 웹 표준스펙 살펴보기  ( 명세서에 살고 명세서에 죽다 ) 쇼핑몰 트렌드 초청 김태진 쇼핑몰 컨설턴트가 바라본 쇼핑몰 트렌드 코드관리 허광남 과장 레거시 코드 관리 전략  ( 남이 짠 코드 빨리 알아보기 ) SQL 튜닝 박광일 대리 웹개발자의 약한고리  SQL  뛰어넘기
효율적인 유지보수를 위한 개발 및 관리 김현
1.  유지보수의 문제들 2.  자바스크립트의 분리 3. BUSINESS  LAYER  와  PRESENTATION LAYER 의 분리 4.  작은 단위의 개발 및 관리 5.  적용 예
1.  유지보수의 문제들 무엇이 문제인가 ? - 1 만라인 이상의 소스들 -  역사와 사연이 내포된 소스들 -  추가 ,  수정 어려움  -  테스트 할 수 없는 코드들  -  시간은 짧고 할일은 많다 어떻게하면 추가 수정이 쉽고 테스트 가능한 소스로 바꿀것인가 ?
2.  자바스크립트의 분리 <script language=javascript src=&quot;mootools_core.v1.00.js&quot;></script> <script type=&quot;text/javascript&quot;> var Pingpong = new Class({ ppid : &quot;&quot;,  ppname : &quot;&quot;, initialize: function(ppid,ppname){ this.ppid = ppid; this.ppname = ppname;  }, getPpid : function(){ return this.ppid;  },  getPpname : function(){ return this.ppname;  }, getHello : function(str){ return (this.ppid == str)?  &quot; 안녕하세요 &quot;+this.ppname+&quot; 님 &quot; : &quot; 누구세요 ?&quot;;  }  }) </script> <script type=&quot;text/javascript&quot;> var pp = new Pingpong( “ <%=ppid%>&quot;,  “ <%=ppname%>&quot;); alert(pp.getPpid() + &quot; : &quot; + pp.getPpname()+ &quot; : &quot;+ pp.getHello(&quot;jack&quot;)); </script> <script type=&quot;text/javascript&quot;> function getHello(str){ return (str==&quot;<%=ppid%>&quot;)?  &quot; 안녕 &quot;+<%=ppname%>+&quot; 님 &quot; : &quot; 누구 ?&quot;;  } alert(&quot;<%=ppid%> : <%=ppname%> 님  : &quot;+getHello(&quot;jack&quot;)); </script> 변경시 장점 - js  수정은  js 파일에서 하면 된다 . -  소스의 가독성 ,  이해도가 향상된다 . 예제 js 파일로 분리
3. BUSINESS LAYER  와  PRESENTATION LAYER 의 분리 왜 분리해야 하는가 ?  -  업무의 분업화 - VIEW 단의 다변화 rss, flash, jsp, openAPI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
4.  작은 단위의 개발  이렇게 하면 뭐가 좋은가 ? -  변경의 최소화 ,  변경에 따른 영향 최소화 ,  -  소스의 이해도가 높다 .  -  테스트 가능 모든 구성 요소의 컴포넌트화 컴포넌트의 특징 -  실행코드 기반 -  명세서 -  표준화 -  패키지화 -  배포가능 컴포넌트란 ?  - ' 독립적인 단위기능을 수행하는    소프트웨어 모듈 ’
4.  작은 단위의 개발 및 관리 <%@ page contentType=&quot;text/html; charset=EUC-KR&quot; pageEncoding=&quot;EUC-KR&quot;%> <jsp:include page=&quot;/jsp/inc_header.jsp&quot;/> <div id=&quot;body_lay&quot;> <div id=&quot;layCon&quot;> <!-- LEFT --> <div id=&quot;layL&quot;> <jsp:include page=&quot;/help/main/helpLeft.gs&quot;> <jsp:param name=&quot;submenu&quot; value=&quot;3&quot;/> </jsp:include> </div> <!-- //LEFT --> <!-- contents --> <div id=&quot;layR&quot;> <!--  내용 입력 부분  =============================== --> <jsp:include page=&quot;/help/main/faqList.gs&quot;/> <!-- // 내용 입력 부분  =============================== --> </div> <!-- //contents --> </div> <jsp:include page=&quot;/mypp/mymain/quickMenu.gs&quot; /> </div> <!-- //body --> <jsp:include page=&quot;/jsp/inc_footer.jsp&quot;/> 어떤 기술을 썼느냐가 중요한게 아니고 어떤 철학으로 했느냐가 중요하지 않을까 ... 특별한 기술도 아니고 이게 뭐야 ??? include  한게 다야 ? 그럼 우린 이미 다했네 ^^ 예제
5.  적용 예 1.  검색페이지 검색결과 카테고리 베스트 이숍 TV 이숍 핑퐁 이스토어 보험몰 관련매장 기획전 적용 전  : 4300 라인의 소스로 분석이 난해하고 수정 ,  추가가 어려웠다 .  적용 후  :  전체적인 소스의 양은 줄지 않았으나 소스의 이해가 쉽고  해당 부분만 수정하면 되며 필요시 서비스를 제거 및 추가가 용이하다 .  말이 쉽지 실제 해봐요  기존에 버무려져 있는 소스 분리해야죠  하다보면 중복이 발생하기도 하고 서로 데이터를 주고 받아야 할때도 있고 그러다 보면 복잡도가 증가하기도 하고  .... 과연 이게 옳을까 라는 고민 많이 됩니다 . 뭐야 별거 없네 쉽게 적용할 수 있겠는걸
5.  적용 예 1.686 서버타임 10.276 소요시간 2960067 전체 페이지 사이즈 * HTTPWATCH 를 이용하여 측정하였음 2.  메인페이지 컴포넌트화 하고 작은 단위로 개발했을 때 어떻게 활용할 수 있는가 ?
5.  적용 예 주요  RESOURCE 문제구간분석 해결안  : ajax 로 처리 ~~~ resource gif 283 jpg 70 JPG 3 .js 18 swf 10 xml 13 png 6 css 9 dwr 3 total 415 서버 네트워크 클라이언트 주요 문제구간 service
quality 는 나쁘나 속도가 빠른 개발자 일 시키면 순식간에  끝냈는데 결과물까지 예술인 슈퍼 개발자 quality 도 낮고  생산성도 낮은  개발자 quality 는 높으나 작업 시간이 오래 걸리는 개발자 Speed Quality 어떤 개발자가 되고 싶으십니까 ? 절대고수 독불장군 돌쇠 ?

Mais conteúdo relacionado

Mais procurados

깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)Jay Park
 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1Tylor Shin
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기복연 이
 
리액트 적용기
리액트 적용기리액트 적용기
리액트 적용기Hun Yong Song
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵중선 곽
 
Golang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainNAVER Engineering
 
[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기NAVER D2
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSNAVER D2
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막Jay Park
 
이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께지수 윤
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍Lee Ji Eun
 

Mais procurados (20)

깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)깨끗한 코드 (클린 코드, Clean Code)
깨끗한 코드 (클린 코드, Clean Code)
 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1
 
React vac pattern
React vac patternReact vac pattern
React vac pattern
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
 
리액트 적용기
리액트 적용기리액트 적용기
리액트 적용기
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵
 
Golang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchain
 
[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기[143] 모바일 혈액진단기기 개발 삽질기
[143] 모바일 혈액진단기기 개발 삽질기
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJS
 
피니엔진
피니엔진피니엔진
피니엔진
 
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
 
이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 

Destaque

Evolving an Enterprise Architecture Practice - Spring 2015 v02 Final
Evolving an Enterprise Architecture Practice - Spring 2015 v02 FinalEvolving an Enterprise Architecture Practice - Spring 2015 v02 Final
Evolving an Enterprise Architecture Practice - Spring 2015 v02 FinalJerry Sayre
 
Predstavitev zbornika mkk v "rast"
Predstavitev zbornika mkk v "rast"Predstavitev zbornika mkk v "rast"
Predstavitev zbornika mkk v "rast"masha000
 
03 HappyDev-lite-2015 autumn. Владимир Сало-Фоот. Исследование в дизайн-про...
03 HappyDev-lite-2015 autumn.  Владимир Сало-Фоот. Исследование в дизайн-про...03 HappyDev-lite-2015 autumn.  Владимир Сало-Фоот. Исследование в дизайн-про...
03 HappyDev-lite-2015 autumn. Владимир Сало-Фоот. Исследование в дизайн-про...HappyDev-lite
 
хііі. паркові скульптури
хііі. паркові скульптурихііі. паркові скульптури
хііі. паркові скульптуриOlga Lesenko
 
Maze통신교육 spi통신
Maze통신교육   spi통신Maze통신교육   spi통신
Maze통신교육 spi통신geonhee kim
 
Akdeniz havzası hakkında_genel_bir_değerlendirme_ali_külah
Akdeniz havzası hakkında_genel_bir_değerlendirme_ali_külahAkdeniz havzası hakkında_genel_bir_değerlendirme_ali_külah
Akdeniz havzası hakkında_genel_bir_değerlendirme_ali_külahAli KÜLAH
 
창의적 발상 김경서
창의적 발상 김경서창의적 발상 김경서
창의적 발상 김경서경서 김
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rusMaxim Shaptala
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with SpringJoshua Long
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
 
Design Portfolio- Kalyle
Design Portfolio- KalyleDesign Portfolio- Kalyle
Design Portfolio- KalyleKalyle Samuel
 

Destaque (13)

Evolving an Enterprise Architecture Practice - Spring 2015 v02 Final
Evolving an Enterprise Architecture Practice - Spring 2015 v02 FinalEvolving an Enterprise Architecture Practice - Spring 2015 v02 Final
Evolving an Enterprise Architecture Practice - Spring 2015 v02 Final
 
Predstavitev zbornika mkk v "rast"
Predstavitev zbornika mkk v "rast"Predstavitev zbornika mkk v "rast"
Predstavitev zbornika mkk v "rast"
 
achievement-2 (2)
achievement-2 (2)achievement-2 (2)
achievement-2 (2)
 
03 HappyDev-lite-2015 autumn. Владимир Сало-Фоот. Исследование в дизайн-про...
03 HappyDev-lite-2015 autumn.  Владимир Сало-Фоот. Исследование в дизайн-про...03 HappyDev-lite-2015 autumn.  Владимир Сало-Фоот. Исследование в дизайн-про...
03 HappyDev-lite-2015 autumn. Владимир Сало-Фоот. Исследование в дизайн-про...
 
ALL LOGOS
ALL LOGOSALL LOGOS
ALL LOGOS
 
хііі. паркові скульптури
хііі. паркові скульптурихііі. паркові скульптури
хііі. паркові скульптури
 
Maze통신교육 spi통신
Maze통신교육   spi통신Maze통신교육   spi통신
Maze통신교육 spi통신
 
Akdeniz havzası hakkında_genel_bir_değerlendirme_ali_külah
Akdeniz havzası hakkında_genel_bir_değerlendirme_ali_külahAkdeniz havzası hakkında_genel_bir_değerlendirme_ali_külah
Akdeniz havzası hakkında_genel_bir_değerlendirme_ali_külah
 
창의적 발상 김경서
창의적 발상 김경서창의적 발상 김경서
창의적 발상 김경서
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계
 
Design Portfolio- Kalyle
Design Portfolio- KalyleDesign Portfolio- Kalyle
Design Portfolio- Kalyle
 

Semelhante a ecdevday3 효율적인 유지보수를 위한 개발 및 관리

레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드Sukjoon Kim
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practicedonghoonlee18659041
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고embian
 
10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기Minyoung Jeong
 
HTML5 스펙 소개
HTML5 스펙 소개HTML5 스펙 소개
HTML5 스펙 소개Toby Yun
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)sung yong jung
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나JeongHwan Kim
 
테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상SangIn Choung
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세규동 최규동
 
ASP.NET 4 New Features
ASP.NET 4 New FeaturesASP.NET 4 New Features
ASP.NET 4 New FeaturesSangHoon Han
 
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기SangJin Kang
 
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220Seomgi Han
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
Role Of Server In Ajax Korean
Role Of Server In Ajax KoreanRole Of Server In Ajax Korean
Role Of Server In Ajax KoreanTerry Cho
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable FunctionsJongin Lee
 
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...양 한빛
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용중선 곽
 

Semelhante a ecdevday3 효율적인 유지보수를 위한 개발 및 관리 (20)

레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드레일스를 이용한 애자일 웹 개발 가이드
레일스를 이용한 애자일 웹 개발 가이드
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
Opensource apm scouter in practice
Opensource apm scouter in practiceOpensource apm scouter in practice
Opensource apm scouter in practice
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고중고나라 거래 통계 서비스 1차 개발 완료 보고
중고나라 거래 통계 서비스 1차 개발 완료 보고
 
10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기10만 라인, 26280시간의 이야기
10만 라인, 26280시간의 이야기
 
HTML5 스펙 소개
HTML5 스펙 소개HTML5 스펙 소개
HTML5 스펙 소개
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상테스트개선지원 사례 - 웹어플리케이션대상
테스트개선지원 사례 - 웹어플리케이션대상
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세
 
ASP.NET 4 New Features
ASP.NET 4 New FeaturesASP.NET 4 New Features
ASP.NET 4 New Features
 
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
 
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
피플펀드 웹서비스 성능개선기(+초기 스타트업의 개발방법론) 20171220
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
Role Of Server In Ajax Korean
Role Of Server In Ajax KoreanRole Of Server In Ajax Korean
Role Of Server In Ajax Korean
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
 
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
track1 05. 스타트업 1인 개발 극복기’와 ‘javascript vs Scala, (함수형 언어 관점으로)방황기/ I/O Inc, ...
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 

Mais de Kenu, GwangNam Heo

이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼Kenu, GwangNam Heo
 
채팅 소스부터 Https 주소까지
채팅 소스부터  Https 주소까지채팅 소스부터  Https 주소까지
채팅 소스부터 Https 주소까지Kenu, GwangNam Heo
 
개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018Kenu, GwangNam Heo
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼Kenu, GwangNam Heo
 
소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategyKenu, GwangNam Heo
 
오픈소스 개요
오픈소스 개요오픈소스 개요
오픈소스 개요Kenu, GwangNam Heo
 
오픈소스 개발도구 2014
오픈소스 개발도구 2014오픈소스 개발도구 2014
오픈소스 개발도구 2014Kenu, GwangNam Heo
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정Kenu, GwangNam Heo
 
JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰Kenu, GwangNam Heo
 
01이제는 모바일 세상이다
01이제는 모바일 세상이다01이제는 모바일 세상이다
01이제는 모바일 세상이다Kenu, GwangNam Heo
 

Mais de Kenu, GwangNam Heo (20)

이클립스 플랫폼
이클립스 플랫폼이클립스 플랫폼
이클립스 플랫폼
 
채팅 소스부터 Https 주소까지
채팅 소스부터  Https 주소까지채팅 소스부터  Https 주소까지
채팅 소스부터 Https 주소까지
 
Java in 2 hours
Java in 2 hoursJava in 2 hours
Java in 2 hours
 
Dev team chronicles
Dev team chroniclesDev team chronicles
Dev team chronicles
 
개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018개발자가 바라보는 자바의 미래 - 2018
개발자가 바라보는 자바의 미래 - 2018
 
오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼오픈 소스 사용 매뉴얼
오픈 소스 사용 매뉴얼
 
about Programmer 2018
about Programmer 2018about Programmer 2018
about Programmer 2018
 
Cloud developer evolution
Cloud developer evolutionCloud developer evolution
Cloud developer evolution
 
Elastic stack
Elastic stackElastic stack
Elastic stack
 
Social Dev Trend
Social Dev TrendSocial Dev Trend
Social Dev Trend
 
소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy소셜 코딩 GitHub & branch & branch strategy
소셜 코딩 GitHub & branch & branch strategy
 
오픈소스 개요
오픈소스 개요오픈소스 개요
오픈소스 개요
 
Developer paradigm shift
Developer paradigm shiftDeveloper paradigm shift
Developer paradigm shift
 
Social Coding GitHub 2015
Social Coding GitHub 2015Social Coding GitHub 2015
Social Coding GitHub 2015
 
오픈소스 개발도구 2014
오픈소스 개발도구 2014오픈소스 개발도구 2014
오픈소스 개발도구 2014
 
Mean stack Start
Mean stack StartMean stack Start
Mean stack Start
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정
 
JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰JavaScript 2014 프론트엔드 기술 리뷰
JavaScript 2014 프론트엔드 기술 리뷰
 
jQuery 구조와 기능
jQuery 구조와 기능jQuery 구조와 기능
jQuery 구조와 기능
 
01이제는 모바일 세상이다
01이제는 모바일 세상이다01이제는 모바일 세상이다
01이제는 모바일 세상이다
 

ecdevday3 효율적인 유지보수를 위한 개발 및 관리

  • 1. 레인 시간 구분 강사 제목 19:00 ~ 21:00 UI 김정범 대리 웹표준이냐 속도냐 (UI 개발자의 고뇌 ) RIA 오창훈 대리 GS 이숍만의 RIA 개발활용팁과 노하우 프로젝트 김현 과장 효율적인 유지보수를 위한 개발 및 관리 프레임워크 추경돈 대리 Spring Framework 도입 사례 SE 김풍주 대리 웹 표준스펙 살펴보기 ( 명세서에 살고 명세서에 죽다 ) 쇼핑몰 트렌드 초청 김태진 쇼핑몰 컨설턴트가 바라본 쇼핑몰 트렌드 코드관리 허광남 과장 레거시 코드 관리 전략 ( 남이 짠 코드 빨리 알아보기 ) SQL 튜닝 박광일 대리 웹개발자의 약한고리 SQL 뛰어넘기
  • 2. 효율적인 유지보수를 위한 개발 및 관리 김현
  • 3. 1. 유지보수의 문제들 2. 자바스크립트의 분리 3. BUSINESS LAYER 와 PRESENTATION LAYER 의 분리 4. 작은 단위의 개발 및 관리 5. 적용 예
  • 4. 1. 유지보수의 문제들 무엇이 문제인가 ? - 1 만라인 이상의 소스들 - 역사와 사연이 내포된 소스들 - 추가 , 수정 어려움 - 테스트 할 수 없는 코드들 - 시간은 짧고 할일은 많다 어떻게하면 추가 수정이 쉽고 테스트 가능한 소스로 바꿀것인가 ?
  • 5. 2. 자바스크립트의 분리 <script language=javascript src=&quot;mootools_core.v1.00.js&quot;></script> <script type=&quot;text/javascript&quot;> var Pingpong = new Class({ ppid : &quot;&quot;, ppname : &quot;&quot;, initialize: function(ppid,ppname){ this.ppid = ppid; this.ppname = ppname; }, getPpid : function(){ return this.ppid; }, getPpname : function(){ return this.ppname; }, getHello : function(str){ return (this.ppid == str)? &quot; 안녕하세요 &quot;+this.ppname+&quot; 님 &quot; : &quot; 누구세요 ?&quot;; } }) </script> <script type=&quot;text/javascript&quot;> var pp = new Pingpong( “ <%=ppid%>&quot;, “ <%=ppname%>&quot;); alert(pp.getPpid() + &quot; : &quot; + pp.getPpname()+ &quot; : &quot;+ pp.getHello(&quot;jack&quot;)); </script> <script type=&quot;text/javascript&quot;> function getHello(str){ return (str==&quot;<%=ppid%>&quot;)? &quot; 안녕 &quot;+<%=ppname%>+&quot; 님 &quot; : &quot; 누구 ?&quot;; } alert(&quot;<%=ppid%> : <%=ppname%> 님 : &quot;+getHello(&quot;jack&quot;)); </script> 변경시 장점 - js 수정은 js 파일에서 하면 된다 . - 소스의 가독성 , 이해도가 향상된다 . 예제 js 파일로 분리
  • 6.
  • 7. 4. 작은 단위의 개발 이렇게 하면 뭐가 좋은가 ? - 변경의 최소화 , 변경에 따른 영향 최소화 , - 소스의 이해도가 높다 . - 테스트 가능 모든 구성 요소의 컴포넌트화 컴포넌트의 특징 - 실행코드 기반 - 명세서 - 표준화 - 패키지화 - 배포가능 컴포넌트란 ? - ' 독립적인 단위기능을 수행하는 소프트웨어 모듈 ’
  • 8. 4. 작은 단위의 개발 및 관리 <%@ page contentType=&quot;text/html; charset=EUC-KR&quot; pageEncoding=&quot;EUC-KR&quot;%> <jsp:include page=&quot;/jsp/inc_header.jsp&quot;/> <div id=&quot;body_lay&quot;> <div id=&quot;layCon&quot;> <!-- LEFT --> <div id=&quot;layL&quot;> <jsp:include page=&quot;/help/main/helpLeft.gs&quot;> <jsp:param name=&quot;submenu&quot; value=&quot;3&quot;/> </jsp:include> </div> <!-- //LEFT --> <!-- contents --> <div id=&quot;layR&quot;> <!-- 내용 입력 부분 =============================== --> <jsp:include page=&quot;/help/main/faqList.gs&quot;/> <!-- // 내용 입력 부분 =============================== --> </div> <!-- //contents --> </div> <jsp:include page=&quot;/mypp/mymain/quickMenu.gs&quot; /> </div> <!-- //body --> <jsp:include page=&quot;/jsp/inc_footer.jsp&quot;/> 어떤 기술을 썼느냐가 중요한게 아니고 어떤 철학으로 했느냐가 중요하지 않을까 ... 특별한 기술도 아니고 이게 뭐야 ??? include 한게 다야 ? 그럼 우린 이미 다했네 ^^ 예제
  • 9. 5. 적용 예 1. 검색페이지 검색결과 카테고리 베스트 이숍 TV 이숍 핑퐁 이스토어 보험몰 관련매장 기획전 적용 전 : 4300 라인의 소스로 분석이 난해하고 수정 , 추가가 어려웠다 . 적용 후 : 전체적인 소스의 양은 줄지 않았으나 소스의 이해가 쉽고 해당 부분만 수정하면 되며 필요시 서비스를 제거 및 추가가 용이하다 . 말이 쉽지 실제 해봐요 기존에 버무려져 있는 소스 분리해야죠 하다보면 중복이 발생하기도 하고 서로 데이터를 주고 받아야 할때도 있고 그러다 보면 복잡도가 증가하기도 하고 .... 과연 이게 옳을까 라는 고민 많이 됩니다 . 뭐야 별거 없네 쉽게 적용할 수 있겠는걸
  • 10. 5. 적용 예 1.686 서버타임 10.276 소요시간 2960067 전체 페이지 사이즈 * HTTPWATCH 를 이용하여 측정하였음 2. 메인페이지 컴포넌트화 하고 작은 단위로 개발했을 때 어떻게 활용할 수 있는가 ?
  • 11. 5. 적용 예 주요 RESOURCE 문제구간분석 해결안 : ajax 로 처리 ~~~ resource gif 283 jpg 70 JPG 3 .js 18 swf 10 xml 13 png 6 css 9 dwr 3 total 415 서버 네트워크 클라이언트 주요 문제구간 service
  • 12. quality 는 나쁘나 속도가 빠른 개발자 일 시키면 순식간에 끝냈는데 결과물까지 예술인 슈퍼 개발자 quality 도 낮고 생산성도 낮은 개발자 quality 는 높으나 작업 시간이 오래 걸리는 개발자 Speed Quality 어떤 개발자가 되고 싶으십니까 ? 절대고수 독불장군 돌쇠 ?