728x90 스터디/Spring25 [Spring] Spring Container, BeanFactory 그리고 ApplicationContext 스프링에서 가장 중요한 개념인 Container, BeanFactory 그리고 ApplicationContext 에 대해서 알아보고자 한다. 스프링에서 BeanFactory 와 ApplicationContext는 IoC Container 역할을한다. Spring Container 스프링에서 DI를 이용하여 애플리케이션을 구성하는 여러 빈들의 생명주기와 애플리케이션의 서비스 실행등을 관리하며 생성된 인스턴스들에게 기능을 제공하는 것. 컨테이너에 적절한 설정만 있으면 프로그래머의 개입 없이 작성된 코드를 컨테이너가 빈을 스스로 참조한 뒤 알아서 관리한다. 스프링 컨테이너는 주로 BeanFactory와 ApplicationContext 두 가지로 다룬다. *빈(Bean) : 스프링이 제어권을 갖고 직접 생성 .. 2021. 8. 17. [Spring] PSA (Portable Service Abstraction) 란? PSA (Portable Service Abstraction) 잘 만든 인터페이스(PSA)를 가지고 나의 코드가 바뀌지 않도록 다른 기술로 간편하게 바꿀 수 있도록 확장성을 갖는 것이다. Spring은 Spring Web MVC, Spring Transaction, Spring Cache 등의 다양한 PSA를 제공한다. 1. Spring Web MVC 일반 클래스에 @Controller 애노테이션을 사용하면 요청을 매핑할 수 있는 컨트롤러 역할을 수행하는 클래스가 된다. 또한, 의존성 설정에서 코드 한 줄만 바꾸면 tomcat이 아닌 netty기반으로 실행되게 변경할 수 있다. 이러한 어노테이션과 dependency 등을 통해서 복잡한 인터페이스를 가지고 사용자가 웹 기술 스택을 편리하게 바꿀 수 있도록.. 2021. 7. 4. [Spring] AOP(Aspect Oriented Programming)란? AOP란? AOP(Aspect Oriented Programming)는 직역하면 "관점지향 프로그래밍"이다. 한 마디로 정의하자면 AOP는 흩어진 코드를 한 곳으로 모으는 코딩 기법. 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. AOP를 사용하면 공통 관심 사항과 핵심 관심 사항을 분리하여 로직을 구현 할 수 있다. (공통 관심 사항을 AOP로 구현) -AOP 사용 장점 핵심 관심 사항과 공통 관심 사항 분리 가능 핵심 관심 사항을 깔끔하게 유지 가능 공통 관심 사항 로직 변경 용이 원하는 적용 대상 선택 가능 EX) AOP 등록 예시코드 - TimeTr.. 2021. 7. 4. [Spring] IoC와 DI Spring하면 항상 나오는 개념인 IoC와 DI에 대해서 정리를해본다. IoC (Inversion Of Control) 의역하면 "제어의 역전"이라고한다. 제어의 역전이란 무엇일까? 말그대로 메서드나 객체의 생성, 호출을 개발자가하는 것이 아닌 외부에서 결정하는 것이다. 스프링에서는 스프링 컨테이너가 제어권을 갖고 적절한 시점에 필요한 객체를 생성하고 메서드를 호출한다. 아래 코드 예시를 살펴보자. 과거에는 개발자들이 필요한 생성자를 new 키워드로 객체를 직접 생성하였다. class OwnerController { private OwnerRepository repository = new OwnerRepository(); } 제어권이 스프링 컨테이너로 넘어가고 객체의 생성 및 생명주기까지 관리 할 수 .. 2021. 7. 4. Spring vs SpringBoot Spring을 공부하면서 Spring과 SpringBoot의 차이점이 궁금했다. 우선 왜 스프링을 스프링이라할까? Spring 어원 개발자들이 스프링을 사용하게되면서 추운 "Winter"는 끝이나고 이제 "Spring"이 왔다고해서 스프링으로 이름이 붙여졌다고한다. 이렇게 Spring이라는 이름으로 프레임워크를 사용하게되었고 이후에 나온 것이 SpringBoot이다. Spring vs SpringBoot Spring과 SpringBoot의 자세한 차이점은 무엇일까? 우아한Tech의 닉 개발자분께서는 봄 vs 조금더 봄 으로 표현하신다. 스프링부트 특징은 1) 쉽게 만들고 2) 단독적이며 3) 상용화 수준의 4) 스프링 기반 애플리케이션 이라는 특징으로 단지 실행만 시키면 된다. 본격적인 차이점은 아래와 .. 2021. 6. 27. 이전 1 2 다음 728x90