Spring/Spring Boot 15

[Spring Boot][Test] 6. Test

1. Test Scope Dependenciesspring-boot-starter-test에 포함된 주요 라이브러리라이브러리설명JUnit 5Java 애플리케이션 단위 테스트의 표준 프레임워크Spring Test & Spring Boot TestSpring Boot 애플리케이션을 위한 테스트 유틸리티 및 통합 테스트 지원AssertJ직관적이고 유창한 API를 제공하는 assertion 라이브러리Hamcrestmatcher 객체(제약조건 또는 조건자)를 제공하는 라이브러리MockitoJava용 목(mock) 객체 생성 프레임워크JSONassertJSON 형식 데이터를 위한 assertion 라이브러리JsonPathJSON 데이터를 위한 XPath 유사 쿼리 언어Awaitility비동기 시스템을 테스트하기 위..

Spring/Spring Boot 2025.04.21

[Spring Boot] 5. Executable Jars

0. spring-boot-loader 모듈Spring Boot 애플리케이션을 실행 가능한 JAR 또는 WAR로 만들고 실행할 수 있도록 도와주는 모듈 Gradle Pluginplugins { id 'java' id 'org.springframework.boot' version '3.0.4'}java 플러그인이 적용되어 있을 경우, spring boot 플러그인은 spring-boot-loader 모듈을 자동으로 추가합니다. 1. Nested JARsJava는 기본적으로 중첩 jar를 로드하고 압축하는 기능을 제공하지 않습니다.커맨드라인에서 실행할 수 있는 self-contained 애플리케이션에 대한 필요로 인해 다양한 대안책이 나왔습니다.항목Shaded JAR (Uber JAR)Spring..

Spring/Spring Boot 2023.10.13

[Spring Boot] 4. Data: SQL Databases

0. SQL DatabaseSpring Framework는 광범위한 SQL Database 와의 작업을 지원합니다.JdbcTemplate : JDBC 기술을 사용하여 기존의 코드를 단순화화고, 오류 처리 및 리소스 관리를 개선한 헬퍼 클래스Hibernate : JPA 기반 ORM 기술 Spring Data JPA는 Repository 인터페이스를 제공합/니다.Repository 인터페이스 구현을 통해 Entity 관련 Table과 직접적으로 통신할 수 있습니다.Repository 인터페이스가 제공하는 메서드 이름의 컨벤션으로 메서드를 생성하면 자동으로 관련 쿼리를 생성하여 통신합니다. 1. DataSource항목설명인터페이스javax.sql.DataSource기능Database Connection 생성 ..

Spring/Spring Boot 2023.10.13

[Spring Boot] 3. Web: Servlet Web Application

1. The “Spring Web MVC Framework”Spring Web MVC는 풍부한 기능을 가진 "model-view-controller" 웹 프레임워크 입니다. Controller@Controller (or @RestController) 빈으로 들어오는 요청을 처리하도록 돕습니다@Controller 빈의 메서드는 @RequestMapping을 사용하여 요청을 URI 기반으로 매핑할 수 있습니다. ConversionService객체의 타입을 다른 타입으로 변환하는 인터페이스입니다.항목ApplicationConversionService@ConfigurationProperties 바인딩Spring Web MVC역할중앙 변환 서비스프로퍼티 → 객체 바인딩 시 사용요청 파라미터→ 컨트롤러 파라미터 변..

Spring/Spring Boot 2023.10.12

[Spring Boot] 2-10. Core Features: Auto-Configuration

Spring Boot에서 제공하는 Starter 모듈을 의존성으로 사용하면, 관련 객체의 Auto-Configuration 라이브러리가 함께 제공됩니다.Spring Boot는 Auto-Configuration 라이브러리를 픽업하여 자동 설정을 적용합니다. 1. Understanding Auto-configured Beans항목설명@AutoConfigure* 어노테이션관련 자동 설정을 활성화하는 역할 (마커 어노테이션)자동설정 클래스 네이밍*AutoConfiguration 패턴을 따르며, 클래스에 @AutoConfiguration 어노테이션이 붙음자동설정 활성화 방식자동설정 클래스의 메서드를 실행하여 관련 설정을 자동 적용Bean 등록각 메서드는 관련된 컴포넌트를 @Bean으로 등록함조건부 설정 제어 어노..

Spring/Spring Boot 2023.10.11

[Spring Boot] 2-6. Core Features: JSON

1. Jackson항목설명기본 제공Spring Boot는 spring-boot-starter-json을 통해 Jackson을 기본 JSON 직렬화 도구로 사용자동 설정Spring Boot의 Auto-Configuration에 의해 ObjectMapper가 자동 설정됨핵심 클래스ObjectMapper: 직렬화/역직렬화의 중심 클래스 Custom Serializers and Deserializers@JsonComponent항목설명정의커스텀 Serializer/Deserializer를 빈으로 자동 등록ObjectMapper에 등록됨특징내부 클래스 형태로 JsonSerializer, JsonDeserializer 구현 가능메타 정보@Component가 메타 어노테이션으로 포함되어 있음 예시) 커스텀 JsonS..

Spring/Spring Boot 2023.10.09

[Spring Boot] 2-3. Core Features: Profile

profile은 애플리케이션의 설정을 분리하여 특정 프로파일에 필요한 환경설정을 제공할 수 있습니다.@Profile 어노테이션을 통해 해당 클래스가 어떤 profile에 적용될지 가리킬 수 있습니다.어떤 프로파일을 활성화할지 명시할 수 있습니다.property : spring.profiles.active command line args : --spring.profiles.active 기본 프로파일을 명시할 수 있습니다.property : spring.profiles.default프로파일 활성화 조건을 명시할 수 있습니다.property : spring.config.activate.on-profile 1. Adding Active Profilesspring.profiles.active 프로퍼티는 Prope..

Spring/Spring Boot 2023.10.09

[Spring Boot] 2-2. Core Features: Externalized Configuration

1. Command Line Properties항목설명정의SpringApplication은 명령행 인자(Command Line Arguments)를 PropertySource로 변환해 Environment에 추가함우선순위매우 높음 → .properties, .yml, 환경 변수보다 우선 적용됨오버라이드 여부명령행 인자가 동일 키의 다른 설정들을 오버라이드함비활성화 방법SpringApplication.setAddCommandLineProperties(false)를 호출하면 Environment에 추가되지 않음$ java -jar app.jar --server.port=8085 2. JSON Application Properties항목설명정의JSON 문자열로 애플리케이션 설정을 주입하는 방식사용 키spri..

Spring/Spring Boot 2023.10.09

[Spring Boot] 2-1. Core Features: SpringApplication 클래스

0. SpringApplicationSpringApplication 클래스는 Spring application을 편리하게 기동하는 방법을 제공하는 클래스입니다.SpringApplication.run 메서드가 main method로부터 호출되어 bootstrapping 작업을 시작합니다.startup과 연관된 메시지가 출력됩니다. (INFO 레벨의 로그) 1. Startup FailureFaliureAnalyzerspring Boot 기동중 에러 발생 시 문제 해결을 담당합니다.여러 에러에 대해 다양한 구현체를 가지고 있습니다.에러 메시지를 출력합니다. ConditionEvaluationReport 어떤 자동 설정이 적용되었고 제외되었는지 그리고 그 이유가 무엇인지를 DEBUG 레벨 로그로 출력해주는 객..

Spring/Spring Boot 2023.10.08

[Spring Boot] 1-2. Spring Boot 사용하기

6. Using the @SpringBootApplication Annotation간편하게 auto-configuration을 사용할 수 있도록 지원하는 메타 어노테이션입니다. 코드) @SpringBootApplication더보기더보기@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTO..

Spring/Spring Boot 2023.10.07