Backend/spring

·Backend/spring
1. OpenFeign란?Spring Cloud OpenFeign은 넷플릭스가 개발한 Feign이라는 선언형 HTTP 클라이언트를 확장한 오픈 소스 프로젝트입니다. REST API 기반의 마이크로서비스 아키텍처에서 서로 다른 서비스 간의 통신을 더욱 간결하고 선언적으로 처리할 수 있도록 도와줍니다. OpenFegin은 선언형 방식으로 되어있어 인터페이스와 어노테이션을 정의하기만 하면, Spring이 실행 시점에 자동으로 해당 인터페이스의 구현체를 제공하여 API 통신을 손쉽게 수행할 수 있게 해줍니다. 이를 통해 개발자는 복잡한 HTTP 통신 로직을 신경 쓸 필요 없이, 마치 메서드 호출을 하듯이 외부 API와 통신할 수 있습니다.  2. Gradle 의존성 추가OpenFeign을 사용하기 위해 사용중인..
·Backend/spring
1. 상황티켓 예매를 진행하면서 결제 기능을 도입하면서 결제가 성공하면 Reservation의 Status를 변경해야하는 요구사항이 존재했습니다. 해당 로직을 구현하면 아래와 같습니다.@Service@Transactionalpublic class PaymentService { private final PaymentClient paymentClient; private final PaymentRepository paymentRepository; private final ReservationService reservationService; public PaymentService(final PaymentClient paymentClient, final PaymentRepository pay..
·Backend/spring
1. 필터(Filter)란?필터(Filter)는 J2EE 표준 스펙 기능으로 Dispatcher Servlet에 요청되기 전/후에 부가 작업을 처리할 수 있는 기능을 제공합니다. 스프링 컨테이너가 아닌 웹 컨테이너(ex 톰캣)에 의해 관리가 되고, 특정 URL 패턴에 매핑되어 해당 요청이 들어올 때마다 실행됩니다.(스프링 빈으로도 등록이 가능하다.) 필터(Filter) 사용 사례인증 및 인가 : 사용자의 인증 상태를 확인하고, 권한이 없는 사용자의 요청을 차단하거나 다른 페이지로 리다이렉션 한다.로깅 및 감사 : 모든 요청 및 응답에 대한 로깅을 수행하거나 보안 검사를 통해 올바르지 않은 요청을 차단한다.데이터 압축 : 데이터 압축, 문자열 인코딩위의 경우 말고도 스프링과 무관하게 전역적으로 처리해야하는..
·Backend/spring
1. Dispatcher Servlet이란?디스패처 서블릿은 Spring Framework에서  HTTP 프로토콜로 들어오는 요청을 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러입니다. 프론트 컨트롤러란 무엇일까?프론트 컨트롤러(Front Controller)는 서블릿 컨테이너 제일 앞에서 서버로 들어오는 클라이언트 요청을 받아서 처리해주는 컨트롤러로 공통된 처리 과정을 거친 후 적절한 컨트롤러나 서비스로 요청을 전달하는 역할을 합니다.프론트 컨트롤러가 어플리케이션의 요청을 핸들링 해주고, 공통 작업을 처리해주어 중복 코드를 제거할 수 있다는 장점이 있습니다. 2.Dispatcher Servlet 동작 과정 1. 핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 맞는 Handler(Controller..
·Backend/spring
의존성 주입의 3가지 방법객체를 직접 생성하는 것이 아니라 외부에서 주입 받아 사용하는 것을 의존성 주입(DI)라고 합니다. 스프링에서는 다양한 의존성 주입의 방법을 제공하는데 각각의 방법에 대해 알아보도록 하겠습니다.1. 생성자 주입@Controllerpublic class MemberController { private final MemberService memberService; @Autowired //생성자가 1개만 있으면 생략해도 자동 주입(스프링 빈에만 해당) public MemberService(MemberService memberService) { this.memberService = memberService; }}@Controller@RequiredArgsConstructo..
·Backend/spring
API를 테스트하는 대표적인 도구로는 Swagger와 RestDocs가 있습니다. 이전에 프로젝트를 진행했을 때는 Swagger를 이용해 API를 문서화 했었는데 이번에 진행하는 프로젝트에서는 2가지의 이유로 Rest Docs을 이용해 API를 문서화 해보려고 합니다. Swagger는 프로덕션 코드에  설정이 필요하다.@RestController@RequiredArgsConstructor@RequestMapping("/users")public class UserController { private final UserService userService; private final UserAuthService userAuthService; @ApiOperation(value = "회원가입 AP..
여포개발자
'Backend/spring' 카테고리의 글 목록