@Configuration의 어노테이션은 SingleTon 이다. @Component 와 @Configuration 의 차이부터 알고 시작하자. @Component는 스프링이 가지는 특징인 DI의 특성을 보여주는 어노테이션 일것이다. 이전까지 XML 파일에 개발자가 클래스 혹은 메소드를 Bean으로서 직접 주입해 주었다면 @Component 어노테이션의 등장으로 개발자가 직접 XML파일에 직접 작성하는 과정을 생략할 수 있었다. 스프링2.5 버전에서 추가된 이 버전은 @Controller, @Service, @Repository 어노테이션에 기본 내장되어있어 우리가 위 3가지를 클래스 상단에 추가해주기 때문에 @Component 를 선언 없이도 Bean으로서 사용할 수 있었던 것이다. @Configura..
목차 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 예제 이전..
빌드 관리 도구? 빌드도구는 소스코드에서 어플리케이션 생성을 자동화 하기 위한 프로그램이다. 빌드는 코드를 사용 하거나 실행 가능한 형태로 컴파일링, 링킹, 패키징 하는것을 포함한다. 기본적으로 빌드 자동화는 아래와 같은 정형화된 다양한 작업을 스크립팅하거나 자동화 하는 행위이다 종속성 다운로드 소스코드를 바이너리코드로 컴파일 바이너리 코드를 패키징 테스트 실행 프로덕션 시스템에 배포 Maven Maven은 Java용 프로젝트 관리도구로 Apache의 Ant 대안으로 만들어졌다. 빌드 중인 프로젝트, 빌드 순서, 다양한 외부 라이브러리 종속성 관계를 pom.xml파일에 명시한다. Maven은 외부저장소에서 필요한 라이브러리와 플러그인들을 다운로드 한다음, 로컬시스템의 캐시에 모두 저장한다. 예를 들어, ..
1. What is IOC ?? IOC(Inversion of Control) 스프링에서 일반적인 Java 객체를 new로 생성하여 개발자가 관리 하는 것이 아닌 Spring Container에 모두 맡긴다. 즉, 개발자에서 -> 프레임워크로 제어의 객체 관리의 권한이 넘어 갔음으로 "제어의 역전" 이라고 한다.\ IOC 개념의 등장 spring의 등장 이전 EJB (Enterprise JavaBeans) 개발자가 생성한 모든 객체는 직접 관리해야했고 로직이 개발의 규모가 커질 수록 코드의 복잡성과 함께 유지보수도 어려움이 커져갔다. spring의 등장 이후는 어땠을까? 새로운 프레임워크 spring은 3대요소를 외치며 등장했다. 개발자가 방대한 객체를 만들고 관리하는 과정이 어려워짐에 따라 본래의 로직..
- Total
- Today
- Yesterday
- docker
- 스프링부트
- 매트랩
- 스프링
- 그래프
- OOP
- 알고리즘
- kakao
- security
- C언어
- 프로그래머스
- Spring
- 자격증
- 수학
- Algorithm
- CS
- Solid
- Matlab
- spring-cloud
- ajax
- JPA
- java
- nginx
- 디자인패턴
- 자바
- 면접
- interview
- 릿코드
- springboot
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |