Spring의 ArgumentResolver는 요청 파라미터를 메소드의 인자로 변환해주는 기능이다. https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:spring_mvc_architectu
Spring Converter는 전략 인터페이스로 전략패턴으로 사용된다. Converter는 제네릭으로 <S, T> 를 받는데 S는 sourceType, T는 targetType로 단순히 타입을 바꿔주는 함수형 인터페이스라 할 수 있다. 이를 전략패턴을 활용해 H
Converter 분석바인딩한 데이터가 일치하지 않는 경우 실행에 필요한 컨트롤러 메서드의 인자 타입을 맞추기 위해 바인딩한 데이터 타입을 변경하는 용도로 사용한다.우선 Converter<S, T>의 구현체를 구현한다. 위와 같이 정의한 후에는 등록작업을 수행한다
nginx와 apache 모두 web server로서 사용되기 위해 만들어진 웹 서버 프로그램이다. 그렇기에 web server와 was에 대해서 간단히 이해할 필요가 있다.Http 프로토콜을 기반으로 하며, 클라이언트의 요청을 서비스하는 기능을 담당한다요청에 따라 2
API 문서 자동화의 필요성 API 문서를 사용하다 보면 실수할 일이 많다. 나의 경우에는 토이 프로젝트를 하면서, API를 실시간으로 업데이트하지 않고 수작업으로 입출력 관련 json 포맷을 직접 만들어야 하기 때문에 실수할 여지가 많았다. 그리고 팀원과 함께 토
@Transactional 공부 계기 Transactional은 보통 서비스 레이어에서 메서드에 관용적으로 사용한다. 조회만하는 경우 readOnly=true로 설정하기도 하고 경우에 따라 세부적인 내용을 적용한다. 이번에 Transactional을 분석하려는 이유
객체의 타입을 확인하는 데는 instanceof를 활용하면 쉽게 파악할 수 있다. 기본적으로 instanceof는 타입을 확인하는데 공변이 적용된다. 그래서 A instanceof B 라고 한다면 A는 B와 같은 타입이거나 하위타입입니까? 물어보는것과 같다.이런 코드가
이펙티브 자바를 보면 매서드에 입력되는 매개변수 인자도 validation을 하라고 한다. 그러면 메서드를 더욱 안정적으로 사용할 수 있다. 보통은 Null 관련해서 체크를 많이 할 것이다. 매서드 매개변수를 validation하는 것은 여러가지가 있다.assert 이
특정한 시간이나 특정 시간 마다 어떤 작업을 자동으로 수행하고 싶을때 사용하는 명령어가 Cron이다. Cron은 특정 시간에 특정 작업을 수행하는 스케줄링 역할을 한다.Cron은 리눅스에만 있는 개념은 아니다.작업을 하다보면 본인이 직접 매번 체크하고 해줘야 하는 작업
학습 동기 개발 과정에서, 백엔드 API 요청 시 응답이 때때로 느려지는 문제에 직면했다. 일반적으로 응답 시간은 100ms 이내였고, 데이터 요청이 많을 경우에도 200ms ~ 300ms 범위 내에 있었다. 그러나 가끔 (예상보다 더 자주) 700ms 이상의 응답
작성하게 된 계기 @ControllerAdvice로 Controller의 예외처리를 다른 클래스로 분리하고, @ExceptionHandler를 클래스 내부 메서드에 달아서 예외처리를 구현했다. 이를 테스트할 때 어떻게 테스트를 진행할까..? 고민하던 중에 Spring