ecdevday4

1,784 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

No notes for slide

ecdevday4

  1. 1. 레인 시간 구분 강사 제목 19:00 ~ 21:00 UI 김정범 대리 웹표준이냐 속도냐 (UI 개발자의 고뇌 ) RIA 오창훈 대리 GS 이숍만의 RIA 개발활용팁과 노하우 프로젝트 김현 과장 효율적인 유지보수를 위한 개발 및 관리 프레임워크 추경돈 대리 Spring Framework 도입 사례 SE 김풍주 대리 웹 표준스펙 살펴보기 ( 명세서에 살고 명세서에 죽다 ) 쇼핑몰 트렌드 초청 김태진 쇼핑몰 컨설턴트가 바라본 쇼핑몰 트렌드 코드관리 허광남 과장 레거시 코드 관리 전략 ( 남이 짠 코드 빨리 알아보기 ) SQL 튜닝 박광일 대리 웹개발자의 약한고리 SQL 뛰어넘기
  2. 2. Applying Spring Framework in GSeShop EC 정보팀 추경돈
  3. 3. <ul><li>CONDITIONS </li></ul><ul><li>INTRODUCTION </li></ul><ul><li>REQUIREMENT ANALYSIS </li></ul><ul><li>SPRING FRAMEWORK ARCHITECTURE </li></ul><ul><li>GSESHOP ARCHITECTURE </li></ul><ul><li>ARCHITECTURE FEATURE </li></ul><ul><li>PROS & CONS </li></ul><ul><li>CONCLUSION </li></ul>
  4. 4. 1. CONDITIONS <ul><li>이숍의 상황 </li></ul><ul><ul><li>OSDK, LAF J, Spear, 외부업체 프레임워크 등 전반적으로 여러 가지 자바프레임워크가 혼재되어 표준화가 안됨 </li></ul></ul><ul><ul><li>자바 개발자는 각자의 스타일에 맞게 소신껏 개발하고 있음 </li></ul></ul><ul><ul><li>불필요한 자바소스 생성이 만연 ( 신규 서비스 개발 / 기존 서비스 수정 ) </li></ul></ul><ul><ul><li>신규인력이나 업무 인수인계 시 수많은 코드를 다 이해하기 힘든 상황 </li></ul></ul><ul><li>2006 년 Mall 개편 프로젝트 </li></ul><ul><ul><li>최신기술을 적용한 Web 2.0 스타일의 사이트로 전환 </li></ul></ul><ul><ul><li>새로운 개발 프레임워크의 도입 검토 ( 트렌드에 맞는… ) </li></ul></ul><ul><ul><li>개발일정 단축을 위한 개발 생산성의 향상이 필요 </li></ul></ul><ul><ul><li>표준화 , 생산성 , 유지보수성 , 품질보증 등을 고려해야 함 </li></ul></ul>
  5. 5. 2. INTRODUCTION <ul><li>왜 프레임워크를 도입하는가 ? </li></ul><ul><ul><li>개발생산성 증가 </li></ul></ul><ul><ul><li>일관된 플랫폼 도입으로 소스에 대한 품질을 보증 </li></ul></ul><ul><ul><li>유지보수 시 비용의 감소 </li></ul></ul><ul><li>도입 시기에 대한 문제 </li></ul><ul><ul><li>기존 서비스가 아닌 새로운 서비스를 고려할 때 </li></ul></ul><ul><ul><li>대대적인 개편 </li></ul></ul><ul><ul><li>매니저의 압력 ? </li></ul></ul><ul><li>도입 범위 </li></ul><ul><ul><li>프레임워크 종류 </li></ul></ul><ul><ul><ul><li>Layer – Core, MVC, ORM, Security, Cache, Template 등 </li></ul></ul></ul><ul><ul><li>아키텍처 </li></ul></ul><ul><ul><ul><li>기존 아키텍처 - 전체 도입 vs 부분 도입 </li></ul></ul></ul>
  6. 6. 2. INTRODUCTION (CONTINUED) <ul><li>프레임워크 VS 라이브러리 </li></ul><ul><li>프레임워크 = f ( 라이브러리 , 디자인패턴 , 아키텍처 , 시간 ) </li></ul><ul><ul><li>아키텍트가 어떤 선택을 하느냐에 따라 최종적인 도입범위와 결과물이 선택된다 . </li></ul></ul>프레임워크의 재발견 ( 이일민 ) 마이크로소프트웨어 + Communication 특징 프레임워크 라이브러리 유저코드의 작성 프레임워크 클래스를 서브 클래싱해서 작성 독립적으로 작성 호출흐름 프레임워크 코드가 유저코드를 호출 유저코드가 라이브러리를 호출 실행흐름 프레임워크가 제어 유저코드가 제어 객체연동 구조프레임워크가 정의 독자적으로 정의
  7. 7. 3. APPLYING PROCESS <ul><li>step1. 요구사항 분석 </li></ul><ul><li>step2. 최적의 Framework 선택 </li></ul><ul><li>step3. 이숍 어플리케이션 Framework 개발 </li></ul><ul><li>step4. 테스트 </li></ul><ul><li>step5. 샘플 및 가이드 문서 제작 </li></ul><ul><li>step6. 프로젝트 개발기간 동안 지속적인 개발 및 지원 </li></ul>
  8. 8. 4. REQUIREMENT ANALYSIS <ul><li>필수 요구 사항 </li></ul><ul><ul><li>비즈니스를 모델링할 때 불필요한 객체 생성은 하지 말자 . </li></ul></ul><ul><ul><ul><li>재사용을 활용할 수 있는 패턴으로 개발 </li></ul></ul></ul><ul><ul><li>MVC 패턴은 꼭 도입하자 . </li></ul></ul><ul><ul><ul><li>적어도 화면과 비즈니스는 분리 해보자 . </li></ul></ul></ul><ul><ul><li>Project 일정 내에 모든 개발자가 사용 가능해야 한다 . </li></ul></ul><ul><ul><li>개발범위를 벗어난 기존 레거시 코드에 대해 고려해야 한다 . </li></ul></ul><ul><ul><li>반복적인 소스 코딩을 최대한 줄이자 . </li></ul></ul><ul><ul><ul><li>개발자가 사용하기 편리한 기능 추가 </li></ul></ul></ul><ul><ul><ul><ul><li>JDBC, 트랜잭션 , 로그 , 화면컨트롤 , 캐쉬 등 </li></ul></ul></ul></ul><ul><li>선택 : 요구사항을 적용하기 위한 최선의 조합은 ? </li></ul><ul><ul><li>검토 기술 : Spring, Struts, Hibernate, iBatis, Velocity, FreeMarker, Tiles, SiteMesh </li></ul></ul><ul><li>결론적으로 Spring 하나로 모든 게 가능했다 !! </li></ul>
  9. 9. 5. SPRING FRAMEWORK ARCHITECTURE <ul><li>Spring Framework </li></ul>
  10. 10. 6. GSESHOP ARCHITECTURE <ul><li>Applying Spring Framework in GSeShop </li></ul>JDK 1.4.2 / Java Virtual Machine J2EE Services Spring Framework GSeShop Application Framework Domain Object Data Access Tier Component Business Logic Tier Component MVC Tier Component EHCache Open Source Library
  11. 11. 7. ARCHITECTURE FEATURE <ul><li>Spring DAO </li></ul><ul><ul><li>선언적 트랜잭션 사용 </li></ul></ul><ul><ul><li>ResultSet 에 대한 쉬운 매핑 수단 제공 </li></ul></ul><ul><ul><li>쿼리와 소스의 분리 </li></ul></ul><ul><li>Code Generator </li></ul><ul><ul><li>서비스와 엔티티와의 관계를 정해서 자바코드를 생성함 </li></ul></ul><ul><ul><li>관리 XML 도 함께 생성해서 최대한 편의성 제공 </li></ul></ul><ul><li>View Resolver </li></ul><ul><ul><li>결국은 Data 보여주게 되는 것 </li></ul></ul><ul><ul><li>XML, RSS, FLASH, Json 등 JSP 이외의 View 에 대한 기본적인 틀을 제공 </li></ul></ul><ul><li>Open Source Library 적극 활용 </li></ul><ul><ul><li>Jakarta Project, EHCACHE, XSTREAM, ROME, … </li></ul></ul>
  12. 12. 8. PROS & CONS <ul><li>Pros </li></ul><ul><ul><li>개발자의 인식변화 </li></ul></ul><ul><ul><li>개발 생산성 / 재사용성의 증가 </li></ul></ul><ul><ul><li>Lesson & Learn 시간 단축 </li></ul></ul><ul><ul><li>발전하는 프레임워크 </li></ul></ul><ul><ul><ul><li>Pingpong Project </li></ul></ul></ul><ul><ul><ul><li>CMI Project </li></ul></ul></ul><ul><ul><li>Test Framework 의 자연스런 도입 </li></ul></ul><ul><li>Cons </li></ul><ul><ul><li>기존개발자 or 초보개발자에 접근하기가 쉽지 않음 </li></ul></ul><ul><ul><li>관리할 포인트가 많아짐 </li></ul></ul><ul><ul><ul><li>프레임워크 버전 관리 </li></ul></ul></ul><ul><ul><ul><li>Configuration, Log, Local Development Environment </li></ul></ul></ul><ul><ul><ul><li>지속적인 유지보수 활동 및 신규 개발 ( 신기술 포함 ) </li></ul></ul></ul><ul><ul><li>Framework 만능주의 늪에 빠질 수 있음 </li></ul></ul>
  13. 13. 9. CONCLUSION <ul><li>남겨진 숙제 </li></ul><ul><ul><li>Legacy Code 를 어떻게 할 것인가 ? </li></ul></ul><ul><ul><ul><li>Control 과 Refactoring </li></ul></ul></ul><ul><ul><li>UI Component 에 대한 고민 </li></ul></ul><ul><ul><ul><li>프레임워크는 아키텍처의 일부 </li></ul></ul></ul><ul><ul><ul><li>UI 도 이제는 진지하게 고려해야될 대상 </li></ul></ul></ul><ul><ul><li>새로운 프레임워크 레이어 도입 ? </li></ul></ul><ul><ul><ul><li>ORM, Template, Security, Flow Control, Batch 등 </li></ul></ul></ul><ul><ul><li>Spring Upgrade </li></ul></ul><ul><ul><ul><li>JDK 버전 업그레이드 </li></ul></ul></ul><ul><ul><ul><li>Spring 버전 업그레이드 </li></ul></ul></ul>

×