본문으로 바로가기

기본원리

category Backend/Spring 2017. 8. 23. 14:48
    반응형

    객체지향 설계의 기초와 원칙을 비롯해서

    다양한 목적을 위해 재활용 가능한 설계 방법인 디자인 패턴

    좀 더 깔끔한 구조가 되도록 지속적으로 개선해나가는 작업인 리팩토링

    오브젝트가 기대한 대로 동작하고 있는지를 효과적으로 검증하는데 쓰이는 단위 테스트


    1. 관심사의 분리

    관심사가 같은 것 끼리 모으고 다른 것은 분리해줌으로써 같은 관심에 효과적으로 집중할 수 있게 만들어 주는 것이다.


    1.1 메소드 분리

    1.2 상속을 통한 분리 ( 추상 메소드, 템플릿 메소드 패턴, 팩토리 메소드 패턴  )

    형태 틀만을 제공해주는 추상메소드, 인터페이스 개념을 잘 이해하자.

    1.3 인터페이스를 통한 분리





    2. 관계설정 책임의 분리

    관계설정이란 오브젝트 간의 관계를 결정해주는 것이다. (!=클래스간의 관계)

    connectionMaker = new DConnectionMaker(); ( 사용 )


    3. UML


     

    http://www.nextree.co.kr/p6753/] 


    4. 클래스의 관계와 오브젝트(인스턴스)의 관계가 다를 수 있다.


    클래스관계에서 의존이 없었지만, 런타임 시 의존관계가 생성될 수 있다. (의존성 주입)


    의존 - 생성,제공,사용등.. 클라이언트가 직접적으로 호출한 경우.



    5. 스프링 주요 키워드

    5.1 개방폐쇠원칙 - 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.

    5.2 높은 응집도와 낮은 결합도

    5.2.1 응집도 - 변화가 일어날 때 해당 모듈에서 변하는 부분이 크다는 것

    5.2.2 결합도 - 하나의 오브젝트가 변경이 일어날 때에 관계를 맺고 있는 다른 오브젝트에게 변화를 요구하는 정도



    6. 디자인패턴

    템플릿 메소드 패턴

    팩토리 메소드 패턴 (!= 팩토리 메소드)

    서브 클래스에서 추상메소드 구현을 통해서 오브젝트를 반환하여야 하며, 오브젝트는 인터페이스 형식으로 리턴된다.

    전략패턴

    자신의 기능 맥락(컨텍스트)에서 필요에 따라 변경이 필요한 알고리즘을 인터페이스(전략)를 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴이다.

    팩토리

    팩토리는 주로 오브젝트의 관계를 설정한다.


    7.제어의 역전(IoC)

    프로그램의 제어 흐름구조가 뒤바뀌는 것이라고 설명할 수 있다.

    7.1 라이브러리와 프레임워크

    라이브러리와 프레임워크의 차이점은 엄연히 존재한다. 라이브러리를 사용하는 애플리케이션 코드는 ㄴ애플리케이션 흐름을 직접 제어한다.

    반면에 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.


    8.애플리케이션 컨텍스트, 빈 팩토리

    애플리케이션 컨텍스트는 기존 팩토리 클래스와 같이 설정정보를 가지고 오브젝트의 생성과 관계를 설정해준다.  

    8.1 AnnotationConfigApplicationContext를 이용하여 기존 자바를 XML과 같은 설정정보로 사용할 수 있다.


    반응형