Spring 5

스프링부트 Swagger (SpringFox Boot Starter 3.0.0) 설정 관련 에러

IntelliJ로 스프링 프로젝트 작업 중 swagger를 사용하기 위해 maven repository를 방문하여 SpringFox Boot Starter >> 3.0.0을 찾아 implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'를 build.gradle 파일의 dependencies에 넣어주었다. 기존의 SprinfFox Swagger2, SpringFox Swagger UI를 추가하고 사용을 위해 어노테이션을 추가하는 등과 같은 번거로움을 해결할 수 있었기 때문에 SpringFox Boot Starter를 사용했다. 추가한 후, 다시 빌드를 하고 애플리케이션을 실행했다. 결과는 처참했다. 뜬금 Nu..

공부/Spring boot 2021.12.16

JUnit이란?

JUnit에 대해 알아보기 전에 우선 TDD에 대해 알아보자. TDD (Teset-driven Development) 테스트 주도 개발에서 사용하지만, 코드의 유지보수 및 운영 환경에서의 에러를 미리 방지하기 위해서 단위별로 검증하는 테스트 프레임워크이다. 단위 테스트 작성한 코드가 기대하는 대로 동작을 하는지 검증하는 절차이다. JUnit Java 기반의 단위 테스트를 위한 프레임워크이다. 어노테이션 기반으로 테스트를 지원하며, Assert를 통하여, (예상, 실제)를 통해 검증한다. 스프링에서의 테스트에 앞서, 순수 자바에서 JUnit 테스트를 진행해보도록 하자. 새로운 인텔리제이의 Gradle 프로젝트를 자바를 기반으로 하여 생성하자. 생성하고 나면 자동으로 org.junit.jupiter와 같이 ..

공부/Spring boot 2021.12.07

AOP

AOP는 Aspect Oriented Programming이라고 하며 관점 지향 프로그래밍이라고 한다. AOP는 여러 개의 핵심 비즈니스 로직 외에 공통으로 처리되어야 하는 로그 출력, 보안 처리, 예외 처리와 같은 코드를 별도로 분리해서 하나의 단위로 묶는 모듈화의 개념으로 생각할 수 있다. 쓰이는 곳에 필요할 때 연결함으로써, 유지보수 혹은 재사용에 용이하도록 프로그래밍한다. 스프링 애플리케이션은 대부분 특별한 경우를 제외하고는 MVC(Model, View, Controller) 웹 애플리케이션에서는 Web Layer, Business Layer, Data Layer로 정의한다. - Web Layer : REST API를 제공하며, Client 중심의 로직을 적용한다. - Business Layer ..

공부/Spring boot 2021.12.06

IoC / DI

IoC (Inversion of Control) 스프링에서는 일반적인 Java 객체를 new로 생성하여 개발자가 관리하는 것이 아닌 Spring Contatiner에 모두 맡긴다. 즉, 개발자에서 -> 프레임워크로 제어의 객체 관리의 권한이 넘어갔으므로 '제어의 역전'이라고 한다. DI (Dependency Injection) 외부(Spring Container)로부터 프레임워크가 관리하는 객체를 사용하기 위해 주입을 받는다. 의존성으로부터 격리시켜 코드 테스트에 용이하다. DI를 통하여, 불가능한 상황을 Mock와 같은 기술을 통하여, 안정적으로 테스트가 가능하다. 코드를 확장하거나 변경할 때, 영향을 최소화 한다. (추상화) 순환 참조를 막을 수 있다. package com.example.spring..

공부/Spring boot 2021.12.05

Spring Boot Filter

Filter란 Web Application에서 관리되는 영역으로써 Spring Boot Framework에서 Client로부터 오는 요청/응답에 대해서 최초/최종 단계의 위치에 존재하며, 이를 통해서 요청/응답의 정보를 변경하거나, Spring에 의해서 데이터가 변환되기 전의 순수한 Client의 요청/응답 값을 확인할 수 있다. 유일하게 ServletRequest, ServletResponse의 객체를 변환할 수 있다. 주로 Spring Framework에서는 request/response의 Logging 용도로 활용하거나, 인증과 관련된 Logic 들을 해당 Filter에서 처리한다. 이를 선/후 처리 함으로써, Service business logic과 분리시킨다. 이번 장부터 lombok을 활용하..

공부/Spring boot 2021.12.01