본문 바로가기

웹 개발/Java Spring7

빈 스코프(Bean Scope), 프록시(Proxy) 빈 스코프란 무엇일까? 스프링 빈은 기본적으로 스프링 컨테이너가 생성될때 같이 생성되면서 컨테이너가 종료될때까지 유지되는 구조이다. 하지만 이는 스프링 빈의 기본이 싱글톤(Singleton)스코프로 생성되기 때문이다. 이때 스코프란 말 그대로 빈이 존재할 수 있는 범위를 뜻한다. 스프링은 다양한 스코프를 지원한다. 싱글톤, 프로토타입, 웹관련스코프(request, session, application.,websocket) 정도의 스코프가 있다. 그 중 싱글톤은 스프링을 접하면서 가장 많이 써보고 스프링입문자라면 어떤 방식인지 알 수 있다. // 모른다면 https://donghs1541.tistory.com/9 or https://ko.wikipedia.org/wiki/%EC%8B%B1%EA%B8%80%.. 2021. 8. 11.
스프링의 다양한 의존관계 주입방법 먼저 의존관계 주입이 무엇인가에 대해 알고자 한다면 https://donghs1541.tistory.com/14 를 참고해주길 바란다. 의존관계 주입은 크게 4가지 방법이 있다. 생성자를 생성할때 하는 주입 setter를 이용한 주입 필드 주입 일반 메서드를 이용한 주입이 있다. 순서대로 알아보자 생성자 주입 이 방법은 생성자를 통해서 의존관계를 주입받는 방법이다. 생성자는 우리가 객체를 생성 할때 가장 먼저 1번 불러와지는 메소드로 클래스의 초기값을 설정하는 부분을 담당한다. 의존관계를 주입할 때는 생성자 주입을 권장하며 가장 많이 사용되는 방법이다. 그리고 스프링에서 지원하는 의존관계를 자동으로 주입해주는 것도 이방법을 사용한다. 필드에서 인터페이스를 선언한 후 생성자의 매개변수를 통해 인터페이스에 .. 2021. 8. 7.
Spring IOC(역전의 제어)/DI(의존관계 주입) IOC / DI 먼저 토비의 스프링의 책을 인용하자면 스프링 프레임워크의 근간, 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델, 유연하고 확장성이 뛰어난 코트를 만들 수 있게 해주는 프로그래밍 모델이다. 이 뜻이 무슨 말일까? 조금 더 자세히 알아보자 먼저 IoC는 Spring에서만 사용 되는 개념은 아니다. 프로그래밍 패턴이기 때문에 범용적으로 쓰인다. 그로 인해 Spring에서는 프로그래밍의 흐름을 핸들링 해주는 프레임워크이고 그것에 적합한 모델, 패턴들을 적용해야했고 이는 객체지향을 좀 더 강조할 수 있는 IoC/ Di 모델이 들어가게 된 것이다. 자바는 객체지향프로그래밍 언어이다. 그래서 객체 지향에 맞게 설계해야하고 좋은 객체 지향을 설계하는 5가지 설계원칙이 있다. SRP: 단일 책임 .. 2021. 8. 6.
AOP( Aspect Oriented Programming), 관점 지향 프로그래밍 이란? AOP란? AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원한다. ​ 그럼 AOP는 언제 사용해야 할까? ​ 예를 들어서 모든 메소드의 호출 시간을 측정한다고 가정해보자. 그러면 메소드마다 이런 식의 방법으로 하나하나 시간을 재서 호출 시간을 볼 수 있다. 하지만 이런 메소드가 10000개 100000개가 된다면 하나하나 다치다가 정년을 마칠 수도 있을 것이다. 거기다가 유지보수를 할때 매우 불편하다. 시간을 측정하는 요소는 사실 핵심 비지니스 로직도 아니고 또 핵심 비지니스 로직과 섞여버려서 보기도 불편하고 변경을 할 때도 모든 로직을 찾아가야한다. 이러한 문제점을 해결해주는 것이 바로 AOP이다. ​ 간단히 살명하자면 공통 관심 사항(cross-cutting concern) vs 핵.. 2021. 8. 5.