Programming/Java9 [Java] 디자인 패턴 - Decorator(데코레이터, 장식자) 패턴 데코레이터 패턴은 기존에 사용하고 있는 클래스를 변경하는 것이 아니라 기능이 변경되고 추가된 유사하지만 새로운 클래스를 생성해 주는 것이다. 밑줄 친 내용만 알면 이해가 훨씬 쉬워진다! 아래는 가정은 단순히 설명을 위한 예시일 뿐 현실과는 다를 수 있으니 깊게 생각하지말고 단순히 그렇구나 하고 받아들이자! 1. 예를들어 커피 레시피가 있다고 하면! 아메리카노가 가장 기본 적인 레시피라고 가정하겠다. 그러면 카페라떼 주문이 들어왔을 때 기존의 아메리카노를 변경하는게 아니라 우유와 기타 등등을 넣어 카페라떼라는 새로운 메뉴를 만드는 것이다! 2. 예를 들어 차(Car)가 있다고 하면! 차의 서로 다른 모델을 만든다면, 초기 모델의 제조공정은 그대로 두고, 업그레이드를 위한 설비를 추가해서 다른 모델을 찍어 .. 2022. 1. 25. [Java] 디자인 패턴 - Proxy(프록시) 패턴 아주 간단하게 이해해보자. Main 클래스가 있고 산술 클래스가 있다고 생각해보자. 산술 클래스 아래에 더하기 함수가 있고, Main에서는 더하기 함수를 사용하고 싶다. 패턴 사용 안 할경우: 1. 그러면 Main에서 산술 클래스의 인스턴스를 생성해서 사용 해도 문제가 없다. 2. 하지만 다음에 만약에 더하기 방식이나 변수가 바뀔 수 있을 가능성이 있다! 3. 만약에 바뀌게 된다면, Main에서는 바뀔 때 마다 호출을 바뀐 거에 맞춰서 새롭게 해줘야 한다! 그래서 Proxy 패턴을 사용한다. 패턴 사용 할 경우: 1. 산술 클래스의 프록시 클래스를 생성한다 이름은 간단하게 산술 프록시라고 하자. 2. 이제 Main은 산술 클래스의 인스턴스를 바로 생성해서 접근하는 것이 아니라, 산술 프록시 클래스의 인스.. 2022. 1. 25. 인텔리제이는 신이고 무적이다. ClassNoTFoundException 해결 인텔리제이는 신이고 무적이다. 뭐야 이 이클립스와는 비교도 안되는 편리함. 내가 아직 제대로 개발을 시작하지 않아서 그럴지도 모르지만 너무 편하다. 단축키 /* ctrl + shift + / 블록 주석(지금쓰고 있는거) */ /* alt + tab 파일끼리 이동*/ /* alt + insert 코드 자동생성 */ /* ctrl + shift + enter Complete Current Statement(현재 구문 완성) 끝에 세미콜론(;) 붙이기 편함 */ /* ctrl + alt + insert 파일 생성 */ /* alt + shift + 키보드 업다운 해봐!*/ ClassNotFoundException Error: Could not find or load main class com.company.M.. 2022. 1. 12. 스프링(Spring)의 객체지향 SOLID 객체지향의 설계 5원칙이라는데 이걸 꼭 지켜야하는지는 모르겠다. 직접 개발하면서 느끼면 되겠지. 어느정도 공감가는 부분은 있지만 다 지키기엔 서비스 별로 필요한 설계가 다 다르지 않을까 싶다. 스프링? POJO(Plain Old Java Object) 를 지향하는 프레임워크. 개발자가 비즈니스와 서비스의 복잡도와 시스템의 복잡도를 모두 고려하며 설계하고 개발하는 것은 어려움이 있다. 이를 보조하고자 나온 것이 스프링과 같은 프레임워크. 2022. 1. 10. 이전 1 2 3 다음