Spring and Spring Boot/How to use Spring Boot 14

Spring Boot : 스프링부트 프로젝트 만들기 시리즈 03. 테스트 (JUnit, Unit test, Integration test, Mocking, MockMvc, @MockBean, Stub)

목차 테스트 기초편 : 스프링부트 테스트 환경 설정테스트 기초편 : 스프링부트의 다양한 테스트 기법 (단위 테스트, 통합 테스트, 컨트롤러 테스트)테스트 기초편 : 기본 어노테이션 살펴보기 테스트 실전편 첫 번째 : 복잡한 비즈니스 로직을 위한 테스트 전략 (Mockito, Mocking, MockMvc, @MockBean, Stub)테스트 실전편 두 번째 : 데이터베이스와 통합 테스트테스트 실전편 세 번째 : REST API 테스트와 MockMvc테스트 실전편 네 번째 : 모의 객체(Mock Objects)와 의존성 주입테스트 실전편 다섯 번째 : 예외 처리 및 경계 조건 테스트테스트 실전편 여섯 번째 : 성능 테스트 및 최적화테스트 실전편 일곱 번째 : CI/CD와 통합된 테스트 파이프라인 구성테스트..

Spring Boot : 스프링부트 프로젝트 만들기 시리즈 01. 환경 설정 (Gradle, H2, MySQL, Git, application.yml)

인텔리제이 설치하기프로젝트 개발을 보다 편하게 할 수 있게 도와주는 IDE인 인텔리제이는 아래 링크에서 다운로드 받을 수 있습니다. 유의할 점은 본인 운영체제에 맞는 것을 다운받고, 설치 과정에서 PATH 설정 조항(add bin for path)을 꼭 체크하셔야 나중에 환경변수를 따로 설정하지 않아도 됩니다. 참고로 인텔리제이는 유료(ultimate) 버전과 무료(community) 버전이 있으니 선택하여 뭔지 잘 보고 다운로드하세요. 유료 버전을 다운로드 받는다고 해서 큰일이 나진 않지만 다시 받기 귀찮지 말입니다.https://www.jetbrains.com/ko-kr/idea/download/?section=mac IntelliJ IDEA 다운로드 www.jetbrains.com 깃 설치하고 사용..

DTO : 사용 범위, 변환 로직 위치, 효율성의 의미

프로그래밍을 공부하면서 DTO(Data Transfer Object)의 개념을 접하게 되었고, 그 역할과 사용 방법 등에 대해 많은 생각을 하게 되었습니다. 지금부터 제 고민과 나름의 답에 대해 기록해보려 합니다.목차왜 모든 엔티티 속성 요청에도 DTO를 사용해야 하는가변환 로직 코드, 어디에 작성하는 게 좋을까사용하면 무엇이 효율적이라는 건지왜 모든 엔티티 속성 요청에도 DTO를 사용해야 하는가이 문제는 DTO가 수행하는 역할을 이해하면 명확한 답이 나옵니다. DTO를 사용하는 이유는 단순히 데이터를 효율적으로 전송하는 목적에만 있지 않습니다. 명시적 계약과 보안, 데이터 형식 변환 등을 위한 중요한 역할을 한다는 것이었습니다.명시적 계약 수립엔티티의 모든 속성이 필요하다 하더라도, DTO를 사용하면 ..

SpringBoot : 예외처리하는 여러가지 방법

목차➡️ 기본 01 : Custom Exception 생성하는 방법➡️ 기본 02 : HTTP 상태 코드와 응답 메시지 설정하는 방법➡️ 기본 03 : 예외 로그 기록하는 방법➡️ 선택 01 : @ExceptionHandler를 사용한 예외처리➡️ 선택 02 : @ControllerAdvice 사용한 전역처리(예외처리, 공통작업, 데이터 바인딩 및 모델 처리)➡️ 선택 03 : @RestControllerAdvice 사용한 예외처리➡️ 선택 04 : @ResponseStatus를 사용한 예외처리➡️ 선택 05 : @Valid와 BindingResult 클래스를 사용한 검증 오류 처리➡️ 선택 06 : @Validated와 BindingResult 클래스를 활용한 예외 처리➡️ 선택 07 : AOP (As..

Spring : 동작원리와 단계별 데이터 전송형식 (Servlet Container, DispatcherServlet, View, ViewResolver, MVC, DTO, DAO)

각 구성요소에 대한 설명은 여기를 참고해주세요. 아래 글에서도 주요 구성요소마다 같은 링크가 첨부되어 있습니다.애플리케이션과 구성 요소의 종류에 따라 포함관계, 순서, 설명이 일부 달라질 수 있는 점 양해 바랍니다.스프링 프레임워크의 하위 프레임워크인 스프링 시큐리티가 궁금하다면, 상단의 스프링과 스프링부트 또는 여기를 클릭하여 확인해주세요.스프링부트(톰캣 내장), REST API 사용하는 경우에 대해 설명하고 있으니 참고바랍니다. 블로그 목차➡️스프링의 동작원리➡️스프링 MVC의 데이터 전송형식 ➡️ 스프링의 동작원리이 전 글에서 스프링의 동작원리를 이해하기 위해, Servlet Container, Dispatcher Servlet, Handler Mapping, View, View Resolver, ..

Spring : 구조와 구성요소 (3) HttpServletRequest, ServletRequest, DTO, DAO

스프링/스프링부트 동작원리를 학습하기 앞서그에 필요한 배경지식을 쌓는 블로깅입니다.그럼 지금부터 구조와 구성요소를 하나씩 살펴봅시다.본 시리즈는 세 편에 걸쳐 진행됩니다.참고로 아직 공개하지 않은 첫 번째 편은 웹 애플리케이션의 내부 구조에 대한 이야기로보다 나은 내용을 위해 수정 중이니 양해바랍니다. https://meitner.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%EC%9D%98-%EA%B5%AC%EC%A1%B0%EC%99%80-%EB%8F%99%EC%9E%91%EC%9B%90%EB%A6%AC-2 Spring : 구조와 구성요소 (2) Servlet Contain..

Spring : 구조와 구성요소 (2) Apache Tomcat, Servlet Container, Servlet Filter, Dispatcher Servlet

스프링/스프링부트 동작원리를 학습하기 앞서 그에 필요한 배경지식을 쌓는 블로깅입니다.그럼 지금부터 구조와 구성요소를 하나씩 살펴봅시다.본 시리즈는 세 편에 걸쳐 진행됩니다.참고로 아직 공개하지 않은 첫 번째 편은 웹 애플리케이션의 내부 구조에 대한 이야기로보다 나은 내용을 위해 수정 중이니 양해바랍니다.https://meitner.tistory.com/entry/Spring-%EA%B5%AC%EC%A1%B0%EC%99%80-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C-3-HttpServletRequest-ServletRequest-DTO-DAO Spring : 구조와 구성요소 (3) HttpServletRequest, ServletRequest, DTO, DAO스프링/스프링부트 동작..

SpringBoot : 스프링부트의 구조

소프트웨어 아키텍처 패턴(레이어드 패턴)과 알아보는 스프링부트의 구조➡️ 스프링부트의 소프트웨어 아키텍처 패턴각 계층이 다음 계층과 통신하는 레이어드 패턴(Layered Pattern) 구조를 따른다.   ✅ 프레젠테이션 계층 (Presentation Layer) : MVC 패턴을 사용한다고 했을 때 스프링부트 프로젝트의 컨트롤러(Controller)가 프레젠테이션 계층의 역할을 수행하며, HTTP 요청을 받아서 요청을 비지니스 계층으로 전송한다. 컨트롤러는 스프링 부트 내에 여러 개 존재할 수 있다.   ✅ 비지니스 계층 (Buisiness Layer) : MVC 패턴을 사용한다고 했을 때 스프링부트 프로젝트의 서비스(Service)가 비즈니스 계층의 역할을 수행하며, 모든 비즈니스 로직을 처리한다. ..

SpringBoot : 응답코드 요점정리

응답 코드의미설명200OK요청이 성공적으로 수행되었음201Created 요청이 성공적으로 수행되었고, 새로운 리소스가 생성되었음400 Bad Request요청 값이 잘못되어 요청에 실패했음403Forbidden권한이 없어 요청에 실패했음404Not Found요청 값으로 찾은 리소스가 없어 요청에 실패했음5000Internal Server Error서버 상에 문제가 있어 요청에 실패했음

SpringBoot : 스프링 부트 라이브러리

스프링 부트 라이브러리spring-boot-starter-webspring-boot starter-tomcat : 톰캣spring-webmvc : 스프링 웹 MVCspring-boot-starter-thymeleaf : 타임리프 템플릿 엔진 (View)spring-bootspring-corespring-boot-starter-logginglogbackslf4j 테스트 라이브러리spring-boot-starter-testjunit : 테스트 프레임워크mockito : 목 라이브러리assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리spring-test : 스프링 통합 테스트 지원