본문 바로가기

개발자노트/Spring

(12)
의존성 주입 ( DI = Dependency Injection ) 의존성 주입(dependency injection)은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. 즉, 외부에서 두 객체 간의 관계를 지정해주는 디자인 패턴으로, 인터페이스를 사이에 두어 클래스 레벨에서는 의존관계가 고정되지 않도록 하고, 서버 런타임 시 관계를 동적으로 주입하여 결합도를 떨어트릴 수 있게 해준다. 의존성 주입에는 크게 두가지 방법이 있다. 1) 생성자 인젝션 2) 수정자(Setter) 인젝션 1) 생성자 인젝션 Iphone의 기본생성자 외에 Watch와 battery를 인자로 필요로 하는 생성자를 만든다. 그리고 .xml 파일 ( 스프링 컨테이너 ) 에는 Galaxy 객체를 phone에 담고, 이 때 이 멤버변수는 ref = "주입할 객체명" value= "문자열 혹은 기본..
Spring AOP ( 관점지향 프로그래밍 ) [관점지향 프로그래밍] Aspect Oriented Programing 횡단관심(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임 코드 자체를 수정하지 않고, 기존의 코드에 추가동작을 추가함으로써 수행한다. 이를 통해 기능을 수행하는 코드의 핵심부를 복잡하게 채우지 않고도 비즈니스 로직에 핵심적이지 않은 동작들을 프로그램에 추가할 수 있도록 한다. 즉 , 기능을 비즈니스로직과 공통 모듈로 분리한 후, 필요 시점에 비즈니스 로직에 삽입하여 실행하도록 한다. 핵심관점(비즈니스로직) + 횡단관점(트랜잭션 , 로그, 권한체크, 인증 ,예외처리 등)으로 관심의 분리를 이룬다. 쉽게말해 DI가 의존성(객체를 new)의 주입이라면 , AOP는 기능(lo..
Spring 개념 IOT ( 제어의 역행 ) [제어의 역행] Inversion of Control 객체 생성문을 직접 작성해서 해당 객체를 사용할 수 있게 하는게 아니라 객체가 필요한 곳에 객체를 주입(Injection)함으로써 해당 객체를 사용할 수 있도록 해주는 것이다. ❓누가 주입해주나? = 스프링 컨테이너 ✅ 효과 : ➡ 객체의 생성과 객체 간 의존관계에 대한 코드가 클래스코드소스 상에서 사라지게 된다 ➡ 즉, 객체를 변경해줘야할 때 해당 객체를 사용 중인 모든 클래스에서 소스를 수정하지 않아도 된다 == 유지보수 용이 , 의존관계를 명시 ❓ 그렇다면 스프링 컨테이너란?? 스프링 애플레이션 내의 여러 클래스에서 각각의 객체들을 생성하고 의존관계를 설정하는 작업을 대신 수행해주는 곳이 스프링 컨테이너 ❗ 동작순서 애플리케이션이 실행되면, 스프..
이클립스에서 Spring 프레임워크 [플러그인] 사용하기 ❗ 주의할점 - JDK가 여러가지가 깔려있으면 오류가 뜰 가능성이 높음 - 환경변수 설정을 했는지 확인 - eclipse 설치경로에 eclipse.ini 파일의 내용 중 -vm에 경로가 설치 된 jdk 경로인지 확인 경로를 바꾸지 않았다면 상위경로와 비슷할 것임 step1. 이클립스 실행 후 상단에 help → Eclipse Marketplace... 클릭 step2. sts를 검색 후 엔터 그 후 Spring Tools 3가 두개가 뜰 것인데, Standalone 와 Add-On 두가지가 있음 원래는 Standalone 설치 완료 후 Add-On을 설치하는 것이지만 나같은 경우에는 오류가 발생하여 Add-On 버전만 설치하였더니 정상작동하였음 ❗ 설치 진행을 할 때 우측 하단에 % 게이지 잘 확인하고 ..