본문 바로가기

Spring Introduction

(26)
02. 서블릿 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술에 대해 공부하고, 정리한 내용입니다. 01. Hello, 서블릿 서블릿은 자바를 사용하여 웹 프로그래밍을 할 때 클라이언트의 요청에 동적으로 반응하고, 그 결과를 반환하는 자바 프로그램입니다. 스프링 부트는 내장된 톰캣 서버를 포함하여 서블릿 기반의 웹 애플리케이션을 쉽게 구축할 수 있는 환경을 제공합니다. 그렇다면 스프링 부트 환경에서 서블릿을 등록하고 사용하는 실습을 진행하고자 합니다. 스프링 부트에서 서블릿을 활용하려면, 먼저 @ServletComponentScan 어노테이션을 사용하여 스프링 부트가 서블릿을 자동으로 찾아 등록하도록 설정합니다. 이 어노테이션은 스프링 부트 애플리케이션의 메인..
01. 웹 애플리케이션 이해 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술에 대해 공부하고, 정리한 내용입니다. 01. 웹서버, 웹 애플리케이션 서버 1) HTTP 통신 규약: HTTP는 웹상에서 데이터를 교환하기 위한 기본적인 규약입니다. 클라이언트와 서버 간의 모든 통신은 이 프로토콜을 통해 이루어집니다. 전송 가능 데이터: 텍스트, HTML 문서, 이미지, 음성 파일, 영상, JSON, XML 등 다양한 형태의 데이터를 전송할 수 있습니다. 이는 웹의 다양한 사용 사례를 가능하게 합니다. 서버 간 통신: 서버 간에 데이터를 주고받을 때도 대부분 HTTP를 사용합니다. 이는 HTTP의 범용성과 편의성 때문입니다. 2) 웹 서버 HTTP 기반 동작: 클라이언트의 HTTP..
09. 빈 스코프 (작성 중!) 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 핵심 원리 - 기본편에 대해 공부하고, 정리한 내용입니다. 01. 빈 스코프란? 1) 빈 스코프 스프링에서 빈이라는 용어는 특정한 객체를 지칭합니다. 이 객체는 스프링 컨테이너의 관리를 받아, 스프링 컨테이너가 생명 주기를 관리하고, 의존성 주입을 처리합니다. 이러한 빈의 생명 주기에 대한 범위를 스코프라고 부릅니다. 그래서 빈 스코프라는 말은 결국 '빈이 존재할 수 있는 범위'를 의미합니다. (1) 싱글톤 스코프 우리는 보통 스프링 빈이 스프링 컨테이너가 시작되면서 생성되고, 스프링 컨테이너가 종료될 때까지 유지된다고 배웁니다. 이는 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문입니다. 싱글톤 스코프란, 스프링 컨테이너의 시작과 종..
06. AOP 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술에 대해 공부하고, 정리한 내용입니다. 1) AOP가 필요한 상황 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)는 특정 기능을 애플리케이션의 여러 부분에 걸쳐 적용할 때 매우 유용한 프로그래밍 패러다임입니다. 특히, 모든 메소드의 호출 시간을 측정하거나, 특정 작업(예: 회원 가입, 회원 조회 등)에 대한 성능 모니터링과 같은 공통 관심 사항을 처리할 때 AOP가 필요한 상황이 발생합니다. (1) 모든 메소드의 호출 시간 측정 예를 들어, 애플리케이션의 성능을 분석하고자 할 때 모든 메소드의 실행 시간을 측정하고 싶다고 가정해봅시다. 이 작업..
SpringMVC의 HttpMessageConverter 뜯어보기 보호되어 있는 글입니다.
08. 빈 생명주기 Call Back 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 핵심 원리 - 기본편에 대해 공부하고, 정리한 내용입니다. 1. 빈 생명주기 콜백 시작 1) 빈 생명주기 콜백의 필요성 (1) 목적: 스프링 빈은 객체의 생성과 소멸 과정에서 특정 로직을 실행할 필요가 있습니다. 이러한 로직은 자원을 할당하거나 해제하는 데 중요할 수 있습니다. (2) 사용 사례: 예를 들어, 데이터베이스 커넥션 풀은 애플리케이션 시작 시점에 데이터베이스와의 연결을 미리 맺고, 애플리케이션 종료 시점에 이러한 연결을 안전하게 종료해야 합니다. 네트워크 소켓도 마찬가지로, 애플리케이션 실행 중에는 유지되어야 하며, 종료 시점에 적절하게 닫혀야 합니다. (3) 이유: 이러한 작업들은 자원의 효율적 사용과 메모리 누수 방지, 연결..
07. 의존관계 자동 주입 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 핵심 원리 - 기본편에 대해 공부하고, 정리한 내용입니다. 1. 다양한 의존관계 주입 방법 의존관계 주입은 주로 4가지 방법을 통해 이루어집니다. 의존 관계 주입은 생성자 주입, 수정자 주입, 필드 주입, 일반 메서드 주입이 있습니다. 1) 생성자 주입(Constructor Injection) (1) 정의 생성자 주입은 클래스의 생성자를 통해 해당 클래스가 의존하는 다른 객체들을 주입받는 방식입니다. 이 방식은 객체 생성 시 필요한 의존성을 모두 받아오므로, 객체가 생성되고 나서는 변경되지 않는 불변 상태를 유지합니다. (2) 특징 단 한 번의 호출 보장: 생성자는 객체 생성 시 단 한 번만 호출되므로, 의존 관계도 한 번만 설정됩니다. 불..
06. 컴포넌트 스캔 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 스프링 핵심 원리 - 기본편에 대해 공부하고, 정리한 내용입니다. 1. 컴포넌트 스캔과 의존관계 자동 주입에 대한 이해 1) 들어가며 (1) 기존 스프링 빈 등록 방식: 지금까지 스프링 빈을 등록하는 방식은 주로 `@Bean` 어노테이션을 사용한 자바 코드 또는 XML의 `` 태그를 통해 직접 설정 정보를 작성하고, 스프링 빈을 명시적으로 등록하는 방법이었습니다. (2) 문제점: 하지만 이러한 방식은 예제 수준의 간단한 애플리케이션에서는 큰 문제가 되지 않지만, 실제 복잡한 애플리케이션에서는 수십 또는 수백 개의 스프링 빈을 관리해야 하며, 이들을 일일이 설정 정보에 등록하는 것은 매우 번거로운 작업입니다. 뿐만 아니라, 이런 방식은 설정 정보가 ..