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

1,703 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,703
On SlideShare
0
From Embeds
0
Number of Embeds
119
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • ecdevday3 효율적인 유지보수를 위한 개발 및 관리

    1. 1. 레인 시간 구분 강사 제목 19:00 ~ 21:00 UI 김정범 대리 웹표준이냐 속도냐 (UI 개발자의 고뇌 ) RIA 오창훈 대리 GS 이숍만의 RIA 개발활용팁과 노하우 프로젝트 김현 과장 효율적인 유지보수를 위한 개발 및 관리 프레임워크 추경돈 대리 Spring Framework 도입 사례 SE 김풍주 대리 웹 표준스펙 살펴보기 ( 명세서에 살고 명세서에 죽다 ) 쇼핑몰 트렌드 초청 김태진 쇼핑몰 컨설턴트가 바라본 쇼핑몰 트렌드 코드관리 허광남 과장 레거시 코드 관리 전략 ( 남이 짠 코드 빨리 알아보기 ) SQL 튜닝 박광일 대리 웹개발자의 약한고리 SQL 뛰어넘기
    2. 2. 효율적인 유지보수를 위한 개발 및 관리 김현
    3. 3. 1. 유지보수의 문제들 2. 자바스크립트의 분리 3. BUSINESS LAYER 와 PRESENTATION LAYER 의 분리 4. 작은 단위의 개발 및 관리 5. 적용 예
    4. 4. 1. 유지보수의 문제들 무엇이 문제인가 ? - 1 만라인 이상의 소스들 - 역사와 사연이 내포된 소스들 - 추가 , 수정 어려움 - 테스트 할 수 없는 코드들 - 시간은 짧고 할일은 많다 어떻게하면 추가 수정이 쉽고 테스트 가능한 소스로 바꿀것인가 ?
    5. 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. 6. 3. BUSINESS LAYER 와 PRESENTATION LAYER 의 분리 왜 분리해야 하는가 ? - 업무의 분업화 - VIEW 단의 다변화 rss, flash, jsp, openAPI <ul><li>어떻게 분리할 것인가 ? </li></ul><ul><li>- MVC 2.0 적용 </li></ul><ul><li>프레임워크의 도입 , 오픈소스 적극 활용 </li></ul><ul><li>프레임워크의 도입에 따른 장점 </li></ul><ul><li>- MVC 모델의 강제 필요 </li></ul><ul><li>- 업무 정형화 , 표준화 </li></ul><ul><li>소스의 사연을 없애고 누구나 이해 할 수 있는 결과물 </li></ul><ul><li>개발의 편리제공 </li></ul><ul><li>테스트 가능한 환경 제공 </li></ul>
    7. 7. 4. 작은 단위의 개발 이렇게 하면 뭐가 좋은가 ? - 변경의 최소화 , 변경에 따른 영향 최소화 , - 소스의 이해도가 높다 . - 테스트 가능 모든 구성 요소의 컴포넌트화 컴포넌트의 특징 - 실행코드 기반 - 명세서 - 표준화 - 패키지화 - 배포가능 컴포넌트란 ? - ' 독립적인 단위기능을 수행하는 소프트웨어 모듈 ’
    8. 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. 9. 5. 적용 예 1. 검색페이지 검색결과 카테고리 베스트 이숍 TV 이숍 핑퐁 이스토어 보험몰 관련매장 기획전 적용 전 : 4300 라인의 소스로 분석이 난해하고 수정 , 추가가 어려웠다 . 적용 후 : 전체적인 소스의 양은 줄지 않았으나 소스의 이해가 쉽고 해당 부분만 수정하면 되며 필요시 서비스를 제거 및 추가가 용이하다 . 말이 쉽지 실제 해봐요 기존에 버무려져 있는 소스 분리해야죠 하다보면 중복이 발생하기도 하고 서로 데이터를 주고 받아야 할때도 있고 그러다 보면 복잡도가 증가하기도 하고 .... 과연 이게 옳을까 라는 고민 많이 됩니다 . 뭐야 별거 없네 쉽게 적용할 수 있겠는걸
    10. 10. 5. 적용 예 1.686 서버타임 10.276 소요시간 2960067 전체 페이지 사이즈 * HTTPWATCH 를 이용하여 측정하였음 2. 메인페이지 컴포넌트화 하고 작은 단위로 개발했을 때 어떻게 활용할 수 있는가 ?
    11. 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. 12. quality 는 나쁘나 속도가 빠른 개발자 일 시키면 순식간에 끝냈는데 결과물까지 예술인 슈퍼 개발자 quality 도 낮고 생산성도 낮은 개발자 quality 는 높으나 작업 시간이 오래 걸리는 개발자 Speed Quality 어떤 개발자가 되고 싶으십니까 ? 절대고수 독불장군 돌쇠 ?

    ×