토비의 스프링부트 - 이해와 원리

토비의 스프링부트 정리 (2) - 독립 실행형 스프링 애플리케이션 만들기

1. 개요 앞 글에서는 내장 Tomcat과 서블릿을 직접 만들고 연결했다. 이 방식은 웹 요청이 처리되는 원리를 이해하기에 좋지만, 애플리케이션이 커질수록 객체를 만들고 연결하고 서버를 시작하는 코드가 main() 에 계속 쌓인다. 이 글에서는 이 작업을 스프링 컨테이…

·8분
Kafka

Spring Kafka (1) - Spring Boot로 Kafka Producer와 Consumer 이해하기

Kafka를 애플리케이션에 연결하려면 Producer와 Consumer의 클라이언트 설정, 직렬화 방식, 리스너 실행 등을 준비해야 한다. Spring Kafka는 이 과정을 Spring의 빈과 애노테이션으로 구성할 수 있게 해 주는 프로젝트다. 이번 글에서는 Spri…

·11분
스프링 핵심 원리 기본편

스프링 핵심 원리 (15) - 빈 스코프

1. 개요 지금까지 다룬 스프링 빈은 모두 컨테이너가 시작될 때 생성되어 종료될 때까지 유지되는 싱글톤이었다. 하지만 스프링은 이 외에도 빈이 살아있는 범위, 즉 스코프를 다양하게 지정할 수 있게 해준다. 특히 매번 새 인스턴스가 필요한 프로토타입 스코프를 싱글톤 빈과…

·16분
스프링 핵심 원리 기본편

스프링 핵심 원리 (14) - 빈 생명주기 콜백

1. 개요 DB 커넥션 풀이나 네트워크 소켓처럼 외부 자원을 다루는 빈은 "애플리케이션이 뜰 때 연결하고, 종료될 때 끊는" 작업이 필요하다. 그런데 이 연결 작업을 생성자에 그냥 넣으면 문제가 생긴다. 스프링 빈은 객체가 먼저 만들어지고 그 다음에 의존관계(필드 값)…

·9분
스프링 핵심 원리 기본편

스프링 핵심 원리 (11) - 롬복과 최신 트렌드

1. 개요 앞 글에서 생성자 주입을 기본으로 써야 하는 이유를 정리했다. 그런데 막상 실무 코드를 짜보면 대부분의 의존관계가 final 필드이고, 그 필드들을 그대로 받아 대입해주는 생성자를 매번 손으로 채워 넣어야 한다. 필드가 늘어나면 생성자 파라미터도, 대입 코드…

·4분
스프링 핵심 원리 기본편

스프링 핵심 원리 (6) - 싱글톤 컨테이너

1. 개요 스프링은 대부분 여러 사용자가 동시에 요청을 보내는 웹 애플리케이션에서 사용된다. 그런데 지금까지 만들어 온 순수 자바 DI 컨테이너( AppConfig )는 빈을 요청할 때마다 new 로 객체를 새로 만든다. 트래픽이 많아지면 그만큼 객체가 계속 생성·소멸…

·5분
스프링 핵심 원리 기본편

스프링 핵심 원리 (3) - IoC, DI 컨테이너

1. 개요 이전 글에서 AppConfig 를 만들어 구현 객체를 생성·연결하는 책임을 클라이언트로부터 분리했다. 이번 글에서는 이 변화를 좀 더 일반적인 용어로 정리해본다. AppConfig 가 등장하면서 프로그램의 제어 흐름이 어떻게 바뀌었는지를 제어의 역전(IoC)…

·6분
스프링 핵심 원리 기본편

스프링 핵심 원리 (2) - 관심사의 분리

1. 개요 이전 글에서 좋은 객체 지향 설계의 핵심은 다형성이고, 이를 실제로 잘 활용하기 위한 지침이 SOLID 원칙이라는 것을 정리했다. 이번 글에서는 애플리케이션에 새로운 할인 정책을 추가해보면서 다형성만으로는 OCP와 DIP를 지킬 수 없다는 것을 직접 확인하고…

·7분
Spring

Spring (5) - Building an Application with Spring Boot

https://spring.io/guides/gs/spring boot [Spring Boot] 빠르게 웹 애플리케이션 시작하기: 자동 설정부터 Actuator까지 Spring Boot는 개발자가 오직 비즈니스 로직 구현에만 집중할 수 있는 환경을 제공한다. Sprin…

·7분
Spring

Spring (4) - Serving Web Content with Spring MVC

https://spring.io/guides/gs/serving web content [Spring Boot] Spring MVC로 웹 콘텐츠 제공하기 (Thymeleaf, DevTools) 스프링 부트(Spring Boot) 환경에서 웹 애플리케이션을 개발할 때 가장…

·5분
Spring

Spring (*) - Spring mvc

Spring MVC 는 Spring 프레임워크에서 제공하는 웹 애플리케이션 개발용 서블릿 기반 MVC(Model View Controller) 프레임워크 이다. 웹 요청을 받아 적절히 처리하고, 그 결과를 클라이언트(브라우저, 앱 등)에게 응답으로 돌려주는 전체적인 웹…

·3분
Spring

Spring (2) - Consuming a RESTful Web Service

https://spring.io/guides/gs/consuming rest 스프링 프레임워크 6.1 및 스프링 부트 3.2부터 기존의 RestTemplate 을 대체할 수 있는 동기식 HTTP 클라이언트인 RestClient 가 도입되었다. Fluent API 스타일…

·4분
Spring

Spring (1) - Building a RESTful Web Service

https://spring.io/guides/gs/rest service [Spring Boot] RESTful 웹 서비스 구축하기 (Spring REST API) Spring Boot를 활용하면 복잡한 설정 없이 몇 분 만에 간단한 RESTful Web Service…

·6분