📝 Spring
글 19개
스프링 빈의 설계 철학
어떤 개념일까? 스프링 빈의 설계 철학 스프링 빈은 객체 생성, 조립, 생명주기의 통제권을 객체가 아니라 외부 컨테이너로 옮긴 결과물이고, 통제권의 이전의 목적은 DIP 의존성 역적 원칙을 코드가 아니라 인프라 수준 …
톰캣과 스레드 모델
어떤 개념일까? 먼저 전체적인 요청에 대한 흐름 그림은 다음과 같다. 톰캣 스레드 모델과 커넥션 풀까지 요청1개가 들어왔을 때 어디서 스레드를 받아 처리되고 어떻게 반환이 되는지, 그 스레드가 DB 커넥션과 어떻게 …
TPS와 Rate Limit 대응
Rate Limit는 초당 N건이라는 정책을 토큰 버킷 하나로 구현을하고, 같은 알고리즘으로 들어오는 요청과 나가는 호출에 방향만 바꿔서 적용하는 것이다. 어떤 개념일까? AI를 이용해 핵심 개념을 빠르게 파악한다. …
외부 API 호출 방식
어떤 개념일까? 결론 외부 API 호출 구현 방식 새 프로젝트라면 단순 호출은 RestClient, 여러 엔드포인트를 인터페이스로 묶는다면 HTTP Interface(@HttpExchange) + RestClient …
테스트 코드가 왜 필요할까 ?
제가 생각 했던 테스트 코드들에 대해 생각했던 내용을 생각해보고 Kent Beck이 생각하는 테스트 코드에 대해서 찾아보고 정리 해보았습니다. 제가 지금까지 개발을 하면서 겪었던 경험을 토대로 한 저의 테스트 코드 …
Spring MVC의 흐름
어떤 개념일까? Spring MVC의 흐름 Spring MVC에서 핵심은 DispatcherServlet을 기준으로 흐름을 보는게 중요하다고 생각합니다. 요청 수신: DispatcherServlet으로 클라이언트 요 …
DTO는 class + Lombok으로 만들까요, record로 만들까요?
어떤 개념일까? DTO는 class + Lombok vs record JSON, 객체와의 변환을 만들기 위해서, 보일러플레이트를 줄이는 도구 Lombok class와 record 중에서 어떤 것을 사요할지에 대한 문 …
읽기 작업에 @Transactional(readonly = true)를 사용하는 이유
어떤 개념일까? Transactional(readOnly = true) @Transactional의 한 속성으로, ”이 트랜잭션 안에서는 데이터를 읽기만 하고 변경하지 않는다”라는 것을 선언한다. 핵심은 강제가 아니 …
Repository와 DAO의 차이점
어떤 개념일까? DAO란 (Data Access Object) 데이터들을 어떻게(how) 저장할지에 대해서 대답한다. 데이터베이스에 접근해서 데이터를 가져오거나 저장하는 심부른꾼 전담 객체 비즈니스 로직과 데이터베이 …
ArgumentResolver와 ReturnValueHandler 란?
어떤 개념인가요 ? Spring MVC에서 컨트롤러 메서드의 파라미터를 만들어주는 역할과 반환값을 처리해주는 역할을 담당하는 두개의 확장 포인트이다. 어떤 문제를 해결하려고 나왔나? 초기 Spring MVC는 시그니 …