spring

Spring

[Spring] @Transactional 에 대해서

Git - Spring @Transactional 에 대해서Notion - Spring @Transactional 에 대해서 이전에 Spring AOP와 Proxy를 공부한 이유는 사실 @Transactional에 대해서 자세히 다뤄보고 싶어였..

Spring

[Spring MVC] 웹 애플리케이션

웹 애플리케이션 웹 서버 HTTP를 기반으로 동작하는 서버 정적 리소스(HTML, CSS, JS)를 제공하고, 기타 부가기능을 제공한다. 클라이언트 (HTTP 요청) → 웹 서버 (HTTP 응답) ex_) NGINX, APACHE 웹 애플리케이션 서버 (WAS) HTTP를 기반으로 동작하는 서버 웹 서버 기능을 포함하며 프로그램 코드를 실행하여 애플리케이션 로직을 수행한다. 클라이언트 (HTTP 요청) → WAS (HTTP 응답) 동적 HTML, HTTP API(JSON), Servlet, JSP, SpringMVC ex_) Tomcat, Jetty, Undertow 차이점 웹 서버는 정적 리소스, WAS는 애플리케이션 로직을 실행하는 서버이다. 사실은 둘의 용어도 경계도 모호하기에 굳이 나누자면 WAS..

Spring

[Spring 핵심 원리] 빈 스코프와 DL(Dependency Lookup)

이번 글에서는 빈 스코프에 대해서 알아보려고 한다. 일단 빈 스코프라는 단어가 조금 생소하기도 해서 짚고 넘어가겠다. 빈 스코프는 빈이 존재할 수 있는 범위를 말한다. 저번 글에서는 빈의 생명주기를 살펴본 만큼 이번에는 어느 범위 까지 존재할 수 있는 가를 알아보려는 것이다. ​ 빈 스코프의 종류로는 세가지가 있다. ​ 싱글톤 전에도 설명했겠지만 싱글톤 빈은 객체가 1개로 유지된다. 스프링에서 기본적으로 적용되는 빈이기도 하며, 스프링 컨테이너의 시작부터 종료까지 1개의 객체로 유지되는 것이 특징이다. ​ 프로토타입 프로토타입 빈은 싱글톤과는 반대로 빈이 요청될 때마다 초기화 메서드가 호출 된다. 프로토타입 빈의 스코프는 스프링 컨테이너가 시작 될 때 한 번 초기화가 되며, 그 뒤로는 관리를 받지않기에 ..

Spring

[Spring 핵심 원리] 빈 생명주기 콜백

이번 글에서는 빈의 생명주기 콜백에 대해서 알아보려고 한다. 애플리케이션 구동 환경에서 원하는 객체를 제대로 사용하려면 생명주기에 대해서는 꼭 알아둬야 한다. 시작 지점에 DB 연결작업이나, 종료 지점에 연결 종료 작업 등은 코딩에서 필수이다. 이전에 안드로이드 앱 코딩 할 때도 생명주기는 매우 중요했었던 기억이 있다. 이번에는 스프링 빈에 대한 생명주기에 대해 자세히 알아 볼 것이다. ​ 스프링 빈의 이벤트 생명주기 스프링 컨테이너 생성 => 스프링 빈 생성 => 의존관계 주입 => 초기화 콜백 => 사용 => 소멸 전 콜백 => 스프링 종료 ​ 우리가 스프링 빈을 제대로 사용하려면 의존관계 주입까지 끝난 상태여야만 사용할 수 있게 된다. 이런 상황을 우리는 콜백 메서드를 통해서 알 수 있고, 이 콜백..

Spring

[Spring 핵심 원리] 의존관계 주입에 대하여 (생성자 주입과 Lombok)

이번 글에서는 의존관계 주입 방법에 대해서 더 자세히 다뤄볼 것이다. 지금까지의 예제에서는 빈 등록을 이용해서 단순히 실행만 시켜보는 구조였기에 객체간의 의존관계 주입이 없었다. 그렇기에 이번에는 의존관계에 대해 설명 못한 것들(종류, 좋은 방법, 활용하는 법 등)에 대해서 알아보려고 한다. 전 글들에서 언급했던 @Autowired 나 생성자 주입의 중요성과 Lombok도 이 곳에서 모두 다룰 것이다. ​ 그럼 먼저 종류에 대해서 살펴보자. ​ 생성자 주입 @Component public class StuService implements Service{ private final Repository repository; public StuService() {} @Autowired public StuServ..

Spring

[Spring 핵심 원리] 싱글톤 패턴

이번 글은 싱글톤에 대해서 정리해보려고 한다. Spring에 대한 내용만은 아니지만 연관되어 이야기 할 수 있기에 정리해볼 것이다. ​ 싱글톤 패턴이란 객체의 인스턴스가 딱 1번만 생성되는 패턴을 말한다. 예를 들어보자면, 어떤 프로그램 내에서 고객은 기능을 실행하기 위해 객체를 생성해야만 할 것이다. 그럴 때 같은 기능인데도 불구하고, 고객이 여러명이면 객체를 여러개 생성할 수 밖에 없을 것이다. 싱글톤 패턴은 이런 상황에서 객체를 1번만 생성하고 그 객체를 이용할 수 있게 하는 패턴인 것이다. ​ 그렇다면 이 싱글톤 패턴은 어떻게 사용하는지 살펴보자. ​ 이른 초기화 방법 public class SingletonService { private static final SingletonService in..

Spring

[Spring 핵심 원리] 수동 빈 등록을 통한 의존관계 주입

이번 글은 드디어 의존관계 주입을 하는 방법들에 대해서 알아보려고 한다. 첫번째 글에서는 xml 파일을 만들어 Spring을 통해 의존관계를 주입해주는 예를 들었었다. 그 방법은 이제 Spring의 기능을 직접 이용하지 않고, 파일을 직접 불러와서 해결했던 방법이었기에 생각보다 어려워 보였을 것이다. 하지만 이번에 소개할 방법을 Spring에서 제공하는 기능들을 통해서 의존관계 주입을 해보려고 한다. ​ 일단 먼저 다형성만을 이용해 문제가 된 코드를 예로 들어보겠다. public class Main { public static void main(String[] args) { Repository repository = new StuRepository(); Student stu1 = new Student(1..

Spring

[Spring 핵심 원리] SOLID

이번에는 좋은 객체지향 설계를 위한 5가지 원칙인 SOLID에 대해서 정리해보려고 한다. 원래는 의존성 주입하는 방식들에 대한 글을 쓰려했으나 이것을 먼저 정리하는 것이 좋을 것 같다고 생각되어 정리하게되었다. SOLID 원칙같은 경우에는 굳이 Spring이 아니더라도 좋은 객체지향 프로그램을 만들고 싶다면 지켜야 될 원칙이다. 어떤 내용인지 한 번 살펴보자. ​ 1. SRP (Single Responsibility Principle, 단일 책임 원칙) 단일 책임 원칙이란 한 클래스는 하나의 책임만을 가져야 한다는 원칙이다. 예를 들어서 학생들을 저장하고 조회하는 기능을 만드려고 하는데, 이 클래스 내에서 프로그램의 실행까지 이루어진다면, 이는 한 클래스가 하나의 책임이 아닌 여러 책임을 가지게 되는 것..

Spring

[Spring 핵심 원리] Spring이란?

이번에는 Spring에 대해서 정리해볼려고 한다. ​ 스프링은 무엇일까? 스프링이란 자바 플랫폼을 위한 자바 기반 프레임워크로써 객체지향 언어인 자바의 특성을 살리는 것을 도와준다. 쉽게 생각하자면 그동안 배운 자바를 활용할 수 있는 확장 라이브러리이며, 좋은 객체지향 프로그램을 만들 수 있도록 도와준다는 것이다. ​ 이러한 스프링은 여러 특징을 가지고 있다. ​ 1. POJO 기반 POJO(Plain Old Java Object) 기반은 그대로 해석해보자면 오래된 자바 객체를 기반으로 한다는 뜻인데, 이는 스프링에서 객체간의 관계를 구성할 때 별도의 API를 사용하지 않고, 그냥 Java 코드만을 사용해서 객체를 구성할 수 있다는 것이다. 별도의 다른 라이브러리 등을 숙지하지 않아도 된다는 것이다. ​..

ppusda
'spring' 태그의 글 목록