용어정리(17)
-
용어정리-[#디자인패턴] 2.Proxy Pattern
[ Proxy Pattern ]프록시 패턴 2018 - 06 - 01 프록시는 대리자, 대변인이라는 뜻을 가진 단어다. 코드를 통해 프록시 패턴의 구성을 살펴보자 IService.java 12345package proxyPattern; public interface IService { String runSomething();}cs IService 인터페이스를 구현한 Service.java123456package proxyPattern; public class Service implements IService { public String runSomething (){ return "서비스 짱!!";}Colored by Color Scriptercs IService 인터페이스를 구현한 Proxy.java 1..
2018.06.01 -
용어정리-[#디자인 패턴] 1.Adapter Pattern
[ Adapter Pattren ]어댑터 패턴 2018 - 06 - 01 어댑터를 번역하면 변환기(converter) 라고 할 수 있다. 변환기의 역할은 서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것이다. 데이터베이스 관련 프로그램을 작성해 봤다면 다양한 데이터베이스 시스템을 공통의 인터페이스인ODBC나 JDBC를 이용해 조작할 수 있다는 사실을 알고 있을 것이다. 바로 ODBC나 JDBC가 어댑터 패턴을 이용해 다양한 데이터베이스 시스템을단일한 인터페이스로 조작할 수 있게 해주기 때문이다. 다음은 어댑터 패턴이 적용되지 않은 코드이다. ServiceA.java 1234567package adapterPattern; public class serciceA { void runServiceA() ..
2018.06.01 -
용어정리-[#SOLID] 6.DIP
[ DIP ]의존 역전 원칙, Dependency Inversion Principle 2018 - 06 - 01 "고차원 모듈은 저차원 모듈에 의존하면 안 된다.이 두 모듈 모두 다른 추상화된 것에 의존해야 한다." "추상화된 것은 구체적인 것에 의존하면 안 된다.구체적인 것이 추상화된 것에 의존해야 한다." "자주 변경되는 구체(Concreate) 클래스에 의존하지 마라" -로버트 C. 마틴 자동차와 스노우타이어 사이에는 다음과 같은 의존 관계가 있다. 자동타가 스노우타이어에 의존한다.자동차는 한번 사면 몇 년은 타야 하는데스노우타이어는 계절이 바뀌면 일반 타이어로 교체해야 한다. 이런 경우 스노우타이어를 일반 타이어로 교체할 때자동차는 그 영향에 노출돼 있음을 알 수 있다. 영향을 개선해보자 자동차가..
2018.06.01 -
용어정리-[#SOLID] 5.ISP
[ ISP ]인터페이스 분리 원칙, Interface Segregation Principle 2018 - 05 - 31 단일 책임 원칙 ( SRP ) 를 다시 살펴 보자단일 책임 원칙에서 제시한 해결책은남자 클래스를 하나의 역할만 하는 클래스로 분할 하는 것이었다.그런데 꼭 그 방법뿐일까? 만약 남자를 토막 내는 것이 너무 잔인하다는 생각이 든다면 그때 선택할 수 있는 방법이 바로ISP 즉, 인터페이스 분할 원칙이다. 인터페이스 분할 원칙이 제시하는 해결책을 다음 그림을 통해 알아보자. 남자 클래스를 토막 내는 것이 아니라 다중 역할화 시켜여자친구를 만날 때는 남자친구 역할만 할 수 있게 인터페이스로 제한하고,어머니와 있을 때는 아들 인터페이스로 제한하고,직장상사 앞에서는 사원 인터페이스로 제한하고,소대..
2018.06.01 -
용어정리-[#SOLID] 4.LSP
[ LSP ]리스코프 치환 법칙, Liskov Substitution Principle 2018 - 05 - 31 "서브 타입은 언제나 자신의 기반 타입(base type) 으로 교체할 수 있어야 한다." 계층도 조직도의 경우 하위에 존재하는 것들이 상위에 있는 것들의 역할을 하는게 불가하다. 분류도인 경우에 하위에 존재하는 것들은 상위에 있는 것들의 역할을 하는 데 전혀 문제가 없다. 고래가 포유류 또는 동물의 역할을 하는 것은 전혀 문제가 되지 않는다. 객체 지향의 상속이라는 특성을 올바르게 활용하면 자연스럽게 얻게 되는 것이다. 출처 스프링 입문을 위한 객체 지향의 원리와 이해
2018.05.31 -
용어정리-[#SOLID] 3.OCP
[ OCP ]개방 폐쇄 원칙, Open Closed Principle 2018 - 05 - 31 "소프트웨어 엔티티( 클래스, 모듈, 함수 등 )는 확장에 대해서는 열려 있어야 하지만변경에 대해서는 닫혀 있어야 한다." - 로버트 C. 마틴 자신의 확장에는 열려 있고 주변의 변화에는 닫혀 있어야 한다. OCP의 아주 좋은 예로 JDBC가 있다JDBC를 사용하는 클라이언트는 데이터베이스를 오라클에서 MySQL로 변경한다 해도 connection 부분만 변경해 주면 된다.conntection 부분을 별도의 파일로 분리해둔다면 클라이언트 파일 소스는 단 한줄도 건드릴 필요가 없다. JDBC 뿐만 아니라 iBaits MyBatis 하이버네이트 등 다양한 데이터베이스 프로그래밍을 지원하는 프레임워크와 라이브러리에..
2018.05.31