20강 패턴을 통한 객체지향 언어의 이해 - II - 난이도 있는 패턴 예제 - I Lecturer Kim Myoung-Ho

Slides:



Advertisements
Similar presentations
1 강. 안드로이드 개요 및 개발 환경 구축 - 안드로이드 개요 -JDK 설치 -Path 설정 - 이클립스 설치 -ADT, SDK 설치 Lecturer Kim Myoung-Ho Nickname 블스
Advertisements

17 강. 인터페이스 – I - 인터페이스의 이해 - 인터페이스의 문법 - 다형성이란 ? Lecturer Kim Myoung-Ho Nickname 블스
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
10강. AOP(Aspect Oriented Programming)-II
9강. AOP(Aspect Oriented Programming)-I
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
6강. DI설정 방법 XML파일을 이용한 DI설정 방법 JAVA를 이용한 DI설정 방법 XML과 JAVA를 같이 사용
5강. DI활용 의존 관계 DI사용에 따른 장점 Lecturer Kim Myoung-Ho Nickname 블스
29강. MVC패턴을 이용한 게시판 만들기-III
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
22강. 파일 업로드 - 파일 업로드 라이브러리 설치 - 파일 업로드 프로그래밍 Lecturer Kim Myoung-Ho
12강. 액션태그 액션태그란? forward, include, param 태그 살펴보기
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
9강. JSP 본격적으로 살펴보기-I JSP 태그의 개념 이해 JSP 동작 원리 JSP 내부 객체
20강. 커넥션풀 DAO, DTO PreparedStatement 커넥션 풀(DBCP)
27강. MVC패턴을 이용한 게시판 만들기-I MVC패턴의 이해 전체적인 컴포넌트 설계 DB(DataBase) 생성
21강. 스프링JDBC JDBC를 이용한 반복코드 줄이기 Spring빈을 이용한 코드 간소화
6강. Servlet 본격적으로 살펴보기-II
16강. 추상클래스 - III - 자동차 옵션 제작 프로그래밍 Lecturer Kim Myoung-Ho Nickname 블스
25강 예외처리 - 예외란? - 예외처리의 필요성 - 예외처리 문법 (try ~ catch) - 예외처리 문법 (throws)
3강_HTML 기본-II 리스트 태그 - ul,li,ol 표를 나타내는 태그 - table 이미지를 출력하는 태그 – img
26강. 포워딩(Forwarding) RequestDispatcher 클래스 HttpServletResponse 클래스
19강. 데이터 베이스 - III 회원가입 및 회원정보 수정 프로그래밍 Lecturer Kim Myoung-Ho
28강_맵(Map) 맵을 이용하기 위한 설정 위치 추적 Lecturer Kim Myoung-Ho Nickname 블스
2강. 스프링 프로젝트 만들기 이클립스에 스프링 프로그인 설치(STS) 처음 만들어 보는 스프링 프로젝트
25강. FrontController 패턴과 Command 패턴
26강_CSS3 규칙 CSS파일 규칙 Lecturer Kim Myoung-Ho
23강. 트랜잭션(Transaction)-II
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
24강 API - III - Timer 클래스 - StringTokenizer 클래스 Lecturer Kim Myoung-Ho
13강. 쿠키 쿠키란? 쿠키 문법 Lecturer Kim Myoung-Ho Nickname 블스
15강. 예외 페이지 예외 페이지의 필요성 page 지시자를 이용한 예외 처리 web.xml파일을 이용한 예외 처리
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
10강_CSS 속성-I CSS3 단위 url() display 속성 visibility 속성 opacity 속성
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
17강_스마트폰 레이아웃-I viewport header 제작 네비 제작 Lecturer Kim Myoung-Ho
15강. 추상클래스 - II - 어린이집 아이들의 식대 계산 프로그래밍 Lecturer Kim Myoung-Ho
16강. 스프링MVC 게시판-I 프로젝트 설계 DataBase 구축 프로젝트 생성 Lecturer Kim Myoung-Ho
8강. 외부 파일을 이용한 설정 Environment 객체 프로퍼티 파일을 이용한 설정
14강. 추상클래스 - I - 추상클래스의 이해 - 추상클래스가 필요한 이유 - 추상클래스의 문법
30강 JAVA 그래픽 JAVA GUI(Graphic User Interface)란? AWT 컴포넌트? Swing 컴포넌트?
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
7강_CSS 기본-II id(#) 와 class(.) tag,id, class 혼합 속성 선택자 후손 및 자손 선택자
11강_CSS 속성-II margin 및 padding 속성 box-sizing 속성 border 속성
12강_CSS 속성-III font-family , font-size 속성
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
3강_레이아웃-I 화면구성 요소 뷰에 대한 이해 LinearLayout Lecturer Kim Myoung-Ho
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
7강. 객체지향 프로그램의 본질 메소드 프로그래밍의 한계 객체의 개념 및 클래스의 이해
17강. 스프링MVC 게시판-II 패키지, 인터페이스, 클래스 제작 Controller 제작 리스트 페이지 만들기
26강 JAVA Collections - I - 컬렉션이란? - JAVA도 결국 효과적인 데이터를 처리하기 위한 수단
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
13강. Form 데이터 HttpServletRequest 어노테이션 데이터(커맨드) 객체
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
27강_데이터베이스 SQLite CP(Content Provider) Lecturer Kim Myoung-Ho
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
22강. 트랜잭션(Transaction)-I
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
7강. 생명 주기(life cycle) 와 범위(scope)
12강. 상속 - I - 상속! 어렵지 않아요. 일상에서 알고 있는 상속 입니다. - 상속이 필요한 이유 - 상속 문법의 이해
15강_액티비티 액티비티란? 새로운 액티비티로 전환 생명주기 화면방향(Orientation)
11강. static - static의 이해 - static과 객체와의 관계 - static의 장점과 단점
Presentation transcript:

20강 패턴을 통한 객체지향 언어의 이해 - II - 난이도 있는 패턴 예제 - I Lecturer Kim Myoung-Ho Nickname 블스 blogstudy@naver.com

20-1. 난이도 있는 패턴 예제 - I 스트레티지 패턴(Strategy Pattern) 알고리즘 군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 조금 말이 어려울 것입니다. 쉽게 말하면, 어떤 객체를 만들 때 객체가 가지는 기능들이 다양하게 존재할 것 입니다. 이러한 기능들을 추상화 하여 언제든지 적용할수 있게 만드는 것 입니다. 즉 기능을 부품화 하는 것 입니다. 예를 들어 포니와 그랜저 자동차가 있습니다. 포니에 들어가는 기어 연결부분과 그랜저에 들어가는 연결부분이 동일하다고(추상화) 하면, 저급기어, 중급기어, 고급기어를 만들어 두고 상황에 따라서 적당한 기어를 적용할수 있을것 입니다. 즉 포니에는 저급기어를, 그랜저에는 고급기어를 적용하는것 입니다. 이렇게 기능을 부품화하여 구조를 만드는 것을 스트레티지라고 생각하시면 됩니다. 개인적으로 실무에서 가장 많이 사용했고. 알아두면 아주 유용하게 사용할 수 있는 패턴 입니다. 노파심에 말씀 드리면, 한번에 모든 것을 알 수는 없습니다. 그리고 안다고 하여도 실제 본인의 개발 소스에 적용하시란 쉽지 않습니다. 꾸준히 살펴보고, 고민해 보는 자세가 중요 합니다. 이번에 살펴 볼 예제는 로봇을 프로그램으로 만들어 보는 것 입니다. 시나리오 로봇 모양은 팔, 다리, 머리, 몸통으로 이루어져 있습니다. 모든 로봇은 기본적으로 걷고, 달릴 수 있어야 합니다. Super로봇은 날수 있고, 미사일을 쏠 수 있으며, 레이저 검을 가지고 있습니다. Standard 로봇은 날수는 없지만 미사일을 쏠 수 있습니다. 그리고 레이저 검은 없지만, 목검은 가지고 있습니다. Low 로봇은 날수도 없고, 미사일을 쏠 수도 없습니다. 그리고 레이저검 또는 목검도 없습니다. 위 3가지 형태의 로봇을 만들어 보도록 하고, 추후 다른 로봇을 만들어야 할 경우를 생각하여 유연한 프로그램을 만들어 보도록 합니다.

20-1. 난이도 있는 패턴 예제 - I (20_1_ex1_patternstrategy)