시 간 | Session | 강 좌 제 목 | |
10:00 ~ 10:50 | 50분 | Session 1 | Evolving Framework (김용현) |
11:00 ~ 12:30 | 90분 | Session 2 | Framework Engineering (손영수) |
12:30 ~ 13:20 | 50분 | 점심시간 | |
13:30 ~ 14:20 | 50분 | Session 3 | Application과 Framework 동시 구축하기 (고상원) |
14:30 ~ 15:20 | 50분 | Session 4 | ASP.NET MVC Framework (장현희) |
15:30 ~ 16:20 | 50분 | Session 5 | Data Entity Framework (한용희) |
16:30 ~ 17:20 | 50분 | Session 6 | Spring.NET과 iBatis.NET (권효중) |
[ Session 1 ] 1. FrameWork - 랄프존슨( 에릭감마, 리차드 헬름, 랄프 존슨, 존 블리사이드 - Gof:Gang of Four) "FrameWork란 추상클래스들의 집합과 상호 협조하는 클래스들의 인스턴스 동작 방법으로 이루어진 재사용이 가능한 디자인" - 특징 컴포넌트와 아키텍쳐의 재사용 확장성 객체로 문제를 분석하고 해결 - 이점 코드의 단일화, 단순화 Application 릴리즈 일정 단축 Application 안정성 향상 - Application을 개발하면서 리펙토링을 통하여 공통코드를 얻고 관리하는데 더이상 리펙토링할 여지가 없다면 프레임워크가 완성된 단계 2. 객체지향 5원칙 - 의존 관계 역전 원칙 (The Dependency Inversion Principle) (자세하게) - 인터페이스 분리 원칙 (The Interface Segregation Principle) (자세하게) 클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안된다. - 리스코프 치환 원칙 (The Liskov Substitution Principle) (자세하게) 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다. - 단일 책임 원칙 (The Single Responsibility Principle) (자세하게) 시스템의 모든 객체는 하나의 책임만을 가지며, 객체가 제공하는 모든 서비스는 그 하나의 책임을 수행하는데 집중되어야 한다. - 개방 폐쇄 원칙 (The Open-Closed Principle) (자세하게) 소프트웨어 구성 요소(컴포넌트, 클래스, 모듈, 함수)는 확장에 대해서는 개방되어야 하지만 변경에 대해서는 폐쇄되어야 한다. 3. FrameWork를 발전시키는 9가지 패턴 - Three Examples - White Box FrameWork - Component Library - Hot Spots - Pluggable Objects - Fine-grained Objects - Black-box Framework - Visual Builder - Language Tools [ Session 2 ] 꽤 긴 발표내용이었는데 대략적인 흐름은 다음과 같습니다. 1. 조직구조, 문화, 의사결정프로세스가 당신의 결과물에 어떻게 영향을 미치는지 이해하라. 2. 시나리오 기반 애플리케이션에 땅콩버터 바르기식은 피하라. 3. 컴포넌트들간의 의존성을 관리하라. 4. 호환성은 유지하면서 나아질 수 있도록 조절하라. 5. 중복과 겹침은 피하라. 6. 먼저 메인 시나리오를 위한 코드 샘플들을 작성하고 피드백을 받으면서 모델을 정의하는 식으로 API들을 디자인 하라. 7. 한가지 특징을 심플하게 다루어라. 8. 따지고 따지고 또 따져봐라. 9. 완성되지 않은 피쳐들을 통합하지 말아라. 10. 빚을 갚아라. (버젼관리 및 지속적인 개발) [ Session 3 ] 프레임워크 개발에 있어서 유용한 패턴들을 설명하였습니다. 자료가 부족한 관계로 대략적으로 패턴만 나열을 하자면 다음과 같습니다. 1. Framelets for Multiple use (Framelets : Mini Framework로 이해하면 될듯) 2. Budget Factor 2.5 3. Two Pilot Applications 4. Small Functions 5. User Involvement 6. Tests Based on Pilot Applications 7. Double Change Request [ Session 4 ] ASP.NET MVC FrameWork에 대한 내용 - Model : 애플리케이션이 수행해야 하는 비즈니스 로직을 담당하는 매우 중요한 컴포넌트 - View : 모델을 통해 수행된 비즈니스 로직의 결과를 보여주기 위한 역할을 담당하며 애플리케이션의 UI를 구성하는 컴포넌트 - Controller : 모델과 뷰의 중간에서 이들을 제어하기 위한 컴포넌트 1. 패턴 - Page Controller HTTP 요청을 처리하는 컨트롤러가 페이지마다 개별적으로 존재한다 웹 폼 모델에 적용, 빠르고 간편하게 개발 가능하며 재사용성을 높인다. 기반 프레임워크에 대한 의존도를 높인다는 단점 - Front Controller 모든 HTTP 요청을 처리하는 하나의 컨트롤러로 구현한다. 인바운드 HTTP 요청에 따라 해당 요청을 처리하기 위한 적절한 커맨드 컴포넌트를 생성하는 일종의 핸들러와 핸들러에 의해 요청을 처리하도록 선택되는 커맨드 컴포넌트 등 두가지로 구성됨 2. ASP.NET MVC FrameWork 특징 - URL은 페이지를 가리키는 것이 아니라 애플리케이션에 특정 동작을 요구하는 요청으로의 역할을 한다 - 포스트백 개념이 사라졌다 - 페이지가 뷰와 컨트롤러의 역할을 담당했었는데 뷰를 위한 템플릿으로서의 역할을 수행한다 3. URL 라우팅 엔진 - ASP.NET MVC 에서 가장 두드러지는 기능 - URL 라우팅은 웹 애플리케이션이 HTTP 요청을 받았을 때 해당 URL을 분석하여 적절한 컨트롤러를 선택하고 해당 컨트롤러가 제공하는 적합한 액션 메서드를 호출하기 위해 제공된다. (참고자료 - 마소기고 ASP.NET MVC와 춤을) [ Session 5 ] ADO.NET Entity FrameWork 에 관한 내용 1. 개발자와 데이터베이스 관리자의 입장 차이 - 개발자 : 오브젝트 / 객체 / 명령어 ( Member.Select() ) - DB관리자 : 데이터 / 테이블 / 평문 ( SELECT FROM WHERE ) 2. Linq (Language Integrated Queries) to Entities - 엔터프라이즈급에서 사용 - 다양한 DB에서 사용가능 : 오라클, DB2, MS SQL Server - 유연한 맵핑 3. Mapping 에 대한 내용과 데모 시연 - 하나의 클래스와 다수의 테이블/뷰 맵핑 - Splitting - 상속 : TPH(Table per Hierarchy) , TPT(Table per Type) - M:N 관계 [ Session 6 ] 오픈소스로 제공되는 iBATIS.NET 와 Spring.NET 에 대한 내용 1. iBATIS.NET - ORM이 아닌 Data Mapper - 장점 : 배우기 쉽고, 쿼리문만 따로 관리하거나 WHERE 조건의 다이나믹한 추가 제거 가능, 쿼리문의 재사용 등 - 제공 : http://ibatis.apache.org/ 2. Spring.NET - 닷넷 환경에서 사용 가능한 Inversion Of Control 기반의 어플리케이션 프레임워크 - 객체의 생성과 소멸작업이 Ioc 컨테이너에 의해 관리됨 - 인터페이스 기반 프로그래밍에 적합 - 제공 : http://www.springframework.net/ |
'Rev's > 기록하기' 카테고리의 다른 글
사랑의 적 (0) | 2008.12.01 |
---|---|
NHN DeView 2008을 다녀와서... (1) | 2008.11.23 |
훈스 닷넷 스터디 벙개 (2) | 2008.11.23 |