독서 5

스프링 삼각형과 설정 정보-3

PSA - 일관성 있는 서비스 추상화 서비스 추상화의 예로는 JDBC가 있다. JDBC라는 표준 스펙이 있기에 오라클을 사용하든 MySQL을 사용하든, MS-SQL을 사용하든 Connection, Statement, ResultSet을 이용해 공통된 방식으로 코드를 작성할 수 있다. 이렇게 할 수 있는 이유는 디자인패턴인 어댑터 패턴을 사용했기 때문이다. 어댑터 패턴을 적용해 같은 일을 하는 다수의 기술을 공통의 인터페이스로 제어할 수 있게 한것을 서비스 추상화 라고 한다. 스프링 프레임워크에서는 서비스 추상화를 위해서 다양한 어댑터를 제공하고 있다. OXM(Object XML Mapping : 객체와 XML 매핑) 등등 다양한 기술이 있는데 다양한 기술들이 제공하는 API는 제각각이고 스프링은 제각각인..

스프링 삼각형과 설정 정보-2

AOP - Aspect? 관점? 핵심 관심사? 횡단 관심사? AOP(Aspect-Oriented Programming) 관점 지향 프로그래밍 AOP는 로직(code) 주입이라고 할 수 있다. 횡단관심사 : 로깅, 보안, 트랜잭션 기능 처럼 다수의 모듈에 공통적으로 나타나는 부분을 뜻한다. 핵심관심사 : 주요 프로그램의 로직을 얘기한다. 코드 = 핵심 관심사 + 횡단 관심사 @Before : 실행 전 시작되는 애너테이션 @After : 실행 후 시작되는 애너테이션 스프링 AOP의 핵심 3가지 - 스프링 AOP는 인터페이스 기반이다. - 스프링 AOP는 프록시 기반이다. - 스프링 AOP는 런타임 기반이다. JoinPoint 파라미터를 이용하면 실행 시점에 실제 호출된 메서드가 무엇인지, 실제 호출된 메서드..

스프링 삼각형과 설정 정보-1

스프링을 이해하는 데는 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 IoC/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델에 대한 이해가 필수다. 스프링 삼각형을 이해하지 않은 상태에서 스프링 프레임워크를 학습하는 것은 알파벳을 모르고 영어를 공부하는 것과 마찬가지다. - 스프링 입문을 위한 자바 객체지향의 원리와 이해 中 - 01_IoC/DI (제어의 역전/의존성주입) 먼저 프로그래밍에서 의존성이란? new 라고 볼 수 있다. 예) Car car = new Tire(); new를 실행하는 Car와 Tire 사이에서 Car가 Tire에 의존한다라고 단순하게 정의 할 수 있다. DI는 외부에 있는 의존 대상을 주입하는 것을 말한다. 의존 대상을..

스프링이 사랑한 디자인 패턴

스프링이 사랑한 디자인 패턴 디자인 패턴(설계 패턴) : 객체지향의 4대 특성이 요리에 필요한 도구라면 SOLID원칙은 요리도구를 올바르게 사용하는 방법이고 디자인패턴은 요리법 즉 레시피라고 할 수 있다. 스프링은 객체 지향의 특성과 설계원칙을 극한까지 적용한 프레임 워크이다. 합성 : 객체를 속성으로 가지는 것. 어뎁터 패턴(Adapter Pattern) 호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴 (개방 폐쇄 원칙을 적용한 패턴) 프록시 패턴(Proxy Pattern) 제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴 (개방 폐쇄 원칙과 의존 역전 원칙이 적용된 설계 패턴이다.) 데코레이터 패턴(Decorator Pattern) 메서드 호출..

메모리 구조 , 객체 지향 4대 특성 , SOLID원칙

이 책을 읽는 이유 -스프링을 보다 더 폭넓게 이해하기 위함이고 스프링은 객체지향프레임워크이기 때문에 객체지향에 대해서 보다 더 알아야 한다고 생각하기 때문 메모리 구조 - T형 메모리 - {} 괄호를 통해 해당 영역의 메모리 공간이 생겨난다. - 크게 Static 공간 , Stack 공간 , Heap 공간으로 나뉘어져있다. -Static : 패키지, 클래스, static 변수, 전역변수 -Stack : 지역변수, 매개변수등 -Heap : 객체(인스턴스), 동적할당메모리 가비지 컬렉터가 메모리 자동 정리 객체지향 4대 특성 - 캡 상추다! 캡슐화 - 접근제어지정자를 통해서 접근제한을 할 수 있음. 상속화 - 상속화를 통해 해당 클래스에 대한 내용을 객체 별로 분류 하여 나타낼 수 있음. 클래스 : 예) ..