목록OOP (15)
오늘이군
1. 추천 글 https://www.youtube.com/watch?v=fy_Uoas0ToY 17분~ http://jinpyo900.tistory.com/55 2. PSA (Portable Service Abstraction) : 일관성 있는 추상화 가. 설명 환경과 세부 기술의 변화에 관계없이 일관된 방식으로 기술에 접근할 수 있게 해줌 POJO로 개발된 코드는 특정 환경이나 구현방식에 종속적이지 않아야 한다 다시 말해, Spring은 POJO 원칙으로 만들었기 때문에, Spring 패키지 외의 것들을 POJO화 시키기 위해 껍데기를 씌우겠다는 것 각 벤더 들이 여러가지 인터페이스로 제공을 하더라도, Spring 에서 Adapter pattern 을 적용하여 제공하므로, 사용하는 클라이언트에서는 공통된..
1. 추천 글 https://www.youtube.com/watch?v=4AN_cmX56G8 http://expert0226.tistory.com/200 2. AOP (Aspect-oriented programming) : 관점 지향 프로그래밍 가. 횡단관심 출처 : http://expert0226.tistory.com/200 코드 = 핵심관심사항 + 횡단관심사항 나. 로직주입 출처 : http://expert0226.tistory.com/200 다. 소스예시 http://expert0226.tistory.com/202 http://expert0226.tistory.com/204 라. 용어 1) Pointcut : 자르는 지점. Aspect 적용 위치 지정자 - execution("지점") 2) Join..
1, 추천 글 https://www.youtube.com/watch?v=al4NfBp3VLI http://expert0226.tistory.com/199 https://www.youtube.com/watch?v=KCs2hXM-2E0 https://www.youtube.com/watch?v=w9rZCy90Q4M 55분~ http://blog.naver.com/todoskr/220833180218 2. IoC (Inversion of Control) : 제어의 역전 가. 의미 1) 객체 생성 및 생명주기의 관리 까지 모든 객체에 대한 제어권이 개발자가 아닌 스프링 컨테이너에게 넘어가 버린 것입니다. 2) 스프링은 개발자 대신 객체를 관리하기 위해서 컨테이너를 갖고 있기 때문에 Spring 프레임워크를 Spr..
1. 추천 글 http://jusungpark.tistory.com/category/DesignPattern https://www.youtube.com/watch?v=w9rZCy90Q4M 2. 개요 가. 사전지식 : 상속, 인터페이스, 합성(다른 객체를 속성으로 가짐), 위임 ----------------> 참고(개인경험) : 디자인패턴이 어려운이유는 OO특성/SOLID 에 대해 제대로 이해가 안되서 그렇습니다. (step by step) 나. 종류 1) Creational Patterns(생성 패턴) Singleton / Prototype / Builder / Factory Method / Abstract Factory 2) Structural Pattenrs(구조 패턴) Proxy / Adapter ..
※ 추천 글 https://www.youtube.com/watch?v=nrlHZBAXjv8&t=3894s 49분~ https://www.youtube.com/watch?v=AeyUpM3A2zo 1. DIP (Dependency Inversion Principle) : 의존 역전의 원칙 가. 설명 고차원모듈은 저차원모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화된 것에 의존해야 한다 추상화된 것은 구체적인 것에 의존하면 안된다. 구체적인 것이 추상화 된 것에 의존 (의존의 역전)해야 한다. 자주 변경되는 구체(Concrete) 클래스에 의존하지 마라. 나. 적용 전 (겨울이 지나면? 눈이 안오면? 난감하다) class 자동차 { 스노우타이어 st = new 스노우타이어(); } 자동차는 자신보다 변..
※ 추천 글 https://www.youtube.com/watch?v=nrlHZBAXjv8&t=3894s 41분~ http://blog.naver.com/zxy826/220888878122 1. ISP (Interface Segregation Principle) : 인터페이스 분리의 원칙 가. 설명 "클라이언트는 자신이 사용하지 않는 메서드에 의존관계를 맺으면 안된다" - 로버트 C.마틴 나. 예시 1) 적용전 2) 적용후 책임을 분리하는 관점에서 SRP 와 유사하며외부 라이브러리 등 수정이 불가능한 상황에서는 ISP 를 적용하고, 직접 수정이 가능한 경우는 SRP 가 더 유리합니다.
※ 추천 글 https://www.youtube.com/watch?v=nrlHZBAXjv8&t=3894s 39분~ http://blog.naver.com/ruzicka/220794452970 1. LSP (Liskov Substitution Principle) : 리스코프 치환의 원칙 가. 설명 "서브타입은 언제나 자신의 기반타입 (base type) 으로 교체할 수 있어야 한다" - 로버트 C.마틴 나. 필요조건 1) 하위클래스 is a kind of 상위클래스 동물 animal = new 개(); animal.cry(); 상위클래스에 하위클래스 객체를 대입해 사용해도 프로그램은 정상적으로 동작해야 한다. 2) 구현클래스 is able to 인터페이스 다. 위반시 문제점 1) 하위클래스 객체를 파라미터..
※ 추천 글 https://www.youtube.com/watch?v=nrlHZBAXjv8&t=3894s 27분~ http://mckdh.net/554 1. OCP (Open Closed Principle) : 개방폐쇄의 원칙 가. 설명 "소프트웨어 엔티티(클래스, 모듈, 함수 등) 는 확장에 대해서는 개방돼야 하지만 변경에 대해서는 폐쇄돼야 한다" - 로버트 C.마틴 데이터베이스가 오라클에서 MySQL로 바뀐다고 해도 Connection을 설정하는 부분 외에는 따로 수정 할 필요가 없다. 기존 개발된 기능의 변경 건이 있거나 새로운 기능 확장을 해야하는 경우, 기존 클래스 내부코드를 변경하는 방법은 기존의 소스를 사용하는 모든 클래스의 정상적인 작동이 위태롭게 된다. 이 때 기존의 클래스를 최대한 수정..