java

    [Spring] 빈 생명주기 콜백

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 빈 생명주기 콜백 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 간단하게 가상의 외부 네트워크에 연결하는 객체를 생성한다고 가정해보자. public class NetworkClient { private String url; public NetworkClient() { Sys..

    [Spring] 의존관계 자동 주입

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 일반적으로 생성자 주입을 주로 사용하고 가끔 수정자 주입을 사용한다. 필드 주입과 일반 메서드 주입은 거의 사용하지 않는다. 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법이다. 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다..

    [Spring] 컴포넌트 스캔

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 그러나 등록해야 할 스프링 빈이 수십, 수백개가 되면 일일이 등록하는 작업이 반복될 것이다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또 의존관계도 자동으로 주입하는 @Autowired라는 기능..

    [Spring] 싱글톤 컨테이너

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 웹 애플리케이션은 고객이 동시에 계속 요청하는 시스템이다. 그렇다면 매 요청 때마다 객체를 만들어야 할까? 이는 지나친 메모리 사용을 통해 비효율적이다. 이 때문에 싱글톤 컨테이너 사용이 필요하다. 싱글톤 패턴 전에 만들었던 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때마다 객체를 새로 생성한다. 고객 트래픽이..

    [Spring] 스프링 설정하기, 스프링 컨테이너와 스프링 빈

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 앞서 회원주문관리프로그램을 객체 지향 원리에 기반하여 개발해 보았다. 순수 자바 코드로 개발을 진행했지만 다형성 + OCP, DIP를 만족하는 이미 좋은 프로그램인 것 같은데, 스프링을 왜 사용해야 할까? 스프링을 사용함으로써 얻는 이점은 무엇일까? 이에 대해 공부한 내용을 정리해 본다. IoC, DI, 그리고 컨테이너 스프링으로 진입하기 전, 먼저 기본 개념에 대해 알아보자. IoC..

    [Spring] 스프링 핵심 원리 이해2 - 객체 지향 원리 적용

    [Spring] 스프링 핵심 원리 이해2 - 객체 지향 원리 적용

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 객체 지향 설계 앞서 개발한 회원 서비스에서 다형성을 활용하여, 인터페이스(역할)와 구현 객체(구현)를 분리했다. 그러나 OCP, DIP와 같은 객체 지향 설계 원칙을 충실히 준수하지는 못했다. 서비스 클라이언트는 인터페이스와 구현 클래스 둘 다 의존하고 있고 기능을 확장해서 변경하려면 클라이언트 코드에 영향을 주기 때문이다. 기대했던 의존관계 서비스 클라이언트는 할인 정책의 인터페이..

    [Spring] 스프링 핵심 원리 이해 1 - 예제 만들기

    [Spring] 스프링 핵심 원리 이해 1 - 예제 만들기

    스프링 핵심 원리 - 기본편 스프링 핵심 원리 - 기본편 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 초급 프레임워크 및 라이브러리 웹 개발 서버 개발 Back-End Spring 객체지향 온 www.inflearn.com 강의를 들으며 생각 정리 프로젝트 생성 https://start.spring.io 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트를 생성한다. Project : 일반적으로 Gradle Project를 사용한다. Project Metadata Group : 그룹 이름 Artifact : 프로젝트 이름 Spring Boot version, Java version 등은 현재 상황에 맞게 설정한다. 비즈니스 요..

    [Spring] 객체 지향 설계와 스프링

    [Spring] 객체 지향 설계와 스프링

    스프링 핵심 원리 - 기본편 강의를 들으며 생각 정리 초기에 자바 표준 기술 EJB : 기능은 좋은데, 어렵고 느리고 비싸다. -> JPA & 스프링 탄생 스프링이란? 현재 스프링 프레임워크, 스프링 부트, 스프링 데이터 등 다양한 서비스가 있다. - 스프링 프레임워크 : 스프링 DI 컨테이너, AOP (핵심 기술) - 스프링 부트 : 스프링을 편리하게 사용할 수 있도록 지원, Tomcat과 같은 웹 서버를 내장한다. 스프링을 왜 만들었는가? : 핵심 개념(컨셉) -> 스프링은 자바 언어 기반의 프레임워크 -> 자바 언어의 가장 큰 특징은 "객체 지향"언어 -> 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 -> 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 ..