개발 etc 57

JAVA 자바 어댑터 패턴(Adapter Pattern)

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 어댑터 패턴은 OCP 개방폐쇄원칙을 활용한 설계 패턴입니다. 먼저 어댑터 패턴이 활용되지 않은 예제입니다. 예제)ServiceA.javapackage adapterPattern; public class ServiceA { void runServiceA() { System.out.println("ServiceA"); }} ServiceB.javapackage adapterPattern; public class ServiceB { void runServiceB() { System.out.println("ServiceB"); }} C..

개발 etc 2017.03.12

JAVA 자바 디자인 패턴

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 먼저 요리와 객체 지향 프로그래밍 (OOP)를 비교해보면 - 요리도구 4대원칙(캡상추다) - 요리도구 사용법 설계원칙(SOLID) - 레시피 디자인 패턴이렇게 대입해볼 수 있습니다. 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에 많은 사람들이 인정한 베스트 프랙티스를 정리한 것이에요.디자인 패턴은 당연히 객체 지향 특성과 설계 원칙을 기반으로 구현되어 있어요. 스프링이란 : 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 디자인 패턴은 ..

개발 etc 2017.03.12

JAVA 자바 객체 지향 설계 5원칙 SOLID(5) - DIP 의존 역전 원칙

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ "고차원 모듈은 저차원 모듈에 의존하면 안된다. 이 두 모듈은 모두 다른 추상화된 것에 의존해야 한다.""추상화된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다.""자주 변경되는 구체 클래스에 의존하지 마라" -로버트 C.마틴 자동차와 스노우 타이어 사이에는 위 그림처럼 의존관계가 있어요. 자동차가 스노우타이어에 의존하하죠. 그런데 자동차는 한 번 사면 오래도록 타야하는데 스노우 타이어는 겨울이 지나면 일반타이어로 교체해야 하죠. 이런 경우 자동차 클래스가 자주 변경되는 구체 클래스(스노우타이..

개발 etc 2017.03.12

JAVA 자바 객체 지향 설계 5원칙 SOLID ISP 인터페이스 분리 원칙

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 인터페이스 분리 원칙이란 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다는 것입니다.SRP 단일 책임 원칙에서는 남자 클래스를 토막내서 하나의 역할(책임)만 하는 다수의 클래스로 분할 했었는데요.http://blog.naver.com/rain483/220502568265 인터페이스 분할 원칙을 적용할 수도 있습니다. 결론 적으로 단일 책임 원칙과 인터페이스 분할 원칙은 같은 문제에 대한 두 가지 다른 해결방법이라고 볼 수 있습니다.그러나 특별한 경우가 아니라면 단일 책임 원칙을 적용하는 것이 더 좋은 해결방..

개발 etc 2017.03.12

JAVA 자바 객체 지향 설계 5원칙 SOLID LSP 리스코프 치환 원칙

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 리스코프 치환 원칙이란 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다는 것입니다. 객체 지향의 상속은 다음의 조건을 만족해야 합니다. 하위클래스 is a kind of 상위클래스 - 하위 분류는 상위 분류의 한 종류다.구현 클래스 is able to 인터페이스 - 구현 분류는 인터페이스 할 수 있어야 한다. 위 두 개의 문장대로 구현된 프로그램이면 이미 리스코프 치환 원칙을 잘 지키고 있다고 할 수 있어요. 이 그림과 같이 계층도/조직도는 리스코프 치환 원칙을 위반한 사례이고, 이 그림과 같이 분류도는 리스코프..

개발 etc 2017.03.12

JAVA 자바 객체 지향 설계 5원칙 SOLID OCP 개방 폐쇄 원칙

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 개방폐쇄원칙은 소프트워어 엔티티(클래스 모듈 함수 등)는 확장에 대해서는 열려 있어야 하지만변경에 대해서는 닫혀있어야 합니다.바꿔말하면 자신의 확장에는 열려있고 주변의 변화에 대해서는 닫혀 있어야 한다는 것입니다. 예를 들어보겠습니다. 편의점에서 일일 삼교대로 직원이 교대하고, 줌라에는 다른 알바가 근무하기도 한다고 할 때 직원이 바뀐다고 해서 손님이 구매라는 행위를 하는데는 영향이 없습니다. 또한 직원이 여자, 남자, 어른, 아이, 사장, 매니저, 알바라고 해서 손님이 구매하는 행위는 영향을 받지 않죠.여기서 직원교대라고 하는..

개발 etc 2017.03.12

JAVA 자바 객체 지향 설계 5원칙 SOLID - SRP 단일 책임 원칙

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ SOLID의 S - SRP에 대해 공부해보겠습니다. 먼저 위 그림같이 남자라고 하는 클래스와 이 클래스에 의존하는 여러개의 클래스가 있다고 하면,남자클래스가 해야할 일과 책임이 너무 많게 됩니다. 객체지향 세계에서는 이런 경우를 나쁜 냄새가 난다고 해요. 따라서 이럴 때 역할(책임)을 분리하라는 것이 바로 SRP 단일 책임 원칙이에요단일 책임 원칙은 속성, 메서드, 패키지, 모듈, 컴포넌트, 프레임워크 등에도 적용할 수 있는 개념이에요.아래 그림처럼요. 앞으로 나올 나오는 모든 예제들은 이 책의 필자께서 편의를 위해 클래스명과 ..

개발 etc 2017.03.12