목차 Autowire 사용과 Resource의 사용 Autowire 사용과 Resource의 사용 public class Car { // TODO: 속성 자동 주입 @Autowired Tire tire; public String getTireBrand() { return "장착된 타이어: " + tire.getBrand(); } } public class Car { // TODO: 속성 자동 주입 @Resource Tire tire; public String getTireBrand() { return "장착된 타이어: " + tire.getBrand(); } } 위 코드를 본다면 차이가 보이지 않는다. 단, 어노테이션만 다를 뿐이다. @Autowire @Resource 출처 스프링 프레임워크 표준 자바 ..
목차 스프링 없이 생성자를 통한 의존성 주입 속성 통한 의존성 주입 스프링을 사용하여 XML 파일 사용 JAVA 코드에서 속성 주입 XML 파일 사용 XML 파일에서 속성 주입 Autowire 사용 스프링 없이 생성자를 통한 의존성 주입 자바를 기초로 만든 가장 기본적인 방식이 아닐까 생각한다. Driver 클래스에서 Car객체를 생성하고 그 내부에서 필요한 객체를 생성하여 주입하는 방식인데 생각해본다면 코드의 유연성이 떨어지는 코드라고 생각한다. 즉, 필요에 따라 객체의 핵심을 손봐야하는 문제가 발생하는 것이다. public class Car { Tire tire; public Car() { tire = new KoreaTire(); // tire = new AmericaTire(); } public ..
목차 AOP의 5가지 용어 Advice 는 무었일까? Aspect는 정확이 무엇일까? Advisor은? AOP의 5가지 용어 AOP를 학습했지만 아직도 모르는 어노테이션이 수두룩하다. 이번 포스팅에서는 AOP에서 가장 많이 사용되는 용어를 정리해 보려한다. 용어 뜻 Aspect 관점, 측면 Advisor 조언자, 고문 Advice 조언, 충고 JoinPoint 결합점 Pointcut 자르는 점 Advice 는 무었일까? 충고라는 의미의 Advice는 @Aspect 를 가지는 class가 가지는 메소드이다. 다르게 말하면, pointcut에 적용할 로직(메서드)를 의미한다. @Aspect @Component public class ParameterAop { @Pointcut("execution(특정 클래스..
목차 관점 지향 프로그래밍 횡단 관심사 AOP 예제 관점 지향 프로그래밍 관점에 집중한 이 개념은 특수한 기능이 아닌 개발자가 하나의 로직에 집중할 수 있도록 별도의 로직을 개설하는 과정의 개념으로 볼 수 있다. 쉽게 요리는 요리사가 미식은 미식가가 하는 것과 같은 것이다. 물론 미식가가 요리를 할 수 있지만 먹는 행위를 하는 것에 집중하는 것이 좋은 리뷰를 남길 수 있을 것이다. 비즈니스 개발에서는 다음과 같이 볼 수 있다. Spring Application은 특별한 경우를 제외하고 MVC 웹 어플리케이션 에서는 Web Layer / Business Layer / Data Layer로 정의한다. - Web Layer - REST API를 제공하며, Client 중심의 로직 적용 - Business La..
목차 의존성관계주입 Spring ICO (Inversion Of Control) IOC 예제 @Component 를 입력했더니 에러가 발생했다. 번외 실무에서는 잘 사용하지 않는다는 말 의존성관계주입 Spring ICO 스프링에서 일반적인 Java 객체를 new로 생성하여 개발자가 관리하는 것이 아닌 Spring Container에 모두 맡긴다. 따라서 개발자의 직접 관리 없없도 Spring Container는 객체의 생명주기를 관리할 수 있게되며 개발자가 원하는 요청에 따라 DI의 요청을 수행할 수도 있다. 개발자 중심의 관리 ➡ 프레임워크 중심의 객체관리 권한 제공 그렇다면 Spring Container가 객체를 관리하면 개발자는 어떻게 Container로 부터 객체를 가져와야할까? IOC 예제 이전..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 팩터리 메서드 패턴 - 의존 역전 원칙(DIP) 객체 지향에서 팩터리는 객체를 생성한다 결국 팩터리 메서드는 객체를 생성 반환하는 메서드 이다. 더 나아가 패턴 이라는 접미사가 따라온다면 상위클라스에서 생성한 메서드를 하위클라스에서 오버라이딩 하여 객체를 반환하게 하는 것을 의미한다. 싱글톤 패턴 - 적용 후 public abstract class Animal { // 추상 팩터리 메서드 abstract AnimalToy getToy(); } public abstract class Anim..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 탭플릿 콜백 메서드 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP) 전략 패턴의 변형으로, 스프링 3대 프로그래밍 모델 중 하나인 DI(의존성 주입)에서 사용하는 특별한 형태의 전략 패턴이다. 탬플릿 콜백 패턴의 특징은 전략 패턴의 메서드를 익명 내부 클래스로 정의하여 사용한다는 특징이 있다. 템플릿 콜백 패턴 - 적용 전 (전략 패턴 상태) public interface Strategy { public abstract void runStrategy(); } public cla..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 템플릿 메서드 패턴 - 의존 역전 원칙(DIP) 상위 클래스에 공통 로직을 수행하는 탬플릿 메서드와 하위 클래스에 오버라이딩을 강제하는 추상 메서드 또는 선택적으로 오버라이딩할 수 있는 훅(Hook) 메서드를 두는 패턴이다. 템플릿 메서드 패턴 - 적용 후 public abstract class Animal { // 템플릿 메서드 public void playWithOwner() { System.out.println("귀염둥이 이리온..."); play(); runSomething(); S..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 전략 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP) 전략 패턴은 디자인 패턴에서 가장 활용성이 높은 패턴으로 설면된다. 전략 메서드를 가진 전략 객체 전략 객체를 사용하는 컨텍스트(전략 객체의 사용자 / 소비자) 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트(전략 객체의 공급자) 클라이언트가 주입하는 전략에 따라 컨텍스트의 형태가 바뀐다고 생각하면 된다. 전략 패턴 - 적용 후 public interface Strategy { public abstract void runS..
🚀 스프링에서 디자인 패턴의 중요성 디자인 패턴은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 가장 효율적인 예시를 정리한 패턴의 집합이다. 🌠 싱글톤 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP) 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등과 같은 경우 인스턴스를 여러개 만들게 되면 불필요한 자원을 사용하게 된다. 여기서 싱글톤 패턴을 적용하여 하나의 인스턴스를 만들어 사용하기 위한 패턴이다. 단일 객체를 사용하는 패턴인 만큼 의미상 두개의 객체가 존재할 수 없으며, 이를 구현하기 위한 new에 재역울 걸어야 하고, 만들어진 단일 객체를 반환할 수 있는 메서드가 필요하다. new를 실핼할 수 없도록 생성자에 pr..
- Total
- Today
- Yesterday
- 알고리즘
- security
- kakao
- ajax
- Solid
- spring-cloud
- 자격증
- CS
- 프로그래머스
- 매트랩
- C언어
- 면접
- springboot
- 백준
- java
- JPA
- 디자인패턴
- OOP
- 릿코드
- 수학
- 스프링
- 그래프
- docker
- Matlab
- 스프링부트
- nginx
- 자바
- Spring
- interview
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |