본문 바로가기

학습/Spring45

[spring] @Transactional 기초 탐구 스프링 부트로 개발을 하다 보면 트랜잭션이 필요한 부분에 @Transactional 어노테이션을 사용하게 됩니다. 그런데 어느 날 해당 어노테이션에 대해 질문을 받게 되었고 어버버 거리는 제 자신을 발견할 수 있었어요. 그래서 이 기회에 좀 더 공부하려 합니다. 사전 지식 - 트랜잭션의 정의 A database transaction symbolizes a unit of work performed within a database management system (or similar system) against a database, and treated in a coherent and reliable way independent of other transactions. A transaction general.. 2021. 6. 1.
[spring] @Controller vs @RestController 저는 회사에서 Restful API 서버만을 구현하기 때문에 아무 생각 없이 @RestController 어노테이션만을 사용해왔습니다. 그런데 어느 날, @Controller와 @RestController의 차이가 뭐냐는 질문을 받게 되었고 저는 자신있게 대답하지 못했죠. 스프링을 처음 배우던 과거에 @Controller를 사용해봤음에도 말이에요. 그래서 이번 기회에 두 어노테이션의 차이를 자세하게 알아보려 합니다. 이상한 부분이 있으면 댓글로 달아주세요. 저도 초보 개발자라 정리한 부분이 틀릴 수 있어요! 배경 - MVC 패턴과 Restful API MVC(Model-View-Controller) 구조에서 서버는 Controller로 사용자의 요청을 제어하며 Model로 DB의 데이터를 맵핑한 뒤 Vi.. 2021. 5. 25.
[spring] Spring State Machine 스테이트 머신(상태 기계)를 이해하기 위해서는 먼저 오토마타 이론을 간략하게 이해해야 한다. 컴퓨터 공학 수업에선 오토마타를 배운다는데... 나는 컴공이 아니기 때문에 ㅠ_ㅠ 위키피디아에 검색하면 자세하게 학습할 수 있다. 오토마타 이론 계산 능력이 있는 추상 기계와 그 기계를 이용해서 풀 수 있는 문제를 연구하는 컴퓨터 과학 분야 추상 기계 = 오토마타라고 지칭 오토마타는 일반적으로 유한한 상태를 가지며, 입력을 받아 일정하게 상태를 전이하며, 출력을 내놓는다. 유한 상태 기계 유한한 개수의 상태를 가질 수 있는 오토마타 한 번에 오로지 1개의 상태만을 가진다. 현재 상태(Current State) = 임의의 주어진 시간에 기계가 갖고 있는 상태 어떤 사건(Event)에 의해 한 상태에서 다른 상태로 .. 2020. 10. 31.
[spring] 스프링 부트에서 @WebMvcTest 사용하며 RestTemplate 주입받기 오류가 발생한 코드 @RestController @RequestMapping("/api/v1") public class ForecastController { private final ForecastYmlRead forecastYmlRead; private final RestTemplate restTemplate; private final ForecastService forecastService; public ForecastController(RestTemplateBuilder restTemplateBuilder, ForecastService forecastService, ForecastYmlRead forecastYmlRead){ this.restTemplate = restTemplateBuilder.b.. 2020. 6. 11.
[spring] 스프링 부트에서 REST Client 이용하기 스프링 REST Client 스프링에서 제공 스프링 부트는 쉽게 사용할 수 있도록 자동설정 제공 주의 : RestTemplate / WebClient 자체를 빈으로 등록 X → RestTemplateBuilder / WebClient.Builder를 빈으로 등록 O 1. RestTemplate Blocking I/O 기반의 Synchronous API RestTemplateAutoConfiguration 프로젝트에 spring-web 모듈이 있다면 RestTemplateBuilder를 빈으로 등록 2. WebClient Non-Blocking I/O 기반의 Asynchronous API WebClientAutoConfiguration 프로젝트에 spring-webflux 모듈이 있다면 WebClient... 2020. 5. 23.