Spring

· Spring
[Spring] 외부 API 호출 테스트 코드  문제상황현재 셀프 면접 연습 서비스 모니터미를 개인프로젝트로 진행하고 있다.여기서 OAuth 클라이언트를 따로 구현하여 구글 API 서버에 code, redirect_uri 와 같은 내용을 포함해 요청을 보내고 인증 토큰을 응답 받는다. 또한 인증 토큰을 전달해서 사용자 정보를 응답 받는다. 즉 외부 서버로 부터 정보를 받아오는 과정이 존재한다.구글 API 문서에 따라서 구현을 했는데 이걸 어떻게 테스트 해야하나 고민이 되었다.1️⃣ 외부 API 응답에 대한 문서에 따라야 한다.구글에서 제공한 API 문서 스펙에 따른 응답이 오게된다. 하지만 실제 개발자는 정해진 스펙에 맞는 요청을 보내고 그에 따른 응답이 오는지만 기대한다. 그렇기 때문에 외부 API 응..
· Spring
[Spring 핵심원리] @ControllerAdvice 예외처리필자는 Spring을 통해 개발을 진행할 때 가장 처음 진행하는게 @ControllerAdvice를 이용한 전역 예외 처리기를 만들고 시작한다.이 포스팅을 통해서 어떻게 ControllerAdvice가 동작해서 각 컨트롤러의 예외를 전역으로 처리할 수 있는 원리를 정리해보겠다.    ControllerAdvice 동작 과정Spring은 기본적으로 모든 요청에 대한 가장 첫 처리를 디스패처 서블릿에서 진행한다. 순서를 정리해보자디스패처 서블릿 에러 Catch에러 처리가 가능한 HandlerExceptionResolver가 에러를 처리컨트롤러의 ExceptionHandler로 처리가능한지 검사ControllerAdvice의 ExceptionHa..
· Spring
[Spring 시큐리티] 사용자 인증사용자 인증을 개발하는 부분에서 사실 시큐리티를 배운적이 따로 없어 어떻게 해야할지 몰랐다가 최근 호돌맨 님의 강의 통해서 시큐리티 인증과 핸들링은 이렇게 하는구나 라는 것을 처음 보게 되었다.그리고 현재 수강죽인 교육 과정에서도 시큐리티 수업을 가볍게 하였고 쇼핑몰 토이 프로젝트에서 처음 진행하게 되었다. 토이프로젝트에서 사용한 스프링 시큐리티 인증 과정에 기반해서 전체적인 인증 플로우를 확인해보겠다.1. 스프링 Security스프링 시큐리티를 스프링 프레임워크에 기반한 보안,인증 관련 프레임워크이다 지금은 이런 수많은 시큐리티에서 사용하는 필터가 있다는 점을 알아두자 스프링 시큐리티는 Fitler를 기반으로 동작하게 된다.필터는 스프링 MVC의 프론트 컨트롤러인 D..
· Spring
Spring Interceptor 동작 방식강의에서 Spring 인터셉터를 사용하는 부분이 있었는데 정확한 동작 방식 사용법을 이해하지 못하였다.이 내용을 정리하고 어떤 식으로 동작하는 한번 같이 알아보자  1. Spring InterceptorInterceptor란 말을 그대로 해석 하면 가로챈다 라는 의미를 가진다.이름 그대로 Spring MVC에서 인터셉터는 특정한 URI 호출을 가로채는 역할을 한다. 인터셉터를 활용하면 기존의 로직을 수정하지 않고, 사전 하우 제어를 수행 할 수 있다.즉, 요청과 응답을 가로채서 원하는 동작을 추가할 수 있는 것이다. 가장 대표적인 예시로 세션을 통한 인증 구현이 있다.요청을 받기 이전에 요청을 가로채서 세션에 로그인한 사용자가 있는지 확인하고 없으면 로그인 페이..
· Spring
HandlerMethodArgumentResolver 동작호돌맨 님의 강의에서 JWT 토큰을 통한 인증 로직을 사용하기 위해서 HandlerMethodArgymentResolver를 사용하였다.이를 통해서 컨트롤러에 접근 하기 이전 인증 허가를 처리하는 방법을 사용했는데 정확하게 어떤 시점에 사용되는지 등 자세한 내용을 정리해보자 한다.  1. HandlerMethodArgumentResolver 란❔정의는 컨트롤러 메서드에서 특정 조건에 맞는 파라미터가 있을 때 원하는 값을 바인딩 하는 인터페이스이다.이를 이해하기 위해서 Spring MVC의 아키텍처를 가볍게 보고 넘어가보자Dispatcher 서블릿에서 요청된 모든 리퀘스트를 가장 처음 받아준다.(프론트 컨트롤러 역할)그리고 이 서블릿에서 핸들러 조회..
· Spring
[Spring Petclinic]1. application properties스프링 펫 클리닉 프로젝트의 소스 분석의 시작으로 설정 파일을 먼저 알아보자이 설정 파일을 통해서 어떤 DB를 썼는지 등 기초적인 정보를 파악할 수 있다.  1. DB 설정기본 DB는 H2 데이터베이스로 설정되어 있다.h2 데이터 베이스라는 것을 명시하고스키마를 초기화 하는 위치와 초기 데이터를 넣는 sql 쿼리 파일의 위치를 명시한다. 해당 설정을 통해서 스프링 어플리케이션이 실행할때 쿼리파일을 실행하여 스키마와 데이터를 생성해준다이외에도 MySQL, PostgreSQL 등 RDB를 지원한다.해당 DB에 맞는 설정 파일 일부가 각 디렉토리에 위치하고 있으며 각 DB에 마즌 SQL 쿼리 파일 또한 개별로 존재한다.database..
· Spring
Spring MVC - frontController 더보기 해당 포스팅은 김영한님의 스프링 MVC 1편 강의를 내용을 정리한 글입니다. 모든 코드와 그림의 저작권은 김영한 님에게 있습니다. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 - 인프런 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 이전 포스팅에서는 서블릿, JSP 를 통해서 어떻게 웹 서비스 개발을 했는지, 그리고 MVC 패턴의 프론트 컨트롤러가 없을때 어떤 문제가 발생하는지 알아보았다. 이번 포스팅에서는 프론트 컨트롤러의 도입과 개발자 편의성을 높이기 위해..
· Spring
Spring MVC - Servlet Spring MVC를 통한 Model View Controller 구조가 일반적으로 사용하는 웹 어플리케이션의 구조이다. 그럼 MVC 패턴을 통한 구조를 만들어서 개발하는 것이 어떤 장점이 있는지 한번 알아보자 해당 포스팅에서 사용하는 모든 예시는 Username 과 Age 를 입력하여 멤버 정보를 저장하는 심플한 예제를 기반으로 한다. 또한 입력값은 모든 동일한 form을 통해서 입력하는 방식이다. Servlet & JSP ◼ Servlet 방식 Spring MVC 가 등장하기 이전에는 Servlet을 통해서 해당 리퀘스트 리스폰스 처리를 수행했다. 아래와 같은 샘플 코드를 먼저 확인해보자 @WebServlet(name="memberListServlet",urlPa..
김도도새
'Spring' 카테고리의 글 목록