Rubberduck-Debugging

[4일차] 본문

개발자/20181127 교육과정

[4일차]

P缶 2018. 11. 30. 16:58

2.5 - UI 코드와 데이터 처리 코드를 분리하기

  • 데이터 처리 코드를 캡슐화하는 방법
  • 캡슐화를 통해 얻을 수 이점 이해하기
------------------------------

2.6 - 다형성과 형변환 응용

  • 데이터 처리 클래스를 일반화하여 재사용성을 높이는 방법
  • 다형적 변수의 활용해야 하는 이유
  • 형변환이 필요한 이유

2.7 - 제네릭을 사용하는 방법과 이점

  • Object 타입의 한계를 극복하는 제네릭 활용법
------------------------------
과제

2.8 - CRUD 기능 완성

  • 수업/회원/게시판에 대해 CRUD 완성하기

2.9 - ArrayList 대신 Linked List 자료구조 사용하기

  • Linked List 자료구조를 구현하는 방법
  • Linked List 의 구동원리 이해하기
  • ArrayList와 LinkedList의 장단점 비교하기
  • 중첩 클래스의 활용

3.0 - Stack 자료구조 구현과 활용

  • Stack 자료구조를 구현하는 방법
  • Stack 의 구동원리 이해하기
  • Stack 의 활용 사례
  • 상속의 활용

3.1 - Queue 자료구조 구현과 활용

  • Queue 자료구조를 구현하는 방법
  • Queue 의 구동원리 이해하기
  • Queue 의 활용 사례
  • 상속의 활용
------------------------------

인터페이스 : 내가 만드는게 인터페이스의 caller인지 callee인지 빨리 파악해야 한다.
인터페이스를 만드는 이유 : 상호 호출규칙을 만들기 위해. 이러면 callee의 교체도 쉬워짐

3.2 - 사용 규칙을 정할 때는 인터페이스를 활용하자!

  • 인터페이스를 이용하여 사용 규칙을 정의하는 방법
  • 인터페이스의 용도와 이점을 이해하기

3.3 - Iterator 디자인 패턴의 활용

  • 목록을 다루는 자료구조와 상관없이 일관된 방법으로 데이터를 꺼내는 방법
  • Iterator 디자인 패턴의 용도와 이점을 이해하기
  • 익명 중첩 클래스의 활용

iterator의 사용 이유 : 데이터 꺼내는 것을 캡슐화하기 위해. 

stack은 pop, queue는 poll, arrayList는 get 등등, 데이터를 꺼낼때 각자 메소드가 달라 매우 번거로움.
스택, 큐, 리스트 상관없이 일관된 방식으로 편하게 꺼내주려고 만들어진게 이터레이터.
(.hasNext, next() 메소드로 통일된다)



중첩클래스를 사용하자
  사용 이유 : 이너클래스는 바깥 클래스에 맘껏 접근할 수 있기 때문.

ex)  class IteratorImpl<T> implements Iterator<T>{
    Queue<?> queue;
    int size;
    int count;
    {  
     
      this.queue=Queue.this.clone();    
   //this. <-바깥객체의 인스턴스가 아님!! 바깥클래스 하고싶을 떄는, 바깥클래스명.this.
    }

{    } (인스턴스 블록) : 생성자가 호출 되기 전에 자동 실행되는 블록
static {     }(static블록) : 클래스가 로딩될 때에 자동 실행되는 블록

3.4 - 자바 컬렉션 API 사용하기

  • 자바에서 제공하는 자료구조 구현체를 활용하는 방법

3.5 - Command 디자인 패턴을 적용하기

  • Command 디자인 패턴으로 메서드를 객체화하는 설계 방법
  • Command 디자인 패턴의 용도와 이점을 이해하기

command  패턴 : 명령어 하나당 클래스 하나씩 추가하는 패턴

command 만들기
1. command 인터페이스 만든 후 excute(); 메소드 하나만들기. 각각의 메소드를 분리하여 command 상속받기
2. excute()에 분리하려는 각각의 메소드를 추가한다.
3. 주 클래스에 HashMap 만들고,  커맨드 명령어를 추가한다.

command 패턴 만드는 이유 : 기존 클래스를 최소한 손대면서, 새 클래스를 추가하기 위해. 





--------------------------

3.6 - 예외가 발생했을 때 시스템을 멈추지 않게 하는 방법

  • 예외 처리 문법을 사용하는 방법
  • 예외 처리 문법의 존재 의미와 이점

jvm은 예외를 받는 즉시 멈추고 에러로그 띄워버린다 >> 멈추지 않게 하기 위해 try-catch문을 사용