반응형

프레임워크(Framework)/Spring 56

[Spring] 스프링 빈 생명주기 콜백

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '스프링 핵심 원리 - 기본편' 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 스프링 빈 생명주기 콜백 데이터베이스 커넥션 풀이나, 네트워크 소켓 등 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하기 위해 객체의 초기화와 종료 작업을 해야 한다. 스프링 빈 생명주기 콜백은 스프링 빈이 생성된 이후 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 호출하여 초기화나 종료 시점을 알려..

[Spring] 스프링 빈 스코프(Bean Scope)란 무엇인가?

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '스프링 핵심 원리 - 기본편' 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 특정 Bean 정의에서 생성된 개체에 연결할 다양한 의존성 및 구성 값뿐만 아니라 특정 bean 정의에서 생성된 객체의 범위도 제어할 수 있다. 빈 스코프(Bean Scope) 빈 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 스프링에서는 싱글톤(Singletone)과 프로토타입(Prototype) 빈 스코프, 스프링 MVC 웹 애플리케이션에서의 웹 관련 스코프를 제공하고..

[Spring] 스프링 빈(Bean)이란 무엇인가?

빈(Bean) 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. 즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. 빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다. @Bean 어노테이션을 통해 메서드로부터 반환된 객체를 스프링 컨테이너에 등록한다. 빈은 클래스의 등록 정보, Getter/Setter 메서드를 포함하며, 컨테이너에 사용되는 설정 메타데이터로 생성된다. 설정 메타데이터 : XML 또는 자바 어노테이션, 자바 코드로 표현하며, 컨테이너의 명령과 인스턴스화, 설정, 조립할 객체 등을 정의한다. 빈(Bean) 접근 방법 먼저, ApplicationContext(스프링 컨테이너)..

[Spring] 스프링 컨테이너(Spring Container)란 무엇인가?

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. '스프링 핵심 원리 - 기본편' 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 스프링 컨테이너(Spring Container) 스프링 컨테이너는 스프링 프레임워크의 핵심 컴포넌트이다. 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공한다. 스프링에서는 자바 객체를 빈(Bean)이라 한다. 즉, 스프링 컨테이너는 내부에 존재하는 빈의 생명주기를 관리(빈의 생성, 관리, 제거 등)하며, 생성된 빈에게 추가..

[Spring Boot] 스프링 부트란 무엇인가?

스프링 부트(Spring Boot) 먼저, 스프링 프레임워크(Spring Framework)는 엔터프라이즈 애플리케이션을 개발하기 위한 핵심 기능을 제공하는 Spring Project 중 하나이다. 이후 등장한 스프링 부트(Spring Boot)는 스프링 프레임워크의 복잡한 설정으로 인한 문제점을 해결하기 위해 등장한 Spring Project 중 하나이다. 일반적으로 Spring이라고 한다면 Spring Framework를 나타낸다. Sping Boot는 Spring을 더욱 간편하게 이용할 수 있는 도구 정도로 해석하면 된다. Spring Boot를 사용하는 이유 XML 기반의 복잡한 설계 방식을 사용하지 않는다. 의존 라이브러리를 자동으로 관리해 준다. 애플리케이션 설정을 자동으로 구성한다. 프로덕션..

[Spring] 스프링 프레임워크(Spring Framework)를 사용하는 이유

JSP를 이용한 애플리케이션 JSP는 Java Server Page의 약자로 초창기 Java 기반의 웹 애플리케이션 개발은 JSP를 통해 이루어졌다. JSP 개발 방식은 사용자에게 보이는 View와 사용자의 요청을 처리하는 서버의 코드가 섞여있는 형태의 개발 방식이다. JSP 예시 상당히 복잡하기 때문에 눈으로만 확인하는 것을 추천한다. TO DO 등록 TO DO List todo nametodo date 할 일이 없습니다. ${todo.todoName}${todo.todoDate} 위 예제를 살펴보면, 클라이언트와 서버가 분리되어 있지 않고 html, javascript 코드와 java 코드가 하나의 페이지에서 작성한 것을 알 수 있다. 이러한 방식은 코드의 가독성이 떨어지며, 복잡하여 유지 보수 측면..

[Spring] PSA란 무엇인가? (Portable Service Abstraction)

PSA(Portable Service Abstraction)란? PSA란 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하는 추상화 구조를 말한다. 특정 클래스가 추상화된 상위 클래스를 일관되게 바라보며 하위 클래스의 기능을 사용하는 것을 PSA의 기본 개념이다. 따라서 PSA가 적용된 코드는 개발자의 기존에 작성된 코드를 수정하지 않으면서 확장할 수 있으며, 어느 특정 기술에 특화되어 있지 않는 코드이다. Spring에서 동작할 수 있는 라이브러리들은 POJO 원칙을 지키기 위해 PSA 형태의 추상화가 되어있으며, Spring Web MVC, Spring Transaction, Spring Cache, Sprind Data, 메일 서비스 등의 다양한 PSA를 제공하고 있다. 서비스에 적..

[Spring] AOP란 무엇인가? (관점 지향 프로그래밍)

AOP(Aspect Oriented Programming)란? AOP(Aspect Oriented Programming)를 직역하면 관점 지향 프로그래밍으로 해석할 수 있다. OOP(Object Oriented Programming)은 객체 지향 프로그래밍이다. 즉, 객체 간의 관계를 지향하는 프로그래밍 방식이다. 그렇다면 이 관점(Aspect)을 지향하는 프로그래밍은 무엇일까? 위 그림처럼 아이를 키우는 육아 방식이나 교육 방식 등은 부모에 따라 제각각이다. 어떤 부모는 아이의 언어 발달을 위해 책을 읽어줄 것이고, 어떤 부모는 동요나 만화를 들려줄 것이다. 이처럼 아이를 키우는 방식은 다를 수 있지만, 공통되는 부분이 존재한다. 부모의 공통된 관심사는 어떤 방식으로 아이를 키우는 것과는 별개로 아프지..

[Spring] 스프링 IoC와 DI란 무엇인가? (제어의 역전과 의존성 주입)

IoC(Inversion of Control)란? 프레임워크와 라이브러리의 가장 큰 차이는 해당 애플리케이션의 흐름의 제어권(주도권)에 있다. 라이브러리는 애플리케이션 흐름의 주도권이 개발자에게 있고, 프레임워크는 애플리케이션 흐름의 주도권이 프레임워크에 있다. IoC(제어의 역전 또는 제어의 역행)는 애플리케이션 흐름의 주도권이 뒤바뀐 것을 뜻한다. IoC는 개발자가 프레임워크 API를 사용하면서 설정 파일을 통해 객체의 생명주기, 클래스 등을 프레임워크가 직접 제어권을 갖게 되었다. 이처럼 개발자의 제어권이 프레임워크로 넘어가게 되어 제어의 역전이라 부른다. IoC는 제어의 역전 또는 제어의 역행이라 불리며 스프링의 가장 핵심적인 기능으로 객체의 생명주기를 관리하고 의존성 주입(DI)을 통해 각 계층..

[Spring] POJO란 무엇인가?

POJO(Plain Old Java Object) 위 이미지는 Spring 삼각형이라는 유명한 이미지로 Spring의 핵심 개념들을 모두 표현하고 있다. POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는 것을 의미한다. POJO란 Plain Old Java Object의 약자로, 이를 직역하면 순수한 오래된 자바 객체이다. 즉, Java로 생성하는 순수한 객체를 뜻한다. 이를 해석하면 POJO는 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고, 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 의미한다. 이러한 POJO에 애플리케이션의 핵심 로직과 기능을 담아 설계하고 개발하는 방법을 POJO 프로그래밍이라고 한다. POJO 프로그래밍 POJO 프로그래밍은 POJO를..

반응형