본문 바로가기

Spring

(12)
Spring IoC Container(Spring Container) Spring IoC Container(Spring Container) 란 Spring IoC Container(혹은 Spring Container)란 객체의 생명주기를 관리하며 이러한 객체들에게 추가적인 기능을 제공하는 스프링의 핵심 컴포넌트이다. 즉, 스프링의 bean을 관리(bean 생성 및 생명주기 관리, DI, AOP 지원 등)하는 컨테이너라고 보면 된다. 이러한 스프링 컨테이너는 XML 파일 또는 어노테이션 기반의 자바 설정 클래스로 구현할 수 있다. 예전에는 xml 파일을 통해 직접적으로 스프링 컨테이너를 설정하는 것이 일반적이었지만, Spring Boot가 등장하고 설정이 자동화되어 대부분 사용하지 않게 되었다. Spring IoC Container(Spring Container) 구성  스..
Bean 스코프 Bean Scope 란 Bean은 스프링 컨테이너에서 관리하는 객체를 의미하며 Bean Scope는 이러한 Bean이 존재할 수 있는 범위를 뜻한다. Bean의 기본 스코프는 singleton이라 어플리케이션이 구동되는 동안 하나의 인스턴스만 생성되어 사용된다. 많은 Spring 개발자들이 Bean의 스코프를 기본값인 singleton으로만 사용하기 때문에 크게 신경 쓰지 않는 경우가 많다. 하지만 Bean 스코프를 잘 활용하면 보다 다양한 요구사항에 맞춰 어플리케이션을 효율적으로 개발할 수 있다. 참고로 Bean scope는 다음과 같이 사용할 수 있다.@Component@Scope(value = "prototype")public class ProtoType {} Bean Scope 종류 Bean 스코..
Spring, Spring Boot 차이 Spring, Spring Boot란 Spring은 엔터프라이즈급 Java 어플리케이션 개발을 위한 프레임워크이다. Spring은 의존성 주입(Dependency Injection), AOP(Aspect-Oriented Programming), MVC(Model-View-Controller) 패턴 등을 지원하여 복잡한 Java 애플리케이션을 더 쉽게 개발할 수 있게 만들어 준다. Spring Boot는 Spring을 기반으로 한 확장 프레임워크로 Spring에 비해 복잡한 설정 없이 빠르게 어플리케이션을 개발하는 것이 가능하다. Spring Boot는 내장 서버와 자동 설정 기능을 제공하여 개발 생산성이 높은 편이다. Spring을 기반으로 확장해서 나온 것이 Spring Boot 이므로 Spring B..
@Transactional 동작 방식 이번 포스트를 보기 앞서 이전 포스트를 보고 오시기 바랍니다.https://jaystorage.tistory.com/25 AOP와 Spring AOPAOP (Aspect Oriented Programming)란 AOP는 관점 지향 프로그래밍을 의미한다. 처음 이 단어를 접하면 객체지향(OOP), 절차지향(PP)과 완전히 다른 새로운 개념인지 의문이 들 수 있으나 AOP는 기본적으로 OOPjaystorage.tistory.com  @Transactional 이란? @Transactional 어노테이션은 Spring에서 제공하는 어노테이션으로 메소드나 클래스에 적용하여 트랜잭션 경계를 지정할 수 있게 만든다. @Transactional 어노테이션을 사용하면 해당 메소드나 클래스의 메소드 실행이 트랜잭션 경계..
JDK Dynamic Proxy vs CGLIB Proxy 이번 포스트를 보기 앞서 이전 포스트를 보고 오시기 바랍니다.  https://jaystorage.tistory.com/25 AOP와 Spring AOPAOP (Aspect Oriented Programming)란 AOP는 관점 지향 프로그래밍을 의미한다. 처음 이 단어를 접하면 객체지향(OOP), 절차지향(PP)과 완전히 다른 새로운 개념인지 의문이 들 수 있으나 AOP는 기본적으로 OOPjaystorage.tistory.com Proxy 패턴 프록시 패턴은 대상 원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴이다. 프록시(Proxy)의 사전적인 의미는 '대리인'이라는 뜻이다. 즉, 누군가에게 어떤 일을 대신 시키는 것을 의미하는데, 이를 객체 지향 프로그래밍에 접목해보면..
AOP와 Spring AOP AOP (Aspect Oriented Programming)란 AOP는 관점 지향 프로그래밍을 의미한다. 처음 이 단어를 접하면 객체지향(OOP), 절차지향(PP)과 완전히 다른 새로운 개념인지 의문이 들 수 있으나 AOP는 기본적으로 OOP 환경에서만 의미있는 개념이다. 다시 말해 AOP는 OOP를 보완하는 프로그래밍 기법이라고 할 수 있다.이런 AOP에 대한 정의는 각 기업이나 사이트마다 조금씩 다른데 가장 대표적인 정의는 다음과 같다. AOP는 횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 하지만 위 내용만으로는 AOP가 구체적으로 어떤 것인지 와닿지 않는다. AOP를 보다 자세히 이해하려면 다음과 같은 개념을 알..
SL4J와 Logback을 이용한 Logging Logging 이란 로깅이란 정보를 제공하는 일련의 기록인 로그(Log)를 생성하도록 시스템을 작성하는 활동을 의미한다. 보다 쉽게 설명하면 프로그램 동작 시 발생하는 모든 일을 기록하는 행위를 로깅이라고 할 수 있다. 이러한 로깅은 주로 프로그램의 동작 상태를 기록하여 어플리케이션을 운영하는 도중에 문제가 발생했을 때 해당 문제에 대한 원인을 분석하기 위해 사용된다. 자바에서는 System.out.println() 메소드를 사용해 원하는 내용을 출력할 수 있긴 하나 해당 메소드는 콘솔에서만 내용을 출력할 수 있다. 따라서 일반적으로 로깅을 할 때는 log4j나 logback과 같은 로깅 라이브러리를 사용해 로그 파일을 생성하는 방법을 사용한다. Log Level 일반적으로 로깅 라이브러리를 사용하여 로..
Filter, Interceptor, AOP 이번 포스트를 보기 앞서 이전 포스트를 보고 오시기 바랍니다. https://jaystorage.tistory.com/12 Spring Framework의 특징과 작동 과정이번 포스트를 보기 앞서 이전 포스트를 보고 오시기 바랍니다. https://jaystorage.tistory.com/6 POJO (Plain Old Java Object) 처음 POJO(Plain Old Java Object)라는 개념을 접했을 당시에는 ‘평이하고(아무것도 꾸며jaystorage.tistory.com  Spring Framework에서 공통 로직 관리 스프링으로 웹 개발을 하다 보면 비즈니스 로직이 호출되기 전이나 후에 공통적으로 처리해야 하는 기능들이 생기기 마련이다. 대표적인 예로 Logging, 인증, 인가, 인..