스프링) 스프링이란?
·
자바 탐구
스프링이란? 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한오픈 소스 애플리케이션 프레임워크로 간단히 스프링(Spring)이라고도 합니다. 스프링의 유래스프링은 JavaEE(Java Enterprise Edition)의 스펙을 구현한 EJB(Enterprise Java Bean)가기술의 복잡도가 증가해서 성능이 느렸던 것을 탈피하여, EJB 시절을 "겨울"에 빗대어 겨울 후의 "봄"으로새로운 시작을 의미하여 Spring(봄)이 되었습니다. EJBEJB는 비즈니스 객체들을 관리하는 컨테이너로부터 필요한 객체를 꺼내 사용하는 방식으로객체들 간의 의존성을 해결하려고 했습니다.하지만, 코드들이 EJB 기술에 지나치게 종속되는 문제가 발생하게 됩니다. POJO(Plain Old Java O..
스프링) @SpringBootTest와 @WebMvcTest의 차이
·
자바 탐구
@SpringBootTest와 @WebMvcTest의 차이 SpringBoot Test SpringBoot 애플리케이션의 테스트를 지원하기 위해 제공되는 테스트 모듈 SpringBoot 애플리케이션의 전체 컨텍스트를 로드하고 설정하는 것으로, 애플리케이션의 실제 구성 요소들과 상호작용하며 통합 테스트를 수행하는 데 사용한다. SpringBoot Test의 특징 애플리케이션 컨텍스트를 로드하여 통합테스트 수행 실제 빈과 구성 요소들과 상호작용하여 실제 환경과 유사한 테스트 수행. @SpringBootTest 어노테이션을 사용하여 테스트클래스에서 SpringBoot 애플리케이션 컨텍스트를 로드 SpringBoot Test 예시 @ActiveProfiles("test") @SpringBootTest class..
스프링) RestClient
·
자바 탐구
RestClient REST API 서버에 HTTP 요청을 보낼 수 있는 클라이언트 툴 또는 라이브러리 client - Frontend, Frontend - Backend 뿐만이 아니라, Backend A - Backend B 사이에도 Backend A가 Backend B의 리소스를 사용할 수 있다. 클라이언트와 서버의 관계는 상대적이기 때문에 Frontend - Backend의 관계에서는 Frontend가 클라이언트가 되고, Backend - Backend 관계에서는 리소스를 요청하는 쪽이 클라이언트가 된다. UI가 갖춰진 RestClinet로는 Postman, Thunder Client, Insomnia, Soap UI 등이 있다. SpringFramework에서는 REST엔드포인트에 대한 호출을 수..
스프링) 스프링 컨테이너(Spring Container)
·
자바 탐구
스프링 컨테이너 스프링 프레임워크의 핵심 기능 중 하나로, 스프링 애플리케이션에서 객체의 생성, 관리, 의존성 주입(Dependecy Injection), 라이프사이클 관리 등을 담당하는 컴포넌트이다. 스프링 컨테이너는 빈(Bean)이라고 불리는 객체들을 관리한다. 빈은 스프링 컨테이너에 의해 생성되고, 컨테이너 안에서 싱글톤으로 관리된다. 싱글톤은 여러 요청이나 호출에 대해 동일한 인스턴스를 유지하는 디자인 패턴을 의미한다. 스프링 컨테이너는 XML, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다. 스프링 부트(Spring Boot)를 사용하기 전에는 XML을 통해 직접적으로 설정해 주어야 했지만, 스프링 부트가 등장하면서 대부분 사용하지 않게 되었다. 스프링 컨테이너의 장점 1. 의존성 주입 스..
스프링) 의존성 주입(Dependency Injection) 방식
·
자바 탐구
의존성 주입 방식 의존성을 주입하는 방법은 4가지가 있다. 1. 생성자 주입(Constructor Injection) 2. setter 3. 필드 주입 생성자 주입 생성자를 통해 의존관계를 주입하는 방법이다. @RestController public class AnimalController { private final AnimalService animalService; @Autowired public AnimalController (AnimalService animalService) { this.animalService = animalService; } @PostMapping("/animal") public ResponseEntity adoptAnAnimal(AdoptRequestDto requestDt..
컴퓨터) Spring MVC 에서의 예외 처리 기법
·
컴퓨터 탐구
Spring MVC에서의 예외 처리 기법 기본적인 SpringBoot 예외 처리 방식 WAS(톰캣) ➜ 필터 ➜ 서블릿(디스패처 서블릿) ➜ 인터셉터 ➜ 컨트롤러 ➜ 컨트롤러(예외발생) ➜ 인터셉터 ➜ 서블릿(디스패처 서블릿) ➜ 필터 ➜ WAS(톰캣) ➜ WAS(톰캣) ➜ 필터 ➜ 서블릿(디스패처 서블릿) ➜ 인터셉터 ➜ 컨트롤러(BasicErrorController) WAS(톰캣) ➜ 필터 ✔ 클라이언트의 요청이 웹 애플리케이션서버(WAS)로 도착하면 먼저 등록된 필터들이 요청을 가로챔 필터 ➜ 서블릿(디스패처 서블릿) ✔ 필터가 요청을 처리한 후, 해당 요청을 서블릿으로 전달 ➜ 디스패처 서블릿은 요청을 적절한 컨트롤러로 라우팅 하고, 컨트롤러에서 비즈니스 로직을 처리 서블릿(디스패처 서블릿) ➜ ..
스프링) SpringSecurity - 4) Security 로그인
·
자바 탐구
Security 로그인 SecurityConfig package com.example.security1.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.crypto.bcry..
JPA) 데이터베이스 테이블과 Entity의 연관 관계 표현 차이
·
자바 탐구
데이터베이스 테이블과 Entity의 연관 관계 표현 차이 users 테이블 생성 users 테이블 : 물품 구매를 할 이용자 목록 CREATE TABLE users ( id bigint not null auto_increment, name varchar(255), primary key(id) ); id를 primary key로 하여 users 테이블이 생성되었다. product 테이블 생성 product 테이블 : 물품 목록 CREATE TABLE product ( id bigint not null auto_increment, name varchar(255), price float(53) not null, primary key (id) ); id를 primary key로 하여 porduct 테이블이 생성..
오지랖 토끼
'스프링' 태그의 글 목록